KR100828272B1 - 암호 처리 회로 - Google Patents

암호 처리 회로 Download PDF

Info

Publication number
KR100828272B1
KR100828272B1 KR1020060010144A KR20060010144A KR100828272B1 KR 100828272 B1 KR100828272 B1 KR 100828272B1 KR 1020060010144 A KR1020060010144 A KR 1020060010144A KR 20060010144 A KR20060010144 A KR 20060010144A KR 100828272 B1 KR100828272 B1 KR 100828272B1
Authority
KR
South Korea
Prior art keywords
data
input
bit
transpose
corresponding rule
Prior art date
Application number
KR1020060010144A
Other languages
English (en)
Other versions
KR20060089155A (ko
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
Priority claimed from JP2005028116A external-priority patent/JP4326482B2/ja
Priority claimed from JP2005028115A external-priority patent/JP2006215280A/ja
Application filed by 산요덴키가부시키가이샤 filed Critical 산요덴키가부시키가이샤
Publication of KR20060089155A publication Critical patent/KR20060089155A/ko
Application granted granted Critical
Publication of KR100828272B1 publication Critical patent/KR100828272B1/ko

Links

Images

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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

공통 키 블록 암호 방식에서의 암호화 및 복호의 처리를 저소비 전력으로, 또한 고속으로 행한다. 복수 비트의 입력 데이터를 비트마다의 대응 규칙에 기초하여 재배열해서 출력하는 공통 키 블록 암호 방식의 전치 처리를 행하는 암호 처리 회로로서, 상기 입력 데이터를 수신하고, 수신한 상기 복수 비트의 입력 데이터를 병렬 출력하는 출력 포트를 갖는 데이터 입력부와, 복수 비트의 데이터가 병렬 입력되는 입력 포트를 갖고, 상기 입력 포트에 입력된 상기 데이터를 출력하는 데이터 출력부와, 상기 출력 포트와 상기 입력 포트를, 상기 비트마다의 대응 규칙에 기초하여 접속하는 전치부를 구비한다.
플립플롭, 복호화, DES 방식, 전치 처리

Description

암호 처리 회로{CRYPTOGRAPHIC PROCESSING CIRCUIT}
도 1은 본 발명의 암호 처리 회로를 이용하는 일 실시 형태인 자동차의 자물쇠의 시정·해정을 행하는 키리스 엔트리 시스템의 전체 구성을 도시하는 도면.
도 2는 데이터 처리 회로의 구성을 도시하는 도면.
도 3은 키리스 엔트리 시스템의 자기(子幾)와 친기(親幾)와의 사이에서의 통신 순서를 나타내는 플로우차트.
도 4는 DES의 암호화의 처리의 흐름을 설명하는 플로우차트.
도 5는 F 함수(F(R, K))의 처리의 흐름을 설명하는 도면.
도 6은 DES의 복호의 처리의 흐름을 설명하는 플로우차트.
도 7은 암호 처리 회로의 구성을 도시하는 도면.
도 8은 초기 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 9는 초기 전치부의 구성을 도시하는 도면.
도 10은 최종 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 11은 최종 전치부의 구성을 도시하는 도면.
도 12는 확대형 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 13은 확대형 전치부의 구성을 도시하는 도면.
도 14는 S-BOX부의 구성을 도시하는 도면.
도 15는 S-BOX(S1)에서의 대응 규칙을 도시하는 도면.
도 16은 S-BOX부의 S1의 구성을 도시하는 도면.
도 17은 P 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 18은 P 전치부의 구성을 도시하는 도면.
도 19는 PC1 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 20은 PC1 전치부의 구성을 도시하는 도면.
도 21은 로테이트 시프트에서의 로테이트 수를 도시하는 도면.
도 22는 로테이트 시프트부의 구성을 도시하는 도면.
도 23은 PC2 전치에서의 비트마다의 대응 규칙을 도시하는 도면.
도 24는 PC2 전치부의 구성을 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 키리스 엔트리 시스템
2 : 자기
3 : 친기
11 : 전지
12 : 조작 스위치
13, 21 : 데이터 처리 회로
14, 22 : 송수신 회로
23 : 구동 회로
24 : 액츄에이터
25 : 배터리
51A, 51B : CPU
52A, 52B : RAM
53A, 53B : EEPROM
54A, 54B : 난수 생성 회로
55A, 55B : 암호 처리 회로
56A, 56B : 입출력 포트
61 : 입력 레지스터
62 : 전치·환자(換字)부
63 : 출력 버퍼
64 : 선택 레지스터
65, 66 : 멀티플렉서
67 : 어드레스 디코더
71 : 초기 전치부
72 : 최종 전치부
73 : 확대형 전치부
74 : S-BOX부
75 : P 전치부
76 : PC1 전치부
77 : 로테이트 시프트부
78 : PC2 전치부
95 : 셀렉터
96 : 치환 회로
97 : 선택 회로
98 : 선택 레지스터
[특허 문헌 1] 일본 특개 2004-120307호 공보
본 발명은, 공통 키 블록 암호 방식에 이용되는 암호 처리 회로에 관한 것이다.
최근, 키리스 엔트리 시스템과 같이, 무선 등의 통신 수단에 의해 데이터를 송수신하는 것이 널리 행해지고 있다. 키리스 엔트리 시스템의 경우, 제3자에게 데이터가 부정하게 해독되지 않도록, 데이터는 암호화된 후에 송수신된다.
데이터의 암호화 방식은 다종다양하지만, DES(Data Encryption Standard)나 AES(Advanced Encryption Standard) 등의 표준 규격을 이용하는 것이 바람직하다. 이들 표준 규격의 암호화 방식의 경우, 부정하게 해독되는 리스크의 산출이 용이하여, 부정하게 해독된 경우의 보험료를 이 리스크에 기초하여 산정할 수 있기 때문이다. 반대로, 표준 규격 이외의 독자 규격 등의 암호화 방식을 이용하는 경우, 부정하게 해독되는 리스크의 산출이 어려워, 대체로, 보험료가 비싸지는 경우가 많다.
이와 같은 DES나 AES 등의 공통 키 블록 암호화 방식에서는, 데이터를 몇 개의 블록으로 분할하고, 그 블록마다 전치나 환자 등의 처리가 행해진다. 이 전치나 환자의 처리는, 입력 데이터와 출력 데이터와의 대응을 나타내는 대응표를 메모리에 기억해 두고, 공급된 입력 데이터에 대응하는 출력 데이터를 대응표에 기초하여 구함으로써 실현할 수 있다(예를 들면, 특허 문헌 1).
그러나, 전치나 환자를 소프트웨어로 실현하는 경우, 메모리에 기억된 대응표의 참조 등을 반복해서 행하기 때문에, 처리 부하가 높아, 소비 전력이 크다. 그 때문에, 키리스 엔트리 시스템에, 전치나 환자가 소프트웨어로 실현된 공통 키 블록 암호 방식을 채용하면, 이용자가 시정·해정의 조작을 행하는 자기의 전지 소모가 빨라진다는 문제가 있었다. 또한, 키리스 엔트리 시스템에서는, 시정이나 해정 등의 조작에 대한 리스폰스를 좋게 하기 위해, 암호화 및 복호의 처리 속도를 향상시킬 필요가 있다.
본 발명은 상기 과제를 감안하여 이루어진 것으로, 공통 키 블록 암호 방식에서의 암호화 및 복호의 처리를 저소비 전력으로, 또한 고속으로 행하는 암호 처리 회로를 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해, 본 발명의 암호 처리 회로는, 복수 비트의 입력 데이터를 비트마다의 대응 규칙에 기초하여 재배열해서 출력하는 공통 키 블록 암호 방식의 전치 처리를 행하는 암호 처리 회로로서, 상기 복수 비트의 입력 데이터를 수신하고, 수신한 상기 복수 비트의 입력 데이터를 병렬 출력하는 출력 포트를 갖는 데이터 입력부와, 복수 비트의 데이터가 병렬 입력되는 입력 포트를 갖고, 상기 입력 포트에 입력된 상기 복수 비트의 데이터를 출력하는 데이터 출력부와, 상기 출력 포트와 상기 입력 포트를, 상기 비트마다의 대응 규칙에 기초하여 접속하는 전치부를 구비하는 것으로 할 수 있다.
또한, 본 발명의 암호 처리 회로는, 복수 비트의 입력 데이터를 대응 규칙에 기초하여 변환해서 출력하는 공통 키 블록 암호 방식의 환자 처리를 행하는 암호 처리 회로로서, 상기 복수 비트의 입력 데이터를 수신하고, 수신한 상기 복수 비트의 입력 데이터를 병렬 출력하는 출력 포트를 갖는 데이터 입력부와, 상기 데이터 입력부로부터 병렬 출력되는 상기 복수 비트의 입력 데이터를 상기 대응 규칙에 기초하여 변환해서 출력하는 논리 회로인 환자부와, 상기 환자부로부터 출력되는 복수 비트의 데이터가 병렬 입력되는 입력 포트를 갖고, 상기 입력 포트에 입력된 상기 복수 비트의 데이터를 출력하는 데이터 출력부를 구비하는 것으로 할 수 있다.
또한, 본 발명의 암호 처리 회로는, 복수 비트의 입력 데이터를 변환하여 출력하는 공통 키 블록 암호 방식의 환자 처리를 행하는 암호 처리 회로로서, 상기 입력 데이터와, 상기 입력 데이터의 재배열을 지시하는 선택 데이터를 수신하고, 상기 입력 데이터를 상기 선택 데이터에 기초하여 재배열한 데이터를 소정의 대응 규칙에 기초하여 변환해서 출력하는 논리 회로인 것으로 할 수 있다.
<실시 형태>
==전체 구성==
도 1은 본 발명의 암호 처리 회로를 이용하는 일 실시 형태인 자동차의 자물쇠의 시정·해정을 행하는 키리스 엔트리 시스템(1)의 전체 구성을 도시하는 도면이다. 키리스 엔트리 시스템(1)은, 휴대형의 자기(2)와 자동차 등에 탑재되는 친기(3)를 포함하여 구성되어 있다. 자기(2)는, 예를 들면 자동차의 도어 록이나 스티어링 록의 키 구멍에 삽입하는 키의 핸들부 등에 설치되어 있다. 또한, 친기(3)는, 자동차 측에 설치되어 있다.
자기(2)는, 전지(11), 조작 스위치(12), 데이터 처리 회로(13), 및 송수신 회로(14)를 구비하고 있다. 전지(11)는, 자기(2)의 각 부의 동작에 필요한 전력을 공급하기 위한 것이다. 조작 스위치(12)는, 이용자로부터의 시정·해정의 지시를 접수하는 스위치이다. 데이터 처리 회로(13)는, 시정·해정 시에 필요한 인증용 데이터의 생성 등을 행한다. 송수신 회로(14)는, 데이터 처리 회로(13)로부터 출력되는 디지털 데이터를 아날로그 데이터로 변환하고, 이것을 증폭하여 전자파로서 송출하는 회로이다. 또한, 송수신 회로(14)는, 친기(3)로부터 송출된 전자파를 수신하고, 이것을 디지털 데이터로 변환하여 데이터 처리 회로(13)에 입력할 수도 있다. 또한, 전자파로서는, 전파나 적외선이 이용된다.
친기(3)는, 데이터 처리 회로(21), 송수신 회로(22), 및 구동 회로(23)를 구비하고 있다. 데이터 처리 회로(21)는, 자기(2)로부터 수신하는 인증용 데이터에 기초한 인증 처리 등을 행한다. 송수신 회로(22)는, 자기(2)로부터 송출된 전자파 를 수신하고, 이것을 디지털 데이터로 변환하여 데이터 처리 회로(22)에 입력하는 회로이다. 또한, 송수신 회로(22)는, 데이터 처리 회로(21)로부터 출력되는 디지털 데이터를 아날로그 데이터로 변환하고, 이것을 증폭하여 전자파로서 송출할 수도 있다. 구동 회로(23)는, 자동차의 자물쇠를 시정·해정하는 록 기구를 작동시키는 액츄에이터(24)에 구동 신호를 송신하는 회로이다. 또한, 친기(2)의 각 부(21~23)에는, 자동차의 배터리(25)로부터 전력이 공급되어 있다.
==데이터 처리 회로의 구성==
도 2는 데이터 처리 회로(13)의 구성을 도시하는 도면이다. 데이터 처리 회로(13)는, CPU(51A), RAM(Random Access Memory)(52A), EEPROM(Electrically Erasable Programmable Read-Only Memory)(53A), 난수 생성 회로(54A), 암호 처리 회로(55A), 및 입출력 포트(56A)를 구비하고 있다. 그리고, 각 부(51A~56A)는 버스(57A)에 의해 서로 통신 가능하도록 접속되어 있다.
CPU(51A)는, 데이터 처리 회로(13)의 전체를 제어하는 것이다. RAM(52A)에는, CPU(51A)가 사용하는 작업용 데이터 등이 기억된다. EEPROM(53A)은 재기입 가능한 불휘발성 메모리로서, 프로그램이나 보존용 데이터 등이 기억되어 있다. 난수 생성 회로(54A)는, 암호화의 처리에서 이용되는 의사 난수 또는 물리 난수를 생성하는 회로이다. 암호 처리 회로(55A)는, 공통 키 블록 암호 방식에서의 전치 또는 환자 처리를 행하는 회로이다. 입출력 포트(56A)는, 데이터 처리 회로(13)의 외부에 있는 조작 스위치(12)나 송수신 회로(14) 등과 데이터의 송수신을 행하기 위한 인터페이스이다.
또한, 본 실시 형태에서는, 공통 키 블록 암호 방식으로서 DES(Data Encryption Standard)를 이용하는 것으로 한다. 이와 같은 데이터 처리 회로(13)에서는, 프로그램의 실행이나 암호 처리 회로(55A)의 제어 등에 의해, DES의 암호화 또는 복호의 처리가 행해진다. 또한, 데이터 처리 회로(21)도 마찬가지의 구성이며, CPU(51B), RAM(52B), EEPROM(53B), 난수 생성 회로(54B), 암호 처리 회로(55B), 입출력 포트(56B), 및 각 부(51B~56B)를 상호 통신 가능하도록 접속하는 버스(57B)를 구비하고 있다.
==통신 순서==
도 3은 키리스 엔트리 시스템(1)의 자기(2)와 친기(3)와의 사이에서의 통신 순서를 나타내는 플로우차트이다. 먼저, 자기(2)의 조작 스위치(12)의 조작 등에 의해 송신 처리가 기동된다(S301). 자기(2)의 데이터 처리 회로(13)는, EEPROM(53A)에 기억되어 있는 차번(차체 번호)을 친기(3)에 송신한다(S302). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 차번이 송신되어 오는 것을 대기하고 있으며(S303), 자기(2)로부터 송신되어 오는 차번을 수신하면, 해당 차번을 EEPROM(53B)에 기억되어 있는 차번과 비교한다(S304).
차번이 일치하지 않은 경우(S304:NG), 친기(3)의 데이터 처리 회로(21)는, 별도의 자동차의 차번이 송신되어 왔다고 판단하고, 수신 대기 처리로 되돌아간다(S303). 차번이 일치하면(S304:OK), 데이터 처리 회로(21)는, 난수 생성 회로(54B)를 이용하여 64 비트의 일시 키 R0을 생성한다(S305). 그리고, 데이터 처리 회로(21)는, 이 일시 키 R0을, EEPROM(53B)에 기억되어 있는 공통 키 K를 이용하여 DES로 암호화하여 자기(2)에 송신한다(S306).
자기(2)의 데이터 처리 회로(13)는, 친기(3)로부터 송신되어 오는 암호화된 일시 키 R0을 수신하면, EEPROM(53A)에 기억되어 있는 공통 키 K를 이용하여 일시 키 R0을 복호한다(S307). 계속해서, 데이터 처리 회로(13)는, 난수 생성 회로(54A)를 이용하여 64 비트의 일시 키 R1을 생성한다(S308). 그리고, 데이터 처리 회로(13)는, 이 일시 키 R1을 친기(3)로부터 수신한 일시 키 R0을 이용하여 DES로 암호화하여 친기(3)에 송신한다(S309). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 송신되어 오는 암호화된 일시 키 R1을 수신하면, 일시 키 R0을 이용하여 일시 키 R1을 복호한다(S310).
그 후, 자기(2)의 데이터 처리 회로(13)는, 시정·해정 지시 등의 정보 데이터를, 일시 키 R1을 이용하여 DES로 암호화하여 친기(3)에 송신한다(S311). 친기(3)의 데이터 처리 회로(21)는, 자기(2)로부터 송신되어 오는 암호화된 정보 데이터를 수신하면, 일시 키 R1을 이용하여 정보 데이터를 복호한다(S312). 그리고, 데이터 처리 회로(21)는, 정보 데이터에 기초하여, 예를 들면 구동 회로(23)를 통하여 액츄에이터(24)에 시정·해정 지시 신호를 송신한다.
이와 같이, 키리스 엔트리 시스템(1)에서는, 자기(2) 및 친기(3)에서 난수 생성 회로(54A, 54B)를 이용하여 일시 키를 생성하고, DES에 의한 암호화 및 복호 처리를 반복해서 행함으로써, 시큐러티 강도를 높이고 있다.
==DES의 암호화·복호의 처리==
도 4는 DES의 암호화의 처리의 흐름을 설명하는 플로우차트이다. DES의 암 호화 처리는, 제1단부터 제16단까지의 처리로 구성되어 있다. 먼저, 암호화의 대상으로 되는 64 비트의 평문을 초기 전치(Initial Permutation)에 의해 재배열하고, 제1단의 입력 데이터로 되는 좌측의 32 비트(L0) 및 우측의 32 비트(R0)를 생성한다(S401). 그리고, 제2단의 입력 데이터로 되는 L1 및 R1은 다음 수학식 1, 2에 의해 구해진다.
Figure 112006007975772-pat00001
Figure 112006007975772-pat00002
여기서, K1은 64 비트의 공통 키로부터 생성된 키이다. 먼저, 64 비트의 공통 키를 축약형 전치(Permuted Choice 1:이후 "PC1 전치"라고 함)에 의해 56 비트로 변환하고, 좌측의 28 비트(C0) 및 우측의 28 비트(D0)를 생성한다(S402). 또한, C0 및 D0을 좌 로테이트 시프트하여, C1 및 D1을 생성한다(S403, S404). 그리고, C1 및 D1을 축약형 전치(Permuted Choice 2:이후 "PC2 전치"라고 함)에 의해 48 비트로 변환함으로써, K1이 얻어진다(S405). 또한, C1 및 D1을 더욱 좌 로테이트 시프트하고, PC2 전치를 행함으로써, 제2단 이후에서 이용되는 키 K2~K16을 생성할 수 있다.
이와 같이 하여 구해진 L1 및 R1이 제2단의 입력 데이터로 되어, 제16단까지 반복해서 처리가 실행된다. 즉, Ln 및 Rn은, 다음 수학식 3, 수학식 4에 의해 구해진다.
Figure 112006007975772-pat00003
Figure 112006007975772-pat00004
그리고, 제16단의 출력 데이터인 L16 및 R16에 대하여 최종 전치(Inverse Initial Permutation)를 행함으로써, 평문을 암호화한 암호문을 얻을 수 있다 (S406).
도 5는 F 함수(F(R, K))의 처리의 흐름을 설명하는 도면이다. 먼저, 32 비트의 데이터 R을 확대형 전치에 의해 48 비트로 변환하고, R'를 생성한다(S501). 다음으로, R'와 48 비트의 키 K를 비트마다 배타적 논리합함으로써 얻어지는 48 비트의 데이터를 6 비트씩으로 분할하고, S1~S8의 S-BOX에 입력한다. 그리고, 각 S-BOX로부터 출력되는 4 비트를 합쳐서 구성되는 32 비트의 데이터를 전치(이후 "P 전치"라고 함)에 의해 재배열한 데이터가 F 함수의 출력 데이터로 된다(S502).
도 6은 DES의 복호의 처리의 흐름을 나타내는 플로우차트이다. DES의 복호 처리는, 암호화 처리와 마찬가지로 제1단부터 제16까지의 처리로 구성되어 있다. 먼저, 복호의 대상으로 되는 64 비트의 암호문을 초기 전치에 의해 재배열하고, 제1단의 입력 데이터로 되는 좌측의 32 비트(R16) 및 우측의 32 비트(L16)를 생성한다 (S601). 그리고, 제2단의 입력 데이터로 되는 R15 및 L15는 다음 수학식 5 및 수학식 6에 의해 구해진다.
Figure 112006007975772-pat00005
Figure 112006007975772-pat00006
여기서, K16은, 64 비트의 공통 키로부터 생성된 키이다. 먼저, 64 비트의 공통 키를 PC1 전치에 의해 56 비트로 변환하고, 좌측의 28 비트(C16) 및 우측의 28 비트(D16)를 생성한다(S602). 그리고, C16 및 D16을 PC2 전치에 의해 48 비트로 변환함으로써, K16이 얻어진다(S603). 또한, C16 및 D16을 우 로테이트 시프트하고, PC2전치를 행함으로써, 제2단 이후에서 이용되는 키 K15~K1을 생성할 수 있다.
이와 같이 하여 구해진 R15 및 L15가 제2단의 입력 데이터로 되어, 제16단까지 반복해서 처리가 실행된다. 즉, Rn 및 Ln은, 다음 수학식 7 및 수학식 8에 의해 구해지는 것으로 된다.
Figure 112006007975772-pat00007
Figure 112006007975772-pat00008
그리고, 제16단의 출력 데이터인 R0 및 L0에 대하여 최종 전치를 행함으로써, 암호문을 복호한 평문을 얻을 수 있다(S604). 또한, 복호 처리에서의 Ln, Rn, Cn, Dn, Kn은, 암호화 처리에서의 Ln, Rn, Cn, Dn, Kn과 동일한 것이다. 또한, C0=C16, D0=D16이다.
==암호 처리 회로의 구성==
본 실시 형태에서는, 도 4~도 6에서 설명한 암호화 및 복호의 처리에서의 전치·환자 처리가 암호 처리 회로(55A, 55B)를 이용하여 실현되어 있다. 암호 처리 회로(55A) 및 암호 처리 회로(55B)는 마찬가지의 구성이기 때문에, 이후, 암호 처리 회로(55A)에 대해 설명한다. 도 7은 암호 처리 회로(55A)의 구성을 도시하는 도면이다. 암호 처리 회로(55A)는, 입력 레지스터(데이터 입력부)(61), 전치·환자부(62), 출력 버퍼(데이터 출력부)(63), 선택 레지스터(64), 멀티플렉서(65, 66), 및 어드레스 디코더(67)를 구비하고 있다.
입력 레지스터(61)는, 복수의 D형 플립플롭(이후 "D-FF"라고 함)을 이용하여 구성된 64 비트의 레지스터이며, D-FF의 입력 단자 D가 버스(57A)의 데이터 버스에 접속되고, D-FF의 출력 단자 Q(출력 포트)가 멀티플렉서(65)를 통하여 전치·환자부(62)에 접속되어 있다. 또한, 입력 레지스터(61)를 구성하는 D-FF의 클럭 입력 단자에는, 기입 신호(WRITE)가 입력된다. 또한, 예를 들면 데이터 버스가 8 비트인 경우에는, 입력 레지스터(61)는, 8 비트의 레지스터를 8개 이용한 구성으로 할 수 있다.
전치·환자부(62)는, 초기 전치부(71), 최종 전치부(72), 확대형 전치부(73), S-BOX부(74), P 전치부(75), PC1 전치부(76), 로테이트 시프트부(77), 및 PC2 전치부(78)의 8개의 모듈을 구비하고 있다. 전치·환자부(62)의 각 모듈(71~78)은, 입력 레지스터(61)로부터 입력되는 데이터에 대하여 전치 또는 환자 처리를 행하고, 멀티플렉서(66)를 통하여 출력 버퍼(63)에 출력한다.
또한, S-BOX부(74)가 본 발명의 변환부에 해당하고, 그 외의 각 부(71, 72, 73, 75, 76, 77, 78)가 본 발명의 전치부에 해당한다. 또한, 선택 레지스터(64), 멀티플렉서(65), 및 멀티플렉서(66)가 본 발명의 선택부에 해당한다.
출력 버퍼(63)는, 64 비트의 트라이 스테이트 버퍼이며, 그 64 비트의 입력 단자(입력 포트)에 멀티플렉서(66)를 통하여 전치·환자부(62)가 접속되어 있고, 출력 단자가 버스(57A)의 데이터 버스에 접속되어 있다. 또한, 예를 들면 데이터 버스가 8 비트인 경우에는, 출력 버퍼(63)는, 8 비트의 트라이 스테이트 버퍼를 8개 이용한 구성으로 할 수 있다.
선택 레지스터(64)는, 복수의 D-FF를 이용하여 구성된, 예를 들면 8 비트의 레지스터이며, D-FF의 입력 단자 D가 버스(57A)의 데이터 버스에 접속되고, D-FF의 출력 단자 Q가 멀티플렉서(65, 66)에 접속되어 있다. 또한, 선택 레지스터(64)를 구성하는 D-FF의 클럭 입력 단자에는, 기입 신호(WRITE)가 입력된다. 선택 레지스 터(64)에는, 전치·환자부(62) 중 어느 모듈을 선택할 것인지를 나타내는 선택 데이터가 기입된다. 멀티플렉서(65)는, 선택 레지스터(64)로부터 출력되는 선택 데이터에 기초하여, 입력 레지스터(61)로부터 출력되는 데이터를 해당의 모듈에 출력한다. 또한, 멀티플렉서(66)는, 선택 레지스터(64)로부터 출력되는 선택 데이터에 기초하여, 해당의 모듈로부터 출력되는 데이터를 출력 버퍼(63)에 출력한다.
어드레스 디코더(67)는, 버스(57A)의 어드레스 버스에 접속되어 있고, 어드레스 버스에서 지정된 어드레스에 해당하는 회로를 선택한다. 또한, 본 실시 형태에서는, 입력 레지스터(61)로의 기입 어드레스와, 출력 버퍼(63)로부터의 판독 어드레스는 동일한 것으로 한다.
데이터 처리 회로(13)에서, 암호 처리 회로(55A)를 이용하여 전치 또는 환자 처리를 행하는 흐름에 대해 설명한다. 먼저, CPU(51A)는, 어드레스 버스에 선택 레지스터(64)의 어드레스를 출력하고, 데이터 버스에 전치·환자부(62)의 원하는 모듈을 나타내는 선택 데이터를 출력하고, 기입 신호(WRITE)를 출력함으로써, 선택 레지스터에 선택 데이터를 기입한다. 계속해서, CPU(51A)는, 어드레스 버스에 입력 레지스터(61)의 어드레스를 출력하고, 데이터 버스에 전치 또는 환자 처리의 입력 데이터를 출력하고, 기입 신호(WRITE)를 출력함으로써, 입력 레지스터(61)에 해당 입력 데이터를 기입한다. 이에 따라, 입력 레지스터(61)에 입력된 데이터가 멀티플렉서(65)를 통하여 원하는 모듈에 입력되고, 전치 또는 환자 처리의 결과가 멀티플렉서(66)를 통하여 출력 버퍼(63)에 출력된다.
그 후, CPU(51A)는, 입력 레지스터(61)와 동일한 어드레스인 출력 버퍼(63) 의 어드레스를 어드레스 버스에 출력하고, 출력 버퍼(63)에 판독 신호(READ)를 입력한다. 이에 따라, 입력 데이터에 대하여 전치 또는 환자 처리를 행한 데이터가 출력 버퍼(63)로부터 데이터 버스에 출력된다. 이와 같이, CPU(51A)는, 입력 레지스터(61)에 데이터를 기입하고, 출력 버퍼(63)로부터 데이터를 판독하는 것만으로, 전치 또는 환자 처리를 행할 수 있다.
==전치·환자부의 구성==
다음으로, 전치·환자부(62)의 각 모듈(71~78)의 구성에 대해 설명한다.
(1) 초기 전치
도 8은 초기 전치에서의 비트마다의 대응 규칙(91)을 도시하는 도면이다. 이 대응 규칙(91)은, 예를 들면 초기 전치부(71)에 입력되는 64 비트의 입력 데이터의 58 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 50 비트째가 출력 데이터의 2 비트째로 되도록 하는, 64 비트의 입력 데이터와 64 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다.
도 9는 초기 전치부(71)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, 초기 전치부(71)의 입력측과 출력측이, 대응 규칙(91)에 기초하여 결선되어 있다. 예를 들면, 입력측의 58 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 50 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, 초기 전치부(71)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(91)에 기초하여 접속하고 있는 것으로 된다.
(2) 최종 전치
도 10은 최종 전치에서의 비트마다의 대응 규칙(92)을 도시하는 도면이다. 이 대응 규칙(92)은, 예를 들면 최종 전치부(72)에 입력되는 64 비트의 입력 데이터의 40 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 8 비트째가 출력 데이터의 2 비트째로 되도록 하는, 64 비트의 입력 데이터와 64 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다.
도 11은 최종 전치부(72)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, 최종 전치부(72)의 입력측과 출력측이, 대응 규칙(92)에 기초하여 결선되어 있다. 예를 들면, 입력측의 40 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 8 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, 최종 전치부(72)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(92)에 기초하여 접속하고 있는 것으로 된다.
(3) 확대형 전치
도 12는 확대형 전치에서의 비트마다의 대응 규칙(93)을 도시하는 도면이다. 이 대응 규칙(93)은, 예를 들면 확대형 전치부(73)에 입력되는 32 비트의 입력 데이터의 32 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 1 비트째가 출력 데이터의 2 비트째로 되도록 하는, 32 비트의 입력 데이터와 48 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다. 또한, 확대형 전치에서는, 32 비트의 입력 데이터를 48 비트의 출력 데이터로 확대되기 때문에, 입력 데이터 중 16 비트는, 출력 데이터의 2 비트로 출력된다. 예를 들면, 입력 데이터의 1 비트째는, 출력 데이터의 2 비트째 및 48 비트째의 2 비트로 출력된다.
도 13은 확대형 전치부(73)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, 확대형 전치부(73)의 입력측과 출력측이, 대응 규칙(93)에 기초하여 결선되어 있다. 예를 들면, 입력측의 32 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 1 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, 확대형 전치부(73)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(93)에 기초하여 접속하고 있는 것으로 된다.
(4) S-BOX
도 14는 S-BOX부(74)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, S-BOX부(74)는, S1~S8로 구성되어 있고, 48 비트의 입력 데이터의 선두로부터 6 비트마다 분할한 데이터가 S1~S8에 입력된다. 그리고, 예를 들면 S1에서는, 6 비트의 입력 데이터가 대응 규칙에 기초하여 4 비트로 변환되어 출력된다. 마찬가지로, S2~S8에서도, 6 비트의 입력 데이터가 각각의 대응 규칙에 기초하여 4 비트로 변환되어 출력된다.
도 15는 S-BOX(S1)의 대응 규칙(94)을 도시하는 도면이다. 이 대응 규칙(94)에서는, S1에 입력되는 6 비트의 입력 데이터의 1 비트째와 6 비트째(B1·B6)가 행으로 되고, 입력 데이터의 2 비트째로부터 5 비트째(B2~B5)가 열로 되고, 그 교차하는 개소에 있는 데이터가 출력 데이터로 된다. 예를 들면, 입력 데이터 "110000"이 S1에 입력된다고 한다. 이 경우, B1·B6은 "10"으로 되고, 3행째가 선택된다. 그리고, B2~B5는 "1000"으로 되고, 이것을 10진으로 나타낸 8열째가 선택 된다. 이에 따라, 3행째의 8열째에 있는 10진의 "15"를 2진으로 나타낸 "1111"이 출력된다. 마찬가지로, S2~S8에 대해서도 대응 규칙이 정해져 있다.
도 16은 S-BOX부(74)의 S1의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, S1은, 셀렉터(95), 치환 회로(96), 및 선택 회로(97)를 구비하고 있다. 또한, S1~S8 공통으로 이용되는 선택 레지스터(98)가 설치되어 있다. 또한, 셀렉터(95) 및 치환 회로(96)가 본 발명의 환자 회로에 해당한다.
셀렉터(95)에는, 선택 회로(97)를 통하여 B1 및 B6이 입력되고, 그 입력에 따라서, 대응 규칙(94)의 어느 행이 선택될 것인지를 나타내는 신호를 치환 회로(96)에 출력한다. 치환 회로(96)에는, B2~B5를 대응 규칙(94)의 각 행의 값으로 변환하는 논리 회로가 구성되어 있고, B2~B5를, 셀렉터(95)로부터의 신호에 기초하여 변환해서 출력한다.
선택 레지스터(98)는, 복수의 D-FF를 이용하여 구성된, 예를 들면 8 비트의 레지스터이며, D-FF의 입력 단자 D가 버스(57A)의 데이터 버스에 접속되고, D-FF의 출력 단자 Q가 선택 회로(97)에 접속되어 있다. 그리고, 선택 회로(97)는, 선택 레지스터(98)로부터 출력되는 선택 데이터에 따라서, 셀렉터(95)에 출력하는 B1과 B6을 재배열할 수 있다. 예를 들면, 선택 레지스터(98)로부터 선택 데이터 "0"이 출력되어 있는 경우, 선택 회로(97)는, 1 비트째(97a)로부터 B1을 출력하고, 2 비트째(97b)로부터 B6을 출력한다. 또한, 선택 레지스터(98)로부터 선택 데이터 "1"이 출력되어 있는 경우, 선택 회로(97)는, 1 비트째(97a)로부터 B6을 출력하고, 2 비트째(97b)로부터 B1을 출력한다.
즉, 상기한 입력 데이터 "110000"의 경우, 선택 레지스터(98)로부터 선택 데이터 "1"이 출력되어 있는 경우, 선택 회로(97)로부터 셀렉터(95)에 입력되는 데이터는 "01"로 되어 2행째가 선택되고, 2행째의 8열째에 있는 10진의 "10"을 2진으로 나타낸 "1010"이 출력된다. 이와 같이, 선택 레지스터(98)에 기입되는 선택 데이터를 변화시킴으로써, S1의 대응 규칙(94)을 변화시킬 수 있다.
또한, S2~S8에 대해서도, S1과 마찬가지로 구성되어 있다. 즉, S1~S8로 구성되는 S-BOX부(74)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q로부터 병렬 출력되는 입력 데이터를 S1~S8의 대응 규칙에 기초하여 변환해서 출력 버퍼(63)의 입력 단자에 출력하는 논리 회로라고 할 수 있다.
또한, 본 실시 형태에서는, 최상위와 최하위의 2 비트를 선택 회로(97)에서 재배열하여 셀렉터(95)에 입력하고, 나머지 4 비트를 치환 회로(96)에 입력하는 구성으로 했지만, S-BOX부(74)의 구성은 이것에 한정되지 않고, 입력되는 6 비트(B1~B6)를 선택 데이터에 기초하여 재배열한 데이터를, 대응 규칙에 기초하여 4 비트로 변환하는 논리 회로이면 된다.
(5) P 전치
도 17은 P 전치에서의 비트마다의 대응 규칙(101)을 도시하는 도면이다. 이 대응 규칙(101)은, 예를 들면 최종 전치부(75)에 입력되는 32 비트의 입력 데이터의 16 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 7 비트째가 출력 데이터의 2 비트째로 되도록 하는, 32 비트의 입력 데이터와 32 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다.
도 18은 P 전치부(75)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, P 전치부(75)의 입력측과 출력측이, 대응 규칙(101)에 기초하여 결선되어 있다. 예를 들면, 입력측의 16 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 7 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, P 전치부(75)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(101)에 기초하여 접속하고 있는 것으로 된다.
(6) PC1 전치
도 19는 PC1 전치에서의 비트마다의 대응 규칙(102)을 도시하는 도면이다. 이 대응 규칙(102)은, 예를 들면 PC1 전치부(76)에 입력되는 64 비트의 입력 데이터의 57 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 49 비트째가 출력 데이터의 2 비트째로 되도록 하는, 64 비트의 입력 데이터와 56 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다. 또한, PC1 전치에서는, 64 비트의 입력 데이터를 56 비트의 출력 데이터로 축약하기 때문에, 입력 데이터 중 8 비트는 출력 데이터에 출력되지 않는다.
도 20은 PC1 전치부(76)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, PC1 전치부(76)의 입력측과 출력측이, 대응 규칙(102)에 기초하여 결선되어 있다. 예를 들면, 입력측의 57 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 49 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, PC1 전치부(76)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(102)에 기초하여 접속하고 있는 것으로 된다.
(7) 로테이트 시프트
도 21은 로테이트 시프트에서의 입력 데이터와 출력 데이터의 대응 규칙(103)을 도시하는 도면이다. 즉, 대응 규칙(103)은, 28 비트의 C1 및 28 비트의 D1은, 28 비트의 C0 및 28 비트의 D0을 1 비트 좌 로테이트 시프트함으로써 얻어지고, C2 및 D2는, C1 및 D1을 1 비트 좌 로테이트 시프트함으로써 얻어지고, C3 및 D3은, C2 및 D2를 2 비트 좌 로테이트 시프트함으로써 얻어지는 것을 나타내고 있다. 이와 같이, 대응 규칙(103)에서는, C1~C16 및 D1~D16까지의 로테이트 수가 나타나 있다. 또한, 좌 로테이트 시프트의 처리는 입력 데이터의 각 비트와 출력 데이터의 각 비트가 1대1로 대응한 것이며, 다른 전치 처리와 마찬가지로 비트마다의 대응 규칙이라고 할 수 있다.
도 22는 로테이트 시프트부(77)의 구성을 도시하는 도면이다. 도면은, 로테이트 시프트부(77) 중, C0 및 D0으로부터 C1 및 D1을 생성하는 부분을 나타내는 것이며, 입력측의 C0 및 D0을 각각 1 비트 좌 로테이트 시프트하여 출력측에 C1 및 D1로서 출력되도록 결선되어 있다. 또한, C0 및 D0으로부터 C2~C16 및 D2~D16을 생성하는 부분에 대해서도, 마찬가지로 구성되어 있다. 즉, 로테이트 시프트부(77)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(103)에 기초하여 접속하고 있는 것으로 된다.
또한, C1~C16 및 D1~D16을 생성하는 로테이트 시프트부(77)를, 예를 들면 C1 및 D1을 생성하는 회로, C2 및 D2를 생성하는 회로와 같이 각각 따로따로 구성하는 것도 가능하지만, 이들을 통합하여 구성하는 것도 가능하다. 즉, 로테이트 시프트부(77)는, 입력 레지스터(61)로부터 출력되는 C0 및 D0으로부터, C1~C16 및 D1~D16을 한번에 생성하고, 출력 버퍼(63)에 출력하도록 하는 것도 가능하다. 이 경우, 출력 버퍼(63)는 56 비트(7 바이트)를 16배한 112 바이트 이상의 용량이 필요하다. 이와 같이, C1~C16 및 D1~D16을 한번에 생성하도록 함으로써, 키 K1~K16을 생성하기 위한 로테이트 시프트를 한 번의 처리로 행할 수 있기 때문에, 암호화 및 복호의 처리의 처리 속도를 향상시킬 수 있다.
(8) PC2 전치
도 23은 PC2 전치에서의 비트마다의 대응 규칙(104)을 도시하는 도면이다. 이 대응 규칙(104)은, 예를 들면 PC2 전치부(78)에 입력되는 56 비트의 입력 데이터의 14 비트째가 출력 데이터의 1 비트째로 되고, 입력 데이터의 17 비트째가 출력 데이터의 2 비트째로 되도록 하는, 56 비트의 입력 데이터와 48 비트의 출력 데이터의 비트마다의 대응을 나타내는 것이다. 또한, PC2 전치에서는, 56 비트의 입력 데이터를 48 비트의 출력 데이터로 축약하기 때문에, 입력 데이터 중 8 비트는 출력 데이터에 출력되지 않는다.
도 24는 PC2 전치부(78)의 구성을 도시하는 도면이다. 도면에 도시한 바와 같이, PC2 전치부(78)의 입력측과 출력측이, 대응 규칙(104)에 기초하여 결선되어 있다. 예를 들면, 입력측의 14 비트째가 출력측의 1 비트째로 되도록 결선되고, 입력측의 17 비트째가 출력측의 2 비트째로 되도록 결선되어 있다. 즉, PC2 전치부(78)는, 멀티플렉서(65, 66)를 통하여, 입력 레지스터(61)의 출력 단자 Q와 출력 버퍼(63)의 입력 단자를 대응 규칙(104)에 기초하여 접속하고 있는 것으로 된다.
이상, 본 발명의 일 실시 형태인 암호 처리 회로(55A, 55B)를 적용한 키리스 엔트리 시스템(1)에 대해 설명했다. 상기한 바와 같이, 암호 처리 회로(55A, 55B)는, 공통 키 블록 암호 방식인 DES의 전치 처리를 행하는 회로이며, 전치가 필요한 입력 데이터를 입력 레지스터(61)에 기입하는 것만으로, 전치·환자부(62)에 의해서 대응 규칙에 기초하여 접속된 출력 버퍼(63)로부터, 전치된 결과의 데이터를 얻을 수 있다. 즉, 해당 암호 처리 회로(55A, 55B)에서는, 소프트웨어에 의한 대응표의 참조 등의 처리를 행하지 않고 전치가 가능하여, 저소비 전력으로, 또한 고속으로 암호화 및 복호를 행할 수 있다.
또한, 암호 처리 회로(55A, 55B)에는, DES의 전치 처리를 행하는 초기 전치부(71), 최종 전치부(72), 확대형 전치부(73), P 전치부(75), PC1 전치부(76), 로테이트 시프트부(77), 및 PC2 전치부(78)가 설치되어 있고, 이들 각 부에 의해서 실행되는 전치 처리를 저소비 전력으로, 또한 고속으로 행할 수 있다.
또한, 암호 처리 회로(55A, 55B)에서는, 전치 처리를 행하는 각 모듈(71, 72, 73, 75, 76, 77, 78)에서 입력 레지스터(61)가 공유되어 있고, 선택 레지스터(64) 및 멀티플렉서(65)에 의해서, 원하는 모듈에 데이터가 입력된다. 이와 같이, 입력 레지스터(61)를 공유함으로써, 모듈마다 입력 레지스터를 설치하는 경우와 비 교하여 부품수를 삭감할 수 있어, 회로 전체의 소비 전력을 삭감할 수 있다.
또한, 암호 처리 회로(55A, 55B)는, DES의 환자 처리인 S-BOX의 처리를 행하는 S-BOX부(74)를 구비하고 있고, 환자가 필요한 입력 데이터를 입력 레지스터(61)에 기입하는 것만으로, 대응 규칙에 기초하여 환자된 결과의 데이터를 얻을 수 있다. 즉, 해당 암호 처리 회로(55A, 55B)에서는, 소프트웨어에 의한 대응표의 참조 등의 처리를 행하지 않고 환자가 가능하여, 저소비 전력으로, 또한 고속으로 암호화 및 복호를 행할 수 있다.
또한, 본 실시 형태의 암호 처리 회로(55A, 55B)에서는, 전치 또는 환자를 행하는 복수의 모듈(71~78)을 구비하고, 선택 레지스터(64) 및 멀티플렉서(65, 66)를 이용하여 사용하는 모듈(71~78)을 절환하는 것으로 했지만, 각 모듈(71~78)을 개별적으로 구성하는 것으로 해도 된다. 예를 들면, 초기 전치만을 행하는 암호 처리 회로를 구성하는 것도 가능하다.
또한, 암호 처리 회로(55A, 55B)에서는, 입력 레지스터(61)로부터의 출력 데이터를 전치·환자부(62)에 할당하는 회로로서, 멀티플렉서(65)가 이용되고 있다. 데이터를 할당하는 회로로서는, 멀티플렉서(65) 이외에도 트라이 스테이트 버퍼를 이용하는 것도 가능하다. 그러나, 일반적으로, 트라이 스테이트 버퍼보다도 멀티플렉서 쪽이, 출력의 지시를 받고나서 대상의 데이터가 출력되기까지의 시간이 짧다. 그 때문에, 암호 처리 회로(55A, 55B)에, 트라이 스테이트 버퍼보다도 동작이 빠른 멀티플렉서(65)를 이용함으로써, 암호화 및 복호의 처리 속도를 향상시킬 수 있다.
또한, 암호 처리 회로(55A, 55B)에서는, 복수의 D-FF로 구성된 입력 레지스터(61)에 의해 데이터 입력부가 실현되고, 트라이 스테이트 버퍼로 구성된 출력 버퍼(63)에 의해 데이터 출력부가 실현되고 있다. 그 이외에도, 데이터 입력부에는, 기입된 데이터를 기억해 두는 메모리 등을 이용하는 것도 가능하다. 그러나, 메모리를 이용하는 경우, 기입된 데이터를 전치·환자부(62)의 각 모듈에 판독하는 동작(클럭)이 필요하게 된다. 따라서, 본 실시 형태의 암호 처리 회로(55A, 55B)의 구성으로 함으로써, 입력 레지스터(61)에 데이터가 기입됨과 동시에, 전치 또는 환자된 결과의 데이터가 출력 버퍼(63)에 입력되고, 출력 버퍼(63)로부터 해당 데이터를 판독하는 것이 가능하게 된다. 즉, 전치·환자 처리에 필요한 클럭수가 삭감되어, 저소비 전력으로, 또한 고속으로 암호화 및 복호를 행할 수 있다.
또한, 암호 처리 회로(55A, 55B)에서는, 입력 레지스터(61)로의 기입 어드레스와 출력 버퍼(63)로부터의 판독 어드레스가 동일하다. 이에 따라, 전치 또는 환자를 행할 때에는, 임의의 어드레스에 데이터를 기입하고, 그 어드레스로부터 데이터를 판독하게 하면 되기 때문에, 프로그램에서 어드레스 변환 등의 처리가 불필요하며, 처리 단계를 삭감할 수 있다. 따라서, 암호화 및 복호의 처리에서의 소비 전력을 저감하고, 또한 처리 속도를 향상시킬 수 있다.
이와 같이, 소비 전력을 저감하고, 또한 처리 속도를 향상시킨 암호 처리 회로(55A, 55B)를 키리스 엔트리 시스템(1)에 적용함으로써, 자기(2)의 전지(11)의 소비나 친기(3)의 배터리(25)의 소비를 억제할 수 있다. 또한, 암호화 및 복호의 처리가 고속으로 행해짐으로써, 시정이나 해정 등의 조작에 대한 리스폰스를 향상 시킬 수 있다.
또한, 암호 처리 회로(55A, 55B)의 S-BOX부(74)는, S1~S8의 각 S-BOX에 입력되는 6 비트의 데이터를 선택 레지스터(98)로부터 출력되는 선택 데이터에 기초하여 재배열한 데이터를 소정의 대응 규칙에 기초하여 변환해서 출력한다. 즉, 해당 암호 처리 회로(55A, 55B)에서는, 소프트웨어에 의한 처리를 행하지 않고 환자가 가능하여, 저소비 전력으로, 또한 고속으로 암호화 및 복호를 행할 수 있다. 또한, 일본 특개 2004-178507호 공보에는, 공통 키 블록 암호 방식에서의 환자 처리 등을 하드웨어에 의해 실현하는 방법이 제안되어 있지만, 입력 데이터와 출력 데이터와의 대응 규칙이 고정화되는 구성으로 되어 있다. 그 때문에, 이와 같은 구성에서는, 차분 공격법이나 선형 공격법 등에 의해서 그 대응 규칙이 해석된 경우 등에, 하드웨어를 수정하지 않으면 환자 처리에서의 대응 규칙을 변경할 수 없어, 안전성이 충분하지 않았다. 한편, 암호 처리 회로(55A, 55B)의 S-BOX부(74)에서는, 선택 레지스터에 기억되어 있는 선택 데이터를 재기입함으로써, 하드웨어를 수정하지 않고 S-BOX에서의 입력 데이터와 출력 데이터의 대응 규칙을 변경 가능하게 하여, 안전성을 높일 수 있다. 특히, 본 실시 형태의 암호 처리 회로(55A, 55B)의 S-BOX부(74)에서는, 6 비트의 입력 데이터의 최상위 비트 및 최하위 비트를 선택 데이터에 기초하여 재배열함으로써, 예를 들면 S1에서의 대응 규칙(94)에서 선택되는 행을, 하드웨어를 수정하지 않고 변경 가능하게 함으로써, 안전성을 높이고 있다.
또한, 본 실시 형태에서는, 본 발명의 암호 처리 회로를 공통 키 블록 암호 방식의 하나인 DES에 적용한 예를 설명했지만, 공통 키 블록 암호 방식은 DES에 한정되지 않고, 트리플 DES나 AES(Advanced Encryption Standard) 등의 공통 키 블록 암호 방식에서도, 마찬가지의 구성에 의해 하드웨어를 수정하지 않고 환자 처리에서의 입력 데이터와 출력 데이터와의 대응 규칙을 변경 가능하게 하여, 안전성을 높일 수 있다.
또한, 본 실시 형태에서는, 암호 처리 회로(55A, 55B)의 적용예로서 키리스 엔트리 시스템(1)을 예로 들었지만, 키리스 엔트리 시스템(1)에 한정되지 않고, 예를 들면 IC 카드를 이용한 자동 개찰 시스템이나 입퇴실 관리 시스템 등, 데이터의 암호화가 필요한 여러 가지 시스템에 적용하는 것이 가능하다.
또한, 상기 실시 형태는 본 발명의 이해를 쉽게 하기 위한 것이며, 본 발명을 한정하여 해석하기 위한 것은 아니다. 본 발명은, 그 취지를 일탈하지 않고, 변경, 개량될 수 있음과 함께, 본 발명에는 그 등가물도 포함된다.
공통 키 블록 암호 방식의 환자 처리를 행하는 암호 처리 회로에 있어서, 하드웨어를 수정하지 않고 환자 처리에서의 입력 데이터와 출력 데이터와의 대응 규칙을 변경 가능하게 함으로써, 안전성을 높일 수 있다.

Claims (20)

  1. 복수 비트의 입력 데이터를 비트마다의 대응 규칙에 기초하여 재배열해서 출력하는 공통 키 블록 암호 방식의 전치 처리를 행하는 암호 처리 회로로서,
    상기 복수 비트의 입력 데이터를 수신하고, 수신한 상기 복수 비트의 입력 데이터를 병렬 출력하는 출력 포트를 갖는 데이터 입력부와,
    복수 비트의 데이터가 병렬 입력되는 입력 포트를 갖고, 상기 입력 포트에 입력된 상기 복수 비트의 데이터를 출력하는 데이터 출력부와,
    상기 출력 포트와 상기 입력 포트를, 상기 비트마다의 대응 규칙에 기초하여 접속하는 전치부와,
    상기 비트마다의 대응 규칙이 상이한 상기 전치부를 복수 구비하고, 상기 복수의 전치부 중 어느 전치부를 이용할 것인지를 나타내는 선택 데이터를 수신하고, 상기 데이터 입력부로부터 출력되는 상기 입력 데이터를 상기 선택 데이터에 의해 지시되는 상기 전치부에 입력하는 선택부를 구비하고,
    상기 선택부는 어드레스 버스에 의해 선택되고, 데이터를 재기입할 수 있는 선택 레지스터와, 상기 선택 레지스터의 설정에 따라 절환되는 멀티플렉서를 구비하는 것을 특징으로 하는 암호 처리 회로.
  2. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, 초기 전치(Initial Permutation)에서의 입력 데이터이며,
    상기 비트마다의 대응 규칙이, 상기 초기 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  3. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, 최종 전치(Inverse Initial Permutation)에서의 입력 데이터이며,
    상기 비트마다의 대응 규칙이, 상기 최종 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  4. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, F 함수의 확대형 전치에서의 입력 데이터이며,
    상기 비트마다의 대응 규칙이, 상기 F 함수의 확대형 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  5. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, F 함수의 S-BOX로부터 출력되는 데이터이며,
    상기 비트마다의 대응 규칙이, 상기 F 함수의 해당 입력 데이터가 입력되는 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  6. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, 축약형 전치(Permuted Choice 1)에 입력되는 공통 키이며,
    상기 비트마다의 대응 규칙이, 상기 축약형 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  7. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, 축약형 전치(Permuted Choice 2)에서의 입력 데이터이며,
    상기 비트마다의 대응 규칙이, 상기 축약형 전치에서의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  8. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 입력 데이터가, 공통 키를 축약형 전치(Permuted Choice 1)에 의해 전치해서 얻어진 데이터이며,
    상기 비트마다의 대응 규칙이, 해당 입력 데이터와, 축약형 전치(Permuted Choice 2)에 입력되는 데이터의 비트마다의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  9. 삭제
  10. 제1항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 복수의 전치부의 상기 비트마다의 대응 규칙이, 각각,
    초기 전치에서의 비트마다의 대응 규칙,
    최종 전치에서의 비트마다의 대응 규칙,
    F 함수의 확대형 전치에서의 비트마다의 대응 규칙,
    F 함수의 S-BOX로부터 출력되는 데이터가 입력되는 전치에서의 비트마다의 대응 규칙,
    축약형 전치(Permuted Choice 1)에서의 비트마다의 대응 규칙,
    축약형 전치(Permuted Choice 2)에서의 비트마다의 대응 규칙,
    상기 축약형 전치(Permuted Choice 1)로부터 출력되는 데이터와, 상기 축약형 전치(Permuted Choice 2)에 입력되는 데이터와의 비트마다의 대응 규칙 중 어느 하나인 것을 특징으로 하는 암호 처리 회로.
  11. 제1항에 있어서,
    상기 데이터 입력부로부터 병렬 출력되는 상기 복수 비트의 입력 데이터를 대응 규칙에 기초하여 변환해서 상기 데이터 출력부의 상기 입력 포트에 병렬 출력하는 논리 회로인 환자부를 더 구비하고,
    상기 선택 데이터는, 상기 복수의 전치부 또는 상기 환자부 중 어느 것을 이용할 것인지를 나타내는 데이터이며,
    상기 선택부는, 상기 데이터 입력부로부터 출력되는 상기 입력 데이터를 상기 선택 데이터에 의해 나타나는 상기 전치부 또는 상기 환자부에 입력하는 것을 특징으로 하는 암호 처리 회로.
  12. 제11항에 있어서,
    상기 공통 키 블록 암호 방식이 DES이고,
    상기 복수의 전치부의 상기 비트마다의 대응 규칙이, 각각,
    초기 전치에서의 비트마다의 대응 규칙,
    최종 전치에서의 비트마다의 대응 규칙,
    F 함수의 확대형 전치에서의 비트마다의 대응 규칙,
    F 함수의 S-BOX로부터 출력되는 데이터가 입력되는 전치에서의 비트마다의 대응 규칙,
    축약형 전치(Permuted Choice 1)에서의 비트마다의 대응 규칙,
    축약형 전치(Permuted Choice 2)에서의 비트마다의 대응 규칙,
    상기 축약형 전치(Permuted Choice 1)로부터 출력되는 데이터와, 상기 축약형 전치(Permuted Choice 2)에 입력되는 데이터의 비트마다의 대응 규칙 중 어느 하나이며,
    상기 환자부의 상기 대응 규칙이, 상기 S-BOX에 입력되는 데이터와 상기 S-BOX로부터 출력되는 데이터의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  13. 제1항에 있어서,
    상기 선택부가 멀티플렉서인 것을 특징으로 하는 암호 처리 회로.
  14. 삭제
  15. 삭제
  16. 제1항에 있어서,
    상기 데이터 입력부가 복수의 D형 플립플롭으로 구성되고, 상기 출력 포트가 해당 복수의 D형 플립플롭의 출력 단자이며,
    상기 데이터 출력부가 트라이 스테이트 버퍼인 것을 특징으로 하는 암호 처리 회로.
  17. 제1항에 있어서,
    상기 데이터 입력부로의 기입 어드레스와 상기 데이터 출력부로부터의 판독 어드레스가 동일한 것을 특징으로 하는 암호 처리 회로.
  18. 복수 비트의 입력 데이터를 변환하여 출력하는 공통 키 블록 암호 방식의 환자 처리를 행하는 암호 처리 회로로서,
    상기 입력 데이터와, 상기 입력 데이터의 재배열을 지시하는 선택 데이터를 수신하고, 상기 입력 데이터를 상기 선택 데이터에 기초하여 재배열한 데이터를 소정의 대응 규칙에 기초하여 변환해서 출력하는 논리 회로를 구비하고,
    상기 공통 키 블록 암호 방식이 DES이고, 상기 소정의 대응 규칙이, DES의 S-BOX에 입력되는 데이터와 상기 S-BOX로부터 출력되는 데이터의 대응 규칙인 것을 특징으로 하는 암호 처리 회로.
  19. 삭제
  20. 제18항에 있어서,
    상기 논리 회로는,
    상기 S-BOX에 입력되는 상기 복수 비트의 입력 데이터의 최상위 비트 및 최하위 비트를 상기 선택 데이터에 기초하여 재배열해서 출력하는 선택 회로와,
    상기 선택 회로로부터 출력되는 상기 복수 비트의 입력 데이터의 최상위 비트 및 최하위 비트와, 상기 복수 비트의 입력 데이터의 최상위 비트 및 최하위 비트 이외의 비트를 상기 소정의 대응 규칙에 기초하여 변환해서 출력하는 환자 회로를 구비하는 것을 특징으로 하는 암호 처리 회로.
KR1020060010144A 2005-02-03 2006-02-02 암호 처리 회로 KR100828272B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005028116A JP4326482B2 (ja) 2005-02-03 2005-02-03 暗号処理回路
JPJP-P-2005-00028116 2005-02-03
JPJP-P-2005-00028115 2005-02-03
JP2005028115A JP2006215280A (ja) 2005-02-03 2005-02-03 暗号処理回路

Publications (2)

Publication Number Publication Date
KR20060089155A KR20060089155A (ko) 2006-08-08
KR100828272B1 true KR100828272B1 (ko) 2008-05-07

Family

ID=36756571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060010144A KR100828272B1 (ko) 2005-02-03 2006-02-02 암호 처리 회로

Country Status (3)

Country Link
US (1) US20060171532A1 (ko)
KR (1) KR100828272B1 (ko)
TW (1) TWI290426B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
EP2051387A1 (en) 2007-10-15 2009-04-22 CoreOptics, Inc., c/o The Corporation Trust Center Receiver, interleaving and deinterleaving circuit and method
FR2933557B1 (fr) * 2008-07-02 2013-02-08 Airbus France Procede et dispositif de protection de l'integrite de donnees transmises sur un reseau
US8122190B1 (en) * 2009-05-29 2012-02-21 Itt Manufacturing Enterprises, Inc. Method and system for reconfigurable memory-based permutation implementation
CN104753663B (zh) * 2013-12-31 2018-02-23 上海复旦微电子集团股份有限公司 数据处理方法和装置
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
US10511581B2 (en) 2015-11-17 2019-12-17 International Business Machines Corporation Parallelizable encryption using keyless random permutations and authentication using same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5162988A (en) * 1986-10-31 1992-11-10 Ncr Corporation Multiplexing character processor
US5930359A (en) * 1996-09-23 1999-07-27 Motorola, Inc. Cascadable content addressable memory and system
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JP4317607B2 (ja) * 1998-12-14 2009-08-19 株式会社日立製作所 情報処理装置、耐タンパ処理装置
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FIPS PUB. 46-3(1999.10.25)*

Also Published As

Publication number Publication date
TWI290426B (en) 2007-11-21
TW200629853A (en) 2006-08-16
US20060171532A1 (en) 2006-08-03
KR20060089155A (ko) 2006-08-08

Similar Documents

Publication Publication Date Title
KR100828272B1 (ko) 암호 처리 회로
KR100737651B1 (ko) 난수 생성 회로
EP0802653B1 (en) Multi-cycle non-parallel data encryption engine
US8457306B2 (en) Cryptographic module and IC card
US20030002664A1 (en) Data encryption and decryption system and method using merged ciphers
CA1336721C (en) Cryptographic method and apparatus with electrically redefinable algorithm
US6691921B2 (en) Information processing device
EP1860630B1 (en) Data converting apparatus and data converting method
AU4105801A (en) Block encryption device using auxiliary conversion
CN111722831B (zh) 一种加密系统及其实现方法
CN107078902A (zh) 基于旋转的密码术
JP2006215824A (ja) 乱数生成回路
US6466669B1 (en) Cipher processor, IC card and cipher processing method
US7257229B1 (en) Apparatus and method for key scheduling
EP2413305B1 (en) Data processing device and data processing method
JP2006215280A (ja) 暗号処理回路
JPH10173646A (ja) 暗号化補助方法、復号化補助方法、およびそれらの方法を用いた装置
JP4326482B2 (ja) 暗号処理回路
US20040096059A1 (en) Encryption apparatus with parallel Data Encryption Standard (DES) structure
JP2006215825A (ja) 乱数生成回路
JP4395527B2 (ja) 情報処理装置
KR100403820B1 (ko) 암호화 처리장치 그 방법
JP2000047580A (ja) 暗号変換装置、復号変換装置、暗号通信装置および自動料金徴収装置
US7178168B2 (en) Shift device and method for shifting
JP4611642B2 (ja) 認証システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E801 Decision on dismissal of amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110318

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee