KR20050032588A - 암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치 - Google Patents

암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치 Download PDF

Info

Publication number
KR20050032588A
KR20050032588A KR1020057001976A KR20057001976A KR20050032588A KR 20050032588 A KR20050032588 A KR 20050032588A KR 1020057001976 A KR1020057001976 A KR 1020057001976A KR 20057001976 A KR20057001976 A KR 20057001976A KR 20050032588 A KR20050032588 A KR 20050032588A
Authority
KR
South Korea
Prior art keywords
data
encryption
mode
processing
decryption
Prior art date
Application number
KR1020057001976A
Other languages
English (en)
Inventor
도시히코 후쿠오카
다에미 와다
Original Assignee
마츠시타 덴끼 산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마츠시타 덴끼 산교 가부시키가이샤 filed Critical 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR20050032588A publication Critical patent/KR20050032588A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

암호화 복호화장치로서, 암호화데이터 또는 암호화해야 할 데이터를 수취하여, 제어용데이터, 및 암호화데이터 또는 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과, 제어용데이터에 따라 모드선택신호를 구해 출력하는 데이터제어블록과, 처리블록 입력데이터에 대하여 암호화 또는 복호화를 실시하고, 얻어진 결과를 출력하는 공용처리블록을 구비한다. 공용처리블록은, 입력된 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드 중 어느 모드에서도 암호화 및 복호화를 실시할 수 있도록 구성되며, 모드선택신호에 표시된 모드에서 암호화 또는 복호화를 실시한다.

Description

암호화 복호화장치 및 방법, 암호화장치 및 방법, 복호화장치 및 방법, 그리고 송수신장치{ENCRYPTING/DECRYPTING DEVICE AND METHOD, ENCRYPTING DEVICE AND METHOD, DECRYPTING DEVICE AND METHOD, AND TRANSMITTING/RECEIVING DEVICE}
본 발명은 암호화 및 암호의 복호화기술에 관한 것이다.
디지털 쌍방향통신의 대표적인 예인 쌍방향 CATV(cable television) 시스템에서는, 암호화기능을 실현하기 위해, TV단말에 암호화기능이 실장된다. 이 암호화기능으로서, DES(data encryption standard) 암호로 대표되는 비밀키 암호방식과, RSA(Rivest-Shamir-Adleman) 암호로 대표되는 공개키 암호방식을 조합시킨 방식이 이용된다.
비밀키 암호방식이란, 암호화와 복호화에 이용하는 키가 공통이며, 암호화에 이용된 키를 이용하여 암호화 알고리즘을 역순으로 실행함으로써 복호화를 행하여, 암호화를 실시하기 전의 원문을 얻는 방식이다. 이 방식은, 단순한 배타적논리합의 반복 알고리즘으로 실현되는 것으로, 고속의 처리를 가능하게 하는 반면, 송신측과 수신측에서 공통의 키를 보유할 필요가 있어, 키의 배송·유지가 어렵다는 특징을 갖는다.
공개키 암호방식이란, 일방향 함수라 불리는, 함수 연산은 용이하게 실행할 수 있으며, 역함수 연산이 매우 어려운 함수를 이용하는 것으로, 암호화와 복호화에 사용하는 키가 다른 것이다. 따라서 키의 배송·유지는 쉽게 할 수 있는 반면, 비밀키 암호방식에 비해 계산이 복잡하며, 비밀키 암호방식에 비해 암호화·복호화에 보다 많은 처리시간이 필요하다. 단, 공개키 암호방식을 사용하여 인증 및 키 배송을 하고, 비밀키 암호방식을 사용하여 데이터의 암호화를 행함으로써, 각각의 이점을 살리는 것이 가능해진다.
미국의 표준방식인 DES암호방식에서는, ECB(electronic code book)모드라 불리는, 입력데이터 크기 64 비트, 출력데이터 크기 64 비트의 연산을 기본처리로서 실행한다. 이 암호방식의 암호화 알고리즘에 대하여, 미리 문자 또는 단어의 출현 빈도의 분포를 통계 처리해두면, 입수한 암호화문의 문자열 패턴 빈도분포와 매칭을 취함으로써, 암호화 전의 평문이 추정돼버릴 가능성이 있다.
그래서, 암호화된 64 비트의 암호블록과, 다음에 입력될 64 비트 입력데이터와의 배타적논리합을 연산하여 암호문을 작성하는 방법이 제안되었다. 이 방법을 실행시켜 암호화하는 모드를 CBC(cipher block chainig)모드라 부른다. 또 패킷통신과 같이 통신을 행할 때의 데이터 단위가 미리 정해져있을 경우가 있지만, 64 비트를 1 블록으로 하는 블록 암호화방식에서는 1 블록의 비트수(64 비트)로 나눌 수 없는 데이터 단위가 입력된 경우에는 1 블록에 미치지 않는 단수 데이터가 발생한다.
데이터에 단수부분이 있을 경우에는, 1 개 전 블록의 암호해독 연산결과와 단수데이터의 배타적논리합 연산을 실행하여 암호화한다. 이와 같은 단수처리를 실행하는 모드의 1 개로서, CFB(cipher feedback)모드가 있으며, CFB모드에 의해, 데이터가 64 비트에 미치지 않는 경우라도 암호문을 얻을 수 있다.
또 암호화 및 암호해독(복호화)의 어느 연산에서도 통상은 56 비트의 데이터를 키로서 이용하지만, 특정조건 하에서는 40 비트의 데이터를 키로서 이용하는 모드도 존재한다. 이 경우, 다른 모드의 경우와 마찬가지로, 연산처리 자체는 64 비트 단위로 행하지만, 키의 유효데이터가 40 비트로 된다.
이와 같이, 비밀키 암호방식 연산에서는 복수의 모드, 즉 ECB모드, CBC모드 및 CFB모드 중 1 개와, 56 비트 키모드 또는 40 비트 키모드 중 어느 한쪽과의 조합에 대응한 모드가 존재한다. 그리고 디지털 쌍방향통신의 보안기능을 실현하기 위해, 모든 모드에 대응한 암호화장치 또는 복호화장치가 일반적으로 이용된다.
이와 관련된 기술이, 예를 들어 미국특허 제 5,835, 599호 명세서에 개시되어있다.
종래의 DES암호방식에 기초한 암호화장치 또는 복호화장치는, 복수의 모드 각각을 위한 회로를 구비하며, 시스템의 요구에 따라 복수의 모드 중 어느 하나를 적절하게 선택하고, 그 모드를 위한 회로를 이용하여 암호화 연산 또는 암호해독 연산을 실행하는 구성이다.
그런데, 최근 암호화 또는 암호해독을 필요로 하는 시스템에서는, 단일의 키만을 사용하는 경우는 적으며, 복수 키를 사용하여 각각의 키에 대응한 연산을 실행하는 경우도 증가하고 있다.
이를 실현하는 장치는, 각 모드별의 암호화 또는 암호해독 기능을 구비한 위에, 복수 키에 대한 연산을 실행하는 기능도 필수적으로 되어, 회로규모는 막대한 것이 된다. 일반적으로 복수의 키에 대한 연산은 병렬 실행할 필요가 있으므로, 처리가 필요한 키의 수가 증대하면, 장치로서도 키 수에 대응한 수의 처리회로를 가질 필요가 있다.
그러나 DES의 각 모드는, ECB처리라 불리는, DES의 기본처리를 변형시킨 처리가 실행되는 것이다. 또 각 모드를 동시에 병렬 실행하는 경우는 거의 없다. 때문에 암호화장치 및 복호화장치에 있어서, 복수의 모드에서 처리회로를 공용화하여 회로규모를 삭감하는 것은 가능하다.
도 1은 본 발명의 실시형태에 관한 암호화 복호화장치의 구성을 나타내는 블록도.
도 2는 도 1의 공용처리 블록의 구성 예를 나타내는 블록도.
도 3은 도 1의 공용처리 블록이 실행하는 처리 흐름을 나타내는 설명도.
도 4는 도 1의 공용처리 블록에 있어서 제 1∼제 4 선택기가 선택하는 데이터의 조합을 나타내는 설명도.
도 5는 본 발명의 실시형태에 관한 암호화 복호화장치의 다른 구성 예를 나타내는 블록도.
도 6은 도 1의 암호화 복호화장치를 이용한 송수신장치의 블록도.
   본 발명은, 복수의 암호모드에서 처리회로를 공용화함으로써, 회로규모를 삭감한 암호화 복호화장치, 암호화장치, 복호화장치, 및 송수신장치를 제공하는 것을 목적으로 한다.
본 발명의 암호화 복호화장치는, 암호화데이터 또는 암호화해야 할 데이터를 수취하고, 그 데이터 구조를 해석하여, 암호화에 관한 정보를 제어용 데이터로서 출력함과 동시에, 상기 암호화데이터 또는 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과, 상기 제어용 데이터에 따라, 암호화 또는 복호화 중 어느 것을 실행해야 하는지를 나타내는 암호화/복호화 절환신호와, 상기 처리블록 입력데이터를 어느 모드로 처리해야 하는지를 나타내는 모드선택신호를 출력하는 데이터 제어블록과, 상기 처리블록 입력데이터에 대하여 상기 암호화/복호화 절환신호에 따라 암호화 또는 복호화를 행하여, 얻어진 암호화 결과 또는 복호화 결과를 출력하는 공용처리블록을 구비하며, 상기 공용처리블록은, 입력된 키 데이터를 이용한 ECB(electronic code book)처리를 행함으로써, CBC(cipher block chaining)모드 및 CFB(cipher feedback)모드 중 어느 것에서도 암호화 및 복호화를 행할 수 있도록 구성되며, 상기 모드선택신호에 표시된 모드에서 암호화 또는 복호화를 실행하는 것이다.
이에 따르면, 복수 암호모드에서의 암호화 및 복호화의 처리를 공용처리블록에 의해 실현할 수 있으므로, 암호모드별로 처리회로를 구성시킬 필요가 없다. 따라서, 암호화 복호화장치의 회로면적을 삭감하여, 그 원가를 억제할 수 있다.
또 본 발명의 암호화장치는, 암호화해야 할 데이터를 수취하고, 그 데이터구조를 해석하여, 제어용데이터를 구하여 출력함과 동시에, 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과, 상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과, 상기 처리블록 입력데이터에 대해 암호화를 실시하고, 얻어진 암호화결과를 출력하는 공용처리블록을 구비하며, 상기 공용처리블록은, 입력된 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드 중 어느 것에서도 암호화를 실시할 수 있도록 구성되어, 상기 모드선택신호에 표시된 모드에서 암호화를 행하는 것이다.
또 본 발명의 복호화장치는, 암호화해야 할 데이터를 수취하고, 그 데이터구조를 해석하여, 암호화에 관한 정보를 제어용데이터로서 출력함과 동시에, 상기 암호화데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과, 상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드로 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과, 상기 처리블록 입력데이터에 대해 복호화를 실시하고, 얻어진 복호화결과를 출력하는 공용처리블록을 구비하며, 상기 공용처리블록은, 입력된 키 데이터를 이용한 ECB처리를 실행함으로써, CBC모드 및 CFB모드 중 어느 것에서도 복호화를 실시할 수 있도록 구성되어, 상기 모드선택신호에 표시된 모드에서 복호화를 실시하는 것이다.
또한 본 발명의 송수신장치는, 수신한 신호를 데이터로 변환하여 출력하는 다운스트림 PHY부와, 상기 데이터로부터 다운스트림 데이터 및 키 데이터를 분리하여 출력하는 다운스트림 데이터처리부와, 상기 키 데이터를 이용하여 상기 다운스트림 데이터를 복호화하여 출력하는 제 1 암호화 복호화장치와, 상기 복호화된 다운스트림 데이터를 저장하는 기억부와, 상기 기억부로부터 읽어낸 업스트림 데이터를 암호화하여 출력하는 제 2 암호화 복호화장치와, 상기 암호화된 업스트림 데이터에, 암호화에 이용된 키 데이터를 부가시켜 출력하는 업스트림 데이터 처리부와, 상기 업스트림 데이터 처리부가 출력하는 데이터를 신호로 변환하여 송신하는 업스트림 PHY부를 구비하며, 상기 제 1 및 제 2 암호화 복호화장치는 모두, 암호화데이터를 포함하는 상기 다운스트림 데이터 또는 암호화해야할 데이터를 포함하는 상기 업스트림 데이터를 수취하고, 그 데이터구조를 해석하여, 암호화에 관한 정보를 제어용데이터로서 출력함과 동시에, 상기 암호화데이터 또는 상기 암호화해야할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과, 상기 제어용데이터에 따라, 암호화 또는 복호화 중 어느 것을 실시해야 하는가를 나타내는 암호화/복호화 절환신호와, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과, 상기 처리블록 입력데이터에 대하여 상기 암호화/복호화 절환신호에 따라 암호화 또는 복호화를 실시하여, 얻어진 암호화 결과 또는 복호화 결과를 출력하는 공용처리블록을 구비하는 것으로, 상기 공용처리블록은, 입력된 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드 중 어느 것에서도 암호화 및 복호화를 실시할 수 있도록 구성되어, 상기 모드선택신호에 표시된 모드에서 암호화 또는 복호화를 실시하는 것이다.
-발명의 효과-
이상과 같이, 본 발명에 의하면, 동일한 하드웨어에 의해 많은 암호모드에서 암호화/복호화를 행할 수 있으므로, 회로면적을 삭감하여 원가를 저감할 수 있다. 많은 기능을 저원가로 제공할 수 있으므로, 암호화 복호화장치 등의 대가격성능비(cost performance)를 높일 수 있다.
이하, 본 발명의 실시형태에 대하여, 도면을 참조하면서 설명하기로 한다.
도 1은, 본 발명의 실시형태에 관한 암호화 복호화장치의 구성을 나타내는 블록도이다. 도 1의 암호화 복호화장치(23)는, 데이터구조 해석블록(2)과, 공용처리블록(4)과, 데이터제어블록(6)을 구비한다. 이하에서는 예로서, 도 1의 암호화 복호화장치(23)는, 중앙장치 및 복수의 단말장치로 구성되는 쌍방향통신망에 있어서, 단말장치의 1 개에 포함되는 것으로서 설명하지만, 중앙장치에 포함되어도 된다. 중앙장치는, 암호화된 데이터를 포함하는 다운스트림 데이터(SD)를 단말장치로 송신한다. 다운스트림 데이터(SD)에는, 영상데이터 및 전송제어데이터가 포함된다. 한편, 단말장치는, 암호화해야 할 데이터를 포함하는 업스트림 데이터를 수취하고, 암호화하여 중앙장치로 송신한다.
데이터구조 해석블록(2)은, 다운스트림 데이터(SD)를 수취하여, 그 구문을 해석한다. 다운스트림 데이터(SD)는, 예를 들어 영상데이터의 MPEG(moving picture experts group)구조와, MPEG구조에 매입돼있는 통신망처리용 서브레이어인 MAC(media access control)구조를 갖는다.
우선 데이터구조 해석블록(2)은, MPEG구조 데이터 중의 헤더부분을 해석하여, MAC구조 데이터를 뽑아내기 위한 정보를 추출한 후에, MAC구조 데이터를 뽑아낸다. 다음에, MAC구조 데이터 중의 헤더부분을 해석하여, 통상의 헤더뿐 아니라 확장 헤더로 불리는 확장된 필드가 존재할 경우는, 이 확장헤더를 해석한다. 확장헤더는, 데이터구성의 확장을 가능하게 하는 것으로, 암호화의 유무, 그 밖의 암호화 또는 복호화를 위한 처리에 필요한 정보를 갖는다.
확장 헤더가 존재하지 않을 경우, 데이터구조 해석블록(2)은, 다운스트림 데이터(SD)가 암호화되지 않은 것으로 판단한다. 이 경우, 데이터구조 해석블록(2)은, TEK(traffic encryption key)제어용 데이터(TK)를, 예를 들어 값 "0"으로 고정시켜, 데이터제어블록(6)으로 출력한다.
확장 헤더가 존재할 경우, 데이터구조 해석블록(2)은 암호화에 관한 정보를 저장하는 필드를 해석한다. 암호화되지 않았음을 확인했을 경우에는, 확장 헤더가 존재하지 않는 경우와 마찬가지의 처리를 한다. 암호화되었음을 확인했을 경우에는, 암호화에 관한 정보인 SID(service ID) 및 키 수열번호(key sequence number)를 확장 헤더에서 추출하여, TEK제어용데이터(TK)로서 데이터제어블록(6)으로 출력한다.
또 데이터구조 해석블록(2)은, 암호화해야 할 데이터를 업스트림 데이터(SU)로서 수취하여, 그 데이터구조를 해석한다. 데이터구조 해석블록(2)은, 업스트림 데이터(SU)에 포함되는 데이터에서 SID 및 키 수열번호를 추출하여, TEK제어용 데이터(TK)로서 데이터제어블록(6)으로 출력한다.
데이터구조 해석블록(2)은, 다운스트림 데이터(SD)에 포함되는 MPEG구조를 갖는 암호화데이터, 또는 업스트림 데이터(SU)에 포함되는 암호화해야 할 데이터를, 처리블록 입력데이터(EC)로서 공용처리블록(4)으로 출력한다.
데이터구조 해석블록(2)은, 수신한 다운스트림 데이터(SD) 또는 업스트림 데이터(SU) 패킷의 비트수를 계수하여, 스트림 패킷의 비트수가 64 비트 이하, 64 비트의 배수, 또는 64 비트의 배수와 64 비트 이하 단수와의 합 중 어느 것인가, 및 패킷 중 처리블록 입력데이터(EC)로서 출력된 비트수(패킷카운트)를 구한다. 데이터구조 해석블록(2)은, 구해진 결과, 및 다운스트림 데이터(SD)를 수취한 경우에는 복호화해야 함을, 및 업스트림 데이터(SU)를 수취한 경우에는 암호화해야 함도, 함께 TEK 제어용데이터(TK)로서 데이터제어블록(6)으로 출력한다.
다음으로, 데이터제어블록(6)은 데이터구조 해석블록(2)으로부터 수신한 TEK 제어용데이터(TK)를 이용하여 처리를 한다. 우선, SID 및 키 수열번호를 체크하여, 이들 데이터가 이미 정해진 유효 수치인지 여부를 판단한다. 무효 수치인 것으로 판단될 경우는, 아무 처리도 실시하지 않는다. 유효 수치인 것으로 판단될 경우, 데이터제어블록(6)은 56 비트 키모드인지 여부를 체크한다. 암호화 및 복호화에는 56 비트의 키가 표준으로 이용되는데, 이 이외 길이의 키도 이용된다. 이하에서는 예로서, 56 비트 또는 40 비트의 키가 이용되는 것으로 한다. 56 비트 키모드인지의 여부는, SID 및 키 수열번호에 일의적으로 대응한다. 데이터제어블록(6)은, 56 비트 키모드인지의 여부를 나타내는 정보를 모드선택신호(MS)로서 출력한다.
데이터제어블록(6)은, TEK제어용 데이터(TK)에 따라, 암호화 또는 복호화의 어느 것을 실시해야 하는가를 나타내는 암호화/복호화 절환신호(SS)를 공용처리블록(4)으로 출력한다. 또 데이터제어블록(6)은, TEK제어용 데이터(TK)를 참조하여, 처리블록 입력데이터(EC) 패킷의 비트수가 64 비트 이하일 경우는 CFB모드를 나타내는 신호를, 64 비트의 배수일 경우는 CBC모드를 나타내는 신호를, 모드선택신호(MS)로서 공용처리블록(4)으로 출력한다.
패킷의 비트수가, 64 비트의 배수와 64 비트 이하의 단수와의 합일 경우, 데이터제어블록(6)은, 패킷카운트에 따라 모드선택신호(MS)를 다음과 같이 절환한다. 즉, 데이터구조 해석블록(2)이 64 비트의 배수에 상당하는 처리블록 입력데이터(EC)를 출력할 때는 CBC모드를 나타내는 신호를, 64 비트 이하의 단수에 상당하는 처리블록 입력데이터(EC)를 출력할 때는 CFB모드를 나타내는 신호를, 데이터제어블록(6)이 모드선택신호(MS)로서 출력한다. 또 데이터제어블록(6)은 각 모드의 처리를 시작하는 초기상태, 또는 그 후의 정상상태 중 어느 것인지도, 모드선택신호(MS)로서 출력한다.
또 데이터구조 해석블록(2)은, 수신한 다운스트림 데이터(SD) 또는 업스트림 데이터(SU)에 따라, ECB모드에서 처리할지의 여부를 TEK제어용 데이터(TK)에 의해 데이터제어블록(6)으로 통지한다. ECB모드에서 처리해야 할 경우, 데이터제어블록(6)은, ECB모드를 나타내는 신호를 모드선택신호(MS)로서 출력한다.
이와 같이 데이터제어블록(6)은, SID, 키 수열번호, 및 패킷카운트 등에 따라 모드선택신호(MS)를 절환하여, 공용처리블록(4)에 출력한다.
공용처리블록(4)은, 복수 암호모드에서의 처리에 공통으로 이용된다. 즉, 공용처리블록(4)은, 외부로부터 입력된 초기벡터 데이터(IV), 및 키 데이터(KD)를 이용한 ECB처리를 실시함으로써, ECB모드, CBC모드 및 CFB모드 중 어느 암호모드에서도, 처리블록 입력데이터(EC)에 대하여 암호화 및 복호화를 할 수 있도록 구성된다. 공용처리블록(4)은, 모드선택신호(MS)에 표시된 모드에서, 암호화/복호화 절환신호(SS)에 따라 암호화 또는 복호화를 실시하고, 얻어진 암호화 결과 또는 복호화 결과를 처리필 데이터(DC)로서 출력한다.
도 2는 도 1의 공용처리블록(4) 구성 예를 나타내는 블록도이다. 도 2의 공용처리블록(4)은, 제 1 선택기(41)와, 제 2 선택기(42)와, 제 3 선택기(43)와, 제 4 선택기(44)와, 비트마스크기(46)와, ECB처리기(47)와, 지연기(48)와, 배타적논리합 연산기(49)를 구비한다.
제 1 선택기(41)는, 암호화/복호화 절환신호(SS) 및 모드선택신호(MS)에 따라, 처리블록 입력데이터(EC), 및 ECB처리기(47)가 출력하는 암호처리데이터(PD) 중 어느 한쪽을 선택하여 배타적논리합 연산기(49)로 출력한다.
지연기(48)는, 처리블록 입력데이터(EC), 및 암호처리데이터(PD)를 입력으로 하며, 각각을, ECB처리기(47)가 64 비트 데이터에 대해 ECB처리에 필요한 시간만큼 지연시켜, 제 2 선택기(42)로 출력한다.
제 2 선택기는 암호화/복호화 절환신호(SS) 및 모드선택신호(MS)에 따라, 처리블록 입력데이터(EC), 초기벡터 데이터(IV) 및 지연기(48)가 출력하는 지연된 처리블록 입력데이터(ECD) 및 지연된 암호처리데이터(PDD) 중 어느 하나를 선택하여 배타적논리합 연산기(49)로 출력한다.
배타적논리합 연산기(49)는, 제 1 선택기(41)의 출력과 제 2 선택기(42) 출력과의 배타적논리합을, 대응하는 비트별로 구하여 제 4 선택기(44)로 출력한다.
제 3 선택기(43)는, 암호화/복호화 절환신호(SS) 및 모드선택신호(MS)에 따라, 처리블록 입력데이터(EC), 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER), 지연된 처리블록 입력데이터(ECD), 및 지연된 암호처리데이터(PDD) 중 어느 하나를 선택하여 ECB처리기(47)로 출력한다.
비트마스크기(46)는, 키 데이터(KD)를 모드선택신호(MS)에 따라, 필요에 따라 그 일부를 마스킹하여, 모드에 적합한 키 데이터로서 ECB처리기(47)로 출력한다.
제 4 선택기(44)는, 암호화/복호화 절환신호(SS) 및 모드선택신호(MS)에 따라, 암호처리데이터(PD) 및 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER) 중 어느 하나를 선택하여, 암호화 결과 또는 복호화 결과로서 출력한다.
ECB처리기(47)는, 암호화/복호화 절환신호(SS) 및 모드선택신호(MS)에 따라, ECB처리로서 암호화처리 및 복호화처리 중 어느 하나를, 제 3 선택기(43)의 출력에 대하여 실시한다. ECB처리기(47)는, 비트마스크기(46)가 출력하는 모드에 적합한 키 데이터를 이용하여 ECB처리를 실시하고, 얻어진 결과를 암호처리데이터(PD)로서 제 1 선택기(41), 제 4 선택기(44), 및 지연기(48)로 출력한다.
도 3은, 도 1의 공용처리블록(4)이 실시하는 처리의 흐름을 나타내는 설명도이다. 도 3에서 상단은 암호화처리의 흐름을 나타내며, 하단은 복호화처리의 흐름을 나타낸다. 처리(E1, E2, E3, E9, D1, D2, D3, D9)는 각각 ECB처리를 나타낸다. 공용처리블록(4)은 암호화처리 및 복호화처리의 어느 경우에도, CBC모드에 의한 처리를 실시할 필요가 있을 때는, CBC모드에 의한 처리를 연속적으로 실시하고, 그 후, 필요에 따라 DFB모드에 의한 처리를 실시한다.
도 3에서, 처리(E9, D9)를 포함하는 가장 오른 쪽 열의 처리는 CFB모드의 처리를 나타낸다. 처리(E1, E2, E3, D1, D2, D3)를 포함하는 그 밖의 3 개 열의 처리는 CBC모드의 처리를 나타낸다. 또 "IV"는 초기벡터 데이터, "D"는 암호화되지 않은 데이터, "I"는 도 3 상단의 암호화처리일 경우는 ECB처리 전, 하단의 복호화처리일 경우는 ECB처리 후 데이터를 나타낸다. 또 "C"는 암호화데이터, "Encrypt"는, ECB처리기(47)에서의 ECB처리가 암호화처리임을, "Decrypt"는 ECB처리기(47)에서의 ECB처리가 복호화처리임을 나타낸다. 실제의 ECB처리에는 키 데이터를 이용하지만, 도 3에서는 키 데이터의 데이터흐름을 생략한다. 도 3의 처리 흐름은, 56 비트 키모드인지 여부에 상관없이 마찬가지이다.
도 4는, 도 1 공용처리블록(4)의 제 1∼제 4 선택기(41∼44)가 선택하는 데이터의 조합을 나타내는 설명도이다. 공용처리블록(4)의 복호화처리 시 동작에 대하여, 도 2, 도 3의 하단, 및 도 4를 참조하여 설명한다. 이 경우 공용처리블록(4)에는, 암호화/복호화 절환신호(SS)로서, 복호화를 나타내는 신호가 입력된다. 56 비트 키모드인지의 여부, CBC모드 및 CFB모드 중 어느 것인가, 초기상태 및 정상상태 중 어느 것인가에 따라 경우를 나누어 설명한다. ECB처리기(47)에서의 ECB처리는, CBC모드일 경우는 복호화처리, CFB모드일 경우는 암호화처리이다.
1) 56비트 키모드이며 CBC모드의 초기상태인 경우(도 4의 DEC-CBC Init인 경우)
이 경우는, 도 3 하단의 처리(D1) 및 이에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은 암호화데이터(C)를 입력으로 하며, ECB처리로서 "Decrypt"처리를 실시하여 데이터(I)를 구한다. 공용처리블록(4)은, 구해진 데이터(I)와 입력된 초기벡터 데이터(IV)와의 배타적논리합을 구하여, 암호화되지 않은 데이터(D)로서 출력한다.
이 경우의 처리를, 도 2를 참조하여 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드임, 및 CBC모드의 초기상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 초기벡터 데이터(IV)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 초기벡터 데이터(IV)와의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 처리블록 입력데이터(EC)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 처리블록 입력데이터(EC)에 대하여 ECB처리로서 복호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 복호화 결과를 출력한다.
2) 56 비트 키모드이며 CBC모드의 정상상태인 경우(도 4의 DEC-CBC Normal인 경우)
이 경우는, 도 3 하단의 처리(D2, D3) 및 이들 각각에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은 암호화데이터(C)를 입력으로 하며, "Decrypt"처리를 실시하여, 데이터(I)를 구한다. 공용처리블록(4)은, 구해진 데이터(I)와, 그 전의 ECB처리에서 이용한 암호화데이터(C)의 배타적논리합을 구하여, 암호화되지 않은 데이터(D)로서 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드임, 및 CBC모드의 정상상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 지연기(48)가 출력하는 지연된 처리블록 입력데이터(ECD)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 지연된 처리블록 입력데이터(ECD)와의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 처리블록 입력데이터(EC)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력돼있으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 처리블록 입력데이터(EC)에 대하여 ECB처리로서 복호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 복호화 결과를 출력한다.
3) 56 비트 키모드가 아니며 CBC모드의 초기상태인 경우
4) 56 비트 키모드가 아니며 CBC모드의 정상상태인 경우
이들의 경우는, 각각 1), 2)의 경우와 다음의 점을 제외하고 마찬가지이다. 즉, 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력된다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD) 중, 필요 없는 비트(예를 들어 상위 16 비트)를 마스킹하여, 40 비트 키 데이터로서 ECB처리기(47)로 출력한다. ECB처리기(47)는, 비트마스크기(46)로부터 출력된 40 비트 키 데이터를 이용하여 ECB처리를 실시한다.
5) 56 비트 키모드이며 CFB모드의 초기상태인 경우(도 4의 DEC-CFB Init인 경우)
CFB모드의 처리만을 실시할 경우에는, CFB모드의 초기상태에서의 처리가 실시된다. 이 경우는, 도 3 하단의 처리(D9) 및 이에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은 암호화데이터(C)를 입력으로 하며, "Eecrypt"처리를 실시하여 데이터(I)를 구한다. 공용처리블록(4)은, 구해진 데이터(I)와, 입력된 초기벡터 데이터(IV) 데이터와의 배타적논리합을 구하여, 암호화되지 않은 데이터(D)로서 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드임, 및 CFB모드의 초기상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 초기벡터 데이터(IV)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 초기벡터 데이터(IV)와의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 처리블록 입력데이터(EC)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 처리블록 입력데이터(EC)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 복호화 결과를 출력한다.
6) 56 비트 키모드이며 CFB모드의 정상상태인 경우(도 4의 DEC-CFB Normal인 경우)
CBC모드의 처리에 이어 CFB모드의 처리를 실시할 경우에는, CFB모드가 정상상태에서의 처리가 실시된다. 이 경우는, 도 3 하단의 처리(D9) 및 이에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은 그 전의 ECB처리에서 이용한 암호화데이터(C)를 입력으로 하며, "Encrypt"처리를 실시하여, 데이터(I)를 구한다. 공용처리블록(4)은, 구해진 데이터(I)와 다음 암호화데이터(C)와의 배타적논리합을 구하여, 암호화돼있지 않은 데이터(D)로서 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서, 56 비트 키모드임, 및 CFB모드의 정상상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 처리블록 입력데이터(EC)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 처리블록 입력데이터(EC)와의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 지연기(48)가 출력하는 지연된 처리블록 입력데이터(ECD)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력됐음으로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 지연된 처리블록 입력데이터(ECD)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 복호화 결과를 출력한다.
7) 56 비트 키모드가 아니며 CFB모드의 초기상태인 경우
8) 56 비트 키모드가 아니며 CFB모드의 정상상태인 경우
이들의 경우는, 각각 5), 6)의 경우와 다음 점을 제외하고 마찬가지이다. 즉, 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력된다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력됐으므로, 입력된 56 비트의 키 데이터(KD) 중, 필요 없는 비트(예를 들어 상위 16 비트)를 마스킹하여, 40 비트 키 데이터로서 ECB처리기(47)로 출력한다. ECB처리기(47)는, 비트마스크기(46)로부터 출력된 40 비트 키 데이터를 이용하여 ECB처리를 실시한다.
공용처리블록(4)의 암호화처리 시 동작에 대하여, 도 2, 도 3의 상단, 및 도 4를 참조하여 설명한다. 이 경우, 공용처리블록(4)에는 암호화/복호화 절환신호(SS)로서, 암호화를 나타내는 신호가 입력된다. 56 비트 키모드인지의 여부, CBC모드 및 CFB모드 중 어느 것인지, 초기상태 및 정상상태 중 어느 것인지에 따라 경우를 나누어 설명한다. ECB처리기(47)에서의 ECB처리는, CBC모드의 경우 및 CFB모드의 경우 모두 암호화처리이다.
9) 56 비트 키모드이면서 CBC모드의 초기상태인 경우(도 4의 ENC-CBC Init인 경우)
이 경우는, 도 3 하단의 처리(E1) 및 그 전의 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은, 입력된 초기벡터 데이터(IV)와 암호화되지 않은 데이터(D)와의 배타적논리합을 구해, 데이터(I)로서 출력한다. 공용처리블록(4)은, 얻어진 데이터(I)에 ECB처리로서 "Eecrypt"처리를 실시하고, 암호화데이터(C)를 구하여 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서, 56 비트 키모드임, 및 CBC모드의 초기상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, 처리블록 입력데이터(EC)를 선택하여 출력한다. 제 2 선택기(42)는, 초기벡터 데이터(IV)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 처리블록 입력데이터(EC)와 초기벡터 데이터(IV)의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 배타적논리합 데이터(ER)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력됐으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 배타적논리합 데이터(ER)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 암호처리데이터(PD)를 선택하여, 처리필 데이터(DC)로서 암호화 결과를 출력한다.
10) 56 비트 키모드이며 CBC모드의 정상상태인 경우(도 4의 ENC-CBC Normal인 경우)
이 경우는, 도 3 상단의 처리(E2 또는 E3) 및 이들 각각의, 이전 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은, 암호화되지 않은 데이터(D)와 그 전의 ECB처리에서 얻어진 암호화데이터(C)와의 배타적논리합을 구하여, 데이터(I)로서 출력한다. 공용처리블록(4)은, 얻어진 데이터(I)에 ECB처리로서 "Encrypt"처리를 실시하고, 암호화데이터(C)를 구해 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서, 56 비트 키모드임, 및 CBC모드의 정상상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, 처리블록 입력데이터(EC)를 선택하여 출력한다. 제 2 선택기(42)는, 지연기(48)가 출력하는 지연된 암호처리데이터(PDD)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 처리블록 입력데이터(EC)와지연된 암호처리데이터(PDD)와의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 배타적논리합 데이터(ER)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 배타적논리합 데이터(ER)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 암호처리데이터(PD)를 선택하여, 처리필 데이터(DC)로서 암호화 결과를 출력한다.
11) 56 비트 키모드가 아니며 CBC모드의 초기상태인 경우
12) 56 비트 키모드가 아니며 CBC모드의 정상상태인 경우
이들의 경우는, 각각 9), 10)의 경우와 다음 점을 제외하고 마찬가지이다. 즉, 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력된다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD) 중, 필요 없는 비트(예를 들어 상위 16 비트)를 마스킹하여, 40 비트 키 데이터로서 ECB처리기(47)로 출력한다. ECB처리기(47)는, 비트마스크기(46)로부터 출력된 40 비트 키 데이터를 이용하여 ECB처리를 실시한다.
13) 56 비트 키모드이면서 CFB모드의 초기상태인 경우(도 4의 ENC-CFB Init인 경우)
CFB모드의 처리만을 실시할 경우에는, CFB모드의 초기상태에서의 처리가 실시된다. 이 경우는, 도 3 상단의 처리(E9) 및 이에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은, 암호화되지 않은 데이터(D)를 입력으로 하여 "Encrypt"처리를 실시한다. 공용처리블록(4)은, 이 처리에서 구해진 데이터와 입력된 초기벡터 데이터(IV)와의 배타적논리합을 구하여, 암호화데이터(C)로서 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서, 56 비트 키모드임, 및 CFB모드의 초기상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 초기벡터 데이터(IV)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 초기벡터 데이터(IV)의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 처리블록 입력데이터(EC)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력돼있으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된 처리블록 입력데이터(EC)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 암호화 결과를 출력한다.
14) 56 비트 키모드이며 CFB모드의 정상상태인 경우(도 4의 ENC-CFB Normal인 경우)
CBC모드의 처리에 이어 CFB모드의 처리를 실시할 경우에는, CFB모드의 정상상태에서의 처리가 실시된다. 이 경우는, 도 3 상단의 처리(E9) 및 이에 이어지는 배타적논리합을 구하는 처리가 실시된다. 공용처리블록(4)은, 그 앞의 ECB처리에서 얻어진 암호화데이터(C)를 입력으로 하여, "Encrypt"처리를 실시한다. 공용처리블록(4)은, 이 처리에서 구해진 데이터와, 암호화되지 않은 데이터(D)와의 배타적논리합을 구해, 암호화데이터(C)로서 출력한다.
이 경우의 처리를, 도 2를 참조하면서 설명한다. 공용처리블록(4)에는 모드선택신호(MS)로서, 56 비트 키모드임, 및 CFB모드의 정상상태임을 나타내는 신호가 입력된다.
제 1 선택기(41)는, ECB처리기(47)가 출력하는 암호처리데이터(PD)를 선택하여 출력한다. 제 2 선택기(42)는, 처리블록 입력데이터(EC)를 선택하여 출력한다. 배타적논리합 연산기(49)는, 암호처리데이터(PD)와 처리블록 입력데이터(EC)의 배타적논리합을, 대응하는 비트별로 구하고, 얻어진 배타적논리합 데이터(ER)를 출력한다.
제 3 선택기(43)는, 지연기(48)가 출력하는 지연된 암호처리데이터(PDD)를 선택하여 ECB처리기(47)로 출력한다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드임을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD)를 마스킹하지 않고 그대로 ECB처리기(47)로 출력한다.
ECB처리기(47)는, 비트마스크기(46)로부터 출력된 56 비트 키 데이터를 이용하여, 제 3 선택기로부터 출력된, 지연된 암호처리 데이터(PDD)에 대하여 ECB처리로서 암호화처리를 실시하고, 얻어진 암호처리데이터(PD)를 출력한다. 제 4 선택기는, 배타적논리합 연산기(49)가 출력하는 배타적논리합 데이터(ER)를 선택하여, 처리필 데이터(DC)로서 암호화 결과를 출력한다.
15) 56 비트 키모드가 아니며 CFB모드의 초기상태인 경우
16) 56 비트 키모드가 아니며 CFB모드의 정상상태인 경우
이들 경우는, 각각 13), 14)의 경우와 다음의 점을 제외하고 마찬가지이다. 즉, 공용처리블록(4)에는 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력된다. 비트마스크기(46)는, 모드선택신호(MS)로서 56 비트 키모드가 아님을 나타내는 신호가 입력되었으므로, 입력된 56 비트의 키 데이터(KD) 중, 필요 없는 비트(예를 들어 상위 16 비트)를 마스킹하여, 40 비트 키 데이터로서 ECB처리기(47)로 출력한다. ECB처리기(47)는, 비트마스크기(46)로부터 출력된 40 비트 키 데이터를 이용하여 ECB처리를 실시한다.
여기서, 모드선택신호(MS)가 ECB모드를 나타낼 경우, 제 3 선택기(43)는 처리블록 입력데이터(EC)를 선택하여 출력하며, 또 제 4 선택기(44)는 암호처리데이터(PD)를 선택하여 출력한다. ECB처리기(47)는, 암호화/복호화 절환신호(SS)가, 암호화를 나타낼 경우는 암호화처리를 실시하며, 복호화를 나타낼 경우는 복호화처리를 실시한다. 즉, 도 1의 암호화 복호화장치는, CBC모드 및 CFB모드에 더불어 ECB모드에서의 암호화 및 복호화를 실행할 수 있다.
또 56 비트 키비트 데이터 또는 40 비트 키 데이터 대신, 다른 길이의 키 데이터를 이용하도록 하는 것도 용이하게 할 수 있다.
또한 도 1의 암호화 복호화장치를 암호화장치로서 이용하도록 해도 된다. 이 경우는, 입력된 다운스트림 데이터를 암호화하여 출력하는 것만으로 되며, 이상의 설명에서의 복호화에 대응한 구성 및 동작은 필요 없다. 또 암호화/복호화 절환신호(SS)는 필요 없으며, 제 1∼제 4 선택기 및 ECB처리기는, 모드선택신호(MS)에 따라 동작하면 된다.
더 구체적으로, 지연기는 암호처리데이터(PD)를 입력으로 하며, 이를 지연시켜 출력한다. 제 2 선택기는, 처리블록 입력데이터(EC), 초기벡터 데이터(IV), 및 지연기가 출력하는 지연된 암호처리데이터(PDD) 중 어느 하나를 선택하여 출력한다. 제 3 선택기는, 처리블록 입력데이터(EC), 배타적논리합 연산기가 출력하는 배타적논리합 데이터(ER), 및 지연된 암호처리데이터(PDD) 중 어느 하나를 선택하여 출력한다. 제 4 선택기는 암호처리데이터(PD) 및 배타적논리합 데이터(ER) 중 어느 하나를 선택하여, 암호화 결과로서 출력한다.
또한 도 1의 암호화 복호화장치를 복호화장치로서 이용하도록 해도 된다. 이 경우는, 입력된 업스트림 데이터를 복호화하여 출력하는 것만으로 되며, 이상의 설명에서의 암호화에 대응한 구성 및 동작은 필요 없다. 따라서 암호처리데이터(PD)를 항상 출력하는 제 1 선택기, 및 배타적논리합 연산기가 출력하는 배타적논리합 데이터(ER)를 항상 출력하는 제 4 선택기는 필요 없다. 또 암호화/복호화 절환신호(SS)는 필요 없으며, 제 2, 제 3 선택기 및 ECB처리기는, 모드선택신호(MS)에 따라 동작하면 된다.
더 구체적으로, 지연기는 처리블록 입력데이터(EC)를 입력으로 하며, 이를 지연시켜 출력한다. 제 2 선택기는, 처리블록 입력데이터(EC), 초기벡터 데이터(IV), 및 지연기가 출력하는 지연된 처리블록 입력데이터(ECD) 중 어느 하나를 선택하여 출력한다. 제 3 선택기는, 처리블록 입력데이터(EC), 및 지연된 처리블록 입력데이터(ECD) 중 어느 하나를 선택하여 출력한다. 배타적논리합 연산기는, 암호처리데이터(PD)와, 제 2 선택기 출력과의 배타적논리합을 구해, 복호화 결과로서 출력한다.
또 본 발명은, CPU나 DSP(digital signal processor) 등의 처리기를 이용한 소프트웨어에 의한 처리를 실시함으로써 실현하는 것도 가능하다.
이상과 같이 본 발명에 관한 암호화 복호화장치에 의하면, 모드선택신호를 변화시키면, ECB모드, CBC모드 및 CFB모드 중 어느 하나와, 56 비트 키모드 또는 40 비트 키모드 중 어느 하나를 조합시킨 어떤 모드에서도, 동일 하드웨어로써 암호화데이터에 대한 복호화를 실행하여, 암호해독 데이터를 얻을 수 있다.
또 암호화/복호화 절환신호를 변화시키면, 어느 모드에서도, 데이터의 암호화 및 복호화 모두 동일한 하드웨어로써 실행할 수 있다. 따라서 암호화 복호화장치의 회로규모 삭감을 도모할 수 있다.
도 5는 본 발명의 실시형태에 관한 암호화 복호화장치의 다른 구성 예를 나타내는 블록도이다. 도 5의 암호화 복호화장치는, 데이터구조 해석블록(202)과, 공용처리블록(4)과, 데이터제어블록(206)과, 제 1 및 제 2 입력선택기(207, 208)와, 출력선택기(209)를 구비한다. 도 5의 암호화 복호화장치는, 삼중 DES(triple DES)방식에 의한 암호화 및 복호화를 실행하는 장치이다. 공용처리블록(4)은 도 1을 참조하여 설명한 것과 마찬가지의 것이다.
데이터구조 해석블록(202)은, 도 1의 데이터구조 해석블록(2)과 마찬가지의 동작을 하는 것 외에, 입력된 스트림데이터의 헤더로부터, 이 스트림데이터를 삼중 DES방식으로 처리해야 하는지 여부를 판단하고, 그 결과도 TEK제어용 데이터(TK)로서 데이터제어블록(206)으로 출력한다.
데이터제어블록(206)은, 도 1의 데이터제어블록(6)과 마찬가지 동작을 하는 것 외에, TEK제어용 데이터(TK)에 기초하여, 삼중 DES방식으로 암호화 또는 복호화해야 할 경우에는, 삼중 DES방식을 나타내는 신호도 모드선택신호(MS)로서 공용처리블록(4), 입력선택기(207 및 208)로 출력한다. 또 데이터제어블록(206)은, 출력제어신호(OS)를 출력선택기(209)로 출력한다.
입력선택기(207)는, 모드선택신호(MS)에 따라, 다운스트림 데이터(SD) 또는 공용처리블록(4)이 출력하는 처리필데이터(DC)를 선택하여, 데이터구조 해석블록(202)으로 출력한다. 입력선택기(208)는, 모드선택신호(MS)에 따라, 업스트림 데이터(SU) 또는 처리필데이터(DC)를 선택하여, 데이터구조 해석블록(202)으로 출력한다. 출력선택기(209)는, 출력제어신호(OS)에 따라 처리필데이터(DC) 또는 값 "0"을 선택하여, 도 5의 암호화 복호화장치의 처리필데이터(TD)로서 출력한다.
도 5의 암호화 복호화장치가, 삼중 DES모드에서 동작할 때의 동작에 대하여 설명한다. 데이터제어블록(206)은, 통상, 다운스트림 데이터(SD) 및 업스트림 데이터(SU)를 각각 선택하도록, 입력선택기(207, 208)에 모드선택신호(MS)를 출력하며, 처리필데이터(DC)를 선택하도록, 출력선택기(209)에 출력제어신호(OS)를 출력한다.
공용처리블록(4)은, 입력된 다운스트림 데이터(SD) 또는 업스트림데이터(SU)에 대하여 제 1 회 처리를 실시하여, 처리필데이터(DC)를 입력선택기(207, 208), 출력선택기(209)로 출력한다.
모드선택신호(MS)가 삼중 DES모드를 나타낼 경우, 입력선택기(207, 208)는 처리필데이터(DC)를 선택한다. 이 때, 출력선택기(209)는, 출력제어신호(OS)에 따라 "0"을 선택한다. 그러면, 공용처리블록(4)에 의해 제 1 회 처리가 실시된 처리필데이터(DC)가, 다시 데이터구조 해석블록(202)에 입력되어, 공용처리블록(4)에 의해 제 2 회 처리가 실시된다.
입력선택기(207, 208), 출력선택기(209)는, 그 후도 마찬가지의 선택을 하므로, 공용처리블록(4)에 의해 제 2 회 처리가 실시된 처리필데이터(DC)가, 다시 데이터구조 해석블록(202)에 입력되어, 공용처리블록(4)에 의해 제 3 회 처리가 실시된다.
제 3 회의 처리가 종료되면, 출력선택기(209)는 처리필데이터(DC)를 선택하므로, 삼중 DEC방식으로 암호화 또는 복호화 처리가 실시된 결과가 처리필데이터(TD)로서 출력된다. 이 때 입력선택기(207, 208)는, 다운스트림데이터(SD) 및 업스트림데이터(SU)를 각각 선택한다. 공용처리블록(4)에서의 3 회의 처리는 각각, 암호화 및 복호화 모두 실시하도록 할 수 있다. 특히, 암호화, 복호화, 암호화 순으로 처리를 실시하면, 삼중 DES방식에 의한 암호화를 할 수 있으며, 복호화, 암호화, 복호화 순으로 처리를 실시하면, 삼중 DES방식에 의한 복호화를 할 수 있다.
이와 같이 도 5의 암호화 복호화장치에 의하면, 공용처리블록(4)에서 암호화 또는 복호화처리를 3 회 실시하므로, 삼중 DES방식에 의한 암호화 또는 복호화를 할 수 있다.
그리고 공용처리블록(4)에서의 처리를, 3 회보다 많은 횟수 실시하도록 해도 된다.
도 6은 도 1의 암호화 복호화장치를 이용한 송수신장치의 블록도이다. 도 6의 송수신장치(100)는, PHY부(10)와, MAC부(20)와, 화상처리부(32)와, 인터페이스부(34)와, 튜너(52)를 구비한다.
PHY부(10)는, 다운스트림 PHY부(11)와, 업스트림 PHY부(12)를 구비한다. MAC부(20)는, 다운스트림데이터 처리부(21)와, 업스트림데이터 처리부(22)와, 암호화 복호화장치(23, 24)와, CPU(26)와, 기억부(28)를 구비한다. 암호화 복호화장치(23, 24)는 모두 도 1의 암호화 복호화장치와 마찬가지의 것이다. 또 암호화 복호화장치(23, 24)로서 도 5의 암호화 복호화장치를 이용해도 된다.
수신 시에 튜너(52)는, 송신에 사용되는 채널 중에서 1 개를 선택하고, 중앙장치(80)에서 송신된 신호를 낮은 주파수 신호로 변환시켜, 다운스트림 PHY부(11)로 출력한다. 다운스트림 PHY부(11)는 수취한 신호를 기저대역신호로 변환하며, 또 데이터에의 변환, 및 오류 정정을 실시하여, 다운스트림데이터 처리부(21)로 출력한다.
다운스트림데이터 처리부(21)는, 수취한 데이터로부터, 그 헤더 정보에 따라 다운스트림 데이터(SD), 키 데이터(KD), 초기벡터 데이터(IV) 등을 분리하여, 암호화 복호화장치(23)로 출력한다. 암호화 복호화장치(23)는, 도 1을 참조하여 설명한 바와 같이, 암호에 대한 복호화를 실시하고, 얻어진 처리필데이터(DC)를 버스(29)로 출력한다. CPU(26)는 버스(29)를 경유하여, 처리필데이터(DC)를 기억부(28)에 저장시킨다.
CPU(26)는, 기억부(28)로부터 데이터를 읽어내어, 화상처리부(32)에 부여한다. 화상처리부(32)는, 수취한 데이터에 대하여 화상으로서 표시시키기 위해 필요한 처리를 하고, 얻어진 데이터를 인터페이스부(34)를 통해 표시기(도시 생략)로 출력하여 표시시킨다.
송신 시에 CPU(26)는, 기억부(28)로부터 데이터를 읽어내고, 버스(29)를 경유하여, 암호화 복호화장치(24)에 업스트림 데이터(SU)로서 부여한다. 암호화 복호화장치(24)는 도 1을 참조하여 설명한 바와 같이, 수취한 데이터에 대한 암호화를 실시하고, 얻어진 처리필데이터(DC)를 업스트림데이터 처리부(22)로 출력한다. 업스트림데이터 처리부(22)는, 수취한 데이터에 헤더를 부가하는 등의 처리를 하여, 업스트림 PHY부(12)로 출력한다. 업스트립 PHY부(12)는, 수취한 데이터를 전기신호로 변환하며, 다시 이를 송신에 이용되는 주파수로 변환하여 중앙장치(80)로 송신한다.
이와 같이 도 6의 송수신장치에 의하면, 복수 모드에서의 암호화, 또는 복수 모드에서의 복호화를, 각각 동일한 하드웨어에 의해 실시하므로, 회로규모의 삭감을 도모할 수 있다.
본 발명에 관한 암호화 복호화장치 및 방법은, 많은 기능을 저원가로 제공할 수 있으며, 예를 들어 송수신장치나, 데이터의 기록재생장치 등에서의 암호화 및 암호의 복호화에 유용하다.

Claims (20)

  1. 암호화데이터 또는 암호화해야 할 데이터를 수취하고, 그 데이터 구조를 해석하여, 암호화에 관한 정보를 제어용 데이터로서 출력함과 동시에, 상기 암호화데이터 또는 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과,
    상기 제어용 데이터에 따라, 암호화 또는 복호화 중 어느 것을 실시해야 하는가를 나타내는 암호화/복호화 절환신호와, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터 제어블록과,
    상기 처리블록 입력데이터에 대하여 상기 암호화/복호화 절환신호에 따라 암호화 또는 복호화를 실시하고, 얻어진 암호화 결과 또는 복호화 결과를 출력하는 공용처리블록을 구비하며,
    상기 공용처리블록은,
    입력된 키 데이터를 이용한 ECB(electronic code book)처리를 실시함으로써, CBC(cipher block chaining)모드 및 CFB(cipher feedback)모드의 어느 쪽에서도 암호화 및 복호화를 실시할 수 있도록 구성되며, 상기 모드선택신호에 표시된 모드에서 암호화 또는 복호화를 실시하는 것인 암호화 복호화장치.
  2. 제 1 항에 있어서,
    상기 데이터구조 해석블록은,
    상기 암호화데이터의 헤더를 해석하여, 상기 헤더 정보에 기초하여 상기 암호화데이터로부터 MAC(media access control)구조를 뽑아내여, 상기 MAC구조 중에 확장 헤더가 존재하며, 또 상기 확장 헤더에 당해 암호화데이터가 암호화됐음이 표시된 경우에는, 상기 확장 헤더에 포함되는 암호화에 관한 정보를 상기 제어용 데이터로서 출력함과 동시에, 상기 MAC구조 데이터에서 상기 확장 헤더를 제거하여 상기 처리블록 입력데이터로서 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  3. 제 1 항에 있어서,
    상기 데이터 제어블록은,
    상기 제어용 데이터에 따라, 상기 처리블록 입력데이터를 CBC모드, 및 CFB모드 중 어느 모드에서 처리해야 하는가, 및 어느 쪽 길이의 키 데이터를 이용하는 모드에서 처리해야 하는가를 표시하는 신호를 상기 모드선택신호로서 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  4. 제 1 항에 있어서,
    상기 공용처리블록은,
    상기 ECB처리를 실시하고, 얻어진 결과를 암호처리데이터로서 출력하는 ECB처리기와,
    상기 암호화/복호화 절환신호 및 상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 및 상기 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 1 선택기와,
    상기 처리블록 입력데이터, 및 상기 암호처리데이터를 입력으로 하며, 각각을 지연시켜 출력하는 지연기와,
    상기 암호화/복호화 절환신호 및 상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 상기 초기벡터 데이터, 및 상기 지연기가 출력하는 지연된 처리블록 입력데이터 및 지연된 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 2 선택기와,
    상기 제 1 선택기의 출력과 상기 제 2 선택기 출력과의 배타적논리합을 구하여 출력하는 배타적논리합 연산기와,
    상기 암호화/복호화 절환신호 및 상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 상기 배타적논리합 연산기의 출력, 상기 지연된 처리블록 입력데이터, 및 상기 지연된 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 3 선택기와,
    상기 키 데이터를, 상기 모드선택신호에 대응하여, 필요에 따라 그 일부를 마스킹하여, 모드에 적합한 키 데이터로서 출력하는 비트마스크기와,
    상기 암호화/복호화 절환신호 및 상기 모드선택신호에 따라, 상기 암호처리데이터 및 상기 배타적논리합 연산기의 출력 중 어느 하나를 선택하여, 상기 암호화 결과 또는 상기 복호화 결과로서 출력하는 제 4 선택기를 구비하며,
    상기 ECB처리기는,
    상기 암호화/복호화 절환신호 및 상기 모드선택신호에 따라, 상기 ECB처리로서 암호화처리 및 복호화처리 중 어느 하나를 상기 모드에 적합한 키 데이터를 이용하여 상기 제 3 선택기의 출력에 대하여 실시하고, 얻어진 결과를 상기 암호처리데이터로서 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  5. 제 4 항에 있어서,
    상기 비트마스크기는,
    상기 모드선택신호가 56 비트 키모드임을 나타내는 경우에는, 상기 키 데이터를 그대로, 그 밖의 경우에는, 필요 없는 비트를 마스킹하여, 상기 모드에 적합한 키 데이터로서 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  6. 제 4 항에 있어서,
    상기 제 1 선택기는,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 상기 처리블록 입력데이터를 선택하여 출력하며, 그 밖의 경우에는, 상기 암호처리데이터를 선택하여 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  7. 제 4 항에 있어서,
    상기 제 2 선택기는,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 처리시작 시에 상기 초기벡터 데이터를, 그 후는 상기 지연된 암호처리데이터를 선택하여 출력하며,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CFB모드임을 나타내는 경우에는, 처리시작 시에 상기 초기벡터 데이터를, 그 후는 상기 처리블록 입력데이터를 선택하여 출력하고,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 처리시작 시에 상기 초기벡터 데이터를, 그 후는 상기 지연된 처리블록 입력데이터를 선택하여 출력하며,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 표시하는 경우이며, 또 상기 모드선택신호가 CFB모드임을 표시하는 경우에는, 처리시작 시에 상기 초기벡터 데이터를, 그 후는 상기 처리블록 입력데이터를 선택하여 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  8. 제 4 항에 있어서,
    상기 제 3 선택기는,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 상기 배타적논리합 연산기의 출력을 선택하여 출력하며,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CFB모드임을 나타내는 경우에는, 처리시작 시에 상기 처리블록 입력데이터를, 그 후는 상기 지연된 암호처리데이터를 선택하여 출력하고,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 상기 처리블록 입력데이터를 선택하여 출력하며,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CFB모드임을 나타내는 경우에는, 처리시작 시에 상기 처리블록 입력데이터를, 그 후는 상기 지연된 처리블록 입력데이터를 선택하여 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  9. 제 4 항에 있어서,
    상기 제 4 선택기는,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 상기 암호처리데이터를 선택하여 출력하며,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우이며, 또 상기 모드선택신호가 CFB모드임을 나타내는 경우에는, 상기 배타적논리합 연산기의 출력을 선택하여 출력하고,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우에는, 상기 배타적논리합 연산기의 출력을 선택하여 출력하는 것임을 특징으로 하는 암호화 복호화장치.
  10. 제 4 항에 있어서,
    상기 ECB처리기는,
    상기 암호화/복호화 절환신호가 암호화를 해야 함을 나타내는 경우에는, 암호화처리를 실행하며,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우이고, 또 상기 모드선택신호가 CBC모드임을 나타내는 경우에는, 복호화처리를 실행하며,
    상기 암호화/복호화 절환신호가 복호화를 해야 함을 나타내는 경우이고, 또 상기 모드선택신호가 CFB모드임을 나타내는 경우에는, 암호화처리를 실행하는 것임을 특징으로 하는 암호화 복호화장치.
  11. 제 1 항에 있어서,
    암호화데이터 또는 상기 공용처리블록의 출력을 선택하여, 상기 데이터구조 해석블록에 출력하는 제 1 입력선택기와,
    암호화해야 할 데이터 또는 상기 공용처리블록의 출력을 선택하여, 상기 데이터구조 해석블록에 출력하는 제 2 입력선택기와,
    소정의 값 또는 상기 공용처리블록의 출력을 선택하여 출력하는 출력선택기를 추가로 구비하며,
    상기 암호화데이터 또는 상기 암호화해야 할 데이터에 대해 상기 공용처리블록에서의 처리가 소정 횟수 실시되면, 상기 출력선택기가 상기 공용처리블록의 출력을 선택하도록 구성되는 것을 특징으로 하는 암호하 복호화장치.
  12. 제 11 항에 있어서,
    상기 소정의 횟수는 3회인 것을 특징으로 하는 암호화 복호화장치.
  13. 암호화해야 할 데이터를 수취하고, 그 데이터구조를 해석하여, 제어용데이터를 구해 출력함과 동시에, 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과,
    상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과,
    상기 처리블록 입력데이터에 대해 암호화를 실시하고, 얻어진 암호화결과를 출력하는 공용처리블록을 구비하며,
    상기 공용처리블록은,
    입력된 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드 중 어느 쪽에서도 암호화를 실시할 수 있도록 구성되고, 상기 모드선택신호에 표시된 모드에서 암호화를 실시하는 것인 암호화장치.
  14. 제 13 항에 있어서,
    상기 공용처리블록은,
    상기 ECB처리를 실시하고, 얻어진 결과를 암호처리데이터로서 출력하는 ECB처리기와,
    상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 및 상기 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 1 선택기와,
    상기 암호처리데이터를 입력으로 하여, 이를 지연시켜 출력하는 지연기와,
    상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 상기 초기벡터 데이터, 및 상기 지연기가 출력하는 지연된 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 2 선택기와,
    상기 제 1 선택기의 출력과 상기 제 2 선택기 출력과의 배타적논리합을 구해 출력하는 배타적논리합 연산기와,
    상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 상기 배타적논리합 연산기의 출력, 및 상기 지연된 암호처리데이터 중 어느 하나를 선택하여 출력하는 제 3 선택기와,
    상기 키 데이터를, 상기 모드선택신호에 대응하고, 필요에 따라 그 일부를 마스킹하여, 모드에 적합한 키 데이터로서 출력하는 비트마스크기와,
    상기 모드선택신호에 따라, 상기 암호처리데이터 및 상기 배타적논리합 연산기의 출력 중 어느 하나를 선택하여, 상기 암호화 결과로서 출력하는 제 4 선택기를 구비하며,
    상기 ECB처리기는,
    상기 ECB처리로서 암호화처리를, 상기 모드에 적합한 키 데이터를 이용하여 상기 제 3 선택기의 출력에 대하여 실시하고, 얻어진 결과를 상기 암호처리데이터로서 출력하는 것임을 특징으로 하는 암호화장치.
  15. 암호화데이터를 수취하고, 그 데이터구조를 해석하여, 암호화에 관한 정보를 제어용데이터로서 출력함과 동시에, 상기 암호화데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과,
    상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드로 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과,
    상기 처리블록 입력데이터에 대해 복호화를 실시하고, 얻어진 복호화결과를 출력하는 공용처리블록을 구비하며,
    상기 공용처리블록은,
    입력된 키 데이터를 이용한 ECB처리를 실행함으로써, CBC모드 및 CFB모드 중 어느 쪽에서도 복호화를 실시할 수 있도록 구성되고, 상기 모드선택신호에 표시된 모드에서 복호화를 실시하는 것인 복호화장치.
  16. 제 15 항에 있어서,
    상기 공용처리블록은,
    상기 ECB처리를 실시하고, 얻어진 결과를 암호처리데이터로서 출력하는 ECB처리기와,
    상기 처리블록 입력데이터를 입력으로 하며, 이를 지연시켜 출력하는 지연기와,
    상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 상기 초기벡터 데이터, 및 상기 지연기가 출력하는 지연된 처리블록 입력데이터 중 어느 하나를 선택하여 출력하는 제 2 선택기와,
    상기 암호처리데이터와 상기 제 2 선택기 출력과의 배타적논리합을 구해, 상기 복호화 결과로서 출력하는 배타적논리합 연산기와,
    상기 모드선택신호에 따라, 상기 처리블록 입력데이터, 및 상기 지연된 처리블록 입력데이터 중 어느 하나를 선택하여 출력하는 제 3 선택기와,
    상기 키 데이터를, 상기 모드선택신호에 대응하여, 필요에 따라 그 일부를 마스킹하고, 모드에 적합한 키 데이터로서 출력하는 비트마스크기를 구비하며,
    상기 ECB처리기는,
    상기 모드선택신호에 따라, 상기 ECB처리로서, 암호화처리 및 복호화처리 중 어느 하나를 상기 모드에 적합한 키 데이터를 이용하여 상기 제 3 선택기의 출력에 대하여 실시하고, 얻어진 결과를 상기 암호처리데이터로서 출력하는 것임을 특징으로 하는 복호화장치.
  17. 수신한 신호를 데이터로 변환하여 출력하는 다운스트림 PHY부와,
    상기 데이터로부터 다운스트림 데이터 및 키 데이터를 분리하여 출력하는 다운스트림 데이터처리부와,
    상기 키 데이터를 이용하여 상기 다운스트림 데이터를 복호화하여 출력하는 제 1 암호화 복호화장치와,
    상기 복호화된 다운스트림 데이터를 저장하는 기억부와,
    상기 기억부로부터 읽어낸 업스트림 데이터를 암호화하여 출력하는 제 2 암호화 복호화장치와,
    상기 암호화된 업스트림 데이터에, 암호화에 이용된 키 데이터를 부가시켜 출력하는 업스트림 데이터 처리부와,
    상기 업스트림 데이터 처리부가 출력하는 데이터를 신호로 변환하여 송신하는 업스트림 PHY부를 구비하며,
    상기 제 1 및 제 2 암호화 복호화장치는, 모두,
    암호화데이터를 포함하는 상기 다운스트림 데이터 또는 암호화해야할 데이터를 포함하는 상기 업스트림 데이터를 수취하고, 그 데이터구조를 해석하여, 암호화에 관한 정보를 제어용 데이터로서 출력함과 동시에, 상기 암호화데이터 또는 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 출력하는 데이터구조 해석블록과,
    상기 제어용 데이터에 따라, 암호화 또는 복호화 중 어느 것을 실시해야 하는가를 나타내는 암호화/복호화 절환신호와, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택신호를 출력하는 데이터제어블록과,
    상기 처리블록 입력데이터에 대하여 상기 암호화/복호화 절환신호에 따라 암호화 또는 복호화를 실시하고, 얻어진 암호화 결과 또는 복호화 결과를 출력하는 공용처리블록을 구비하는 것으로,
    상기 공용처리블록은,
    입력된 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드 중 어느 쪽에서도 암호화 및 복호화를 실시할 수 있도록 구성되며, 상기 모드선택신호에 표시된 모드에서 암호화 또는 복호화를 실시하는 것임인 송수신장치.
  18. 암호화데이터 또는 암호화해야 할 데이터의 데이터구조를 해석하여, 암호화에 관한 정보를 제어용데이터로서 구함과 동시에, 상기 암호화데이터 또는 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 구하는 데이터구조 해석단계와,
    상기 제어용데이터에 따라, 암호화 또는 복호화 중 어느 것을 실시해야 하는가를 나타내는 암호화/복호화 절환데이터와, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택 데이터를 구하는 데이터제어단계와,
    상기 처리블록 입력데이터에 대해 상기 암호화/복호화 절환데이터에 따라 암호화 또는 복호화를 실시하고, 암호화 결과 또는 복호화 결과를 구하는 공용처리단계를 구비하며,
    상기 공용처리단계는,
    키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드의 어느 쪽에서도 암호화 및 복호화를 실시하는 것이고, 상기 모드선택 데이터에 표시된 모드에서 암호화 또는 복호화를 실시하는 것인 암호화 복호화방법.
  19. 암호화해야 할 데이터의 데이터구조를 해석하여, 제어용데이터를 구함과 동시에, 상기 암호화해야 할 데이터를 처리블록 입력데이터로서 구하는 데이터구조 해석단계와,
    상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택 데이터를 구하는 데이터제어단계와,
    상기 처리블록 입력데이터에 대해 암호화를 실시하고, 암호화 결과를 구하는 공용처리단계를 구비하며,
    상기 공용처리단계는,
    키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드의 어느 쪽에서도 암호화를 실시할 수 있는 것이고, 상기 모드선택 데이터에 표시된 모드에서 암호화를 실시하는 것인 암호화방법.
  20. 암호화데이터의 데이터구조를 해석하여, 암호화에 관한 정보를 제어용데이터로서 구함과 동시에, 상기 암호화데이터를 처리블록 입력데이터로서 구하는 데이터구조 해석단계와,
    상기 제어용데이터에 따라, 상기 처리블록 입력데이터를 어느 모드에서 처리해야 하는가를 나타내는 모드선택 데이터를 구하고 출력하는 데이터제어단계와,
    상기 처리블록 입력데이터에 대해 복호화를 실시하고, 복호화 결과를 구하는 공용처리단계를 구비하며,
    상기 공용처리단계는, 키 데이터를 이용한 ECB처리를 실시함으로써, CBC모드 및 CFB모드의 어느 쪽에서도 복호화를 실시할 수 있는 것이며, 상기 모드선택데이터에 표시된 모드에서 복호화를 실시하는 것인 복호화방법.
KR1020057001976A 2002-08-08 2003-08-08 암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치 KR20050032588A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002231284 2002-08-08
JPJP-P-2002-00231284 2002-08-08

Publications (1)

Publication Number Publication Date
KR20050032588A true KR20050032588A (ko) 2005-04-07

Family

ID=31711739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057001976A KR20050032588A (ko) 2002-08-08 2003-08-08 암호화 복호화장치 및 방법, 암호화장치 및 방법,복호화장치 및 방법, 그리고 송수신장치

Country Status (6)

Country Link
US (1) US7532726B2 (ko)
EP (1) EP1531578A1 (ko)
JP (1) JP4235174B2 (ko)
KR (1) KR20050032588A (ko)
CN (1) CN100521599C (ko)
WO (1) WO2004015916A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100749414B1 (ko) * 2005-12-10 2007-08-14 한국전자통신연구원 무선 인터넷 시스템의 암호화 장치 및 그 방법과, 복호화장치 및 그 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4199477B2 (ja) * 2002-04-17 2008-12-17 パナソニック株式会社 デジタル双方向通信制御装置およびその方法
US20100195538A1 (en) * 2009-02-04 2010-08-05 Merkey Jeffrey V Method and apparatus for network packet capture distributed storage system
CA2619141C (en) * 2004-12-23 2014-10-21 Solera Networks, Inc. Method and apparatus for network packet capture distributed storage system
WO2007069236A2 (en) * 2005-12-14 2007-06-21 Nds Limited Method and system for usage of block cipher encryption
CN101401141B (zh) * 2006-03-14 2011-12-07 日本电气株式会社 信息处理系统以及信息处理方法
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US8036377B1 (en) 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
US8538012B2 (en) 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
US20080263366A1 (en) * 2007-04-19 2008-10-23 Microsoft Corporation Self-verifying software to prevent reverse engineering and piracy
US8594322B2 (en) * 2007-07-10 2013-11-26 Stmicroelectronics S.R.L. Encoding/decoding apparatus
US8521732B2 (en) 2008-05-23 2013-08-27 Solera Networks, Inc. Presentation of an extracted artifact based on an indexing technique
US8625642B2 (en) 2008-05-23 2014-01-07 Solera Networks, Inc. Method and apparatus of network artifact indentification and extraction
JP5228803B2 (ja) * 2008-10-30 2013-07-03 富士通セミコンダクター株式会社 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路
IL199616A0 (en) * 2009-06-28 2010-05-17 Chaim Shen Orr Pattern-free encryption
CN101710964B (zh) * 2009-11-17 2012-09-05 深圳国微技术有限公司 Mpeg2传输流数据包的加密和解密方法
US8239733B2 (en) * 2009-11-27 2012-08-07 Skymedi Corporation Memory device with protection capability and method of accessing data therein
US8849991B2 (en) 2010-12-15 2014-09-30 Blue Coat Systems, Inc. System and method for hypertext transfer protocol layered reconstruction
JP5225414B2 (ja) * 2011-03-08 2013-07-03 株式会社東芝 暗号演算装置
US8666985B2 (en) 2011-03-16 2014-03-04 Solera Networks, Inc. Hardware accelerated application-based pattern matching for real time classification and recording of network traffic
CN103580851A (zh) * 2013-11-13 2014-02-12 福建省视通光电网络有限公司 信息加密及解密方法
CN109804596B (zh) * 2016-12-09 2023-05-09 密码研究公司 具有加掩码的输入的可编程块密码器
CN118523902A (zh) * 2024-07-22 2024-08-20 之江实验室 一种基于软件定义的多种加解密模式切换方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791669A (en) 1985-11-30 1988-12-13 Nec Corporation Encryption/decryption system
US5070528A (en) * 1990-06-29 1991-12-03 Digital Equipment Corporation Generic encryption technique for communication networks
KR100345969B1 (ko) * 1993-08-10 2002-10-25 소니 가부시끼 가이샤 확산부호발생방법및장치
JP3547474B2 (ja) * 1994-03-22 2004-07-28 富士通株式会社 暗号演算回路
JPH09212457A (ja) 1996-01-30 1997-08-15 Mitsubishi Electric Corp デジタル双方向通信端末における暗号化・復号化装置
US5835599A (en) 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
JP4190599B2 (ja) 1996-11-27 2008-12-03 ソニー株式会社 情報伝送装置及び情報伝送方法並びに情報受信装置及び情報受信方法
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
JP2001177518A (ja) * 1999-12-17 2001-06-29 Nec Corp 暗号化方法、復号化方法及び装置
JP2001177514A (ja) 1999-12-17 2001-06-29 Ntt Docomo Inc 通信方法および通信装置
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
JP2002297030A (ja) * 2001-03-29 2002-10-09 Toshiba Corp 暗号処理装置及び暗号処理方法並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100749414B1 (ko) * 2005-12-10 2007-08-14 한국전자통신연구원 무선 인터넷 시스템의 암호화 장치 및 그 방법과, 복호화장치 및 그 방법

Also Published As

Publication number Publication date
US7532726B2 (en) 2009-05-12
CN100521599C (zh) 2009-07-29
EP1531578A1 (en) 2005-05-18
JPWO2004015916A1 (ja) 2005-12-02
WO2004015916A1 (ja) 2004-02-19
JP4235174B2 (ja) 2009-03-11
CN1675877A (zh) 2005-09-28
US20050286720A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4235174B2 (ja) 暗号化復号化装置、暗号化装置、復号化装置、及び送受信装置
US8024580B2 (en) Transmitting apparatus, receiving apparatus, and data transmitting system
US6504930B2 (en) Encryption and decryption method and apparatus using a work key which is generated by executing a decryption algorithm
JPH1075240A (ja) データ送信を保護する方法およびデータを暗号化または解読化する装置
US20010050989A1 (en) Systems and methods for implementing encryption algorithms
EP2449719B1 (en) Pattern-free encryption
US7035290B1 (en) Method and system for temporary interruption of video data transmission
KR20040040381A (ko) 통신 장치 및 통신 방법
KR100458339B1 (ko) 해독화방법및전자기기
JP2005503714A (ja) 新しい暗号化キーのためのフィンガープリント、制御信号
KR100740739B1 (ko) 해역 정보 전송 방법 및 시스템
JPH1032567A (ja) 秘匿化装置、秘匿解除装置およびこれらを用いたデータ伝送システム
Aly et al. A light-weight encrypting for real time video transmission
Huang et al. Real-time mode hopping of block cipher algorithms for mobile streaming
JP4673972B2 (ja) 移動通信システム及び通信装置
JP2009213083A (ja) 画像圧縮方法及び画像圧縮装置
JP2007181017A (ja) データの配信・受信システムおよびデータの配信・受信方法
KR20060003328A (ko) 향상된 cfm 모드 시스템
JP2002247542A (ja) 映像秘匿装置
JP2009044677A (ja) 機密情報処理装置、機密情報処理機器、及び機密情報処理方法
KR100640909B1 (ko) 정보 암호화, 복호화 장치 및 그 방법
KR20040045517A (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
JPH09233065A (ja) 暗号化装置及び暗号化方法
CN114143022A (zh) 数据加密方法、数据传输方法和数据解密方法及相关装置
KR20050060301A (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리방법, 이에 적합한 f함수 처리기, 그리고 보안 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application