KR100516548B1 - 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치 - Google Patents

이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치 Download PDF

Info

Publication number
KR100516548B1
KR100516548B1 KR10-2003-0007202A KR20030007202A KR100516548B1 KR 100516548 B1 KR100516548 B1 KR 100516548B1 KR 20030007202 A KR20030007202 A KR 20030007202A KR 100516548 B1 KR100516548 B1 KR 100516548B1
Authority
KR
South Korea
Prior art keywords
encryption
bit string
length
bit
signal
Prior art date
Application number
KR10-2003-0007202A
Other languages
English (en)
Other versions
KR20040070956A (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-2003-0007202A priority Critical patent/KR100516548B1/ko
Priority to GB0402313A priority patent/GB2398213B/en
Priority to US10/770,486 priority patent/US7447311B2/en
Priority to JP2004028523A priority patent/JP2004240427A/ja
Priority to CNB2004100283308A priority patent/CN100382485C/zh
Publication of KR20040070956A publication Critical patent/KR20040070956A/ko
Application granted granted Critical
Publication of KR100516548B1 publication Critical patent/KR100516548B1/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/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/122Hardware reduction or efficient architectures
    • 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 이동통신시스템의 암호화 알고리즘을 하드웨어로 설계하는 방법 및 장치에 관한 것으로, 최소의 암호화 블록과 메모리를 사용하여 입력되는 평문신호를 동일한 비트의 암호화 신호로 출력하는 암호화 방법 및 장치를 제공하는 것이다. 이러한 본원 발명은 복수개의 다중화기들에 제어신호를 인가하여 암호화블록들의 연산 순서를 제어하는 것을 제공한다. 또한, 평문신호를 저장하는 입력 메모리와, 암호화신호를 저장하는 출력 메모리를 하나의 메모리로 공유하여 메모리 사용을 최소화하는 것을 제공한다. 따라서, 상기 암호화 블록들과 메모리를 이용하여 암호화 함수를 구현함에 있어서, 암호화 연산에 따른 소자 및 메모리 사용의 최소화와 칩 크기 측면에서 효율성을 가져오는 효과가 있다. 또한, 입력메모리와 출력 메모리를 하나의 메모리로 공유하여, 메모리 맵을 단순화 시켜 소비 전력이 감소하는 효과가 있다.

Description

이동 통신 시스템에서 최적화된 암호화 함수를 설계하는 방법과 최적화된 암호화 장치 {APPARATUS AND METHOD FOR EFFICIENT H/W STRUCTURE FOR CIPHERING IN MOBILE COMMUNICATION SYSTEM}
본 발명은 이동통신시스템에 관한 것으로, 특히 암호화 함수의 최적화된 하드웨어 설계 방법과 장치를 제공하는 것이다.
아날로그 제 1세대 통신시스템에서 디지털 제 2세대 통신시스템으로 바뀌면서 이동통신 서비스 가입자들은 더 많은 용량의 데이터를 고속으로 안정하게 송/수신하고자 한다. 따라서, 서비스 제공자들은 보다 안정되고, 진보된 암호화 방법들을 사용하여 상기 가입자들의 요구를 만족시키고자 노력하고 있다. 이렇게, 고도의 정보화 사회에서 요구되는 음성신호 및 영상신호등의 멀티 미디어 서비스를 제공하는 제 3세대 시스템에서는 사용자에 관한 정보는 물론, 음성신호 및 멀티 미디어 서비스 제공에 따른 신호들의 기밀성 및 안전성 신뢰성을 검증하기 위한 암호화 알고리즘의 개발과 표준화가 요구되고 있다. 따라서, GSM(Global System For Mobile Communication)핵심망에 기반을 둔 3GPP(The 3 Generation Project Partnership)의 제 3 세대 시스템(UMTS: Universal Mobile Telecommunication System)에서 보안 구조는 f0∼f10이라 불리는 11개의 보안 관련 알고리즘 사용에 관한 논의가 진행중이다. 그 중 국제적인 로밍에 필수적인 암호화 알고리즘 f8함수와 무결성 알고리즘 f9함수는 이미 표준화하기로 결정되었다. 이러한 상기 암호화 알고리즘 f8함수와 무결성 알고리즘 f9함수는 일본 미쓰비시의 알고리즘 MISTY를 기반으로 KASUMI(MISTY의 일본말)라는 새로운 블록 암호화 시스템을 핵심 알고리즘을 정의하고 있다.
이러한 상기 KASUMI 알고리즘은 8-라운드 페이스탈(Feistel) 구조를 갖는 블록 암호화 시스템으로, 64비트 평문신호(plaintext)를 입력하여 8번의 암호화 단계를 거쳐 64비트의 암호화신호(ciphertext)로 출력하는 시스템이다. 여기서, 평문신호란 송신측에서 수신측으로 보내고자하는 보통의 통신문을 말하고, 암호화 신호란 보통의 통신문을 암호화 키 값에 의해 암호화 연산을 수행하여 일반적으로 확인이 불가능한 기밀성이 보장된 통신문을 말한다.
도 1은 종래 기술에 따른 KASUMI 암호화 블록의 하드웨어 구성을 도시한 도면이다.
상기 도 1을 참조하면, KASUMI 암호화 블록은 복수개의 다중화기들(다중화기1(101), 다중화기 2(102), 다중화기3(107), 역다중화기(109))과 복수개의 레지스터들(레지스터A1(102), 레지스터A2(104))과 암호화 킷값에 의해 암호화 연산을 수행하는 암호화 블록들(FL1암호화부(106), FL2암호화부(110), FO암호화부(108))과 상기 구성부들을 제어하기 위해 제어 신호를 발생하는 제어기(100)와, 상기 암호화 키 값을 제공하는 키 스케쥴러(105)로 구성된다.
입력된 64비트의 평문신호는 32비트의 L0신호와 32비트의 R0신호로 분할되어 다중화기1(101)과 다중화기2(103)에 각각 입력된다. 상기 다중화기1(101)에 입력된 상기 32비트의 L0신호는 제어기(100)로부터 인가된 제어 신호에 의해 레지스터 A1(102)로 출력된다. 또한, 상기 다중화기2(103)에 입력된 상기 32비트의 R0신호는 제어기(100)로부터 인가된 제어 신호에 의해 레지스터 A2(104)로 출력된다. 레지스터A1(102)에서 상기 다중화기1(101)로부터 전송된 상기 32비트의 L0신호는 임시 저장된다. 레지스터A2(104)에서 상기 다중화기2(103)로부터 전송된 상기 32비트의 R0신호는 임시 저장된다. 이때, 제어기(100)가 레지스터 A1(102)과 레지스터 A2(104)에 제어 신호가 인가하면, 상기 레지스터 A1(102)과 레지스터 A2(104)에 임시 저장되어 있는 각각의 32비트 L0신호와 R0신호는 다음 단계로 진행한다.
이때, 상기 KASUMI 암호화 블록은 홀수 라운드일 경우와 짝수 라운드일 경우, 암호화블록에 따른 암호화 연산 순서가 다르다. 우선 홀수 라운드 연산을 살펴보면 하기와 같다. 상기 레지스터 A1(102)로부터 L0 신호를 수신한 FL1암호화부(106)는 키 스케줄러(105)로부터 제공되는 제 1 암호화 키값 KLi,1 및 KLi,2에 의해 L0 신호를 암호화 연산하여 L01 암호화신호를 출력한다. 다중화기3(107)은 상기 32비트의 L01암호화신호를 입력한다. 상기 다중화기3(107)은 상기 제어기(100)로부터 인가되는 제어신호에 의해 상기 L01 암호화신호를 다음의 FO암호화부(108)에 출력한다. 상기 32비트의 암호화 L01 신호를 수신한 상기 FO암호화부(108)는 키 스케쥴러(105)로부터 제공되는 암호화 킷값인 제 2 암호화 키값 KIi,j 및 제 3 암호화 키값 KOi,j에 의해 상기 L01 신호를 암호화 연산하여 L02 암호화신호를 출력한다. 역다중화기(109)는 상기 32 비트의 L02 암호화신호를 수신하여 상기 제어기(100)로부터 인가되는 제어 신호에 따라 L02 암호화신호를 출력한다. 상기 L02신호는 상기 레지스터 A2(104)로부터 출력된 R0신호와 배타적 논리합 연산을 수행한 후, 최종적으로 R1 암호화신호를 출력한다. 상기 R1 신호는 다중화기2(103)에 피드백되어 입력된다.
반면에, 짝수 라운드 연산을 살펴보면 하기와 같다. 상기 레지스터 A2(104)로부터 출력된 R0신호는 다중화기3(107)에 입력된다. 상기 다중화기3(107)은 상기 제어기로부터 인가되는 제어신호에 따라 상기 R0신호를 먼저 FO암호화부(108)로 출력된다. 상기 32 비트의 R0신호를 수신한 FO암호화부(108)는 키 스케줄러(105)로부터 제공되는 암호화 키값들 제 2 암호화 키값 KIi,j 및 제 3 암호화 키값 KOi,j에 의해 R0 신호를 암호화 연산하여 R01 암호화신호를 출력한다. 역다중화기(109)는 상기 32비트의 R01 암호화 신호를 입력한다. 상기 역다중화기(109)는 상기 제어기(100)로부터 인가되는 제어 신호에 따라 상기 R01 암호화신호를 다음의 FL2암호화부(110)에 출력한다. 상기 32비트의 R01 암호화신호를 수신한 FL2암호화부(110)는 상기 키 스케줄러(105)로부터 제공되는 암호화 키값들 제 1 암호화 키값 KLi,j에 의해 암호화 연산하여 R02 암호화신호를 출력한다. 상기 R02 암호화 신호는 상기 레지스터 A1(102)로부터 출력된 L0신호와 배타적 논리합 연산을 수행한 후, 최종적으로 L1 암호화신호를 출력한다. 상기 L1 신호는 다중화기1(101)에 피드백되어 입력된다. 여기서, 제 1 암호화키 값 KLi,j 과 제 2 암호화 키값 KIi,j 및 제 3 암호화키 값 KOi,j는 암호화 연산에 따른 라운드가 증가할수록 상기 i, j도 증가하게 된다.
상기 전술한 바와 같이, 종래의 KASUMI 암호화 블록은 두 개의 FL암호화부(106, 110)를 구비하여 동일한 암호화 연산을 수행하였다. 따라서, 상기 KASUMI 암호화 블록을 하드웨어로 구현함에 있어서, 복수개의 동일한 소자를 사용하여 소자 사용의 효율성이 감소시키는 문제점이 있었다. 또한, 부가적인 소자 사용으로 인한 소비 전력이 증가하는 문제점이 있었다.
도 2는 종래 기술에 따른 KASUMI 암호화 블록 및 메모리 구조에 따라 암호화 함수를 도시한 도면이다.
상기 도 2를 참조하면, 복수개의 KASUMI 암호화 블록들로 암호화 연산을 수행하는 F8 암호화 함수를 도시한 것으로, 상기 F8 암호화 함수는 수신측으로부터 전송하고자 하는 평문신호를 수신하여 입력 메모리(270)에 저장하고, KASUMI 암호화 블록들을 통해 암호화 연산을 수행한 후, 출력된 암호화신호를 다시 출력 메모리(280)에 저장한다. 여기서, 상기 복수개의 KASUMI 암호화 블록들을 도시함은 상기 KASUMI 암호화 블록을 통해 암호화 연산이 반복적으로 이루어짐을 나타내기 위함이다. 또한, 상기 F8 암호화 함수에서 레지스터C(210)는 입력된 데이터를 임시 저장하는 64비트 레지스터로, 제어기(200)의 제어신호에 따라 동작한다. 또한, BLKCNT(이하, "블록 카운터"라 칭한다.)는 64비트의 입력된 데이터를 처리하는 카운터이다. CK(Confidentiality Key, 이하 '암호화 키값"이라 칭한다.)는 128비트를 사용한다. KM(Key Modifier, 이하 "키 변경자"라 칭한다.)는 128비트로 상수이다. 이때, 상기 KASUMI 암호화 블록은 최대 5114비트의 데이터를 처리하는 암호화 블록 시스템이다. 따라서, 최대 80번의 KASUIMI 암호화 연산을 수행한다. 여기서, 제어기(280)는 상기 입력 메모리(260)와 출력 메모리(280) 각각에 제어 신호를 인가하여 상기 입력 메모리들(260)과 상기 출력 메모리(280)의 동작을 제어한다. 상기 제어 신호는 상기 입/출력 메모리(260, 280)에 주소를 할당하는 주소 신호와, 상기 메모리들(280, 280)의 동작을 제어하는 인에이블/디스에이블 신호와, 상기 메모리(260, 280) 각각에 저장되어 있는 데이터를 읽어오거나, 암호화된 데이터를 저장하는 읽기/쓰기(WRITE/READ) 신호와, 할당된 주소에 단위 크기의 데이터를 저장하는 데이터 신호가 있다. 따라서, 상기 메모리(260, 280) 각각은 할당된 주소에 단위 데이터를 저장 또는 출력한다.
KASUMI 암호화 블록(200)은 64비트의 초기 입력값을 수신하여 128비트의 암호화 킷값과 128비트의 키 변경자값인 상수를 배타적 논리합 연산한 CK??KM값에 의해 암호화 연산되어 출력된다. 이때, 상기 암호화 연산된 값은 초기 암호화 값으로 K00 신호이고, 상기 K00신호는 레지스터C(210)에 임시 저장된다. 상기 레지스터C(210)는 암호화 블록 제어기(도시하지 않음)로부터 인가되는 제어신호에 따라 상기 K00 신호를 다음 단계로 출력한다. 상기 K00 신호는 블록 카운터를 통해 출력된 블록 카운터0값과 배타적 논리합 연산되어 다음 번의 KASUMI 암호화 블록(230)에 입력된다. KASUMI 암호화블록(230)에서 상기 초기값 K00 신호는 키 스케줄러로부터 제공되는 암호화 키값(ck)에 의해 암호화 연산하여 64비트의 암호화 신호 K01을 출력한다. 이때, 제어기(280)는 상기 입력 메모리(270)에 제어 신호를 인가하여 첫번째 주소에 저장되어 있는 평문신호 D1을 읽어온다. 상기 D1 신호는 상기 K01신호와 배타적 논리합 연산되어 암호화 신호 K1을 출력한다. 상기 출력 메모리(280)는 상기 제어기(280)로부터 인가되는 제어신호에 따라 첫 번째 주소에 상기 최종적인 암호화 신호 K1을 저장한다. 상기 f8 암호화 함수는 평문신호의 데이터 길이만큼 상기 암호화 과정을 반복 수행한다.
상기 전술한 바와 같이 상기 F8 암호화 함수에서 제어기는 입력 메모리(270)에 제어 신호를 인가하여 각각의 주소에 할당되어 있는 평문신호를 읽어오고, 상기 평문신호에 KASUMI 암호화 블록을 통해 출력된 신호와 암호화 연산한다. 이때, 상기 출력 메모리(280)에 제어 신호를 인가하여 최종적으로 출력되는 암호화 신호를 다시 저장하는 것이다. 따라서, 입력 메모리와 출력 메모리를 별도로 사용하여 하드웨어 구성시 메모리 사용이 비효율적이며, 상기 메모리 사용에 따른 소비 전력도 증가하는 문제가 있었다.
따라서 상기한 바와 같이 동작되는 종래 기술의 문제점을 해결하기 위하여 창안된 본 발명의 목적은, 길이가 2n인 입력 비트열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트열을 출력하는 암호화 장치를 제공하는 것이다.
본 발명의 다른 목적은, 길이가 2n인 제1입력 비트 열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트 열로 출력하는 암호화 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 장치를 제공하는 것이다.
본 발명의 또 다른 목적은, 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 제 1실시예는, 길이가 2n인 입력 비트열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트열을 출력하는 암호화 장치에 있어서, 제어신호에 따라 상기 제1서브비트 열을 입력하여 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 1암호화 비트열을 출력하거나, 제 2암호화 비트열을 입력하여 상기 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하는 제1암호화부와, 상기 제어신호에 따라 상기 제 1 암호화 비트열을 입력하여 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3 )에 의해 암호화함으로써 길이가 n인 상기 제 4암호화 비트 열을 출력하거나, 상기 제 1 서브비트열을 입력하여 상기 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 상기 제 3암호화코드(KI1,1 , KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 2암호화 비트 열을 출력하는 제2암호화부와, 상기 제1서브비트 열과 상기 제1암호화 비트열과 상기 제 2암호화 비트열들에, 동일한 크기의 길이가 n인 소정의 제 1암호화 코드(KL1,1, KL1,2)와 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2 , KI1,3)를 제공하는 키 스케줄러와, 상기 제어신호에 따라 복수개의 다중화기들이 상기 제1서브비트 열을 출력하여 상기 제 1암호화부에 입력되거나, 상기 제2암호화부에 입력되어 상기 키 스케줄러로부터 제공되는 상기 제 1암호화코드(KL1,1, KL1,2)와 제2암호화 코드(KO1,1 , KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화 연산을 수행하도록 제어하는 제어기로 구성됨을 특징으로 한다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 제 2실시예는, 길이가 2n인 제1입력 비트 열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트 열로 출력하는 암호화 방법에 있어서, 제어기로부터 인가되는 제어신호에 따라 제1암호화부가 상기 길이가 n인 제1서브비트 열을 입력하여 키 스케줄러로부터 제공되는 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 1암호화 비트 열을 출력하거나, 제 2암호화부에서 출력되는 길이가 n인 제 2암호화 비트 열을 입력하여 상기 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하는 과정과, 상기 제어기로부터 인가되는 제어신호에 의해 제2암호화부가 상기 길이 n인 상기 제 1 암호화 비트 열을 입력하여 상기 키 스케줄러로부터 제공되는 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI 1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 4암호화 비트 열을 출력하거나, 상기 길이가 n인 상기 제 1 서브비트열을 입력하여 상기 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2 , KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 2암호화 비트 열을 출력하는 과정으로 구성되는 것을 특징으로 한다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 제 3실시예는, 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 장치에 있어서, 상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 암호화부와, 제어신호에 따라 메모리로부터 상기 길이가 m인 제2입력 비트열을 출력하여 상기 제 1암호화 비트 열과 암호화 연산하여 길이가 m인 제 2암호화 비트열을 출력하고 상기 제어신호에 상기 메모리에 상기 제 2암호화 비트열을 다시 저장하도록 제어하는 제어기로 구성되는 것을 특징으로 한다.
상기한 바와 같은 목적을 달성하기 위하여 창안된 본 발명의 제 4실시예는, 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 방법에 있어서, 암호화부가 상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 제 1암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 과정과, 제어기가 메모리에 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열을 출력하고, 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 길이가 m인 제 2암호화 비트열을 출력하여 상기 메모리에 제어 신호를 인가하여 상기 제 2암호화 비트열을 다시 저장하는 과정으로 구성되는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 3은 본 발명이 적용되는 KASUMI 암호화 알고리즘을 도시한 도면이다.
상기 도 3을 참조하면, KASUMI 암호화 블록은 64비트 평문신호(plaintext)를 입력하여 8번의 암호화 단계를 거쳐 64비트의 암호화 신호(ciphertext)를 출력하는 8-라운드 페이스탈(Feistel) 구조를 갖는 암호화 블록 시스템이다. 여기서, 페이스탈 구조란 입력된 2n 비트의 입력신호를 각각 n비트의 L0, R0 신호로 분할하여 각각의 암호화 블록을 통해 m번의 라운드 연산을 통해 암호화 및 복호화를 수행하는 시스템으로, 두 번의 라운드 연산을 통해 완전 확산이 이루어진다. 따라서, 암호화 알고리즘의 수행 속도가 빠른 장점을 가진다. 좀더 자세히 설명하면, 상기 KASUMI 암호화 블록에서 상기 64비트의 입력신호는 각각 32비트의 L0신호와 32비트의 R0신호로 분할되어 암호화 연산을 수행한다. 상기 32비트의 L0신호와 상기 32비트의 R0신호는 복수 개의 FLi암호화부들(1i8)(310, 320, 330, 340, 350, 360, 370, 380)와 복수 개의 FOi암호화부들(1i8) (410, 420, 430, 440, 450, 460, 470, 480)에서 키 스케줄러(도시하지 않음)를 통해 제공되는 암호화 키값들 KIi(1i8), KLi(1i8), KOi(1i8)에 의해 암호화 연산되어 64비트의 암호화 신호를 출력한다.
먼저, 첫 번째 홀수 라운드 암호화 연산을 예를 들어 설명하고자 한다. 입력된 32비트 L0신호는 첫 번 째 FL1암호화부(310)에서 키 스케줄러를 통해 제공되는 첫 번째 제 1 암호화키의 키값인 KL1에 의해 암호화 연산하여 암호화 신호 L01을 출력한다. 상기 암호화 신호 L01은 첫 번째 FO1암호화부(410)에서 키 스케줄러를 통해 제공되는 첫 번째 제 2 암호화값인 KO1와 첫 번째 제 3 암호화 키값인 KI1에 의해 암호화 연산되어 32비트의 L02신호를 출력한다. 상기 L02신호는 상기 32비트의 R0신호와 배타적 논리합 연산되어 암호화된 R1신호를 출력한다.
반면에 첫 번째 짝수 라운드 암호화 연산(=두번째 라운드 암호화 연산)에서, 상기 입력된 32비트의 암호화된 R1=L1 신호는 두 번째 FO2암호화부(420)에서 키 스케줄러를 통해 제공되는 두 번째 제 2 암호화 키값인 KO2와 두 번째 제 3 암호화 키값인 KI2에 의해 암호화 연산되어 32비트의 L11신호를 출력한다. 상기 L11신호는 두 번째 FL2암호화부(320)에서 키 스케줄러를 통해 제공되는 두 번째 제 1 암호화키의 키값인 KL2에 의해 암호화 연산하여 암호화 신호 L12을 출력한다. 상기 암호화 신호 L12은 초기 입력신호인 L0 신호와 배타적 논리합 연산하여 암호화된 R2신호를 출력한다. 따라서, 상기 KASUMI 암호화 블록은 64비트 신호를 입력하여 전체적으로 8라운드 암호화 연산을 반복 수행하여 최종적으로 64비트의 암호화 신호를 출력한다.
도 4는 본 발명이 적용되는 FLi암호화부 상세 구성의 일 예를 도시한 도면이다.
상기 도 4를 참조하면, FLi부는 i번째 FL암호화부를 말하는 것으로, 상기 FLi암호화부는 복수개의 서브암호화부들로 구성된다. 여기서는 1번째 FL암호화부를 예로 들어 설명하고자 한다. 32비트의 입력 신호는 각각 16비트의 L0신호와 16비트의 R0신호로 분할되어 전송된다. 상기 16비트의 L0신호는 16비트의 서브 암호화키 KL1,1에 의해 논리곱 연산(301)되어 16비트의 AL1신호를 출력한다. 상기 AL1신호는 1비트씩 레프트쉬프트(1비트씩 왼쪽) 천이하여(302) SAL1신호를 출력한다. 이때, 상기 16비트의 SAL1 신호는 입력 신호인 16비트의 R0신호와 배타적 논리합 연산하여 서브 암호화 신호인 R1신호를 출력한다. 상기 R1신호는 16비트의 서브 암호화키 KL1,2에 의해 논리합 연산하여(303) 16비트의 OR1신호를 출력한다. 상기 OR1신호는 1비트씩 레프트쉬프트(1비트씩 왼쪽)천이하여(304) SOR1신호를 출력한다. 상기 SOR1신호는 상기 16비트의 입력 신호인 L0신호와 배타적 논리합 연산하여 서브 암호화 신호인 L1신호를 출력한다. 따라서, 상기 첫 번째 FL암호화부는 상기 서브 암호화 신호 R1과 상기 서브 암호화 신호 L1을 연산하여 32비트의 암호화 신호(L1R1, 도 3에서의 L01신호이다.)를 출력한다.
도 5는 본 발명이 적용되는 FOi암호화부 상세 구성의 일 예를 도시한 도면이다.
상기 도 5를 참조하면, FOi부는 i번째 FO암호화부를 말하는 것으로, 상기 FOi부는 복수개의 FIi,j서브암호화부들(1i3이고, 1j3이다)로 구성되어 3단계의 암호화 과정을 이루어진다. 여기서는 1번째 FO암호화부를 예로 들어 설명하고자 한다. 32비트의 입력 신호(도 3에서 L01신호이다.)는 각각 16비트의 L0신호와 16비트의 R0신호로 분할되어 전송된다. 상기 3단계 중 단계 1을 설명하면, 16비트의 LO신호는 16비트의 서브 암호화키 KO1,1과 배타적 논리합 연산하여 L1신호를 출력한다. 상기 L1신호는 FI1,1서브암호화부(401)에 의해 16비트의 서브 암호화키 KI1,1와 암호화되어 지연된 L1D신호를 출력한다. 반면에, 16비트의 RO=R1신호는 지연기D1(411)을 통과하면서 지연된 R1D신호를 출력한다. 즉, 상기 지연기D1(411)은 상기 R1D신호를 임의로 지연시킴으로써 상기 L1D신호와의 출력 동기를 맞추는 역할을 한다. 상기 3단계 중 단계 2를 설명하면, 16비트의 R1D신호는 16비트의 서브 암호화키 KO1,2과 배타적 논리합 연산하여 L2신호를 출력한다. 상기 L2신호는 FI1,2서브암호화부(403)에 의해 16비트의 서브 암호화키 KI1,2와 암호화되어 지연된 L2D신호를 출력한다. 반면에, 16비트의 R1D신호는 상기 L1D신호와 배타적 논리합 연산을 하여 R2신호를 출력한다. 상기 R2신호는 지연기D2(412)를 통과하면서 지연된 R2D신호를 출력한다. 즉, 상기 지연기D2(412)는 상기 R2신호를 임의로 지연시킴으로써 상기 L2D신호와의 출력 동기를 맞추는 역할을 한다. 상기 3단계 중 단계 3를 설명하면, 16비트의 R2D신호는 16비트의 서브 암호화키 KO1,3과 배타적 논리합 연산하여 L3신호를 출력한다. 상기 L3신호는 FI1,3서브암호화부(405)에 의해 16비트의 서브 암호화키 KI1,3와 암호화되어 지연된 L3D신호를 출력한다. 반면에, 16비트의 R2D신호는 상기 L2D신호와 배타적 논리합 연산을 하여 R3신호를 출력한다. 상기 R3신호는 지연기D3(413)을 통과하면서 지연된 R3D신호를 출력한다. 즉, 상기 지연기D3(413)는 상기 R3신호를 임의로 지연시킴으로써 상기 L2D신호와의 출력 동기를 맞추는 역할을 한다. 상기 R3D신호는 상기 L3D 신호와 배타적 논리합 연산하여 R4신호를 출력한다. 따라서, 16비트 R4 신호와 16비트 상기 R3D=L4신호 연산하여 32비트의 암호화 신호(L4 R4, 도 3에서 L02신호이다.)를 출력한다.
도 6은 본 발명이 적용되는 FIi서브암호화부의 상세 구성 일 예를 도시한 도면이다.
상기 도 6을 참조하면, 16비트의 입력신호( 도 5에서 L1신호이다.)는 9비트 RLO신호와 7비트 RRO신호로 분할된다. SBox91연산기(이하 'S91'라 칭함)(610)은 9비트의 입력 신호 RLO를 입력하여 하기의 <수학식 1>에 적용함으로써 9비트의 신호들 Y0,Y1,...Y8를 출력한다.
ZE1부(620)는 7비트의 RRO신호를 입력받아 최상위비트(Most Significant Bit,이하 'MSB'라 칭함)에 2개의 ZERO(0)비트를 추가하여 9비트의 신호를 출력한다. 상기 S91연산기(610)의 9비트 출력신호와 상기 ZE1부(620)의 9비트 출력신호는 배타적 논리합 연산되어 9비트의 RL1신호로 출력한다. 상기 RL1신호는 9비트의 서브 암호화키 KI1,1,2와 배타적 논리합 연산하여 9비트의 RL2신호를 출력한다.
반면에, TR1부(630)는 상기 9비트 RL1신호의 MSB 비트 중 ZERO(0)비트에 위치한 2개의 신호들을 제거하여 7비트의 신호를 출력한다. SBox71연산기(이하 'S71'라 칭함)(640)는 7비트의 입력 신호 RR0=RR1를 입력하여 하기의 <수학식 2>에 적용함으로써 7비트의 Y0,Y1,...Y6신호를 출력한다.
상기 TR1부(630)의 7비트 출력신호와 상기 S71연산기(640)의 7비트 출력신호는 서브 암호화키 KI1,1,1과 배타적 논리합 연산되어 7비트 RR2 신호로 출력된다.
SBox92 연산기(이하 'S92'라 칭함)(650)은 9비트의 입력 신호 RL2를 입력하여 상기의 <수학식 1>에 적용함으로써 9비트의 신호들 Y0,Y1,...Y8를 출력한다. ZE2부(660)는 7비트의 RR1신호를 입력받아 최상위비트(Most Significant Bit,이하 'MSB'라 칭함)에 2개의 ZERO(0)비트를 추가하여 9비트의 신호를 출력한다. 상기 S92연산기(650)의 9비트 출력신호와 상기 ZE2부(660)의 9비트 출력신호는 배타적 논리합 연산되어 9비트의 RL3신호로 출력한다. 상기 RL3신호는 TR2부(670)는 상기 9비트 RL3신호의 MSB 비트 중 ZERO(0)비트에 위치한 2개의 신호들을 제거하여 7비트의 신호를 출력한다. SBox72연산기(이하 'S72'라 칭함)(680)는 7비트의 입력 신호 RR2=RR3를 입력하여 상기의 <수학식 2>에 적용함으로써 7비트의 Y0,Y1,...Y6신호를 출력한다. 상기 TR2부(670)의 7비트 출력신호와 상기 S72연산기(380)의 7비트 출력신호는 배타적 논리합 연산되어 7비트 RR4신호로 출력된다.
따라서, 상기 FI1,1i서브암호화부는 상기 9비트의 RL3=RL4 신호와 7비트의 RR4를 연산하여 16비트의 암호화된 신호(RL4 RR4, 도 5에서 L1D 신호이다.)를 출력한다.
도 7은 본 발명에 따라 KASUMI 암호화 블록의 하드웨어 구성을 도시한 도면이다.
상기 도 7을 참조하면, KASUMI 암호화 블록은 복수개의 다중화기들(다중화기1(701), 다중화기 2(703), 다중화기3(706), 다중화기4(708), 다중화기5(710))과 복수개의 레지스터들(레지스터B1(702), 레지스터B2(704))과 암호화 블록들(FL1부(707), FO암호화부(709))과 제어 신호를 발생하여 상기 구성부들을 제어하는 제어기(700)와, 암호화 키 값을 제공하는 키 스케쥴러(711)로 구성된다. 여기서, 제어기(700)는 상기 복수개의 다중화기들(70, 703, 706, 708, 710)에 제어신호를 인가하여 홀수 라운드 암호화 연산과 짝수 라운드 암호화 연산시 암호화블록들(707, 709)의 연산 순서를 다르게 제어한다. 이를 보다 구체적으로 설명하면 하기와 같다.
우선, 홀수 라운드 암호화 연산에서 64비트의 평문신호는 각각 32비트의 L0신호와 32비트의 R0신호로 분할되어 다중화기1(701)과 다중화기2(703)에 각각 입력된다. 상기 다중화기1(701)에 입력된 상기 32비트의 L0신호는 제어기(700)로부터 인가된 제어 신호에 따라 레지스터 B1(702)로 출력한다. 또한, 상기 다중화기2(703)에 입력된 상기 32비트의 R0신호는 제어기(700)로부터 인가된 제어 신호에 따라 레지스터 B2(704)로 출력한다. 레지스터B1(702)은 다중화기1(701)로부터 수신된 상기 32비트의 L0신호를 임시 저장한다. 레지스터 B2(704)는 다중화기2(103)로부터 수신된 상기 32비트의 R0신호를 임시 저장한다. 이때, 제어기(700)로부터 레지스터 B1(702)과 레지스터 B2(704)에 제어 신호가 인가되면, 상기 레지스터 B1(702)과 레지스터 B2(704)는 각각 임시 저장된 32비트의 L0신호와 R0신호를 출력한다. 제어기(700)는 다중화기3(706), 다중화기4(708), 다중화기5(710)에 제어 신호를 인가하여 상기 다중화기들(706, 708, 710)이 "0의 경로"로 동작하도록 제어한다. 따라서, 홀수 라운드 암호화 연산은 실선으로 도시된 바와 같이 암호화 연산을 수행한다. 다중화기3(706)은 상기 L0신호를 수신한다. 상기 L0신호는 "0의 경로"로 설정된 다중화기3(706)을 통해 F1암호화부(707)로 출력된다. 상기 F1암호화부(707)에서 상기 L0신호는 키 스케줄러(711)로부터 제공되는 홀수 번째 제 1 암호화키값인 KLi,j(상기 i와 j는 1i8, 1j 3의 값을 가진다.)에 의해 암호화 연산을 수행한 후, 암호화된 L01신호를 출력한다. 암호화된 L01신호는 "0의 경로"로 설정된 다중화기4(708)를 통해 FO암호화부(108)로 출력된다. FO암호화부(709)에서 상기 암호화 L01신호는 키 스케쥴러(711)로부터 제공되는 홀수 번째 제 2 암호화키값인 KIi,j,와 홀수 번째 제 3 암호화키값인 KOi,j(상기 i와 j는 1i8, 1j3의 값을 가진다.)에 의해 암호화 연산을 수행한 후, 암호화된 L02신호를 출력한다. 다중화기5(710)는 상기 L02신호를 수신하여 "0의 경로"로 패스하여 출력한다. 상기 L02신호는 상기 레지스터 B2(704)로부터 출력된 R0신호와 배타적 논리합 연산을 수행하여 암호화 신호 R1을 출력한다. 상기 R1=L1신호는 다중화기1(701)에 피드백된다.
반면에, 짝수 라운드 암호화 연산에서 피드백된 32비트의 R1신호는 다중화기1(701)에 32비트의 입력 신호인 L0신호는 다중화기2(703)에 입력된다. 상기 다중화기1(701)에 입력된 상기 32비트의 R1신호는 제어기(700)로부터 인가된 제어 신호에 따라 레지스터 B1(702)로 출력된다. 또한, 상기 다중화기2(703)에 입력된 상기 32비트의 L0신호는 제어기(700)로부터 인가된 제어 신호에 따라 레지스터 B2(704)로 출력된다. 레지스터B1(702)은 다중화기1(701)로부터 수신된 상기 32비트의 R1신호를 임시 저장한다. 레지스터 B2(704)는 다중화기2(103)로부터 수신된 상기 32비트의 L0 신호를 임시 저장한다. 이때, 제어기(700)로부터 레지스터 B1(702)과 레지스터 B2(704)에 제어 신호가 인가되면, 상기 레지스터 B1(702)과 레지스터 B2(704)는 각각 임시 저장된 32비트의 R1 신호와 L0 신호를 출력한다. 제어기(700)는 복수개의 다중화기들(706, 708, 710)에 제어 신호를 인가하여 입력된 신호를 "1의 경로"로 패스하도록 제어한다. 즉, 짝수 라운드 암호화 연산은 점선으로 도시된 바와 같이 암호화 연산을 수행한다. 입력된 상기 R1신호는 제어기(700)로부터 인가되는 제어 신호에 따라 먼저 다중화기4(708)로 전달된다. 이때, 상기 제어기(700)로부터 제어 신호가 인가되면, 상기 R1신호는 상기 다중화기4(708)를 통해 FO암호화부(709)로 출력된다. FO암호화부(709)에서 상기 입력된 32비트의 암호화 R1신호는 키 스케줄러(711)로부터 제공되는 짝수 번째 제 2 암호화 키값인 KIi,j와 짝수 번째 제 3 암호화 키값인 KOi,j (상기 I와 j는 1i8, 1j3을 가진다.)에 의해 암호화 연산을 수행한 후, 암호화된 R11신호를 출력한다. 상기 R11신호는 다중화기3(706)으로 입력된다. 상기 다중화기3(706)에서 상기 R11신호는 "1의 경로"로 설정된 상기 다중화기3(706)을 통해 F1암호화부(707)로 출력된다. 상기 F1암호화부(707)에서 상기 R01신호는 키 스케줄러(711)로부터 제공되는 짝수 번째 제 1 암호화키값인 KLi,j(상기 i와 j는 1i8, 1j3의 값을 가진다.)에 의해 암호화 연산을 수행한 후, 암호화된 R12신호를 출력한다. 상기 R02신호는 마지막으로 "1의 경로"로 설정된 다중화기5(710)를 통해 출력된다. 상기 R02신호는 상기 레지스터 B2(704)로부터 출력된 L0신호와 배타적 논리합 연산을 수행하여 암호화 신호 R2를 출력한다. 상기 R2=L2신호는 다중화기1(701)에 피드백된다.
상기 전술한 바와 같이, 홀수 라운드 암호화 연산시, 제어기(700)는 복수개의 다중화기들(706, 708, 710)에 제어 신호를 인가하여 상기 다중화기들의 동작을 "0의 경로"로 제어한다. 즉, FL암호화부(707)에서 먼저 암호화 연산을 수행한 후, FO암호화부(709)에서 암호화 연산을 수행한다. 반면에, 짝수 라운드 암호화 연산시, 상기 제어기(700)는 복수개의 다중화기들(706, 708, 710)에 제어 신호를 인가하여 상기 다중화기들의 동작을 모두 "1의 경로"로 제어한다. 따라서, 홀수 라운드 암호화 연산인 경우, 입력된 32비트의 신호는 FL암호화부(707)에서 키 스케줄러(105)에서 제공하는 홀수 번째 제 1 암호화키(KLi,1와 KLi,2)에 의해 암호화된 후, FO암호화부(709)에서 홀수 번째 제 2 암호화키 및 홀수 번째 제 3 암호화키(KIi,j와 KOi,j)에 의해 암호화 연산을 수행한다. 반면, 짝수 라운드 암호화 연산인 경우는 FO암호화부(709)에서 짝수 번째 제 2 암호화키 및 짝수 번째 제 3암호화키(KIi,j,와 KOi,j)에 의해 암호화 연산을 수행한 후, FL암호화부(707)에서 짝수 번째 제 1 암호화키(KLi,1와 KLi,2)에 의해 암호화 연산을 수행한다.
따라서, 상기 KASUMI 암호화 블록은 하나의 FL암호화부(707)와 FO암호화부(709)를 구비하여 종래와 동일한 암호화 연산을 수행하는 효과가 있다. 또한, 하드웨어 구현시, 소자 사용을 최소화하여 암호화 연산에 따른 소비 전력을 감소시키는 효과가 있다.
도 8은 본 발명에 따른 KASUMI 암호화 블록 및 메모리 구조에 따라 암호화 함수를 도시한 도면이다.
상기 도 8을 참조하면, 복수개의 KASUMI 알고리즘 블록들로 구성된 암호화 알고리즘 F8 함수를 구현하는 것으로, 수신측으로부터 전송하고자 하는 평문신호가 입력된 메모리(870)로부터 상기 평문신호를 로드하여 암호화 연산을 반복적으로 수행한 후, 최종적으로 암호화된 암호화신호를 동일한 메모리(870)에 저장하는 과정을 도시한 것이다.
상기 암호화 알고리즘 F8 함수는 최대 5114비트의 데이터를 암호화 연산하는 블록 암호화 시스템이다. 따라서, 상기 F8 함수는 최대 80번의 KASUIMI 암호화 연산을 수행 가능하다. 이때, 암호화하고자 하는 데이터길이(평문신호)에 따라 KASUIMI 암호화 블록의 연산의 수는 가변되고, 상기 F8 함수는 BLKCNT(이하, "블록 카운터"라 칭한다.)를 구비하여 KASUMI 암호화 연산의 횟수를 카운트한다. 상기 도 8에서는 복수개의 KASUMI 암호화 블록들을 도시하였으나, 이는 하나의 KASUMI 암호화 블록이 입력된 신호를 암호화 연산하여 암호화 신호를 출력하고, 상기 출력된 암호화 신호를 피드백하여 다시 암호화 연산을 수행하는 것을 나타내기 위함이다. 또한, 상기 F8 함수에서, CK(Confidentiality Key, 이하 '암호화 키값"이라 칭한다.)와 KM(Key Modifier, 이하 "키 변경자"라 칭한다.)는 키 스케줄러로(도시하지 않음)부터 제공되는 것으로, 각각은 128비트를 가진다. 또한, 상기 메모리 제어기(880)는 메모리(870) 제어 신호를 인가하여 상기 메모리(870)의 동작을 제어한다. 상기 제어신호는 상기 메모리(870)에 입력된 평문신호의 주소를 할당하는 어드레스 신호와, 상기 메모리(870)의 동작을 제어하는 인에이블/디스에이블 제어신호와, 상기 메모리(870)에 저장되어 있는 평문신호를 읽어(READ)오기 위한 동작과, 상기 평문신호의 암호화 연산 수행한 후, 상기 메모리(870)에 쓰기(WRITE)위한 동작을 제어하는 읽기/쓰기 신호와, 할당된 주소에 단위 크기의 평문신호 및 암호화 신호를 나타내는 데이터 신호가 있다.
KASUMI 암호화 블록(810)에서 64비트의 암호화 초기값은 키 스케줄러(도시하지 않음)에서 제공하는 128비트의 암호화 킷값과 128비트의 상수를 배타적 논리합 한 값(CK KM)에 의해 암호화 연산하여 초기 KASUMI 암호화 신호 K00을 출력한다. 상기 출력된 K00 신호는 레지스터D(820)에 임시 저장된다. 상기 레지스터(820)는 암호화 블록 제어기(도시하지 않음)로부터 인가되는 제어신호에 따라 K00신호를 출력한다. 여기까지는 KASUMI 암호화 연산을 수행하기 위한 초기 연산 과정을 설명한 것이다.
첫 번째 암호화 연산 과정에 상기 초기 K00신호은 제어기(800)의 제어 신호에 의해 블록 카운터된 블록 카운터0값과 배타적 논리합 연산되어 다음 KASUMI 암호화 블록(830)에 입력된다. KASUMI 암호화블록(830)에서 상기 초기 KASUMI 암호화 신호 K00은 키 스케줄러로부터 제공되는 암호화 키값(CK)에 의해 암호화 연산하여 0부터 63까지 크기를 가지는 키 스트림을 가지는 64비트의 암호화 신호 K01을 출력한다. 제어기(800)는 메모리(870)에 제어 신호를 인가하여 첫 번째 주소에 할당되어 있는 평문신호 D1을 읽어온다. 상기 D1 신호는 상기 K01신호와 배타적 논리합 연산되어 암호화 신호 K1을 출력한다. 상기 제어기(800)는 메모리(270)에 제어 신호를 인가하여 첫 번째 암호화 신호 K1을 첫 번째 주소에 할당한다. 즉, 평문신호 D1의 할당된 주소에 상기 암호화된 K1신호를 저장하는 것이다.
두 번째 암호화 연산 과정에서, 상기 초기 암호화 신호 K00은 제어기의 제어 신호에 의해 블록 카운터된 블록 카운터1값과 배타적 논리합 연산되어 K10 신호로 출력된다. 상기 K10신호는 상기 KASUMI 암호화 블록(830)에서 출력된 K01신호와 배타적 논리합 연산하여 K11신호를 출력한다. KASUMI 암호화블록(840)에서 상기 초기 KASUMI 암호화 신호 K11은 키 스케줄러로부터 제공되는 암호화 키값(CK)에 의해 암호화 연산하여 64부터 127까지 크기를 가지는 키 스트림을 가지는 64비트의 암호화 신호 K02를 출력한다. 제어기(800)는 메모리(870)에 제어 신호를 인가하여 두 번째 주소에 할당되어 있는 평문신호 D2를 읽어온다. 상기 D2신호는 상기 K02신호와 배타적 논리합 연산되어 암호화 신호 K2를 출력한다. 상기 제어기(800)는 메모리(270)에 제어 신호를 인가하여 두 번째 암호화 신호 K2를 두 번째 주소에 할당한다. 즉, 평문신호 D2의 할당된 주소에 암호화된 K2신호를 저장하는 것이다.
상기와 같이 F8 함수에서 암호화 연산은 입력되는 평문신호의 크기에 따라 블록 카운터의 수가 정해지며, 상기와 같은 KASUMI 암호화 연산을 반복적으로 수행한다. 이때, 제어기(800)는 메모리(870)에 제어 신호를 인가하여 임의의 주소에 할당된 평문신호를 로드하여 KASUMI 암호화 연산 후, 암호화된 암호화 신호를 상기 주소와 동일한 위치에 다시 저장하는 것이다.
즉, 입력 메모리와 출력 메모리를 공유하여 하드웨어 구성을 간략하게 한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되지 않으며, 후술되는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상에서 상세히 설명한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은, 암호화 알고리즘의 하드웨어 구현시 동일한 암호화 연산을 수행하는 소자의 사용을 간략화하며, 입력 메모리와 출력 메모리를 공유함으로 메모리 사용을 극대화하는 효과가 있다. 따라서, 암호화 시스템의 전체적인 소비 전력을 감소시키는 효과가 있다.
도 1은 종래 기술에 따른 KASUMI 암호화 블록의 하드웨어 구성을 도시한 도면.
도 2는 종래 기술에 따른 KASUMI 암호화 블록 및 메모리 구조에 따라 암호화 함수를 도시한 도면.
도 3은 본 발명이 적용되는 KASUMI 암호화 알고리즘을 도시한 도면.
도 4는 본 발명이 적용되는 FLi암호화부 상세 구성의 일 예를 도시한 도면.
도 5는 본 발명이 적용되는 FOi암호화부 상세 구성의 일 예를 도시한 도면.
도 6은 본 발명이 적용되는 FIi암호화부 상세 구성의 일 예를 도시한 도면.
도 7은 본 발명에 따라 KASUMI 암호화 블록의 하드웨어 구성을 도시한 도면.
도 8은 본 발명에 따른 KASUMI 암호화 블록 및 메모리 구조에 따라 암호화 함수를 도시한 도면.

Claims (22)

  1. 길이가 2n인 입력 비트열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트열을 출력하는 암호화 장치에 있어서,
    제어신호에 따라 상기 제1서브비트 열을 입력하여 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 1암호화 비트열을 출력하거나, 제 2암호화 비트열을 입력하여 상기 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하는 제1암호화부와,
    상기 제어신호에 따라 상기 제 1 암호화 비트열을 입력하여 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2 , KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 4암호화 비트 열을 출력하거나, 상기 제 1 서브비트열을 입력하여 상기 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 상기 제 3암호화코드(KI 1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 2암호화 비트 열을 출력하는 제2암호화부와,
    상기 제1서브비트 열과 상기 제1암호화 비트열과 상기 제 2암호화 비트열들에, 동일한 크기의 길이가 n인 소정의 제 1암호화 코드(KL1,1, KL1,2)와 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2 , KI1,3)를 제공하는 키 스케줄러와,
    상기 제어신호에 따라 복수개의 다중화기들이 상기 제1서브비트 열을 출력하여 상기 제 1암호화부에 입력되거나, 상기 제2암호화부에 입력되어 상기 키 스케줄러로부터 제공되는 상기 제 1암호화코드(KL1,1, KL1,2)와 제2암호화 코드(KO1,1 , KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화 연산을 수행하도록 제어하는 제어기로 구성됨을 특징으로 하는 상기 장치.
  2. 제1항에 있어서, 상기 제어신호에 따라 상기 제 1서브비트 열을 출력하여 제1암호화부에서 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제1암호화비트 열을 출력하고, 상기 제1암호화 비트열을 입력하여 제2암호화부에서 제 2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 제 4암호화비트열을 출력하고 상기 제 2서브비트열을 출력하도록 제어한 후, 상기 제 4암호화비트 열과 상기 제 2서브비트 열을 배타적 논리합 연산하여 제 5암호화 비트열을 출력하도록 제어하는 제어기임을 특징으로 하는 상기 장치.
  3. 제1항에 있어서, 상기 제어신호에 따라 상기 제 1서브비트 열을 출력하여 제2암호화부에서 제 2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI 1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 제 2암호화비트열을 출력하고, 상기 제 2암호화비트열을 입력하여 제1암호화부를 통해 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하고 상기 제 2서브비트 열을 출력하도록 제어한 후, 상기 제 3암호화비트 열과 상기 제 2서브비트 열을 배타적 논리합 연산하여 제 6암호화 비트열을 출력하도록 제어하는 제어기임을 특징으로 하는 상기 장치.
  4. 제1항에 있어서, 상기 제 1서브비트 열과 상기 제 2서브비트 열을 임시로 저장하고 상기 제어기로부터 인가되는 제어신호에 따라 상기 제 1서브비트 열과 상기 제2 서브비트열을 출력하는 적어도 2개 이상의 레지스터를 더 포함하는 것을 특징으로 하는 상기 장치.
  5. 제 2항에 있어서, 상기 제어기는 복수개의 다중화기들에 제 1제어신호를 인가하여 상기 제1암호화부가 상기 제 1서브비트 열을 입력하여 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 상기 제1암호화 비트 열을 출력한 후, 제2암호화부가 상기 제1암호화 비트열을 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 제4암호화비트열을 출력하도록 제어하는 제어기임을 특징으로 하는 상기 장치.
  6. 제 3항에 있어서, 상기 제어기는 복수개의 다중화기들에 제 2 제어신호를 인가하여 상기 제2암호화부가 상기 제 1서브비트 열을 입력하여 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제3암호화코드(KI1,1, KI1,2 , KI1,3)에 의해 암호화함으로써 상기 제2암호화비트열을 출력한 후, 상기 제1암호화부에서 상기 제 2암호화 비트열을 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 상기 제 3암호화 비트 열을 출력하도록 제어하는 제어기임을 특징으로 하는 상기 장치.
  7. 길이가 2n인 제1입력 비트 열을 길이가 n인 제1 및 제2서브비트 열들로 분할하여 암호화 절차에 의해 암호화 연산을 수행하여 최종적으로 길이가 2n인 암호화 비트 열로 출력하는 암호화 방법에 있어서,
    제어기로부터 인가되는 제어신호에 따라 제1암호화부가 상기 길이가 n인 제1서브비트 열을 입력하여 키 스케줄러로부터 제공되는 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 1암호화 비트 열을 출력하거나, 제 2암호화부에서 출력되는 길이가 n인 제 2암호화 비트 열을 입력하여 상기 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하는 과정과,
    상기 제어기로부터 인가되는 제어신호에 의해 제2암호화부가 상기 길이 n인 상기 제 1 암호화 비트 열을 입력하여 상기 키 스케줄러로부터 제공되는 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2 , KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 4암호화 비트 열을 출력하거나, 상기 길이가 n인 상기 제 1 서브비트열을 입력하여 상기 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제 2암호화 비트 열을 출력하는 과정으로 구성되는 것을 특징으로 하는 상기 방법.
  8. 제7항에 있어서,
    제어신호에 따라 상기 제1암호화부가 상기 제1서브비트 열을 입력하여 키 스케줄러로부터 제공되는 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제1암호화 비트 열을 출력하는 과정과,
    상기 제2암호화부가 상기 제1암호화 비트열을 입력하여 키 스케줄러로부터 제공되는 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1 , KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 제 4 암호화비트열을 출력하는 과정과,
    상기 제4암호화비트열과 상기 제2서브비트 열을 배타적 논리합 연산하여 길이가 n인 제 5암호화 비트열을 출력하는 과정으로 구성됨을 특징으로 하는 상기 방법.
  9. 제7항에 있어서,
    제어신호에 따라 상기 제 2 암호화부가 상기 제1서브 비트열을 입력하여 키 스케줄러로부터 제공되는 제2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 상기 제2암호화 비트열을 출력하는 과정과,
    상기 제1암호화부가 상기 제2암호화 비트열을 입력하여 키 스케줄러로부터 제공되는 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제3암호화 비트열을 출력하는 과정과,
    상기 제3암호화비트열과 상기 제2서브비트 열을 배타적 논리합 연산하여 길이가 n인 제 6암호화 비트열을 출력하는 과정으로 구성됨을 특징으로 하는 상기 방법.
  10. 제7항에 있어서, 적어도 2개 이상의 레지스터가 상기 제어기로부터 인가되는 제어신호에 따라 상기 제 1서브비트 열과 상기 제 2서브비트 열을 임시로 저장하고, 출력하는 과정을 더 포함하는 것을 특징으로 하는 상기 방법.
  11. 제 8항에 있어서,
    상기 제어기가 복수개의 다중화기들에 제 1제어신호를 인가하여 상기 제 1 암호화부가 길이가 n인 제 1서브비트 열을 입력하여 상기 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제1암호화 비트 열을 출력하고, 상기 제2암호화부가상기 제1암호화 비트열을 입력하여 제2암호화 코드(KO1,1, KO1,2, KO1,3 )와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 제 4 암호화비트열을 출력하도록 제어하는 과정임을 특징으로 하는 상기 방법.
  12. 제 9항에 있어서,
    상기 제어기가 복수개의 다중화기들에 제 2제어신호를 인가하여 제2암호화부가 상기 제1서브비트 열을 입력하여 제 2암호화 코드(KO1,1, KO1,2, KO1,3)와 제 3암호화코드(KI1,1, KI1,2, KI1,3)에 의해 암호화함으로써 길이가 n인 상기 제2암호화비트열을 출력하고, 제1암호화부가 상기 제 2 암호화비트열을 입력하여 제1암호화 코드(KL1,1, KL1,2)에 의해 암호화함으로써 길이가 n인 제 3암호화 비트 열을 출력하도록 제어하는 과정임을 특징으로 하는 상기 방법.
  13. 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 장치에 있어서,
    상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 암호화부와,
    제어신호에 따라 메모리로부터 상기 길이가 m인 제2입력 비트열을 출력하여 상기 제 1암호화 비트 열과 암호화 연산하여 길이가 m인 제 2암호화 비트열을 출력하고 상기 제어신호에 상기 메모리에 상기 제 2암호화 비트열을 다시 저장하도록 제어하는 제어기로 구성되는 것을 특징으로 하는 상기 장치.
  14. 제 13항에 있어서,
    상기 제어기는 메모리에 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열 중 임의의 주소에 할당되어 있는 단위 크기의 제 1서브비트 열을 출력하여 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 단위 크기를 가지는 제2서브암호화 비트열을 출력하고 상기 메모리에 제어신호를 인가하여 상기 주소에 상기 제 2서브암호화 비트열을 다시 저장하도록 제어하는 제어기로 구성되는 것을 특징으로 하는 상기 장치.
  15. 제 13항에 있어서,
    상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 암호화부는 상기 메모리에 저장되어 있는 상기 제2입력 비트 열의 길이에 따라 상기 제 1암호화 연산을 반복적으로 수행하는 암호화부임을 특징으로 상기 장치.
  16. 제 13항에 있어서,
    상기 제어기는 상기 메모리에 읽기 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열 중 임의의 주소에 할당되어 있는 단위 크기의 제 1서브비트 열을 출력하여 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 단위 크기를 가지는 제2서브암호화 비트열을 출력하고 상기 메모리에 쓰기 제어신호를 인가하여 상기 주소에 상기 제 2서브암호화 비트열을 다시 저장하도록 제어하는 제어기로 구성되는 것을 특징으로 하는 상기 장치.
  17. 제 13항에 있어서,
    상기 메모리는 제어기의 제어신호에 따라 읽기동작과 쓰기동작을 수행하는 버퍼 메모리임을 특징으로 하는 상기 장치.
  18. 길이가 2n인 제1입력 비트 열을 입력하여 제 1암호화 연산을 수행하여 길이가 2n인 제 1암호화 비트 열을 출력하여 길이가 m인 제2입력 비트 열과 제 2 암호화 연산을 수행하여 최종적으로 길이가 m인 제 2암호화 비트열을 출력하는 방법에 있어서,
    암호화부가 상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 제 1암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 과정과,
    제어기가 메모리에 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열을 출력하고, 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 길이가 m인 제 2암호화 비트열을 출력하여 상기 메모리에 제어 신호를 인가하여 상기 제 2암호화 비트열을 다시 저장하는 과정으로 구성되는 것을 특징으로 하는 상기 방법.
  19. 제 18항에 있어서,
    상기 제어기가 메모리에 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열을 출력하고, 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 길이가 m인 제 2암호화 비트열을 출력하여 상기 메모리에 제어 신호를 인가하여 상기 제 2암호화 비트열을 다시 저장하는 과정은
    상기 제어기가 상기 메모리에 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열 중 임의의 주소에 할당되어 있는 단위 크기의 제 1서브비트 열을 출력하고, 상기 제 1암호화 비트 열과 제 2암호화 연산을 수행한 후, 단위 크기를 가지는 제2서브암호화 비트열을 출력하고 상기 제어신호에 따라 상기 메모리에 동일한 주소에 상기 제 2서브암호화 비트열을 다시 저장하도록 제어하는 과정임을 특징으로 하는 상기 방법.
  20. 제 18항에 있어서,
    상기 암호화부가 상기 제1입력 비트 열을 입력하여 키 스케줄러로부터 제공되는 길이가 4n인 암호화 코드에 의해 제 1암호화함으로써 길이가 2n인 제 1암호화 비트 열을 출력하는 과정은
    상기 암호화부가 상기 메모리에 저장되어 있는 상기 제 2입력 비트 열의 길이에 따라 상기 제 1암호화 연산을 반복적으로 수행하여 상기 제1암호화 비트열을 출력하는 과정임을 특징으로 상기 방법.
  21. 제 19항에 있어서,
    상기 제어기는 상기 메모리에 읽기 제어신호를 인가하여 상기 길이가 m인 제2입력 비트열 중 임의의 주소에 할당되어 있는 단위 크기의 제 1서브비트 열을 출력하여 상기 제 1암호화 비트 열과 암호화 연산을 수행한 후, 단위 크기를 가지는 제2서브암호화 비트열을 출력하고 상기 메모리에 쓰기 제어신호를 인가하여 상기 주소에 상기 제 2서브암호화 비트열을 다시 저장하는 과정임을 특징으로 하는 상기 방법.
  22. 제 21항에 있어서,
    상기 메모리는 제어기의 제어신호에 따라 읽기동작과 쓰기동작을 수행하는 버퍼 메모리임을 특징으로 하는 상기 방법.
KR10-2003-0007202A 2003-02-05 2003-02-05 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치 KR100516548B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2003-0007202A KR100516548B1 (ko) 2003-02-05 2003-02-05 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치
GB0402313A GB2398213B (en) 2003-02-05 2004-02-03 Method of designing optimum encryption function and optimized encryption apparatus in a mobile communication system
US10/770,486 US7447311B2 (en) 2003-02-05 2004-02-04 Method of designing optimum encryption function and optimized encryption apparatus in a mobile communication system
JP2004028523A JP2004240427A (ja) 2003-02-05 2004-02-04 移動通信システムにおける最適の暗号化関数を設計する方法及び最適の暗号化装置
CNB2004100283308A CN100382485C (zh) 2003-02-05 2004-02-05 设计最优加密函数的方法和优化的加密设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0007202A KR100516548B1 (ko) 2003-02-05 2003-02-05 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치

Publications (2)

Publication Number Publication Date
KR20040070956A KR20040070956A (ko) 2004-08-11
KR100516548B1 true KR100516548B1 (ko) 2005-09-22

Family

ID=31987550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0007202A KR100516548B1 (ko) 2003-02-05 2003-02-05 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치

Country Status (5)

Country Link
US (1) US7447311B2 (ko)
JP (1) JP2004240427A (ko)
KR (1) KR100516548B1 (ko)
CN (1) CN100382485C (ko)
GB (1) GB2398213B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100423811B1 (ko) * 2001-12-12 2004-03-22 한국전자통신연구원 카스미 암호화 알고리즘을 응용한 암호화 장치
US7636857B2 (en) * 2004-05-24 2009-12-22 Interdigital Technology Corporation Data-mover controller with plural registers for supporting ciphering operations
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
US7623658B2 (en) * 2004-08-23 2009-11-24 Broadcom Corporation Method and system for implementing the A5/3 encryption algorithm for GSM and EDGE compliant handsets
US7627113B2 (en) * 2005-02-08 2009-12-01 Broadcom Corporation Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets
US7869590B2 (en) * 2005-04-12 2011-01-11 Broadcom Corporation Method and system for hardware accelerator for implementing f9 integrity algorithm in WCDMA compliant handsets
WO2008044344A1 (fr) * 2006-10-12 2008-04-17 Panasonic Corporation Appareil de communication, circuit intégré à semi-conducteurs et dispositif électronique
US8553876B1 (en) * 2007-10-23 2013-10-08 Oracle America, Inc. High performance cryptography on chip multithreading processors
EP2237245B1 (en) 2008-01-18 2017-07-19 Fujitsu Limited Processor of data conversion function
JP5182295B2 (ja) * 2008-01-18 2013-04-17 富士通株式会社 暗号化装置及び暗号処理方法
WO2010019169A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Rom list-decoding of near codewords
JP5338327B2 (ja) * 2009-01-16 2013-11-13 富士通株式会社 暗号処理装置
JP5387295B2 (ja) * 2009-09-29 2014-01-15 富士通株式会社 暗号装置及び方法
US20110091035A1 (en) * 2009-10-20 2011-04-21 Sun Microsystems, Inc. Hardware kasumi cypher with hybrid software interface
WO2015173905A1 (ja) * 2014-05-14 2015-11-19 三菱電機株式会社 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
CN105281915B (zh) * 2015-11-04 2018-11-20 博宏信息技术有限公司 一种密码键盘生成密文的方法
CN108390875B (zh) * 2018-02-13 2020-08-07 沈阳航空航天大学 一种减少传输能耗的信息加密优化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3798359A (en) * 1971-06-30 1974-03-19 Ibm Block cipher cryptographic system
US4195196A (en) * 1973-10-15 1980-03-25 International Business Machines Corporation Variant key matrix cipher system
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
DK1376922T3 (da) * 2001-04-03 2014-10-27 Mitsubishi Electric Corp Krypteringsindretning
US7212631B2 (en) * 2001-05-31 2007-05-01 Qualcomm Incorporated Apparatus and method for performing KASUMI ciphering
KR100423811B1 (ko) * 2001-12-12 2004-03-22 한국전자통신연구원 카스미 암호화 알고리즘을 응용한 암호화 장치
US7796752B2 (en) * 2002-11-04 2010-09-14 Marvell International Ltd. Cipher implementation

Also Published As

Publication number Publication date
JP2004240427A (ja) 2004-08-26
GB0402313D0 (en) 2004-03-10
US7447311B2 (en) 2008-11-04
GB2398213B (en) 2005-12-14
US20040156499A1 (en) 2004-08-12
CN100382485C (zh) 2008-04-16
GB2398213A (en) 2004-08-11
CN1523810A (zh) 2004-08-25
KR20040070956A (ko) 2004-08-11

Similar Documents

Publication Publication Date Title
KR100516548B1 (ko) 이동 통신 시스템에서 최적화된 암호화 함수를 설계하는방법과 최적화된 암호화 장치
US5008938A (en) Encryption apparatus
US7885404B2 (en) Cryptographic systems and methods supporting multiple modes
AU2003213312C1 (en) Block cipher apparatus using auxiliary transformation
US6324286B1 (en) DES cipher processor for full duplex interleaving encryption/decryption service
US20010050989A1 (en) Systems and methods for implementing encryption algorithms
US20020006197A1 (en) Stream-cipher method and apparatus
JP2000138668A (ja) デジタルカオスモデルに基づくパケット交換回路網用の暗号化システム
US7783036B2 (en) Apparatus for encrypting/decrypting real-time input stream
US7796752B2 (en) Cipher implementation
GB2367461A (en) Encryption apparatus using Data Encryption Standard (DES)
US20020009196A1 (en) Encryption device using data encryption standard algorithm
US7760874B2 (en) Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7606363B1 (en) System and method for context switching of a cryptographic engine
US7688972B2 (en) 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
US20060013387A1 (en) Method and system for implementing KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
KR100749414B1 (ko) 무선 인터넷 시스템의 암호화 장치 및 그 방법과, 복호화장치 및 그 방법
US7583800B2 (en) Encryption apparatus and method in a wireless communications system
KR100547744B1 (ko) 이동통신시스템에서 최소의 소자를 사용하는 단일라운드의 암호화 장치 및 방법
KR20040108311A (ko) 라인달 블록 암호 장치와 그 암호화 및 복호화 방법
KR20210049412A (ko) Cbc 암호화 및 복호화를 통한 통신 방법 및 시스템
US20030053624A1 (en) Method for data stream encryption
KR20050117268A (ko) 에이이에스 온라인 라운드 키 생성회로

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: 20080704

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee