KR0171157B1 - 데스 알고리즘을 이용한 암호화 장치 - Google Patents

데스 알고리즘을 이용한 암호화 장치 Download PDF

Info

Publication number
KR0171157B1
KR0171157B1 KR1019950018653A KR19950018653A KR0171157B1 KR 0171157 B1 KR0171157 B1 KR 0171157B1 KR 1019950018653 A KR1019950018653 A KR 1019950018653A KR 19950018653 A KR19950018653 A KR 19950018653A KR 0171157 B1 KR0171157 B1 KR 0171157B1
Authority
KR
South Korea
Prior art keywords
bit
data
encryption
unit
encrypted
Prior art date
Application number
KR1019950018653A
Other languages
English (en)
Other versions
KR970002627A (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 KR1019950018653A priority Critical patent/KR0171157B1/ko
Publication of KR970002627A publication Critical patent/KR970002627A/ko
Application granted granted Critical
Publication of KR0171157B1 publication Critical patent/KR0171157B1/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/08Randomization, e.g. dummy operations or using noise

Landscapes

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

Abstract

본 발명은 무적격자로 부터의 데이터 도용을 효과적으로 방지할 수 있는 데스(DES) 알고리즘을 이용한 암호화 장치에 관한 것으로, 정보 데이터를 서로 다른 비트길이를 갖는 제 1 및 제 2 비트단위의 데이터로 분리하는 데이터 분리모듈(100); 상기 제 1 비트단위 데이터를 암호화하여 제 2 비트단위의 암호화된 데이터를 생성하는 제 1 암호화 모듈(200); 상기 제 1 암호화 모듈(200)에 의해 생성된 상기 제 2 비트단위 암호화된 데이터를 암호화하여 제 1 비트단위의 암호화된 데이터를 생성하는 제 2 암호화 모듈(300); 상기 제 1 및 제 2 암호화 모듈(200) 및 (300)에 의한 상기 암호화 과정이 기설정 횟수만큼 반복되도록 상기 제 2 비트단위의 암호화된 데이터를 상기 제 1 암호화 모듈(200)에 상기 제 2 비트단위의 데이터로서 제공하고, 상기 제 1 비트단위의 암호화된 데이터를 상기 제 1 및 제 2 암호화 모듈(200 및 300)에 상기 제 1 비트단위의 데이터로서 제공하는 암호화횟수 판정모듈(400); 상기 암호화횟수 판정모듈(400)에 의해 기설정횟수 만큼 암호화 과정이 반복되었을 때, 상기 제 1 및 제 2 암호화 모듈(200) 및 (300)의 제 1 및 제 2 비트단위 암호화된 데이터를 합쳐서 출력하는 출력 모듈(500)을 포함한다.

Description

데스 알고리즘을 이용한 암호화 장치
제1도는 종래의 데스(DES) 알고리증을 이용한 암호화 장치의 블록 구성도.
제2도는 제 1 도의 데스 알고리즘의 동작을 설명하기 위한 테이블의 구성을 예시하는 도면.
제3도는 본 발명에 따른 데스 알고리즘을 이용한 암호화 장치의 블록 구성도.
* 도면의 주요부분에 대한 부호의 설명
100 : 데이터 분리 모듈 200 : 제 1 암호화 모듈
300 : 제 2 암호화의 모듈 500 : 합성 및 출력 모듈
본 발명은 데스(DES) 알고리즘을 이용한 암호화 장치에 관한 것으로, 특히, 제 3자로 부터의 데이터 도용을 효과적으로 방지할 수 있는 데스(DES) 알고리즘을 이용한 암호화 장치에 관한 것이다.
암호화 알고리즘은 불법적 의도를 가진 제 3 자에 의한 정보 데이터의 획득을 방지하기 위하여 고안된 것으로, 그중에서 DES(Data encryption Standard) 알고리즘이 널리 사용되고 있다.
제1도는 종래의 데스(DES) 알고리즘을 이용한 암호화 장치를 개략적으로 도시한 블록 구성도로서, 암호화될 64-비트단위의 디지탈 정보 데이터가 비트단위 분리부(10)로 입력되는 것으로 도시된다.
비트단위 분리부(10)는 64-비트 정보 데이터를 동일한 비트 길이를 갖는 제 1 및 제 2 의 우측 및 좌측 32-비트 단위로 분리하여 제 1 및 제 2 비트 단위 유지로(12, 14)로 각기 제공한다. 비트 단위 분리부(10)에서 분리된 우측 32-비트 데이터는 다시 확장부(16)로 제공되고, 확장부(16)에서 확장 테이블(18)을 참조하여 48-비트로 확장된다. 예로서, 제2도(a)에 도시된 확장 테이블(18)을 참조하면, 우측 32-비트데이터중 1 번째 비트는 2, 48 번째 비트로 치환되고, 2, 3 번째 비트는 각기 3, 4 번째 비트로 치환되며, 또한 4 번째 비트는 5, 7 번째 비트로 치환되면서 확장된다. 제 1 확장부(16)에서 확장된 48-비트는 암호화를 위한 64-비트의 키 데이터와 함께 배타적 논리합 회로(20)로 제공된다.
이때, 암호화를 위한 64-비트의 키 데이터는 제2도(b)에 도시된 바와 같이 64-비트중에서 8개의 피리티 비트(parity bit)(7, 15, 23, 31, 39, 47, 55, 63)가 제거되어 56-비트의 키데이터로서 생성된 다음, 제2도(c)에 도시된 테이블에 의해 또 다시 48-비트의 키 데이터로 축소된다.
보다 상세히 말해서, 제2도(c)에 도시된 테이블을 참조하면, 56-비트의 키데이터에서 1, 2, 3, 4, 5, 6, 7, 8 번째 비트는 각기 5, 24, 7, 16, 0, 20, 18 번째 비트로 치환되고, 9번째 비트는 제거되는 방식으로 전체 56-비트가 48-비트의 키 데이터로 축소된다.
이렇게 축소된 48-비트의 키 데이터와 암호화될 48-비트의 확장 데이터는 배타적 논리합 회로(20)에 의해 연산되며, 연산된 결과의 48-비트 데이터는 각기 6-비트 단위의 데이터 블록(B1 내지 B8)으로 분활되어 S(subsitution)-테이블 처리부(22)로 제공된다. S-테이블 처리부(22)는 S-테이블(24)를 이용하여 입력되는 48-비트 데이터를 32-비트 데이터로 변환한다. 제2도(e)를 참조하여 보다 상세히 설명하면, S-테이블 처리부(22)는 6-비트 단위의 블록 데이터(B1 내지 B8)에 대응하는 S-박스(S1 내지 S8)를 구비하여, 각각의 S-박스(S1 내지 S8)는 6-비트의 입력 데이터를 제2도(d)에 예시된 S-테이블(24)를 이용하여 각기 4-비트 단위의 데이터로 변환한다.
S-테이블(24)를 이용한 S-테이블 처리부(22)에서 수행되는 변환 과정은 다음과 같이 설명된다. 제2도(e)에서, 먼저, 각각의 S-박스에 입력되는 6-비트의 데이터중에서 1, 6 번째 비트의 값을(r)로 설정하고, 2, 3, 4, 5 번째 비트의 값을(c)로 설정한다. 또한, 제2도(d)에 도시된 S-테이블(24)에서, 세로축에는 S-테이블 처리부(22)의 S1 내지 S8의 S-박스가 나열되고, 가로축에는 0 내지 15의 값이 나열되어 있다.
예로, S1에 입력되는 6-비트 데이터가 100001라 가정하면, 1, 6 번째 비트의 값(r) 11은 십진수 3에 해당되고, 2, 3, 4, 5 번째 비트의 값(c) 0은 십진수 0에 해당된다. 이러한(r) 및 (c)의 값, 즉, 3 및 0을 제2도(d)에 도시된 S-테이블(24)의 세로축과 가로축에 각기 대비하면, 15가 검색된다. 이때 15에 대한 이진수 값은 1111로서 박스의 출력단자(1)(2)(3)(4)를 통해 출력된다.
따라서, 6-비트 단위의 블록 데이터(B1 내지 B8)가 각기 대응하는 S-박스를 통하여 4-비트 데이터로서 출력됨으로써, S-테이블 처리부(22)는 48-비트 데이터를 32-비트 데이터로 변환하여 출력하게 된다.
S-테이블(22)에 의해 32-비트 단위로 변환된 데이터는 P(permutation)-테이블 처리부(26)로 제공된다. P-테이블 처리부(26)는 제2도(f)에 예시된 P-테이블(28)을 이용하여 32-비트 데이터의 각 비트의 순서를 바꿈으로써 암호화된 32-비트 데이터로 변환한다. P-테이블 처리부(26)에서 변환된 우측 32-비트 데이터는 다음단의 배타적 논리합 회로(30)로 제공된다.
한편, 비트단위 분리부(10)에 의해 분리되고, 제 2 비트단위 유지부(14)에 제공된 제 2의 좌측 32-비트 데이터는 상술한 P-테이블 처리부(26)에서 출력된 32-비트 데이터와 배타적 논리합 회로(30)에서 배타적 논리합되어 새로운 우측 32-비트 데이터로서 생성된다.
또한, 제 1 비트단위 유지부(12)로부터 제공되는 우측 32-비트 데이터는 새로운 좌측 32-비트 데이터로서 생성되며, 상술한 배타적 논리합 회로(30)에서 생성된 새로운 우측32-비트 데이터와 함께 상술된 과정을 16 + 4t 회(g 는 0, 1, 2, 3, ....)까지 반복된다. 이러한 반복적인 단계를 통하여 최종적으로 구한 우측 및 좌측의 32-비트 데이터를 합성한 64-비트 데이터가 암호화된 데이터로서 최종 출력된다.
그러나, 상술한 바와 같이, DES 알고리즘은 암호화될 데이터를 동일한 비트 길이를 갖는 좌측 우측 비트로 분리함으로 인하여 암호화될 데이터의 확장성이 미흡하며, 또한, 암호화 모듈에서 암호화될 우측 또는 좌측 비트가 동일한 확장 수단에 의해 동일한 비트로 확장됨으로써, 제 3 자에서 쉽게 암호화된 정보 데이터가 쉽게 노출되는 문제점이 있었다.
따라서, 본 발명은 상기의 문제점을 해결하기 위하여 안출한 것으로, 본 발명의 목적은 허가 받지 않는 제 3 자에게 암호화된 데이터가 쉽게 도용되지 못하도록 하는 개선된 데스(DES) 알고리즘을 이용한 암호화 장치를 제공하는데 있다.
상기의 목적을 달성하기 위한 본 발명에 따르면, 정보 데이터를 서로 다른 비트길이를 갖는데 제 1 및 제 2 비트단위의 데이터로 분리하는 데이터 분리 수단; 상기 데이터 분리 수단에 의해 분리된 제 1 비트단위 데이터를 상기 키 데이터와 함수연산하여 상기 제 2 비트단위 데이터와 동일한 비트길이를 갖는 데이터를 생성하고, 상기 생성된 데이터를 상기 제 2 비트단위 데이터와 비트단위로 배타적 논리합연산하여 제 2 비트단위의 암호화된 데이터를 생성하는 제 1 암호화 수단; 상기 제 1 암호화수단에 의해 생성된 논리합 연산된 제 2 비트단위 데이터를 상기 키 데이터와 함수연산하여 상기 제 1 비트단위 데이터와 동일한 비트길이를 갖는 테이터를 생성하고, 상기 생성된 데이터를 상기 제 1 비트단위 데이터와 비트단위 배타적 논리합 연산하여 제 1 비트단위의 암호화된 데이터를 생성하는 제 2 암호화 수단; 상기 제 1 및 제 2 암호화 수단에 의한 상기 암호화 과정이 기설정 횟수만큼 반복되도록 상기 제 2 비트단위의 암호화된 데이터를 상기 제 1 암호화 수단에 상기 제 2 비트단위의 데이터로서 제공하고, 상기 제 1 비트단위의 암호화된 데이터를 상기 제 1 및 제 2 암호화 수단에 상기 제 1 비트 단위의 데이터로서 제공하는 암호화횟수 판정수단; 사기 암호화횟수 판정수단에 의해 기설정횟수 만큼 암호화 과정이 반복되었을 때 상기 제1 및 제 2 암호화 수단의 제 1 및 제 2 비트단위 암호화된 데이터를 합쳐서 출력하는 출력수단을 포함하는 것을 특징으로 한다.
이하, 본 발명은 첨부된 도면을 참조하여 다음과 같이 상세히 설명될 것이다.
제3도는 본 발명에 따른 데스(DES) 알고리즘을 이용한 암호화 장치의 블록구성도로서, 데이터 분리 모듈(100)D, 홀수번째 암호화 모듈(200), 짝수번째 암호화 모듈(300), 암호화 진행횟수 판정 모듈(400) 및 출력모듈(500)을 포함한다.
데이터 분리 모듈(100)은 초기 변위부(120)와 좌/우측 분리부(160)로 구성된다.
초기 변위부(120)는 암호화될 64-비트 단위의 정보 데이터를 패턴화 테이블을 근거로 다른 데이터로 변형하여 좌/우측 분리부(120)로 제공한다.
좌/우측 분리부(160)는 초기 변위부(120)에서 제공된 64-비트 정보 데이터를 상이한 비트 길이, 예로 24-비트 및 40-비트 길이를 갖는 제 1 및 제 2 의 좌측 및 우측 데이터로 분리하여 우측 40-비트 데이터를 홀수번째 암호화 모듈(200) 및 짝수번째 암호화 모듈(300)의 배타적 논리합 회로(360)로 제공하고, 좌측 24-비트 데이터를 홀수번째 암호화 모듈(200)의 배타적 논리합 회로(260)로 제공한다.
홀수번째 암호화모듈(200)은 암호화될 정보 데이터와 키 데이터를 함수연산하여 암호화된 데이터를 생성하는 수단으로, 확장 처리부(210)와, 확장 테이블(215), 키 처리부(220), 배타적 논리합 회로(230), S-테이블 처리부(240), S-테이블(245), P-테이블 처리부(250), P-테이블(255) 및 배타적 논리합 회로(260)로 구성된다.
확장 처리부(210)는 좌/우측 분리부(160)로부터 제공되는 우측 40-비트 데이터를 확장 테이블(215)을 이용하여 하위 8-비트가 확장된 48-비트를 생성하여 배타적 논리합(230)으로 제공한다.
키 처리부(220)는 암호화될 정보 데이터를 암호화하는데 사용되는 64-비트 암호화 키 데이터를 48-비트 키 데이터로 변형 및 축소하여 배타적 논리합회로(230)로 제공한다.
배타적 논리합 회로(230)는 확정 처리부(210)로부터 제공되는 48-비트 데이터와 키 처리부(220)로부터 제공되는 48-비트 키 데이터를 배타적 논리합 연산하여 S-테이블 처리부(240)로 제공한다.
S-테이블 처리부(240)는 배타적 논리합 회로(230)로부터 출력되는 48-비트 데이터를 S-테이블(245)에 의거하여 24-비트 데이터로 축소한 다음 P-테이블 처리부(250)로 제공한다.
P-테이블 처리부(250)는 S-테이블 처리부(240)로부터 출력된 24-비트 데이터를 P-테이블(255)를 참조하여 24-비트 데이터로 변환하여 배타적 논리합 회로(260)에 제공한다.
배타적 논리합 회로(260)은 P-테이블 처리부(250)로부터 제공되는 24-비트 데이터와 좌/우측 분리부(160)로부터 제공되는 좌측 24-비트 데이터를 비트단위(bit-by bit basis)로 배타적 논리합 연산하여 논리 합 연산된 24-비트 데이터를 암호화 진행횟수 판정모듈(400)로 제공한다.
한편, 짝수번째 암호화모듈(300)은 확장 처리부(310)와, 확장 테이블(315), 키처리부(320), 배타적 논리합 회로(330), S-테이블 처리부(340), S-테이블(345), P-테이블 처리부(350), P-테이블(355) 및 배타적 논리합 회로(360)로 구성된다.
확장 처리부(310)는 홀수번째 암호화모듈(200)로부터 출력되는 우측 24-비트 데이터를 확장 테이블(315)을 참조하여 24-비트가 확장된 48-비트를 생성하여 배타적 논리합(330)으로 제공한다. 본 발명에 따르면, 확장되는 24-비트는 진행상태 신호발생부(270)로부터 출력되는 우측 24-비트 데이터를 비트마다 이중화하는 방법으로 확장된다.
배타적 논리합 회로(330)는 확장 처리부(310)로부터 제공되는 48-비트 데이터와 키 처리부(320)로부터 제공되는 48-비트 키 데이터를 배타적 논리합 연산하여 연산된 48-비트 데이터를 S-테이블 처리부(340)로 제공한다.
S-테이블 처리부(340)는 배타적 논리합 회로(330)로부터 출력된 48-비트 데이터를 S-테이블 (345)에 의거하여 24-비트로 축소한 다음 P-테이블 처리부(350)로 제공한다.
P-테이블 처리부(350)는 S-테이블 처리부(340)로부터 출력되는 24-비트 테이타를 P-테이블(355)을 이용하여 40-비트 데이터로 변화하여 배타적 논리합 회로(360)로 제공한다.
배타적 논리합 회로(360)는 P-테이블 처리부(350)로부터 제공되는 40-비트 데이터와 좌/우측 분리부(160)로부터 제공되는 우측 40-비트 데이터를 배타적 논리합 연산하여 논리합 연산된 40-비트 데이터를 암호화 진행횟수 판정모듈(400)의 진행상태 신호발생부(430)로 제공한다.
한편, 암호화 진행횟수 판정모듈(400)은 제 1 진행상태 신호발생부(410), 제 1 진행횟수 판정부(420), 제 2 진행상태 신호발생부(430), 제 2 진행횟수 판정부(440)로 구성된다.
제 1 진행상태 신호발생부(410)는 배타적 논리합 회로(260)에 의해 배타적 논리합 연산된 출력이 제공될 때마다 홀수번째 암호화 암호화모듈(200)에서 암호화가 수행됨을 나타내는 홀수번째 암호화 진행상태신호(Add-o)를 생성하는 한편, 배타적 논리합 회로(260)에서 출력된 24-비트 데이터를 제 1 진행횟수 판정부(420)로 제공한다.
제 1 진행횟수 판정부(420)는 제 1 진행상태 신호발생부(410)에서 발생된 홀수번째 암호화 진행상태신호(Add-o)를 카운트하고, 현재 카운트 홀수번째 암호화 진행횟수와 기설정된 진행횟수, 예, 16 회를 비교하여, 그 비교 결과에 따라 24-비트 데이터를 좌측 24-비트 데이터로서 짝수번째 암호화 모듈(300)의 확장거리부(310) 및 홀수번째 암호화모듈(200)의 배타적 논리합 회로(260)로 제공하거나, 또는 최종의 암호화된 데이터로서 출력을 위하여 출력 모듈(500)로 제공한다.
제 2 진행상태 신호발생부(430)는 논리합 회로(360)에 의해 배타적 논리합 연산된 출력이 제공될 때마다 짝수번째 암호화 암호화모듈(300)에서 암호화가 수행됨을 나타내는 짝수번째 암호화 진행상태신호(Add-e)를 생성하는 한편, 배타적 논리합 회로(360)에서 출력된 40-비트 데이터를 제 2 진행 횟수 판정부(440)로 제공한다.
제 2 진행횟수 판정부(440)는 제 2 진행상태 신호발생부(430)에서 발생된 짝수번째 암호화 진행상태신호(Add-e)를 카운트하고, 현재 카운트된 짝수번째 암호화 진행횟수와 기설정된 진행횟수, 예로, 16 회를 비교하여 그 비교 결과에 따라 40-비트 데이터를 우측 40-비트 데이터로서 홀수번째 암호화모듈(200)의 확장처리부(210) 및 짝수번째 암호화 모듈(300)의 배타적 논리합 회로(360)로 제공하거나, 또는 최종의 암호화된 데이터로서 출력을 위하여 출력 모듈(500)로 제공한다.
출력모듈(500)은 합성부(510) 및 초기 역변위부(520)로 구성된다.
합성부(510)는 16 회 반복에 따른 암호화 동작이 완료되면, 제 1 및 제 2 진행횟수 판정부(420) 및 (440)로부터 각기 제공되는 좌측 24-비트와 우측 40-비트를 합쳐서 초기 역변위부(520)로 제공한다.
초기 역변위부(520)는 초기 변위부(120)내 도시안된 패턴 테이블의 역과정을 수행할 수 있는 역패턴 테이블은 초기 역변위부(520)에 내장되었으며, 합성부(510)로부터 제공되는 64-비트 데이터를 초기 변위부(110)의 역순서로 변형시킨 후에 출력한다.
상술한 바와 같이 구성된 본 발명을 보다 상세히 설명하면 다음과 같다.
제3도에 도시된 바와 같이, 암호화될 64-비트 단위의 정보 데이터가 초기 변위부(120)로 입력되며, 초기 변위부(120)에서 암호화될 64-비트의 정보데이터는 도시되지 않은 패턴테이블을 통해 변형된 다음 좌/우측 분리부(160)로 제공된다.
좌/우측 분리부(160)에서, 초기 변위부(120)로부터 제공되는 64-비트 데이터는 좌측 24-비트와 우측 40-비트로 상이한 비트길이로 분리된 다음, 좌측 24-비트는 홀수번째 암호화 모듈(200)의 배타적 논리합 회로(260)로 제공되는 한편, 우측 40-비트는 홀수번째 암호화모듈(200)의 확장 처리부(210)와 짝수번째 암호화 모듈(300)의 배타적 논리합 회로(360)로 제공된다.
홀수번째 암호화 모듈(200)의 확장 처리부(210)에서는 좌/우측 분리부(160)로부터 제공된 우측 40-비트 데이터를 확장 테이블(215)을 참조하여 48-비트 데이터로 확장한 후, 확장된 48-비트 데이터를 배타적 논리합 회로(230)로 제공한다.
한편, 암호화를 위한 64-비트 키 데이터는 키 처리부(220)에 의해 48-비트 키 데이터로 변환된다음 배타적 논리합 회로(230)로 제공된다. 배타적 논리합 회로(230)에서, 확장 처리부(210)로부터 제공된 확장된 48-비트 데이터는 키 처리부(220)로부터 제공된 48-비트 키 데이터와 비트 단위로 배타적 논리합 연산된다. 배타적 논리합 회로(230)에서 연산된 48-비트 데이터는 S-테이블 처리부(240)와 S-테이블(245)에 의거하여 24-비트 데이터로서 축소변환되어 P-테이블(240)로 제공된다.
P-테이블 처리부(250)에서, S-테이블 처리부(240)로부터 출력된 24-비트 데이터는 P-테이블(255)을 참조하여 24-비트 데이터로 변형된 다음 배타적 논리합 회로(260)로 제공된다.
배타적 논리합 회로(260)는 P-테이블 처리부(250)로부터 제공된 24-비트 데이터와 좌/우측 분리부(160)로부터 제공되는 좌측 24-비트 데이터를 비트단위로 배타적 논리합 연산하여 논리 합 연산된 24-비트 데이터를 암호화 진행횟수 판정모듈(400)의 제 1 진행상태 신호발생부(410)로 제공한다.
이때, 제 1 진행상태 신호발생부(410)는 배타적 논리합회로(260)에 의해 배타적 논리합 연산이 진행될 때마다 홀수번째 암호화 암호화모듈(200)에서 암호화가 수행됨을 나타내는 홀수번째 암호화의 진행상태신호(Add-o)를 생성하고, 이 홀수번째 암호화 진행상태신호(Add-o)를 제 1 진행회수 판정부(420)로 제공한다.
제 1 진행횟수 판정부(420)는 제 1 진행상태신호 발생부(410)로부터 생성된 홀수번째 암호화 진행상태신호(Add-o)를 카운트하여 홀수번째 암호화 모듈(200)에서 암호화가 진행된 횟수를 카운트한다. 이때, 제 1 진행횟수 판정부(420)는 카운트된 암호화진행횟수를 기설정진행횟수, 즉, 16회와 비교하여, 카운트된 암호화 진행횟수가 기설정진행횟수보다 적으면, 제 1 진행상태신호발생부(410)로부터 전달되는 24-비트 데이터를 좌측 24-비트 데이터로서 홀수번째 암호화 모듈(200)의 배타적 논리합회로(260)와 짝수번째 암호화 모듈(200)의 확장처리부(310)로 출력함으로써 홀수번째 및 짝수번째 암호화 모듈(200 및 300)에서 기설정 횟수만큼의 암호화가 진행되도록 한다. 그러나, 비교결과 카운트된 암호화 진행횟수가 기설정진행횟수보다 크거나 같으면, 제 1 진행회수 판정부(420)는 제 1 진행상태신호 발생부(410)로부터 제공된 24-비트 데이터를 합성부(510)로 출력한다.
한편, 짝수번째 암호화 모듈(300)에서 확장 처리부(310)는 제 1 진행상태신호 발생부(410)로부터 제공된 24-비트 데이터를 화장 테이블(315)를 참조하여 48-비트 데이터로 확장한 다음, 배타적 논리합 회로(330)로 제공한다. 배타적 논리합 회로(330)는 확장된 48-비트 데이터와 키 처리부(320)로부터 48-비트 데이터로 감출된 키 데이터를 비트 단위로 논리합 연산하여 S-테이블(340)로 출력한다.
S-테이블(340)는 배타적 논리합 회로(330)로부터 제공된 48-비트 데이터를 S-테이블(345)을 참조하여 24-비트 데이터로 변형한 다음 P-테이블 처리부(350)로 제공하게 되고, P-테이블 처리부(350)에서는 P-테이블(335)을 참조하여 우측 24-비트 데이터를 40-비트 데이터로 변형하여 배타적 논리합 회로(360)로 출력한다.
배타적 논리합 회로(360)는 P-테이블 처리부(350)로부터 제공되는 40-비트 데이터와 좌/우측 분리부(160)로부터 제공되는 좌측 40-비트 데이터를 배타적 논리합 연산하여 배타적 논리 합 연산된 40-비트 데이터를 제 2 진행상태 신호발생부(430)로 출력된다.
이때, 제 2 진행상태 신호발생부(430)는 배타적 논리합 회로(360)에 의해 배타적 논리합 연산이 진행될 때 짝수번째 암호화 암호화모듈(300)에서 암호화가 수행됨을 나타내는 짝수번째 암호화 진행상태신호(Add-e)를 생성하고 이 짝수번째 암호화 진행상태 신호(Add-e)와 함께 배타적 논리합 회로(360)에서 출력된 40-비트 데이터를 제2 진행회수 판정부(440)로 제공한다.
제 2 진행횟수 판정부(440)는 제 2 진행상태신호 발생부(430)로부터 제공된 짝수번째 암호화 진행상태신호(Add-e)를 카운트하여 짝수번째 암호화 모듈(300)에서 암호화가 진행된 횟수를 카운트한다. 이때, 제 2 진행횟수 판정부(440)는 카운트된 암호화진행횟수를 기설정진행횟수, 즉 16회와 비교하여, 카운트된 암호화 진행횟수가 기설정진행횟수보다 적으면 제 2 진행상태신호발생부(430)로부터 전달하는 40-비트 데이터를 우측 40-비트 데이터로서 홀수번째 암호화 모듈(200)의 확장 처리부 (210)와 짝수번째 암호화 모듈(300)의 배타적 논리합 회로(360)로 제공함으로써 홀수 및 짝수번째 암호화 모듈(200 및 300)에서 기설정 횟수만큼 의 암호화가 계속 진행되도록 한다. 그러나, 비교결과, 카운트된 암호화 진행횟수가 기설정진행횟수보다 크거나 같으면, 제 2 진행횟수 판정부(440)는 제 2 진행상태 신호발생부 (430)로부터 전달된 40-비트 데이터를 합성부(510)로 출력된다.
따라서, 제 1 및 제 2 진행횟수 판정부(430) 및 (440)에 의해 홀수번째 및 짝수번째 암호화 진행횟수가 16회로 완료된 것이 판정되면, 합성부(510)에서는 24-비트 데이터와 40-비트 데이터를 합쳐서 64-비트 데이터로 암호화된 데이터를 초기 역변위부(520)로 출력된다.
초기 역변위부(520)는 합성부(510)로부터 제공되는 64-비트 데이터를 초기 변위부(120)의 역순서로 변형시킨 후에 최종 암으로 된 64-비트 정보 데이터로서 출력한다.
그러므로, 이상에서 설명된 바와 같이 암호화될 정보 데이터를 좌/우측 분리할 때 비트 길이를 다르게 함으로써, 또한 종래 기술의 암호화 장치보다 제 3 자에의한 공격에 효과적으로 대응할 수 있으며, 또한 종래 기술의 암호화 장치에 비하여 두배의 암호화 효과가 있기 때문에 그에 따라 암호화 과정을 반복할 수 있는 시간을 반으로 줄일 수 있거나 또는 2 배의 데이터량을 암호화 처리할 수 있는 장점이 있다.

Claims (3)

  1. 암호화될 정보데이터를 키 데이터를 이용하여 암호화하는 장치에 있어서: 상기 정보 데이터를 서로 다른 비트길이를 갖는 제 1 및 제 2 비트단위의 데이터로 분리하는 데이터 분리수단(100); 상기 데이터 분리 수단(100)에 의해 분리된 제 1 비트단위 데이터를 상기 키 데이터와 함수연산하여 상기 제 2 비트단위 데이터와 동일한 비트길이를 갖는 데이터를 생성하고, 상기 생성된 데이터를 상기 제 2 비트단위 데이터와 비트단위로 배타적 논리합 연산하여 제 2 비트단위의 암호화된 데이터를 생성하는 제 1 암호화 수단(200); 상기 제 1 암호화 수단(200)에 의해 생성된 논리합 연산된 제 2 비트단위 데이터를 상기 키 데이터와 함수연산하여 상기 제 1 비트단위 데이터와 동일한 비트길이를 갖는 데이터를 생성하고, 상기 생성된 데이터를 상기 제 1 비트단위 데이터와 비트단위로 배타적 논리합 연산하여 제 1 비트단위의 암호화된 데이터를 생성하는 제 2 암호화 수단(300); 상기 제 1 및 제 2 암호화 수단(200) 및 (300)에 의한 상기 암호화 과정이 기설정 횟수만큼 반복되어도 상기 제 2 비트단위의 암호화된 데이터를 상기 제 1 암호화 수단(200)에 상기 제 2 비트단위의 데이터로서 제공하고, 상기 제1 비트단위의 암호화된 데이터를 상기 제 1 및 제 2 암호화된 수단(200 및 300)에 상기 제 1 비트단위의 데이터로서 제공하는 암호화횟수 판정수단(400); 상기 암호화횟수 판정수단(400)에 의해 기설정횟수 만큼 암호화 과정이 반복되었을 때, 상기 제 1 및 제 2 암호화 수단(200) 및 (300)의 제 1 및 제 2 비트단위 암호화된 데이터를 합쳐서 출력하는 출력수단(500)을 포함하는 것을 특징으로 하는 암호화 장치.
  2. 제1항에 있어서, 상기 제 1 비트단위는 24-비트 또는 40-비트이며, 상기 제 2 비트단위인 40-비트 또는 24-비트인 것을 특징으로 하는 데스(DES0 알고리즘을 이용한 암호화 장치.
  3. 제1항에 있어서, 상기 암호화횟수 판정수단(400)은: 상기 제 1 암호화 수단(200)에서 상기 제 2 비트단위의 암호화된 데이터가 생성될 때 마다 상기 제 1 암호화 수단(200)에서 암호화 과정이 수행됨을 나타내는 제 1 암호화 진행상태신호(Add-o)를 생성하는 제 1 진행상태 신호 발생부(410); 상기 제 2 암호화 수단(300)에서 상기 제 1 비트단위의 암호화된 데이터가 생성될 때마다 상기 제 2 암호화 수단(300)에서 암호화 과정이 수행됨을 나타내는 제 2 암호화 진행상태신호(Add-e)를 생성하는 제 2 진행상태 신호 발생부(430); 상기 제 1 진행상태신호발생부(410)에서 생성된 제 1 암호화 진행상태신호(Add-o)를 카운트하여 카운트된 횟수가 상기 기설정횟수보다 적을 때 상기 제 1 암호화 수단(200)의 제 2 비트단위의 암호화된 데이터를 상기 제 2 비트단위 데이터로서 상기 제 1 암호화 수단(200)에 제공하고, 상기 카운트된 횟수가 상기 기설정횟수보다 크거나 같을 때 상기 제 1 암호화 수단(200)의 제 2 비트단위의 암호화된 데이터를 상기 출력수단(500)으로 제공하는 제 1 진행횟수 판정부(420); 상기 제 2 진행상태신호발생부(430)에서 생성된 제 2 암호화 진행상태신호(Add-e)를 카운트하여 카운트된 횟수가 상기 기설정횟수보다 적을 때 상기 제 2 암호화 수단(300)의 제 1 비트단위의 암호화된 데이터를 상기 제 1 비트단위 데이터로서 상기 제 1 및 제 2 암호화 수단(200 및 300)에 제공하고, 상기 카운트된 횟수가 사기 기설정횟수보다 크거나 같을 때 상기 제 2 암호화 수단(300)의 제 1 비트단위의 암호화된 테이터를 상기 합성 및 출력 수단(500)으로 제공하는 제 2 진행횟수 판정부(420)를 구비하는 것을 특징으로 하는 암호화 장치.
KR1019950018653A 1995-06-30 1995-06-30 데스 알고리즘을 이용한 암호화 장치 KR0171157B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950018653A KR0171157B1 (ko) 1995-06-30 1995-06-30 데스 알고리즘을 이용한 암호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950018653A KR0171157B1 (ko) 1995-06-30 1995-06-30 데스 알고리즘을 이용한 암호화 장치

Publications (2)

Publication Number Publication Date
KR970002627A KR970002627A (ko) 1997-01-28
KR0171157B1 true KR0171157B1 (ko) 1999-03-30

Family

ID=19419101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950018653A KR0171157B1 (ko) 1995-06-30 1995-06-30 데스 알고리즘을 이용한 암호화 장치

Country Status (1)

Country Link
KR (1) KR0171157B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144745A (en) * 1997-04-07 2000-11-07 Fujitsu Limited Method of and apparatus for retaining and verifying of data on recording medium
KR200178895Y1 (ko) * 1999-10-07 2000-04-15 박래훈 물 순환식 유기물 메탄화 처리장치

Also Published As

Publication number Publication date
KR970002627A (ko) 1997-01-28

Similar Documents

Publication Publication Date Title
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
US5566099A (en) Pseudorandom number generator
EP0618701B1 (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
US5623548A (en) Transformation pattern generating device and encryption function device
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US6940975B1 (en) Encryption/decryption apparatus, encryption/decryption method, and program storage medium therefor
EP0518315B1 (en) System and method for blockwise encryption of data
EP0454187B1 (en) Data randomization equipment
AU687306B2 (en) Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
EP0907269B1 (en) Encryption device for information in binary code
US7212633B2 (en) Expansion key generating device, encryption device and encryption system
EP1059760A1 (en) Method for the block-encryption of discrete data
KR0171157B1 (ko) 데스 알고리즘을 이용한 암호화 장치
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
KR0159385B1 (ko) 데스 알고리즘을 이용한 암호화 장치
KR0143680B1 (ko) 데스 알고리즘을 이용한 암호화장치
JPH09325881A (ja) 擬似乱数発生装置
JPH1124558A (ja) 暗号装置
JP3782210B2 (ja) 暗号装置
JP2927079B2 (ja) データ暗号化方法およびデータ暗号化装置
KR100226867B1 (ko) 무선 통신의 스트림 암호 시스템
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
EP1043863B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks
KR100262384B1 (ko) 암호화 방법 및 장치(Encryption Method and Apparatus)

Legal Events

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

Payment date: 20111004

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee