KR100423811B1 - 카스미 암호화 알고리즘을 응용한 암호화 장치 - Google Patents

카스미 암호화 알고리즘을 응용한 암호화 장치 Download PDF

Info

Publication number
KR100423811B1
KR100423811B1 KR10-2001-0078588A KR20010078588A KR100423811B1 KR 100423811 B1 KR100423811 B1 KR 100423811B1 KR 20010078588 A KR20010078588 A KR 20010078588A KR 100423811 B1 KR100423811 B1 KR 100423811B1
Authority
KR
South Korea
Prior art keywords
bit
data
block
output data
secret key
Prior art date
Application number
KR10-2001-0078588A
Other languages
English (en)
Other versions
KR20030048632A (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
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0078588A priority Critical patent/KR100423811B1/ko
Priority to PCT/KR2002/000695 priority patent/WO2003050784A1/en
Priority to EP02718680A priority patent/EP1459278A4/en
Priority to AU2002249664A priority patent/AU2002249664A1/en
Publication of KR20030048632A publication Critical patent/KR20030048632A/ko
Application granted granted Critical
Publication of KR100423811B1 publication Critical patent/KR100423811B1/ko

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

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

Abstract

본 발명은 카스미(KASUMI) 암호화 알고리즘을 응용한 암호화 장치에 관한 것이다.
본 발명은 카스미 암호화 알고리즘에서 정의되어 있고 비밀키 스케줄러(150,150a)로부터 공급되는 비밀키와 64비트 평문데이터를 32비트로 분리하여 소정의 암호화 연산기능을 수행하는 FL블록(160,160a)과 FO블록(170,170a)의 조합으로 라운드 회로를 구성함과 동시에, 상기 FO블록(170a)을 복수의 파이프라인 레지스터(305,305a,305b)를 사용하여 다단 파이프라인으로 구성하며,
이에 따라서, 종래의 MISTY 암호화 알고리즘이나 DES 암호화 알고리즘을 응용한 암호화 장치에 비해 전력 소모가 적고 면적이 월등히 작을 뿐만 아니라, 저전력 및 작은 면적을 요구하는 휴대용 단말기와 고성능 서버 등에 모두 적용할 수 있는 장점이 있다.

Description

카스미 암호화 알고리즘을 응용한 암호화 장치 {ENCRYPTION APPARATUS FOR APPLYING ENCRYPTION ALGORITHM KASUMI}
본 발명은 암호화 장치에 관한 것이며, 보다 상세히는 카스미(KASUMI) 암호화 알고리즘을 응용한 암호화 장치에 관한 것이다.
최근 유선 및 무선 통신 기술의 발전으로 네트워크 상에서의 정보보호에 대한 관심이 높아짐에 따라서, 특히 차세대 무선 통신 시스템이라는 3GPP(3rd Generation Partnership Project) 시스템을 개발함에 있어서 정보를 보호할 수 있는 다양한 보안특성이 요구되는 한편, 시스템의 안전성과 신뢰성을 검증할 수 있는 암호화 알고리즘의 개발과 범세계적으로 적용 가능한 기술규격의 표준화가 요구되는 실정이다.
이에 따라서, 유럽전기통신협회(ETSI) 등을 포함한 표준기술규격 개발기관들이 중심이 되어 결성한 3GPP 시스템의 기술그룹인 TSG-SA에서 ETSI의 암호 알고리즘 전문가 그룹(SAGE)에 의뢰하여 f0-f10이라고 불리는 11개의 보안관련 알고리즘을 개발하여 TS33.102v3.7.0 표준문서에 정의하였다.
상기 ETST의 SAGE에서 개발한 11개의 보안관련 알고리즘을 정의한 표준문서에는 인증부분에서는 난수발생 알고리즘인 f1을 비롯하여 가입자가 네트워크 인증을 위한 f1 알고리즘, 재동기 메시지 인증을 위한 f1* 알고리즘, 가입자 인증을 위한 f2 알고리즘, 무선 구간 암호화 키 생성을 위한 f3 알고리즘, 무선 구간 무결성 키 생성을 위한 f4 알고리즘, 가입자 익명성 키 생성을 위한 f5 알고리즘, 재동기 익명성 키 생성을 위한 f5* 알고리즘을 정의하고 있으며, 단말기 및 RNC(Radio Network Controller)에서 필요로 하는 무선 구간 사용자 데이터 암호화를 위한 f8 알고리즘, 무선 구간 사용자 트래픽 무결성 검증 알고리즘인 f9를 정의하고 있다.
특히, 상기 암호화 알고리즘인 f8과 무결성 알고리즘인 f9는 표준화하기로 결정된 후, 현재 일본의 미쓰비시사에서 개발하여 공개한 비밀키 암호화 알고리즘인 미스티(MISTY)를 토대로 카스미(KASUMI) 암호화 알고리즘이 새롭게 개발되어 있다.
그러나, 상기 3GPP 시스템에 있어서 상기 카스미 암호화 알고리즘을 응용한 종래의 구현 기술은 대부분 소프트웨어적인 방법으로 처리되기 때문에 처리율(throughput)이 낮을 뿐만 아니라 많은 트래픽을 처리하지 못하여 시스템에 많은 부하를 유발시키는 단점이 있다. 예컨대, 3GPP 시스템의 RNC 스위치 장비에서는 파워PC 프로세서를 사용하여 카스미 암호화 알고리즘을 실행하고 있는데, 시스템에 많은 부하가 유발됨에 따라서 결과적으로 파워PC 프로세서를 추가로 사용해야 하는 등 많은 코스트와 비효율성을 유발시키고 있다.
또한, 상기 3GPP 시스템에 있어서 상기 카스미 암호화 알고리즘을 응용한 하드웨어적인 종래의 구현 기술은 많지 않으며, 대부분 종래의 미스티 암호화 알고리즘이나 DES(Date Encryption Standard) 암호화 알고리즘을 응용한 암호화 장치를 개발하고 있는 실정이다.
특히, 종래의 DES(Date Encryption Standard) 암호화 알고리즘을 응용한 암호화 장치로는 일본특허출원공개번호 평09-0269727호(발명의 명칭; 암호화 방법 및 암호화 장치)와 일본특허출원공개번호 평09-0251267호(발명의 명칭; 암호화 방법 및 암호화 장치) 등이 개발되어 있으나, 이들은 모두 라운드 회로를 구성함에 있어서 라운드와 라운드 사이에 레지스터를 삽입하여 라운드 회로를 파이프라인화하기 때문에, 전력 소모가 심하고 장치의 면적이 크다는 단점이 있으며, 이로 인해 저전력 및 작은 면적을 요구하는 휴대용 단말기와 고성능 서버에 모두 적용할 수 있는다양한 암호화 기술을 제공하지 못하는 문제점이 있다.
따라서, 본 발명은 상술한 종래의 문제점을 극복하기 위한 것으로서, 본 발명의 목적은 카스미 암호화 알고리즘에서 정의되어 있고 비밀키 스케줄러로부터 공급되는 비밀키와 64비트 평문데이터를 32비트로 분리하여 소정의 암호화 연산기능을 수행하는 FL블록과 FO블록의 조합으로 라운드 회로를 구성함과 동시에, 상기 FO블록을 복수의 파이프라인 레지스터를 사용하여 다단 파이프라인으로 구성한 카스미 암호화 알고리즘을 응용한 암호화 장치를 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 카스미 암호화 알고리즘을 응용한 암호화 장치는, 평문데이터와 라운드 수행 후 얻어지는 입력데이터 중 어느 하나를 선택하여 저장하는 레지스터부와, 상기 평문데이터를 암호화하기 위한 비밀키를 생성하는 비밀키 스케줄러와, 상기 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL블록과, 상기 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 출력하는 FO블록과, 상기 FL블록과 FO블록의 출력데이터를 상기 레지스터부의 출력데이터와 배타적 논리합하여 레지스터부로 인가시키는 가산부, 및 상기 FL블록과 FO블록의 입력데이터를 선택하고 출력데이터의 경로를 선택하는 입출력제어부로 구성된다.
상기 본 발명의 목적을 달성하기 위한 다른 카스미 암호화 알고리즘을 응용한 암호화 장치는, 평문데이터와 라운드 수행 후 얻어지는 입력데이터 중 어느 하나를 선택하여 저장하는 파이프라인 레지스터부와, 상기 평문데이터를 암호화하기 위한 비밀키를 생성하는 비밀키 스케줄러와, 상기 파이프라인 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL1블록과, 3단 파이프라인 구조이고, 상기 FL1블록과 파이프라인 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 출력하는 FO블록과, 상기 FO블록의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL2블록과, 상기 FO블록과 FL2블록의 출력데이터를 상기 파이프라인 레지스터의 출력데이터와 동기되도록 배타적 논리합하여 상기 파이프라인 레지스터부로 인가시키는 가산부와, 상기 FO블록의 입력데이터를 선택하고 출력데이터의 경로를 선택하는 입출력제어부로 구성된다.
도 1은 본 발명에 따른 암호화 장치를 도시한 제1실시예,
도 2는 도 1의 비밀키 스케줄러를 도시한 구성도,
도 3은 본 발명에 따른 암호화 장치를 도시한 제2실시예,
도 4는 도 3의 FO블록을 도시한 구성도,
도 5는 도 4에 도시된 FI서브블록을 도시한 구성도,
도 6은 도 3의 FO블록을 도시한 다른 구성도,
도 7은 도 3의 비밀키 스케줄러를 도시한 구성도,
도 8은 도 3의 비밀키 스케줄러를 도시한 다른 구성도,
도 9는 본 발명에 따른 암호화 장치의 제1실시예를 2라운드 회로로 구현한 실시예,
도 10은 본 발명에 따른 암호화 장치의 제1실시예를 2단 파이프라인이 적용된 2라운드 회로로 구현한 실시예,
도 11은 본 발명에 따른 암호화 장치의 제1실시예와 제2실시예를 조합하여 4단 파이프라인이 적용된 2라운드 회로로 구현한 실시예,
도 12는 본 발명에 따른 암호화 장치의 제1실시예와 제2실시예를 조합하여 8단 파이프라인이 적용된 2라운드 회로로 구현한 실시예이다.
<도면의 주요 부분에 대한 부호의 설명>
100,100A: 레지스터부 110,110a: 제1멀티플렉서
120: 제1레지스터 120a: 제1파이프라인 레지스터
130,130a: 제2멀티플렉서 140: 제2레지스터
140a: 제2파이프라인 레지스터 150,150a: 비밀키 스케줄러
160,160a: FL블록 170,170a: FO블록
180,180a: 제1가산기 180A,180B: 가산부
190,200a: 제2가산기 200,210: 멀티플렉서
200A,200B: 입출력제어부 210a: 멀티플렉서
220,220a,230: 디멀티플렉서
이하, 본 발명의 제1실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 1을 참조하면, 레지스터부(100)의 제1멀티플렉서(110)는 64비트 평문데이터의 상위 32비트 입력데이터와 짝수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력한다.
제1레지스터(120)는 상기 제1멀티플렉서(110)의 출력데이터를 임시로 저장한다.
제2멀티플렉서(130)는 64비트 평문데이터의 하위 32비트 입력데이터와 홀수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력한다.
제2레지스터(140)는 상기 제2멀티플렉서(103)의 출력데이터를 임시로 저장한다.
비밀키 스케줄러(150)는 상기 64비트 평문데이터를 암호화하기 위한 비밀키를 생성하여 출력한다.
FL블록(160)은 상기 제1레지스터(120)와 제2레지스터(140)의 출력데이터와 상기 비밀키 스케줄러(150)의 비밀키(Ki)를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 32비트 데이터를 출력한다.
FO블록(170)은 상기 제1레지스터(120)와 제2레지스터(140)의 출력데이터와 상기 비밀키 스케줄러(150)의 비밀키(Ki)를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 32비트 데이터를 출력한다.
가산부(180A)의 제1가산기(180)는 상기 FL블록(160)의 짝수 라운드 32비트 출력데이터를 상기 제1레지스터(120)의 출력데이터와 배타적 논리합하여 짝수 라운드 32비트 데이터를 출력하여 상기 제1멀티플렉서(110)로 인가시킨다.
제2가산기(190)는 상기 FO블록(170)의 홀수 라운드 32비트 출력데이터를 상기 제2레지스터(140)의 출력데이터와 배타적 논리합하여 홀수 라운드 32비트 데이터를 출력하여 상기 제2멀티플렉서(130)로 인가시킨다.
입출력제어부(200A)의 제3멀티플렉서(200)는 홀수 라운드에서는 상기 제1레지스터(120)의 출력데이터를 상기 FL블록(160)으로 인가시키고, 짝수 라운드에서는 상기 FO블록(170)의 출력데이터를 상기 FL블록(160)으로 인가시킨다.
제4멀티플렉서(210)는 홀수 라운드에서는 상기 FL블록(160)의 출력데이터를 상기 FO블록(170)으로 인가시키고, 짝수 라운드에서는 상기 제2레지스터(140)의 출력데이터를 상기 FO블록(170)으로 인가시킨다.
제5디멀티플렉서(220)는 홀수 라운드에서는 상기 FL블록(160)의 출력데이터를 상기 제4멀티플렉서(210)로 인가시키고, 짝수 라운드에서는 상기 FL블록(160)의 출력데이터를 상기 제1가산기(180)로 인가시킨다.
제6디멀티플렉서(230)는 홀수 라운드에서는 상기 FO블록(170)의 출력데이터를 상기 제2가산기(190)로 인가시키고, 짝수 라운드에서는 상기 제FO블록(170)의 출력데이터를 상기 제3멀티플렉서(200)로 인가시킨다.
도 2를 참조하면, 상기 비밀키 스케줄러(150)의 C상수 레지스터(151)는 카스미 암호화 알고리즘에서 키 스케줄링을 위하여 정의된 16비트 C상수값이 8개(C1,C2,C3,C4,C5,C6,C7,C8) 저장되어 있으며, 1개의 클럭 발생시 1개의 C상수값이 좌측으로 회전한다.
상기 비밀키 스케줄러(150)의 비밀키 레지스터(152)는 사용자가 정의한 16비트 비밀키값이 8개(K1,K2,K3,K4,K5,K6,K7,K8) 저장되어 있으며, 1개의 클럭 발생시 1개의 비밀키값이 회전한다.
상기 비밀키값이 1개 회전하는 시간이 상기 C상수값이 1개 좌측으로 회전하는 시간과 동기된다.
상기 비밀키 스케줄러(150)의 복수의 회전기(153,153a,153b,153c)는 비밀키 레지스터(152)의 특정한 비밀키값들을 각각 정해진 비트수만큼 좌측으로 회전시켜 소정의 비밀키를 생성한다.
도 2에 도시된 4개의 회전기(153,153a,153b,153c)는 초기에는 비밀키 레지스터(152)에 저장된 초기 비밀키값 K1, K2, K6, K7을 각각 1비트, 5비트, 8비트, 13비트씩 좌측으로 회전시켜 비밀키 KL1, KO1, KO2, KO3을 생성한다. 이후에는 비밀키 레지스터(152)의 동작 원리에 의존한다.
상기 비밀키 스케줄러(150)의 복수의 가산기(154,154a,154b,154c)는 비밀키 레지스터(152)의 특정한 비밀키값들을 각각에 대응하는 상기 C상수값들과 배타적 논리합하여 비밀키를 생성한다.
도 2에 도시된 4개의 가산기(154,154a,154b,154c)는 초기에는 비밀키 레지스터(152)에 저장된 초기 비밀키값 K3, K4, K5, K8과 이들 각각에 대응하는 C상수값 C3, C4, C5, C8을 각각 서로 배타적 논리합하여 비밀키 KL2, KI2, KI1, KI3을 생성한다. 이후에는 비밀키 레지스터(152)와 C상수 레지스터(151)의 동작에 따라 이동되는 키 값 및 상수값에 대한 연산이 수행된다.
상기와 같이 구성되는 본 발명에 따른 카스미 암호화 알고리즘을 응용한 암호화 장치는 다음과 같이 작동한다.
도 1에 도시된 암호화 장치는 파이프라인을 적용하지 않은 저전력형 라운드 회로와 비밀키 스케줄러(150)로 구성되며, 1클럭 사이클 동안 1라운드 연산이 실행되고 라운드 연산을 총8회 반복 실행하여 64비트 평문입력데이터를 암호화한다.
최초에, 64비트 평문입력데이터의 상위 32비트 데이터가 초기 입력포트(111)를 통하여 상기 제1멀티플렉서(110)로 입력됨과 동시에 상기 64비트 평문입력데이터의 하위 32비트 데이터가 초기 입력포트(131)를 통하여 상기 제2멀티플렉서(130)로 입력된다.
이때, 상기 제1멀티플렉서(110)로 입력된 상위 32비트 데이터는 도 1의 실선으로 표시된 바와 같이, 상기 제1멀티플렉서(110)를 경유하여 제1레지스터(120)에 저장됨과 동시에, 상기 제3멀티플렉서(200)와 FL블록(160), 제5디멀티플렉서(220), 제4멀티플렉서(210), FO블록(170), 제6디멀티플렉서(230)를 순차적으로 경유한 후, 상기 제2가산기(190)에 의해 상기 제2레지스터(140)에 저장된 하위 32비트 데이터와 함께 배타적 논리합되어 상기 제2멀티플렉서(130)의 홀수 라운드 수행 결과 데이터 입력포트(132)로 입력된다.
상기 제2가산기(190)에 의해 배타적 논리합되어 제2멀티플렉서(130)로 입력된 32비트 데이트는 상기 제2멀티플렉서(130)를 경유하여 제2레지스터(140)에 새롭게 저장된다.
또한, 상기 제2레지스터(140)에 새롭게 저장된 32비트 데이터는 도 1의 점선으로 표시된 바와 같이, 계속해서 상기 제4멀티플렉서(210)와, FO블록(170), 제6디멀티플렉서(230), 제3멀티플렉서(200), FL블록(160), 제5디멀티플렉서(220)를 순차적으로 경유한 후, 상기 제1가산기(180)에 의해 상기 제1레지스터(120)에 저장된 상위 32비트 데이터와 함께 배타적 논리합되어 상기 제1멀티플렉서(110)의 짝수 라운드 수행 결과 데이터 입력포트(112)로 입력된다.
상기 제1가산기(180)에 의해 배타적 논리합되어 제1멀티플렉서(110)로 입력된 32비트 데이트는 상기 제1멀티플렉서(110)를 경유하여 제1레지스터(120)에 새롭게 저장된다.
이하, 본 발명의 제2실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
도 3을 참조하면, 파이프라인 레지스터부(100A)의 제1멀티플렉서(110a)는 64비트 평문데이터의 상위 32비트 입력데이터와 짝수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력한다.
제1파이프라인 레지스터(120a)는 상기 제1멀티플렉서(110a)의 출력데이터를 임시로 저장한다.
제2멀티플렉서(130a)는 64비트 평문데이터의 하위 32비트 입력데이터와 홀수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력한다.
제2파이프라인 레지스터(140a)는 상기 제2멀티플렉서(130a)의 출력데이터를 임시로 저장한다.
비밀키 스케줄러(150a)는 상기 64비트 평문데이터를 암호화하기 위한 비밀키를 생성하여 출력한다.
FL1블록(160a)은 상기 제1파이프라인 레지스터(120a)와 제2파이프라인 레지스터(140a)의 출력데이터와 상기 비밀키 스케줄러(150a)의 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 32비트 데이터를 출력한다.
FO블록(170a)은 3개의 파이프라인 레지스터(305,305a,305b)를 포함하는 3단 파이프라인 구조이고, 상기 FL1블록(160a)과 제2파이프라인 레지스터(140a)의 출력데이터와 상기 비밀키 스케줄러(150a)의 비밀키를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 32비트 데이터를 출력한다.
FL2블록(190a)은 상기 FO블록(170a)의 짝수 라운드 32비트 출력데이터와 상기 비밀키 스케줄러(150a)의 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 32비트 데이터를 출력한다.
가산부(180B)의 제1가산기(180a)는 상기 FO블록(170a)의 홀수 라운드 32비트 출력데이터를 상기 제2파이프라인 레지스터(140a)의 출력데이터와 배타적 논리합하여 홀수 라운드 32비트 데이터를 출력하여 상기 제2멀티플렉서(130a)로 인가시킨다.
제2가산기(200a)는 상기 FL2블록(190a)의 출력데이터를 상기 제1파이프라인 레지스터(120a)의 출력데이터와 배타적 논리합하여 짝수 라운드 32비트 데이터를 출력하여 상기 제1멀티플렉서(110a)로 인가시킨다.
입출력제어부(200B)의 제3멀티플렉서(210a)는 홀수 라운드에서는 상기 FL1블록(160a)의 출력데이터를 상기 FO블록(170a)으로 인가시키고, 짝수 라운드에서는 상기 제2파이프라인 레지스터(140a)의 출력데이터를 상기 FO블록(170a)으로 인가시킨다.
제4디멀티플렉서(220a)는 홀수 라운드에서는 상기 FO블록(170a)의 출력데이터를 상기 제1가산기(180a)로 인가시키고, 짝수 라운드에서는 상기 FO블록(170a)의 출력데이터를 상기 FL2블록(190a)으로 인가시킨다.
제1동기레지스터(230a)는 상기 제1가산기(180a)로 입력되는 제2파이프라인 레지스터(140a)의 출력데이터의 입력시간을 상기 제4디멀티플렉서(220a)를 경유하여 상기 제1가산기(180a)로 입력되는 FO블록(170a)의 출력데이터의 입력시간과 동기시킨다.
제2동기레지스터(240)는 상기 제2가산기(200a)로 입력되는 FL2블록(190a)의 출력데이터의 입력시간을 상기 제1파이프라인 레지스터(120a)의 출력데이터의 입력시간과 동기시킨다.
도 4를 참조하면, 상기 FO블록(170a)은 제1파이프라인부(310)와 제2파이프라인부(320) 및 제3파이프라인부(330)로 구성된 3단 파이프라인 구조이고, 제1 및 제2 파이프라인 레지스터(120a,140a)와 함께 4단 파이프라인이 구성된다.
상기 제1파이프라인부(310)는 32비트 입력데이터의 상위 16비트 데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 제1파이프라인 레지스터의 상위16비트 데이터로 저장함과 동시에, 상기 32비트 입력데이터의 하위 16비트 데이터를 상기 제1파이프라인 레지스터의 하위 16비트 데이터로 저장한 다음, 상기 제1파이프라인 레지스터의 상위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터를 출력하고, 상기 16비트 출력데이터를 상기 제1파이프라인 레지스터의 하위 16비트 출력데이터와 배타적 논리합하여 상위 16비트 데이터로 출력한다.
상기 제2파이프라인부(320)는 상기 제1파이프라인 레지스터의 상위 16비트 출력데이터를 제2파이프라인 레지스터의 상위 16비트 데이터로 저장함과 동시에, 상기 제1파이프라인 레지스터의 하위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 상기 제2파이프라인 레지스터의 하위 16비트 데이터로 저장한 다음, 상기 제2파이프라인 레지스터의 하위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터를 출력하고, 상기 16비트 출력데이터를 상기 제2파이프라인 레지스터의 상위 16비트 출력데이터와 배타적 논리합하여 하위 16비트 데이터로 출력한다.
상기 제3파이프라인부(330)는 상기 제2파이프라인 레지스터의 상위 16비트 데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 제3파이프라인 레지스터의 상위 16비트 데이터로 저장함과 동시에, 상기 제2파이프라인 레지스터의 하위16비트 출력데이터를 상기 제3파이프라인 레지스터의 하위 16비트 데이터로 저장한 다음, 상기 제3파이프라인 레지스터의 상위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터를 출력하고, 상기 16비트 출력데이터를 상기 제3파이프라인 레지스터의 하위 16비트 출력데이터와 배타적 논리합하여 상위 16비트 데이터로 출력한다.
상기 파이프라인부(310,320,330)의 제1가산기(301)는 상기 32비트 입력데이터의 상위 또는 하위 16비트 데이터를 상기 비밀키 스케줄러(150a)의 비밀키와 배타적 논리합한다.
상기 파이프라인부(310,320,330)의 제1FI서브블록(302)은 상기 제1가산기(301)의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하고 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 출력한다.
상기 파이프라인부(310,320,330)의 제2가산기(303)는 상기 제1FI서브블록(302)의 9비트 데이터를 상기 비밀키 스케줄러(150a)의 비밀키와 배타적 논리합한다.
상기 파이프라인부(310,320,330)의 제3가산기(304)는 상기 제1FI서브블록(302)의 7비트 데이터를 상기 비밀키 스케줄러(150a)의 비밀키와 배타적 논리합한다.
상기 파이프라인부(310,320,330)의 파이프라인 레지스터(305,305a,305b)는상기 제2가산기(303)와 제3가산기(304)의 9비트 출력데이터와 7비트 출력데이터를 상위 16비트 데이터로 저장함과 동시에 상기 32비트 입력데이터의 하위 또는 상위 16비트 데이터를 임시로 저장한다.
상기 파이프라인부(310,320,330)의 제2FI서브블록(306)은 상기 제2가산기(303)와 제3가산기(304)에 의해 논리합 처리된 후 상기 파이프라인 레지스터(305,305a,305b)에 저장된 상기 9비트 데이터와 7비트 데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터로 출력한다.
상기 파이프라인부(310,320,330)의 제4가산기(307)는 상기 제2FI서브블록(306)의 출력데이터를 파이프라인 레지스터(305,305a,305b)의 하위 또는 상위 16비트 출력데이터와 배타적 논리합하여 16비트 데이터를 출력한다.
도 5를 참조하면, 상기 FI서브블록(304,306)의 S9박스(410)는 16비트 입력데이터의 상위 9비트 데이터를 카스미 암호화 알고리즘에서 특정한 불 논리함수로 연산한다.
상기 FI서브블록(304,306)의 제1가산기(420)는 상기 S9박스(410)의 9비트 출력데이터를 상기 16비트 입력데이터의 하위 7비트를 상위 0비트 확장기능을 수행하여 획득한 9비트 데이터와 배타적 논리합하여 9비트 데이터를 출력한다.
상기 FI서브블록(304,306)의 S7박스(430)는 상기 16비트 입력데이터의 하위 7비트 데이터를 카스미 암호화 알고리즘에서 특정한 불 논리함수로 연산한다.
상기 FI서브블록(304,306)의 제2가산기(440)는 상기 S7박스(430)의 7비트 출력데이터를 상기 제1가산기(420)의 9비트 출력데이트를 상위 비트 절단기능을 수행하여 획득한 7비트 데이터와 배타적 논리합하여 7비트 데이터를 출력한다.
도 6을 참조하면, 상기 FO블록(170a)은 파이프라인부(540)를 1개 구비한 1단 파이프라인 구조로 대체할 수 있다.
상기 FO블록(170a)의 제1가산기(510)는 32비트 입력데이터의 상위 16비트 데이터를 상기 비밀키 스케줄러(150a)의 비밀키와 논리합한다.
상기 FO블록(170a)의 제1FI블록(520)은 상기 제1가산기(510)의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산한다.
상기 FO블록(170a)의 제2가산기(530)는 상기 제1FL블록(520)의 16비트 출력데이터를 상기 32비트 입력데이터의 하위 16비트 데이터와 논리합한다.
상기 FO블록(170a)의 파이프라인부(540)는 도 5에 도시된 제2파이프라인부(320)와 동일하게 구성된다.
상기 파이프라인부(540)는 제2가산기(530)의 상위 16비트 출력데이터를 파이프라인 레지스터(305a)의 상위 16비트 데이터로 저장함과 동시에, 상기 32비트 입력데이터의 하위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 상기 파이프라인 레지스터(305a)의 하위 16비트 데이터로 저장한 다음, 상기 파이프라인 레지스터(305a)의 하위 16비트 출력데이터를 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터를 출력하고, 상기 16비트 출력데이터를 상기 파이프라인 레지스터(305a)의 상위 16비트 출력데이터와 배타적 논리합하여 하위 16비트 데이터로 출력한다.
상기 FO블록(170a)의 제3가산기(550)는 상기 파이프라인 레지스터(305a)의 상위 16비트 출력데이터를 상기 비밀키 스케줄러(150a)의 비밀키와 논리합한다.
상기 FO블록(170a)의 제2FI블록(560)은 상기 제3가산기(550)의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산한다.
상기 FO블록(170a)의 제4가산기(570)는 상기 제2FL블록(560)의 16비트 출력데이터를 상기 파이프라인부(540)의 하위 16비트 출력데이터와 논리합한다.
도 7을 참조하면, 상기 비밀키 스케줄러(150a)의 C상수 레지스터(155)는 카스미 암호화 알고리즘에서 키 스케줄링을 위하여 정의된 16비트 C상수값이 8개 저장되어 있으며, 4개의 클럭 발생시 1개의 C상수값이 좌측으로 회전한다.
상기 비밀키 스케줄러(150a)의 비밀키 레지스터(156)는 사용자가 정의한 16비트 비밀키값이 4×8=32개(KA1∼KD8) 저장되어 있으며, 1개의 클럭 발생시 1개의 비밀키값이 회전한다.
상기 비밀키값이 4개 회전하는 시간이 상기 C상수값이 1개 좌측으로 회전하는 시간과 동기된다.
상기 비밀키 스케줄러(150a)의 복수의 회전기(157,157a,157b,157c,157d)는 상기 비밀키 레지스터(156)의 특정한 비밀키값들을 각각 정해진 비트수만큼 좌측으로 회전시켜 소정의 비밀키를 생성한다.
도 7에 도시된 5개의 회전기(157,157a,157b,157c,157d)는 비밀키 레지스터(156)에 저장된 초기 비밀키값 KA1, KA2, KD5, KC6, KC8을 각각 1비트, 5비트, 8비트, 13비트, 1비트씩 좌측으로 회전시켜 비밀키 KLi1, KOi1, KOi2, KOi3, KL1_even을 생성한다.
상기 비밀키 스케줄러(150a)의 복수의 가산기(158,158a,158b,158c,158d)는 상기 비밀키 레지스터(156)의 특정한 비밀키값들을 각각에 대응하는 상기 C상수값들과 배타적 논리합하여 비밀키를 생성한다.
도 7에 도시된 5개의 가산기(158,158a,158b,158c,158d)는 비밀키 레지스터(156)에 저장된 초기 비밀키값 KB2, KA3, KD3, KA5, KC7과 이들 각각에 대응하는 C상수값 C3, C3, C4, C5, C8을 각각 서로 배타적 논리합하여 비밀키 KL2_even, KLi2, KIi2, KIi1, KIi3을 생성한다.
상기 비밀키 스케줄러(150a)의 복수의 동기레지스터(159,159a,159b)는 상기 가산기(158,158a,158b,158c,158d)로 입력되는 C상수값의 입력시간과 상기 비밀키값의 입력시간을 동기시킨다.
도 7에 도시된 3개의 동기레지스터(159,159a,159b)는 상기 5개의 가산기(158,158a,158b,158c,158d) 중에서 제1가산기(158)와 제2가산기(158a) 제5가산기(158d)로 각각 입력되는 C상수값 C3, C4, C8의 입력시간과 상기 C상수값 C3, C4, C8과 각각 대응하는 비밀키값 KB2, KD3, KC7의 입력시간을 동기시킨다.
도 8을 참조하면, 상기 비밀키 스케줄러(150a)는 도 2에 도시된 비밀키 스케줄러(150) 4개와 5개의 멀티플렉서(150a1,150a2,150a3,150a4,150a5)로 구성된 비밀키 스케줄러로 대체할 수 있다.
상기 4개의 비밀키 스케줄러(150)로부터 출력되는 32개의 비밀키값(KL1-0 ∼ KI3-3)은 2비트 셀렉트신호(Key_sel)에 의해 출력 제어되는 5개의 멀티플렉서(150a1,150a2,150a3,150a4,150a5)로 인가된 후, 최종적으로 도 3에 도시된 암호화 장치에서 필요로 하는 비밀키값을 생성한다.
상기와 같이 구성되는 본 발명에 따른 다른 카스미 암호화 알고리즘을 응용한 암호화 장치는 다음과 같이 작동한다.
도 3에 도시된 암호화 장치는 데이터 처리율을 높일 수 있도록 상기 제1파이프라인 레지스터(110a) 또는 제2파이프라인 레지스터(130a)와 도 3과 도 4 및 도 5에 도시된 바와 같이, 3단 파이프라인 구조로 된 FO블록(170a)을 사용하여 4단 파이프라인을 적용한 라운드 회로와 비밀키 스케줄러(150a)로 구성되며, 1클럭 사이클 동안 4라운드 연산이 실행되고 라운드 연산을 총8회 반복 실행하여 64비트 평문입력데이터 4개를 암호화한다.
최초에, 64비트 평문입력데이터의 상위 32비트 데이터가 초기 입력포트(111a)를 통하여 상기 제1멀티플렉서(110a)로 입력됨과 동시에 상기 64비트 평문입력데이터의 하위 32비트 데이터가 초기 입력포트(131a)를 통하여 상기 제2멀티플렉서(130a)로 입력된다.
이때, 상기 제1멀티플렉서(110a)로 입력된 상위 32비트 데이터는 도 3의 실선으로 표시된 바와 같이, 상기 제1멀티플렉서(110a)를 경유하여 제1파이프라인 레지스터(120a)에 저장됨과 동시에, 상기 FL1블록(160a), 제3멀티플렉서(210a), FO블록(170a), 제4디멀티플렉서(220a)를 순차적으로 경유한 후, 상기 제1가산기(180a)에 의해 상기 제2파이프라인 레지스터(140a)에 저장되어 있고 제1동기레지스터(230a)에 의해 입력시간이 동기되는 하위 32비트 데이터와 함께 배타적 논리합되어 상기 제2멀티플렉서(130a)의 홀수 라운드 수행 결과 데이터 입력포트(132a)로 입력된다.
상기 제1가산기(180a)에 의해 배타적 논리합되어 제2멀티플렉서(130a)로 입력된 32비트 데이트는 상기 제2멀티플렉서(130a)를 경유하여 제2파이프라인 레지스터(140a)에 새롭게 저장된다.
또한, 상기 제2파이프라인 레지스터(140a)에 새롭게 저장된 32비트 데이터는 도 3의 점선으로 표시된 바와 같이, 계속해서 상기 제3멀티플렉서(210a)와, FO블록(170a), 제4디멀티플렉서(220a), FL2블록(190a)을 순차적으로 경유한 후, 상기 제2가산기(200a)에 의해 상기 제1파이프라인 레지스터(120a)에 저장되어 있고 상기 제2동기레지스터(240)에 의해 입력시간이 동기되는 상위 32비트 데이터와 함께 배타적 논리합되어 상기 제1멀티플렉서(110a)의 짝수 라운드 수행 결과 데이터 입력포트(112a)로 입력된다.
상기 제2가산기(200a)에 의해 배타적 논리합되어 제1멀티플렉서(110a)로 입력된 32비트 데이트는 상기 제1멀티플렉서(110a)를 경유하여 제1파이프라인 레지스터(120a)에 새롭게 저장된다.
상기와 같이 제1파이프라인 레지스터(120a)에 새롭게 32비트 데이터가 저장되기까지의 작동과정이 1개의 64비트 평문데이터에 대하여 1클럭 사이클 동안 실행되는 1라운드 연산과정이며, 이러한 라운드 연산을 4개의 64비트 평문데이터에 대하여 8회 반복 실행하면 4개의 64비트 평문입력데이터를 암호화할 수 있다.
만약, 상기 도 3에 도시된 암호화 장치에 있어서, 상기 FO블록(170a)을 도 6에 도시된 1단 파이프라인 구조로 된 FO블록으로 대체하면, 상기 암호화 장치는 2단 파이프라인을 적용한 라운드 회로와 비밀키 스케줄러(150a)로 구성되며, 1클럭 사이클 동안 2라운드 연산이 실행되고 라운드 연산을 총8회 반복 실행하여 64비트 평문입력데이터 2개를 암호화한다.
한편, 도 1에 도시된 바와 같이 FL블록과 FO블록으로 라운드 회로를 구성한 암호화 장치(제1실시예)와 도 3에 도시된 바와 같이 FL블록과 3단 파이프라인 구조로 된 FO블록 또는 1단 파이프라인 구조로 된 FO블록으로 라운드 회로를 구성한 암호화 장치(제2실시예)를 서로 조합하면 새로운 카스미 암호화 알고리즘을 응용한 암호화 장치를 다음과 같이 다양하게 구현할 수 있다.
도 9에 도시된 암호화 장치는 FL블록(610,650)과 FO블록(620,640)으로 2라운드 회로를 구성한 것으로서, 1클럭 사이클 동안 2라운드 연산을 실행하여 64비트 평문입력데이터를 암호화하는 장치이다.
상기 암호화 장치는 64비트 데이터를 저장하는 레지스터(600,670)와, 홀수 라운드를 수행하는 FL1블록(610), 홀수 라운드를 수행하는 FO1블록(620), 짝수 라운드를 수행하는 FO2블록(640), 짝수 라운드를 수행하는 FL2블록(650), 및 배타적 논리합 연산 기능을 수행하는 가산기(630,660)로 구성된다.
상기 2라운드 회로에 FL블록과 FO블록으로 된 라운드 회로를 추가로 확장하면 1클럭 사이클 동안 3 내지 8라운드 연산을 실행하는 암호화 장치를 구현할 수 있다.
도 10에 도시된 암호화 장치는 데이터 처리율을 높이기 위하여 도 9에 도시된 암호화 장치에 파이프라인 레지스터(631,661)를 추가하여 2단 파이프라인 구조로 된 2라운드 회로를 구성한 것으로서, 1클럭 사이클 동안 2라운드 연산을 실행하여 서로 다른 2개의 64비트 평문입력데이터를 암호화하는 장치이다.
상기 2단 파이프라인 구조로 된 2라운드 회로를 8단 파이프라인 구조로 된 8라운드 회로로 확장하면, 서로 다른 8개의 64비트 평문입력데이터를 병렬처리할 수 있는 암호화 장치를 구현할 수 있다.
도 11에 도시된 암호화 장치는 도 10에 도시된 암호화 장치의 FO블록을 도 6에 도시된 바와 같이 1단 파이프라인 구조로 된 FO블록으로 대체하여 4단 파이프라인 구조로 된 2라운드 회로를 구성한 것으로서, 하드웨어적으로 구조가 다소 복잡하기는 하지만 동작 클럭 주파수와 데이터 처리율이 높다는 장점이 있다.
상기 암호화 장치는 64비트 데이터를 저장하고 파이프라인 레지스터 역할을 하는 레지스터(600a,670a)와, 홀수 라운드용 FL1블록(610a), 파이프라인 레지스터(305a)가 포함된 홀수 라운드용 FO1블록(620a), 짝수 라운드용 FL2블록(650a), 파이프라인 레지스터(305a)가 포함된 짝수 라운드용 FO2블록(640a), 배타적 논리합 연산 기능을 수행하는 가산기(630a, 660a), 가산기(630a,660a)로의 데이터 입력시간을 동기시키기 위한 동기레지스터(631a,631c,661a), 및 파이프라인 레지스터(631b)로 구성된다.
도 12에 도시된 암호화 장치는 도 11에 도시된 1단 파이프라인 구조로 된 FO블록을 도 3 내지 도 5에 도시된 바와 같이 3단 파이프라인 구조로 된 FO블록으로 대체하여 8단 파이프라인 구조로 된 2라운드 회로를 구성한 것으로서, 도 11에 도시된 암호화 장치보다 동작 클럭 주파수와 데이터 처리율이 더 높다는 장점이 있다.
상기 암호화 장치의 전체 구성은 도 11에 도시된 암호화 장치와 동일하고, 구성요소 중에서 FO1블록(620b)과 FO2블록(640b) 및 동기레지스터(631d,631e,661f)만 다른 구조를 나타낸다.
또한, 상기한 바와 같이 다양한 형태로 구현되는 본 발명에 따른 암호화 장치를 2개 이상 병렬로 결합하여 사용하면 서로 다른 평문데이터를 암호화할 수 있는 다중 암호화 장치를 구현할 수 있다.
상술한 바와 같이 본 발명에 따른 카스미 암호화 알고리즘을 응용한 암호화 장치는 카스미 암호화 알고리즘에서 정의되어 있고 비밀키 스케줄러로부터 공급되는 비밀키와 64비트 평문데이터를 32비트로 분리하여 소정의 암호화 연산기능을 수행하는 FL블록과 FO블록의 조합으로 라운드 회로를 구성함과 동시에, 상기 FO블록을 복수의 파이프라인 레지스터를 사용하여 다단 파이프라인으로 구성하도록 되어 있기 때문에, 종래의 MISTY 암호화 알고리즘이나 DES 암호화 알고리즘을 응용한 암호화 장치에 비해 전력 소모가 적고 면적이 월등히 작을 뿐만 아니라, 저전력 및 작은 면적을 요구하는 휴대용 단말기와 고성능 서버 등에 모두 적용할 수 있는 장점이 있다.
이상에서 설명한 것은 본 발명에 따른 카스미 암호화 알고리즘을 응용한 암호화 장치를 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (15)

  1. 평문데이터와 라운드 수행 후 얻어지는 입력데이터 중 어느 하나를 선택하여 저장하는 레지스터부와,
    상기 평문데이터를 암호화하기 위한 비밀키를 생성하는 비밀키 스케줄러와,
    상기 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL블록과,
    상기 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 출력하는 FO블록과,
    상기 FL블록과 FO블록의 출력데이터를 상기 레지스터부의 출력데이터와 배타적 논리합하여 레지스터부로 인가시키는 가산부, 및
    상기 FL블록과 FO블록의 입력데이터를 선택하고 출력데이터의 경로를 선택하는 입출력제어부
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  2. 제 1 항에 있어서, 상기 레지스터부는
    64비트 평문데이터의 상위 32비트 입력데이터와 짝수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력하는 제1멀티플렉서와,
    상기 제1멀티플렉서의 출력데이터를 임시로 저장하는 제1레지스터와,
    64비트 평문데이터의 하위 32비트 입력데이터와 홀수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력하는 제2멀티플렉서, 및
    상기 제2멀티플렉서의 출력데이터를 임시로 저장하는 제2레지스터
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  3. 제 1 항에 있어서, 상기 비밀키 스케줄러는
    카스미 암호화 알고리즘에서 키 스케줄링을 위하여 정의된 16비트 C상수값이 8개 저장되어 있으며, 1개의 클럭 발생시 1개의 C상수값이 좌측으로 회전하는 C상수 레지스터와,
    사용자가 정의한 16비트 비밀키값이 저장되어 있으며, 1개의 클럭 발생시 1개의 비밀키값이 회전하는 비밀키 레지스터와,
    상기 비밀키 레지스터의 특정한 비밀키값들을 각각 정해진 비트수만큼 좌측으로 회전시켜 소정의 비밀키를 생성하는 복수의 회전기, 및
    상기 비밀키 레지스터의 특정한 비밀키값들을 각각에 대응하는 상기 C상수값들과 배타적 논리합하여 비밀키를 생성하는 복수의 가산기
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  4. 제 1 항에 있어서, 상기 가산부는
    상기 FL블록의 짝수 라운드 32비트 출력데이터를 상기 제1레지스터의 출력데이터와 배타적 논리합하여 짝수 라운드 32비트 데이터를 출력하여 상기 제1멀티플렉서로 인가시키는 제1가산기, 및
    상기 FO블록의 홀수 라운드 32비트 출력데이터를 상기 제2레지스터의 출력데이터와 배타적 논리합하여 홀수 라운드 32비트 데이터를 출력하여 상기 제2멀티플렉서로 인가시키는 제2가산기
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  5. 제 1 항에 있어서, 상기 입출력제어부는
    홀수 라운드에서는 상기 제1레지스터의 출력데이터를 상기 FL블록으로 인가시키고, 짝수 라운드에서는 상기 FO블록의 출력데이터를 상기 FL블록으로 인가시키는 제3멀티플렉서와,
    홀수 라운드에서는 상기 FL블록의 출력데이터를 상기 FO블록으로 인가시키고, 짝수 라운드에서는 상기 제2레지스터의 출력데이터를 상기 FO블록으로 인가시키는 제4멀티플렉서와,
    홀수 라운드에서는 상기 FL블록의 출력데이터를 상기 제4멀티플렉서로 인가시키고, 짝수 라운드에서는 상기 FL블록의 출력데이터를 상기 제1가산기로 인가시키는 제5디멀티플렉서, 및
    홀수 라운드에서는 상기 FO블록의 출력데이터를 상기 제2가산기로 인가시키고, 짝수 라운드에서는 상기 제FO블록의 출력데이터를 상기 제3멀티플렉서로 인가시키는 제6디멀티플렉서
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  6. 평문데이터와 라운드 수행 후 얻어지는 입력데이터 중 어느 하나를 선택하여 저장하는 파이프라인 레지스터부와,
    상기 평문데이터를 암호화하기 위한 비밀키를 생성하는 비밀키 스케줄러와,
    상기 파이프라인 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL1블록과,
    3단 파이프라인 구조이고, 상기 FL1블록과 파이프라인 레지스터부의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하여 출력하는 FO블록과,
    상기 FO블록의 출력데이터와 비밀키를 카스미 암호화 알고리즘에서 정의한 FL기능으로 연산하여 출력하는 FL2블록과,
    상기 FO블록과 FL2블록의 출력데이터를 상기 파이프라인 레지스터의 출력데이터와 동기되도록 배타적 논리합하여 상기 파이프라인 레지스터부로 인가시키는 가산부와,
    상기 FO블록의 입력데이터를 선택하고 출력데이터의 경로를 선택하는 입출력제어부
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  7. 제 6 항에 있어서, 상기 파이프라인 레지스터부는
    64비트 평문데이터의 상위 32비트 입력데이터와 짝수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력하는 제1멀티플렉서와,
    상기 제1멀티플렉서의 출력데이터를 임시로 저장하는 제1파이프라인 레지스터와,
    64비트 평문데이터의 하위 32비트 입력데이터와 홀수 라운드 수행 후의 32비트 입력데이터 중에서 어느 하나를 선택하여 출력하는 제2멀티플렉서, 및
    상기 제2멀티플렉서의 출력데이터를 임시로 저장하는 제2파이프라인 레지스터
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  8. 제 6 항에 있어서, 상기 FO블록은
    32비트 입력데이터의 상위 또는 하위 16비트 데이터를 상기 비밀키 스케줄러의 비밀키와 배타적 논리합하는 제1가산기와,
    상기 제1가산기의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하고 상위 9비트 데이터와 하위 7비트 데이터로 분리하여 출력하는 제1FI서브블록과,
    상기 제1FI서브블록의 9비트 데이터를 상기 비밀키 스케줄러의 비밀키와 배타적 논리합하는 제2가산기와,
    상기 제1FI서브블록의 7비트 데이터를 상기 비밀키 스케줄러의 비밀키와 배타적 논리합하는 제3가산기와,
    상기 제2가산기와 제3가산기의 9비트 출력데이터와 7비트 출력데이터를 상위 16비트 데이터로 저장함과 동시에 상기 32비트 입력데이터의 하위 또는 상위 16비트 데이터를 임시로 저장하는 파이프라인 레지스터와,
    상기 제2가산기와 제3가산기에 의해 논리합 처리된 후 상기 파이프라인 레지스터에 저장된 상기 9비트 데이터와 7비트 데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하여 16비트 데이터로 출력하는 제2FI서브블록, 및
    상기 제2FI서브블록(306)의 출력데이터를 파이프라인 레지스터의 하위 또는 상위 16비트 출력데이터와 배타적 논리합하여 16비트 데이터를 출력하는 제4가산기
    로 구성되는 3개의 파이프라인부로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  9. 제 8 항에 있어서, 상기 FI서브블록은
    16비트 입력데이터의 상위 9비트 데이터를 카스미 암호화 알고리즘에서 특정한 불 논리함수로 연산하는 S9박스와,
    상기 S9박스의 9비트 출력데이터를 상기 16비트 입력데이터의 하위 7비트를 상위 0비트 확장기능을 수행하여 획득한 9비트 데이터와 배타적 논리합하여 9비트 데이터를 출력하는 제1가산기와,
    상기 16비트 입력데이터의 하위 7비트 데이터를 카스미 암호화 알고리즘에서 특정한 불 논리함수로 연산하는 S7박스, 및
    상기 S7박스의 7비트 출력데이터를 상기 제1가산기의 9비트 출력데이트를 상위 비트 절단기능을 수행하여 획득한 7비트 데이터와 배타적 논리합하여 7비트 데이터를 출력하는 제2가산기
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  10. 제 6 항에 있어서, 상기 가산부는
    상기 FO블록의 홀수 라운드 32비트 출력데이터를 상기 제2파이프라인 레지스터의 출력데이터와 배타적 논리합하여 홀수 라운드 32비트 데이터를 출력하여 상기 제2멀티플렉서로 인가시키는 제1가산기, 및
    상기 FL2블록의 출력데이터를 상기 제1파이프라인 레지스터의 출력데이터와 배타적 논리합하여 짝수 라운드 32비트 데이터를 출력하여 상기 제1멀티플렉서로 인가시키는 제2가산기
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  11. 제 6 항에 있어서, 상기 입출력제어부는
    홀수 라운드에서는 상기 FL1블록의 출력데이터를 상기 FO블록으로 인가시키고, 짝수 라운드에서는 상기 제2파이프라인 레지스터의 출력데이터를 상기 FO블록으로 인가시키는 제3멀티플렉서, 및
    홀수 라운드에서는 상기 FO블록의 출력데이터를 상기 제1가산기로 인가시키고, 짝수 라운드에서는 상기 FO블록의 출력데이터를 상기 FL2블록으로 인가시키는 제4디멀티플렉서
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  12. 제 6 항에 있어서, 상기 가산부로 입력되는 상기 파이프라인 레지스터부의 출력데이터의 입력시간은 동기레지스터에 의해 상기 입출력제어부를 경유하여 상기 가산부로 입력되는 FO블록의 출력데이터의 입력시간과 동기되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  13. 제 12 항에 있어서, 상기 동기레지스터는
    상기 제1가산기로 입력되는 제2파이프라인 레지스터의 출력데이터의 입력시간을 상기 제4디멀티플렉서를 경유하여 상기 제1가산기로 입력되는 FO블록의 출력데이터의 입력시간과 동기시키는 제1동기레지스터, 및
    상기 제2가산기로 입력되는 FL2블록의 출력데이터의 입력시간을 상기 제1파이프라인 레지스터의 출력데이터의 입력시간과 동기시키는 제2동기레지스터
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  14. 제 6 항에 있어서, 상기 FO블록은
    32비트 입력데이터의 상위 16비트 데이터를 상기 비밀키 스케줄러의 비밀키와 논리합하는 제1가산기와,
    상기 제1가산기의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한FI기능으로 연산하는 제1FI블록과,
    상기 제1FL블록의 16비트 출력데이터를 상기 32비트 입력데이터의 하위 16비트 데이터와 논리합하는 제2가산기와,
    상기 제2가산기의 16비트 출력데이터를 파이프라인 레지스터의 상위 16비트 데이터로 저장하고, 상기 32비트 입력데이터의 하위 16비트 출력데이터를 상기 파이프라인 레지스터에 저장하고 출력할 때 카스미 암호화 알고리즘에서 정의한 FI기능과 배타적 논리합 기능으로 연산하며, 상기 파이프라인 레지스터의 하위 16비트 출력데이터를 상위 16비트 출력데이터와 배타적 논리합하여 하위 16비트 데이터로 출력하는 파이프라인부와,
    상기 파이프라인 레지스터의 상위 16비트 출력데이터를 상기 비밀키 스케줄러의 비밀키와 논리합하는 제3가산기와,
    상기 제3가산기의 16비트 출력데이터를 카스미 암호화 알고리즘에서 정의한 FI기능으로 연산하는 제2FI블록, 및
    상기 제2FL블록의 16비트 출력데이터를 상기 파이프라인부의 하위 16비트 출력데이터와 논리합하는 제4가산기
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
  15. 제 6 항에 있어서, 상기 비밀키 스케줄러는
    카스미 암호화 알고리즘에서 키 스케줄링을 위하여 정의된 16비트 C상수값이 8개 저장되어 있으며, 4개의 클럭 발생시 1개의 C상수값이 좌측으로 회전하는 C상수 레지스터와,
    사용자가 정의한 16비트 비밀키값이 저장되어 있으며, 1개의 클럭 발생시 1개의 비밀키값이 회전하는 비밀키 레지스터와,
    상기 비밀키 레지스터의 특정한 비밀키값들을 각각 정해진 비트수만큼 좌측으로 회전시켜 소정의 비밀키를 생성하는 복수의 회전기와,
    상기 비밀키 레지스터의 특정한 비밀키값들을 각각에 대응하는 상기 C상수값들과 배타적 논리합하여 비밀키를 생성하는 복수의 가산기, 및
    상기 가산기로 입력되는 C상수값의 입력시간과 상기 비밀키값의 입력시간을 동기시키는 복수의 동기레지스터
    로 구성되는 것을 특징으로 하는 카스미 암호화 알고리즘을 응용한 암호화 장치.
KR10-2001-0078588A 2001-12-12 2001-12-12 카스미 암호화 알고리즘을 응용한 암호화 장치 KR100423811B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2001-0078588A KR100423811B1 (ko) 2001-12-12 2001-12-12 카스미 암호화 알고리즘을 응용한 암호화 장치
PCT/KR2002/000695 WO2003050784A1 (en) 2001-12-12 2002-04-17 Encryption apparatus applying kasumi encryption algorithm
EP02718680A EP1459278A4 (en) 2001-12-12 2002-04-17 ENCRYPTION APPARATUS USING KASUMI ENCRYPTION ALGORITHM
AU2002249664A AU2002249664A1 (en) 2001-12-12 2002-04-17 Encryption apparatus applying kasumi encryption algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0078588A KR100423811B1 (ko) 2001-12-12 2001-12-12 카스미 암호화 알고리즘을 응용한 암호화 장치

Publications (2)

Publication Number Publication Date
KR20030048632A KR20030048632A (ko) 2003-06-25
KR100423811B1 true KR100423811B1 (ko) 2004-03-22

Family

ID=19716936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0078588A KR100423811B1 (ko) 2001-12-12 2001-12-12 카스미 암호화 알고리즘을 응용한 암호화 장치

Country Status (4)

Country Link
EP (1) EP1459278A4 (ko)
KR (1) KR100423811B1 (ko)
AU (1) AU2002249664A1 (ko)
WO (1) WO2003050784A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100516548B1 (ko) * 2003-02-05 2005-09-22 삼성전자주식회사 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치
US7688972B2 (en) 2004-07-14 2010-03-30 Broadcom Corporation Method and system for implementing FO function in KASUMI algorithm for accelerating cryptography in GSM (global system for mobile communication)GPRS (general packet radio service)edge(enhanced data rate for GSM evolution) compliant handsets
US7760874B2 (en) * 2004-07-14 2010-07-20 Broadcom Corporation Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7627115B2 (en) 2004-08-23 2009-12-01 Broadcom Corporation Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets
JP4687775B2 (ja) 2008-11-20 2011-05-25 ソニー株式会社 暗号処理装置
US8924741B2 (en) 2012-12-29 2014-12-30 Intel Corporation Instruction and logic to provide SIMD secure hashing round slice functionality
US10038550B2 (en) 2013-08-08 2018-07-31 Intel Corporation Instruction and logic to provide a secure cipher hash round functionality
US10503510B2 (en) 2013-12-27 2019-12-10 Intel Corporation SM3 hash function message expansion processors, methods, systems, and instructions
US9912481B2 (en) * 2014-03-27 2018-03-06 Intel Corporation Method and apparatus for efficiently executing hash operations
US9317719B2 (en) 2014-09-04 2016-04-19 Intel Corporation SM3 hash algorithm acceleration processors, methods, systems, and instructions
US9658854B2 (en) 2014-09-26 2017-05-23 Intel Corporation Instructions and logic to provide SIMD SM3 cryptographic hashing functionality
CN114050900B (zh) * 2022-01-13 2022-04-19 深圳市成为信息技术有限公司 一种车载终端的通信方法、车载终端、摄像终端

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3962539A (en) * 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
JPH09251267A (ja) * 1996-03-15 1997-09-22 Toshiba Corp 暗号化装置及び暗号化方法
JPH09269727A (ja) * 1996-03-29 1997-10-14 Toshiba Corp 暗号化方法および暗号化装置
JP3088337B2 (ja) * 1997-05-30 2000-09-18 三菱電機株式会社 暗号処理装置、icカード及び暗号処理方法
US7212631B2 (en) * 2001-05-31 2007-05-01 Qualcomm Incorporated Apparatus and method for performing KASUMI ciphering
KR100516548B1 (ko) * 2003-02-05 2005-09-22 삼성전자주식회사 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치

Also Published As

Publication number Publication date
WO2003050784A1 (en) 2003-06-19
EP1459278A4 (en) 2010-06-02
AU2002249664A1 (en) 2003-06-23
EP1459278A1 (en) 2004-09-22
KR20030048632A (ko) 2003-06-25

Similar Documents

Publication Publication Date Title
CN106788974B (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
KR100296958B1 (ko) 블록 데이터 암호화 장치
KR100423811B1 (ko) 카스미 암호화 알고리즘을 응용한 암호화 장치
EP3468147B1 (en) Method for constructing secure hash functions from bit-mixers
RU2357365C2 (ru) Способ и устройство для выполнения криптографического вычисления
EP1191737A2 (en) Data encryption apparatus
US20210021405A1 (en) Key sequence generation for cryptographic operations
EP1820295A2 (en) Substitution boxes
Landau Standing the test of time: The data encryption standard
Rouvroy et al. Efficient uses of FPGAs for implementations of DES and its experimental linear cryptanalysis
CN1592190B (zh) 硬件加密引擎和加密方法
EP3437248A1 (en) Key update for masked keys
Gielata et al. AES hardware implementation in FPGA for algorithm acceleration purpose
Lam et al. An improved method for locating and extracting the eye in human face images
US9065631B2 (en) Integrated cryptographic module providing confidentiality and integrity
Miroshnik et al. Uses of programmable logic integrated circuits for implementations of data encryption standard and its experimental linear cryptanalysis
KR20050015857A (ko) 겹침 연산 방식과 변동 클럭 방식을 이용한 암호화 방법
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
WO2007129197A1 (en) Cryptographic apparatus and process
Khaleel et al. A new block cipher based on finite automata systems
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
Kurniawan et al. Block cipher four implementation on field programmable gate array
KR20160108861A (ko) 경량 블록암호 lea 기반 암호화 및 복호화 장치
Borowska et al. The cryptanalysis of the Enigma cipher. The plugboard and the cryptologic bomb
Stefan Hardware framework for the rabbit stream cipher

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090303

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee