KR20040038777A - 데이터 암호화 방법 - Google Patents

데이터 암호화 방법 Download PDF

Info

Publication number
KR20040038777A
KR20040038777A KR1020030075808A KR20030075808A KR20040038777A KR 20040038777 A KR20040038777 A KR 20040038777A KR 1020030075808 A KR1020030075808 A KR 1020030075808A KR 20030075808 A KR20030075808 A KR 20030075808A KR 20040038777 A KR20040038777 A KR 20040038777A
Authority
KR
South Korea
Prior art keywords
block
binary data
series
encoding
encryption
Prior art date
Application number
KR1020030075808A
Other languages
English (en)
Inventor
우진무
리왕챠오
Original Assignee
하이-오 인폼테크 에스디엔 비에이취디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 하이-오 인폼테크 에스디엔 비에이취디 filed Critical 하이-오 인폼테크 에스디엔 비에이취디
Publication of KR20040038777A publication Critical patent/KR20040038777A/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
    • 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
    • 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

Landscapes

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

Abstract

블럭 암호화 및 비밀 키를 사용하여 2진 부호화된 데이터를 암호화하는 방법은 한 블럭씩 전환되는 암호를 상기 키로부터 생성하는 것을 특징으로 한다. 하드웨어 구현예는 암호 생성 스테이지(12,14,16,18,20) 및 암호 적용 스테이지(24,26, 28,30)를 구비한다. 상기 암호 적용 스테이지는 단지 간단한 AND, XOR 및 OR의 스위칭 동작만으로 암호화를 수행하는 논리 회로를 사용함으로써, 속도가 매우 빠른 성능을 허용한다.

Description

데이터 암호화 방법{Data encryption method}
본 발명은 데이터 암호화 방법 및 대응하는 암호 해독 방법에 관한 것이다.본 발명은 또한 소프트웨어의 형태를 이루고 있을 수도 있고, 하드웨어의 형태를 이루고 있을 수도 있으며, 그리고 이들을 조합한 형태를 이루고 있을 수도 있는, 그러한 방법을 구현하는 데 사용하기 위한 제품에 관한 것이다.
당업계에서는 암호 키의 특성에 기초하여, 비대칭 암호화 시스템 및 대칭 암호화 시스템과 같은 2가지 유형으로 암호화 시스템이 분류되어 왔다. 비대칭 암호화 시스템은 또한 복식 키(dual-key) 시스템 또는 공개 키 시스템으로 언급된다. 상기 공개 키 암호화 시스템에 있어서는, 공개 키 및 비밀 키가 존재한다. 상기 공개 키는 공개용으로 만들어진 것이지만 상기 비밀 키는 비밀 상태를 유지한다. 암호화는 상기 공개 키로 수행되지만 암호 해독은 상기 비밀 키로 수행된다. 상기 공개 키 및 비밀 키는 완전히 상이하며 특정한 것을 다른 것으로부터 추론해서 유도해 내기가 어렵다. 따라서, 암호화할 수 있는 능력은 암호 해독할 수 있는 능력과는 별개일 수 있다. 대칭 암호화 시스템은 또한 단일-키 시스템, 비밀-키 시스템 또는 전형적인 암호화 시스템으로 언급된다. 상기 비밀-키 시스템에 있어서, 암호화 및 암호 해독를 위한 키는 정확히 동일한 것일 수도 있고, 서로로부터 추론해서 용이하게 유도해 낼 수도 있다. 비밀-키 시스템은 스트림 암호화 시스템 및 블럭 암호화 시스템으로 분류될 수 있다. 스트림 암호화 시스템에 있어서는, 보통( plain) 데이터가 한 요소씩을 기초로 하여 암호화된다. 이와는 대조적으로, 블럭 암호화 시스템에 있어서는, 보통 데이터가 각각의 블럭이 복수 개의 요소를 포함하는 블럭들로 나뉘어지고, 암호화는 한 블럭씩을 기초로 하여 수행된다.
본 발명은 모든 디지털 데이터가 표시될 수 있는 2진 부호화된 정보(이하에서는 간단히 "2진 데이터"로서 언급됨)의 블럭에 따라 동작하는 대칭 또는 비밀-키 암호화 시스템이다. 데이터 암호화 표준(Data Encryption Standard; DES)은 지금까지 가장 일반적이고도 광범위하게 사용된 블럭 암호화 시스템이다. 이는 분류되지 않은 정보의 암호화를 위해 1977년 미국 연방 정부 표준으로서 채택되었다. DES에서의 블럭 암호화에 대한 기본 개념은 암호화가 보통 데이터(또한 당업계에서는 "평문(plaintext)"으로서 언급됨)에서 암호화된 데이터("암호문(ciphertext)")로의 1 대 1 매핑으로 구성되지만 암호화된 데이터로부터 보통 데이터로의 반전 1 대 1 매핑이 암호 해독에 적용된다는 것이다. 이러한 개념이 의미하는 것은, 어떤 주어진 보통 데이터에 대하여, 하나, 즉 단지 하나의 암호화된 데이터의 버전이 존재한다는 것이다. 마찬가지로, 어떤 주어진 암호화된 데이터에 대하여, 하나, 즉 단지 하나의 암호 해독된 데이터의 버전이 존재한다. 다시 말하면, 암호화 및 암호 해독 동안 적용되는 알고리즘이 각각 고정적이고 변하지 않는다.
DES는 공개 표준이다. 암호화 및 암호 해독 알고리즘은 공개되어 있으며 이들의 사용이 장려되고 있다. 보안은 단지 가능한 키의 개수에만 기초로 한다. DES의 경우, 블럭 크기가 n일 때, 1 대 1 암호 매핑의 최대 개수, 또는 1 대 1 반전 암호 해독 매핑의 최대 개수는 2n이다. DES 표준에서의 블럭 사이즈는 64비트이고 키는 56비트이며 추가의 8비트는 단지 오류 검출용으로만 포함된다. 이는 총 개수가 대략 7.2 x 1016인 키를 제공한다.
최근들어 계산 기술에 있어서의 급속한 발전, 특히 고속으로 대량의 데이터를 처리할 수 있는 능력이 의미했던 것은 DES가 계산력에 대한 억지 기법의 적용에 저항할 수 없었다는 것이다. 1990년대 말에, 가능한 키 값을 시도함으로써 수 시간후에 DES 키를 회복시킬 수 있는 전문화된 "DES 파괴자(DES Cracker)" 머신이 만들어졌다. 그 결과, 적용 21년 이후, DES의 사용이 1998년 미국에 의해 중단되었다.
2001년에, 미국은 진보된 암호화 표준(Advanced Encryption Standard; AES)으로 언급되는 신규한 암호화 표준을 추진하였고 이는 공식적으로 2002년 5월 26일부터 효력이 발생되었다. 그러나, 이러한 신규 표준은 바로 이전의 DES보다 이론적으로나 기술적으로나 어떠한 혁신도 이루고 있지 않다. 그 기본 개념은 동일한 개념을 유지하고 있으며 본질적으로 변경했던 것 전부는 블럭 사이즈(n)가 2배로 되었다는 점이다. AES 표준은 블럭 사이즈가 128 비트이며 키 사이즈가 128, 192 또는 256 비트인 것을 명시한다. 비록 AES에서의 128 비트 키 값의 개수가 56-비트 DES 키의 개수보다 약 1021배 많다 하더라도, 장래 컴퓨터 기술의 발달로 머지않아 상기 신규 표준이 손상될 것이라고 예상될 수 있다. 더욱이, 상기 블럭 사이즈의 증가는 구현하기에 불편하다.
끊임없이 증가하는 개인 및 상업적으로 민감한 데이터가 전자 우편 통신을 위한 인터넷 및 무선 통신을 위한 자유 공간과 같은 공중 매체를 통해 전송되고 있기 때문에, 블럭 암호화에 있어서의 신규 개념 및 해결 방안이 분명히 필요하다. 그와 같은 개인 및 상업 데이터의 보안 및 비밀을 지키는 것과는 별도로, 상기 신규 표준은 장래에도 손상되지 않는 보다 양호한 전망을 제공하여야 한다.
본 발명의 목적은 앞서 언급된 요구를 충족시키는 것이다.
도 1은 본 발명에 따른 블럭 암호화 수행 장치의 제1의 하드웨어 실시예를 보여주는 도면.
도 2는 도 1의 장치에 의해 암호화된 데이터의 블럭의 암호 해독을 수행하는 본 발명에 따른 장치의 제1의 하드웨어 실시예를 보여주는 도면.
도 3은 도 1의 장치의 변형예인 암호화 장치에 대한 제2의 하드웨어 실시예를 보여 주는 도면.
도 4는 도 2의 장치의 변형예인 암호 해독 장치에 대한 제2의 하드웨어 실시예를 보여 주는 도면.
도 5는 도 1의 장치의 다른 변형예인 암호화 장치에 대한 제3의 하드웨어 실시예를 보여주는 도면.
도 6은 도 2의 장치의 다른 변형예인 암호 해독 장치에 대한 제3의 하드웨어 실시예를 보여주는 도면.
본 발명에 의하면, 블럭 암호화 및 비밀 키를 사용하여 2진 데이터를 암호화하는 방법은,
상기 비밀 키를 사용하여 제1의 일련의 부호화 변환을 생성하는 단계로서, 상기 일련의 부호화 변환이 반복가능한 방식으로 생성되는 단계;
상기 제1의 일련의 부호화 변환 중 각각의 부호화 변환이 암호화될 상기 2진 데이터의 블럭내에서 요소들을 수정하기에 적합한 단계; 및
상기 부호화 변환을 선택적으로 적용시켜 2진 데이터의 블럭을 암호화하는 단계를 포함한다.
본 발명의 주된 특징은 보통 데이터로부터 암호화된 데이터로의 전형적인 1 대 1 매핑이 시간 경과로 한 데이터 블럭에 적용되는 부호화 변환이 전환됨에 따라, 다 대 다 매핑으로 대체된다는 것이다. 다시 말하면, 어떤 주어진 보통 데이터에 대하여, 암호화된 데이터의 가능한 버전이 많이 존재한다. 마찬가지로, 어떤 주어진 암호화된 데이터는 본래의 보통 데이터의 가능한 많은 버전에 대응한다. 따라서, 이러한 암호화를 파괴하는 것은 거대한 태스크가 되는 데, 그 이유는 암호가 이동 타겟을 나타내며, 서로 다른 부호화 변환이 서로 다른 데이터의 블럭에 적용되기 때문이다. 바람직하게는, 상기 일련의 부호화 변환은 의사 무작위 추출 특성을 갖는다.
한 바람직한 실시예에 있어서, 상기 제1의 일련의 부호화 변환 중 상이한 부호화 변환이 보통 데이터의 각각의 블럭을 암호화하는 데 사용된다. 따라서, 상기 보통 데이터에 적용되는 부호화는 한 블럭씩을 기초로 하여 전환된다. 상기 부호화 변환의 생성은 암호 해독을 실현하기 위해 반복가능해야 한다. 그러나, 상기 일련의 부호화 변환은 상기 일련의 부호화 변환의 분석으로부터 재생될 수 없다. 암호 생성 과정은 비밀 키에 의해 제어된다.
한 바람직한 실시예에 있어서, 상기 제1의 일련의 부호화 변환 중 순차적으로 생성된 부호화 변환은 2진 데이터를 포함하는 순차 블럭을 암호화하는 데 사용된다. 다수의 순차 블럭에 동일한 변환을 적용하지만 선택된 변환을 적용하고 그 나머지를 폐기하여 생성된 변환을 모두 사용하지 않는 단계를 포함하는 다른 절차가 가능하다. 전자의 과정은 블럭이 암호화되는 속도보다 낮게 부호화 변환이 계산되는 속도를 이루는 이점을 갖는 반면에 후자의 과정은 암호화에 추가의 복잡성을 구축하는 이점을 갖는다.
한 바람직한 실시예에 있어서, 상기 제1의 일련의 부호화 변환 중 각각의 부호화 변환은 암호화될 2진 데이터 블럭내에서 요소들의 자리를 바꾸고 또한 그러한 요소들 중 몇몇 요소들을 선택적으로 반전시키기에 적합하다. 그러한 부호화 변환은 자리바꿈 기능을 달성하기 위한 제1의 부분 변환 및 반전 기능을 달성하기 위한 다른 한 부분 변환으로서 생성될 수 있다. 이들 부분 변환은 상기 암호화 단계에서 임의 순서로 적용될 수 있으며 서로 독립적으로 생성 및 적용될 수 있다. 상기 암호화된 블럭내의 새로운 위치에 대하여 상기 블럭내의 매 요소의 자리를 바꾸는 것은 필수적이지 않다.
자리 바꿈 없이도 특정 요소들을 선택적으로 유지함으로써, 총 변화의 회수가 증가된다.
변형 실시예에 있어서, 상기 제1의 일련의 부호화 변환 중 한 부호화 변환이 암호화될 블럭내에서 요소들의 자리를 바꾸고 그러한 요소들 중 몇몇 요소들을 선택적으로 반전시키는 동작 중 단지 하나의 동작만을 수행하는 데 적합하다.
본 발명의 다른 한 실시태양에 의하면, 위에서 언급된 방법에 의해 생성된 암호화된 2진 데이터의 블럭을 암호 해독하는 방법은,
동일한 비밀 키를 사용하여 제2의 일련의 부호화 변환을 생성하는 단계;
상기 제2의 일련의 부호화 변환 중 각각의 부호화 변환이 상기 제1의 일련의 부호화 변환의 대응하는 부호화 변환에 대하여 반전 기능을 갖는 단계; 및
상기 암호화 스테이지에서 상기 제1의 일련의 부호화 변환으로 행해진 것과 동일한 방식으로 상기 제2의 일련의 부호화 변환 중 몇몇 부호화 변환을 선택적으로 적용하여 본래의 2진 데이터 블럭을 회복함으로써 암호화된 2진 데이터의 블럭을 암호 해독하는 단계를 포함한다.
상기 암호 해독 방법은 상기 암호화 방법의 역으로 이루어진다. 암호화가 블록 요소를 변환 및 반전시키는 동작으로 이루어진 경우, 이들 동작은 암호화 동안 역순으로 수행된다.
본 발명의 암호화 및 암호 해독 방법의 주요 이점은 상기 방법이 간단한 논리 스위칭 동작을 사용하여 수행될 수 있다는 점이다. 이러한 특징은 상기 방법이고속 동작을 수용하게 한다. 이는 이후 본원 명세서에 기재되는 본 발명의 하드웨어 실시예로부터 알 수 있을 것이다. 부가적인 이점은 DES 및 AES와 비교하여 볼 때, 블럭 사이즈의 유연성에 있다.
한 하드웨어 실시예에 있어서, 본 발명의 암호화 방법을 수행하기 위한 암호화 장치는,
암호화될 보통의 2진 데이터의 블럭을 수신하기 위한 입력 버퍼;
비밀 키를 수신하기 위한 입력 레지스터;
상기 비밀 키를 사용하여 제1의 일련의 부호화 변환에 대응하는 제1의 일련의 제어 출력을 생성하기 위한 산술 유닛;
상기 제1의 일련의 제어 출력에 응답하여, 상기 제1의 일련의 부호화 변환에 따라 입력되는 보통의 2진 데이터의 블럭을 암호화된 2진 데이터 블럭으로 변환시키기 위한 논리 회로; 및
상기 암호화된 2진 데이터의 블럭을 출력하기 위한 출력 버퍼를 포함한다.
다른 한 하드웨어 실시예에 있어서는, 본 발명의 암호 해독 방법을 수행하기 위한 암호 해독 장치는,
암호화된 2진 데이터의 블럭을 수신하기 위한 입력 버퍼;
비밀 키를 수신하기 위한 입력 레지스터;
상기 비밀 키를 사용하여 제2의 일련의 부호화 변환에 대응하는 제2의 일련의 제어 출력을 생성하기 위한 산술 유닛;
상기 일련의 제어 출력에 응답하여, 상기 제2의 일련의 부호화 변환에 따라입력되는 암호화된 2진 데이터의 블럭을 보통의 2진 데이터의 블럭으로 변환시키기 위한 논리 회로; 및
상기 보통의 2진 데이터의 블럭을 출력하기 위한 출력 버퍼를 포함한다.
본 발명은 부가적으로 블럭 암호화 및 비밀 키를 사용하여 2진 데이터를 암호화하기 위한 컴퓨터 프로그램 제품을 제공하며, 상기 제품은 상기 제품에 포함된 프로그램이 계산 기능을 갖는 프로세서, 컴퓨터, 또는 컴퓨터 네트워크를 통해 실행될 때 위에서 언급된 암호화 방법을 수행하기 위한 한 세트의 명령어를 구성하는 프로그램 코드를 포함한다.
본 발명은 부가해서 암호화된 2진 데이터의 블럭을 암호 해독하기 위한 컴퓨터 프로그램 제품을 또 제공하며, 상기 제품은 상기 제품에 포함된 프로그램이 계산 기능을 갖는 프로세서, 컴퓨터, 또는 컴퓨터 네트워크를 통해 실행될 때 위에서 언급된 암호 해독 방법을 수행하기 위한 한 세트의 명령어를 구성하는 프로그램 코드를 포함한다.
위에서 언급된 컴퓨터 프로그램 제품은 프로그램 코드용의 어느 적합한 저장 매체, 특히 전자 메모리 및 자기, 광자기 및 광학 매체의 형태를 취할 수 있다. 본원 명세서에서 사용되는 "컴퓨터 프로그램 제품"이라는 용어는 펌웨어, 즉, 컴퓨터의 판독 전용 메모리 유닛에 저장되어 있는 명령어들을 포함하는 것으로 이해될 것이다.
본 발명은 또한 그러한 제품에 포함된 컴퓨터 프로그램에 이르기까지 확장하며, 그러한 프로그램은 이 프로그램이 실행될 때 본원 명세서에 개시된 바와 같은본 발명의 기술적 효과를 달성한다.
본 발명은 첨부 도면과 연관지어 기재된 이하 특정의 바람직한 실시예의 설명으로 예시되어 있지만, 그러한 범위에 국한되지는 않는다.
본 발명의 하드웨어 실시예가 본원 명세서에 기재되어 있는 데, 그 이유는 이러한 실시예로 본 발명의 원리 및 그 원리의 구현이 가장 용이하게 개시될 수 있기 때문이다. 당업자라면 상기 하드웨어 실시예의 개시로 본 발명을 습득할 수 있을 것이다. 그러한 당업자는 어떤 독창적인 재능을 발휘할 필요성이나 또는 과도한 실험 없이 그리고 당업계에서 단지 통상의 지식 및 기술만을 사용하여 소프트웨어구현에 이르기까지 상기 원리를 확장시킬 수 있을 것이다. 상기 하드웨어 실시예는, 단지 예를 들어, 고정 배선 논리, 주문형 집적 회로(application specific integrated circuit; ASIC), 또는 프로그램가능한 집적 회로의 형태로 실현될 수 있다. 하드웨어 또는 소프트웨어 구현의 선택은 특정의 용도에 의존하며 속도, 비용, 공간 및 전력 소비와 같은 통상의 기준에 적용을 받는다. 본 발명의 범위에 내재하는 실시예는 또한 부호화 변환을 생성하기 위한 소프트웨어 및 보통 또는 암호화된 데이터에 상기 변환을 적용하기 위한 하드웨어와 같은 하드웨어 및 소프트웨어의 혼합으로 이루어질 수 있다. 비록 전자 하드웨어 실시예가 본원 명세서에서 예로써 기재되어 있지만, 본 발명은 광학 처리 기술을 사용하여 구현될 수도 있다.
도 1을 참조하면, 암호화 장치는 기본적으로 부호 생성 스테이지 및 부호 적용 스테이지와 같은 2가지 스테이지로 이루어진다. 상기 부호 생성 스테이지는 구성요소(12,14,16,18,20)를 포함한다. 상기 코드 적용 스테이지는 구성요소(22,24,26,28,30,32)를 포함한다. 비밀 키는 레지스터(12)에 입력 및 저장된다. 상기 비밀 키는 키패드와 같은 종래의 인터페이스를 통해 입력되는 개인 식별 번호(personal identification number; PIN)로 이루어질 수 있다. 상기 PIN이 비-2진수, 예컨대, 10진수일 경우, 이는 부가적인 처리 이전에 2진수 형태로 변환된다. 변형적으로는, 상기 비밀 키가 대응 소켓에 삽입되는 메모리 스틱 또는 스마트 카드와 같은 메모리 매체에 저장될 수 있다. 블럭의 최소 사이즈는 4 비트이고, DES 및 AES와는 달리, 키 사이즈는 블럭 사이즈에 고정으로 종속되어 있지 않다는 점이 유리하다.
이러한 실시예에 있어서, 생성된 부호화 변환은 입력되는 보통의 데이터(X)의 블럭내에서 요소들의 자리를 바꾸고 선택적으로는 요소들을 반전시키는 데 일조한다. 이들 동작은 개별적으로 수행되며 입력되는 2진 데이터의 블럭에 연속하여 적용된다. 이러한 실시예에 있어서는, 자리바꿈 동작이 먼저 이행된 다음에 반전 동작이 이행된다.
산술 논리 연산 유닛(arithmetic logic unit; ALU; 16)(계산 유닛)은 키 레지스터(12)의 내용 및 메모리(14)에 저장된 하나 또는 그 이상의 상수에 기초하여 계산을 수행하고, 그 결과를, 자리바꿈 동작을 제어하는 한 세트의 레지스터(18) 및 반전 동작을 제어하는 레지스터(20)에 출력한다. 상기 메모리(14)에 저장된 하나 또는 그 이상의 상수는 어느 특정의 용도로 고정될 수도 있으며, 예를 들면, 키와 동일한 매체에 저장되거나 키를 구비함으로써 사용자에 의해 제공될 수도 있다.상기 ALU(16)는 연속적인 일련의 출력을 상기 레지스터(18,20)에 생성시킨다. 이러한 실시예에 있어서는, 상기 ALU(16)로부터의 순차 출력이 입력되는 보통의 데이터블럭의 시퀀스에 개별적으로 적용되기 때문에, 상이한 변환이 각각의 입력 블럭에 적용된다. 이러한 실시예에서, 자리바꿈 기능을 위한 순차 변환은 이전 출력, 결과적으로는 상기 ALU(16)로부터 상기 키 레지스터(12)로의 피드백 루프에 기초하여 생성된다. 상기 반전 기능을 위한 상기 레지스터(20)의 출력은 상기 자리바꿈 출력과는 무관하게 처리될 수도 있고 마찬가지로 이전의 자리바꿈 기능 결과에 기초하여 처리될 수도 있다.
입력되는 보통의 데이터 블럭은 n개의 요소를 지니며, 각각의 요소는 비트 값이 제로(0)일 수도 있고 1일 수도 있는 비트로 이루어진다. 상기 입력 데이터 블럭의 제1, 제2, ... 제n 비트에 각각 대응하는 레지스터(18)가 총 n개 존재한다. 상기 부호 적용 스테이지는 상기 입력 데이터 블럭의 제1, 제2, ...제n 비트에 대응하는 한 세트의 n개의 복호기(24)를 포함한다. 각각의 복호기는 관련 레지스터( 18)로부터 입력 번호를 수신한다. 이러한 번호는 입력 데이터 블럭의 특정 요소가 자리바꿈 기능에서 어느 위치에 매핑되는 지를 결정한다. 각각의 복호기는 n개의 출력을 지닌다. 상기 암호화된 블럭에서의 매핑된 위치에 대응하는 하나의 선택된 출력은 2진값(1)을 지니는 반면에, 나머지 선택되지 않은 출력 각각은 2진값(0)을 지닌다. 선택된 출력이 상기 복호기(24) 각각에 유일하며 관련 레지스터(18)로부터 수신된 입력 번호에 의해 결정된다.
각각의 복호기(24)는 관련된 한 세트의 n개의 AND 게이트(26)를 지닌다. 각각의 AND 게이트는 2개의 입력을 지니는 데, 한 입력은 상기 복호기로부터의 대응 출력을 수신하지만, 나머지 입력 모두는 입력 버퍼 또는 레지스터(22)로부터 상기입력 데이터 블럭의 비트를 수신한다. 상기 게이트(26)의 논리 AND 기능 때문에, 상기 레지스터(22)로부터의 입력 데이터 비트가 상기 복호기(24)로부터 상기 선택된 출력을 수신하는 AND 게이트의 출력에 전달된다. 이러한 방식으로, 데이터의 입력 블럭의 각각의 비트는 n 세트의 AND 게이트 중 상이한 세트의 AND 게이트에 그리고 각각의 세트에 대한 서로 다른 선택된 AND 게이트에 전달됨으로써, 데이터 비트의 입력 블럭의 자리바꿈, 또는 뒤섞음을 달성한다. 선택적인 반전 기능은 n 세트의 n개 배타적 OR(XOR) 게이트(28)와 조합하여 레지스터(20)로부터 출력되는 (n x n)-비트 개수를 사용하여 실현된다. 상기 XOR 게이트(28) 각각은 상기 레지스터 (20)로부터 출력된 개수의 n x n 비트 중 개별 비트를 수신하는 하나의 입력을 갖는다. 각각의 세트의 XOR 게이트(28)의 다른 입력은 각각 관련된 AND 게이트(26)의 출력을 수신한다. 논리 XOR 동작 때문에, 상기 레지스터(20)로부터의 관련 비트가 논리 0일 경우, AND 게이트(26)로부터의 출력은 XOR 게이트(28)에 의해 변경되지 않은 상태로 통과된다. 그 반면에, 상기 레지스터(20)의 출력 비트가 논리 1일 경우, 상기 게이트(28)는 관련 AND 게이트(26)로부터의 출력을 반전시킨다. 마지막으로, 각각의 세트의 XOR 게이트(28) 중 제1의 XOR 게이트로부터의 출력은 OR 게이트 (30)에서 논리적으로 결합되고 그 출력이 암호화된 데이터의 블럭의 제1 비트로서 출력 버퍼 또는 레지스터(32)에 저장된다. 마찬가지로, 각각의 세트의 XOR 게이트 중 제2, ... 제n의 XOR 게이트로부터의 출력은 논리적으로 결합되어, 암호화된 데이터의 블럭의 제2, ... 제n 비트를 상기 출력 버퍼(32)에 제공한다.
비록 도 1에 도시되어 있지는 않지만, 모든 동작의 타이밍이 상기 레지스터(18,20)로부터의 출력의 연속 흐름을 상기 레지스터(22)로부터 구성요소(24,26,28, 30)로 구성된 논리 회로를 통해 상기 출력 버퍼(32)로의 데이터 블럭의 흐름과 대등하게 하도록 시스템 클럭에 의해 제어된다는 점이 이해될 것이다.
블럭 사이즈가 n일 경우, 위에 언급된 실시예는 가능한 부호화 변환을 총 ( n!)2x 2nxn개 제공한다. 이러한 값은 비록 8 또는 16과 같은 n의 작은 값에 대하여도 상기 암호화 방법의 능력을 보여준다. 계수((n!)2)는 상기 레지스터(18)의 출력에 비례하지만, 계수(2nxn)는 상기 레지스터(20)의 출력에 비례한다. 상기 입력 데이터 블럭의 n개의 비트는 n!개의 상이한 변형으로 배치될 수 있다. 이들 변형은 n!가지의 상이한 방식으로 배열됨으로써, 자리바꿈 부분 변형의 생성을 위한 (n!)2개의 개시점을 제공할 수 있다. 각각의 개시점은 서로 다른 부분 변형 시리즈를 제공한다. 제2의 계수(2nxn)는 10진수으로 표시된, 상기 레지스터(20)로부터의 가능한 출력의 총 개수이다. 상기 값은 0에서 (2nxn-1)에 이르는 값의 범위를 갖는다.
상기 ALU(16)는 어느 편리하거나 바람직한 방식으로 상기 레지스터(18,20)의 출력을 생성하도록 구성될 수 있다. 이러한 관점에서, 본 발명의 범위는 제한적이지 않다. 유일한 요건은 암호화된 데이터의 암호 해독에 필요한 대응하는 변환을 실현하도록 계산이 반복될 수 있다는 점이다.
도 2는 도 1의 장치에 의해 암호화되는 데이터의 블럭을 암호 해독하는 데사용될 수 있는 암호 해독 장치를 도시한 것이다. 암호 해독 과정은 본질적으로 암호화 과정의 역이다. 도 2에서, 도 1의 장치에서의 구성요소와 동일하거나 유사한 기능을 갖는 구성요소는 100을 가산한 것을 제외하고는, 동일한 참조부호로 제공되었다. 상기 레지스터(112)에 최초로 저장되어 있는 동일한 비밀 키에 기초하여, 상기 ALU(116)는 도 1의 암호화 장치에 의해 생성되는 제1의 일련의 출력과 상보적인 제2의 일련의 출력을 생성한다. 상기 레지스터(118)에 저장된 출력은 암호화된 데이터 블럭의 비트를 다시 보통의 데이터의 본래 위치에 매핑하는 데 일조한다. 상기 레지스터(120)로부터 출력된 (n x n)-비트 개수는 제2 시간 동안 암호화 과정에서 반전되었던 동일한 비트를 반전시키는 데 일조하는 데, 그 이유는 2번의 연속 반전 동작이 본래의 데이터를 복구하기 때문이다. 도 1의 암호화 장치에 대한 상세한 설명을 고려해 보면, 도 2의 회로는 자명하기 때문에 본원 명세서에서 상세하게 설명될 필요가 없다. 암호 해독 과정은 먼저 역 반전 동작을 적용한 다음에, 역 자리바꿈 동작을 적용한다. 암호화된 데이터(Y')의 블럭은 버퍼 또는 레지스터(122)를 통해 입력되고, 암호 해독된 데이터(X')의 블럭을 처리한 후에 버퍼 또는 레지스터(132)로부터 출력된다.
도 3 및 도 4는 도 1 및 도 2 실시예의 변형에 각각 대응한다. 이와 같이 변형된 실시예에 있어서, 선택적인 반전 기능이 생략되었기 때문에, 레지스터(20,120 ) 및 XOR 게이트(28,128)가 필요하지 않다. 나머지 구성요소의 동작은 도 1 및 도 2의 경우와 동일하다.
도 5 및 도 6은 도 1 및 도 2의 다른 변형에 각각 대응한다. 이와 같은 다른변형 실시예에 있어서, 자리바꿈 기능이 생략되었기 때문에, 레지스터(18,118)가 필요하지 않다. 비록 복호기(24,124)가 유지되어 있다 하더라도, 이들의 출력은 고정적이며 시간에 따라 변하지 않는다. 나머지 구성요소의 동작은 도 1 및 도 2에 대하여 기재된 바와 동일하다.
비록 도 3 내지 도 6의 실시예가 주어진 n의 값에 대하여 보다 적은 횟수의 가능한 변형을 제공한다 하더라도, 이들 실시예는 여전히 시간에 따라 변하는 암호, 본질적으로는 어떤 누구라도 암호를 파괴하려고 시도하는 이동 타겟을 실현하는 본 발명의 기본 원리를 포함한다.
요약하면, 본 발명은 이용가능한 기술을 사용하여 용이하게 구현될 수 있는 매우 강력하고, 신속하며, 안전한 암호화 시스템을 제공한다. 본 발명의 적용 범위는 매우 넓다. 간단히 말하면, 상기 기법은 암호화될 필요가 있는 2진 부호화된 형태로 표기되는 어떠한 데이터에도 적용될 수 있다. 대부분의 용도는 도중에 가로채이거나 절도에 취약한 데이터의 전송 또는 저장을 포함한다. 예로서는 데이터베이스 보안, 인터넷 보안, 전자 상거래 보안, 전자 정부 보안, 고정 라인의 암호화, 휴대용 및 무선 전화 통신, 속기, 지적 재산권 보호(예컨대, 음악 및/또는 비디오 녹음 또는 다운로드), 위조 방지 기법, 스마트 카드, 및 모든 텍스트, 사운트 및 이미지 데이터 저장 및 통신의 용도가 있는 데, 이들에 국한되지는 않는다.
단지 예를 들면, 인터넷(또는 다른 네트워크) 용도에서, 본 발명은 보호받아야 할 데이터를 교환하는 단말기를 통해 실행되는 프로그램에서 구체화될 수 있다. 무선 전화기(또는 다른 어떤 유형의 무선 단말기)에서, 본 발명은 핸드셋(단말기)의 메인 프로세서에서나 또는 전용 칩에서 구체화될 수 있다. 만약 암호화/암호 해독 회로가 가입자 식별 모듈(Subscriber Identification Module; SIM) 카드상에 설치되어 있다면, 그의 사용은 특정의 네트워크 및 국가에 한정될 수 있으며, 아마도 네트워크 오퍼레이터에 의해 허용/불허될 수 있다.
본 발명은 첨부된 청구범위에 한정된 바와 같은 본 발명의 범위로부터 이탈하지 않고서도 본원 명세서에 특정하게 기재된 것과는 달리 여러 형태로 구체화될 수 있다.
본 발명은 보통 데이터로부터 암호화된 데이터로의 전형적인 1 대 1 매핑이 시간 경과로 한 데이터 블럭에 적용되는 부호화 변환이 전환됨에 따라, 다 대 다 매핑으로 대체되는 데, 다시 말하면, 어떤 주어진 보통 데이터에 대하여, 암호화된 데이터의 가능한 버전이 많이 존재하고, 마찬가지로, 어떤 주어진 암호화된 데이터는 본래의 보통 데이터의 가능한 많은 버전에 대응함에 따라, 이러한 암호를 파괴하는 것은 거대한 태스크가 되게 함으로써, 매우 강력하고, 신속하며, 안전한 암호 시스템을 제공한다.

Claims (11)

  1. 블럭 암호화 및 비밀 키를 사용하여 2진 데이터를 암호화하는 방법에 있어서,
    상기 비밀 키를 사용하여 일련의 부호화 변환을 생성하는 단계로서, 상기 일련의 부호화 변환은 반복가능한 방식으로 생성되는 단계;
    상기 일련의 부호화 변환 중 각각의 부호화 변환이 암호화될 상기 2진 데이터의 블럭내에서 요소들을 수정하기에 적합한 단계; 및
    상기 부호화 변환을 선택적으로 적용시켜 상기 2진 데이터의 블럭을 암호화하는 단계를 포함하는 것을 특징으로 하는 2진 데이터 암호화 방법.
  2. 제1항에 있어서, 상기 일련의 부호화 변환의 서로 다른 부호화 변환이 상기 블럭 각각을 암호화하는 데 사용되는 것을 특징으로 하는 2진 데이터 암호화 방법.
  3. 제2항에 있어서, 상기 일련의 부호화 변환 중 순차적으로 생성된 부호화 변환은 상기 2진 데이터를 포함하는 순차 블럭을 암호화하는 데 사용되는 것을 특징으로 하는 2진 데이터 암호화 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 일련의 부호화 변환 중 각각의 부호화 변환은 암호화될 2진 데이터의 블럭내에서 요소들의 자리를 바꾸기에적합한 것을 특징으로 하는 2진 데이터 암호화 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 일련의 부호화 변환 중 각각의 부호화 변환은 암호화될 2진 데이터의 블럭내에서 상기 요소들 중 몇몇 요소들을 선택적으로 반전시키는 데 적합한 것을 특징으로 하는 2진 데이터 암호화 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 일련의 부호화 변환 중 각각의 부호화 변환은 암호화될 2진 데이터의 블럭내에서 요소들의 자리를 바꾸고 상기 요소들 중 몇몇 요소들을 선택적으로 반전시키기에 적합한 것을 특징으로 하는 2진 데이터 암호화 방법.
  7. 제6항에 있어서, 상기 일련의 부호화 변환 중 각각의 부호화 변환은 자리바꿈 기능을 달성하기 위한 한 부분 변환 및 반전 기능을 달성하기 위한 다른 한 부분 변환으로서 생성되며, 상기 부분 변환은 상기 암호화 단계에서 임의의 순서로 적용되는 것을 특징으로 하는 2진 데이터 암호화 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 일련의 부호화 변환은 의사 무작위 추출 방식으로 생성되는 것을 특징으로 하는 2진 데이터 암호화 방법.
  9. 제1항 내지 제8항 중 어느 한 항의 방법을 수행하는 암호화 장치에 있어서,
    암호화될 보통의 2진 데이터의 블럭을 수신하기 위한 입력 버퍼;
    상기 비밀 키를 수신하기 위한 입력 레지스터;
    상기 비밀 키를 사용하여 상기 일련의 부호화 변환에 대응하는 일련의 제어 출력을 생성하기 위한 산술 유닛;
    상기 일련의 제어 출력에 응답하여 상기 일련의 부호화 변환에 따라 보통의 2진 데이터의 블럭을 암호화된 2진 데이터의 블럭으로 변환시키기 위한 논리 회로; 및
    상기 암호화된 2진 데이터의 블럭을 출력하기 위한 출력 버퍼를 포함하는 것을 특징으로 하는 암호화 장치.
  10. 블럭 암호화 및 비밀 키를 사용하여 2진 데이터를 암호화하는 컴퓨터 프로그램 생성물에 있어서, 상기 생성물에 포함된 프로그램이 계산 기능을 갖는 프로세서, 컴퓨터, 또는 컴퓨터 네트워크를 통해 실행될 때 제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 한 세트의 명령어를 구성하는 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
  11. 블럭 암호화 및 비밀 키를 사용하여 2진 데이터를 암호화하는 컴퓨터 프로그램에 있어서, 상기 프로그램이 계산 기능을 갖는 프로세서, 컴퓨터, 또는 컴퓨터 네트워크를 통해 실행될 때 제1항 내지 제8항 중 어느 한 항의 방법을 수행하기 위한 한 세트의 명령어를 구성하는 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
KR1020030075808A 2002-10-29 2003-10-29 데이터 암호화 방법 KR20040038777A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
MYPI20024037 2002-10-29
MYPI20024037 2002-10-29

Publications (1)

Publication Number Publication Date
KR20040038777A true KR20040038777A (ko) 2004-05-08

Family

ID=32089837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030075808A KR20040038777A (ko) 2002-10-29 2003-10-29 데이터 암호화 방법

Country Status (7)

Country Link
US (1) US20040223609A1 (ko)
EP (1) EP1416664A3 (ko)
JP (1) JP2004157535A (ko)
KR (1) KR20040038777A (ko)
AU (1) AU2003257891A1 (ko)
IL (1) IL158647A0 (ko)
RU (1) RU2003131278A (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788490B2 (en) * 2005-04-01 2010-08-31 Lexmark International, Inc. Methods for authenticating an identity of an article in electrical communication with a verifier system
US9866370B2 (en) * 2007-12-05 2018-01-09 Itt Manufacturing Enterprises, Llc Configurable ASIC-embedded cryptographic processing engine
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8385541B2 (en) * 2010-02-18 2013-02-26 King Fahd University Of Petroleum And Minerals Method of performing elliptic polynomial cryptography with elliptic polynomial hopping
US8331558B2 (en) * 2010-02-18 2012-12-11 King Fahd University Of Petroleum And Minerals Method of cipher block chaining using elliptic curve cryptography
FR2960366A1 (fr) * 2010-05-20 2011-11-25 Ingenico Sa Procede d’obtention de cles de chiffrement, terminal, serveur, et produits programmes d’ordinateurs correspondants
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
US8509426B1 (en) 2010-12-01 2013-08-13 King Fahd University Of Petroleum And Minerals XZ-elliptic curve cryptography system and method
US8699701B2 (en) 2010-12-01 2014-04-15 King Fahd University Method of performing XZ-elliptic curve cryptography for use with network security protocols
US8462939B2 (en) 2010-12-07 2013-06-11 King Fahd University Of Petroleum And Minerals RNS-based cryptographic system and method
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4255811A (en) * 1975-03-25 1981-03-10 International Business Machines Corporation Key controlled block cipher cryptographic system
US4177355A (en) * 1975-04-24 1979-12-04 International Business Machines Corporation Array device for data scrambling
US4316055A (en) * 1976-12-30 1982-02-16 International Business Machines Corporation Stream/block cipher crytographic system
US4447672A (en) * 1980-10-06 1984-05-08 Nippon Electric Co., Ltd. Device for encrypting each input data bit by at least one keying bit decided by a code pattern and a bit pattern of a predetermined number of preceding encrypted bits
DE3483410D1 (de) * 1983-10-14 1990-11-22 Toshiba Kawasaki Kk Einchip mikrocomputer mit verschluesselbarer funktion des programmspeichers.
US5091782A (en) * 1990-04-09 1992-02-25 General Instrument Corporation Apparatus and method for adaptively compressing successive blocks of digital video
US5710813A (en) * 1995-03-28 1998-01-20 Olympus Optical Co., Ltd. Digital voice recording/reproducing apparatus
US5870470A (en) * 1996-02-20 1999-02-09 International Business Machines Corporation Method and apparatus for encrypting long blocks using a short-block encryption procedure
US6259789B1 (en) * 1997-12-12 2001-07-10 Safecourier Software, Inc. Computer implemented secret object key block cipher encryption and digital signature device and method
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000066587A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
US6408074B1 (en) * 1998-10-22 2002-06-18 Lucent Technologies Inc. Hardware architecture for a configurable cipher device
EP1215910A3 (en) * 2000-12-07 2003-09-10 Sony United Kingdom Limited Watermarking
US7280657B2 (en) * 2001-06-13 2007-10-09 Itt Manufacturing Enterprises, Inc. Data encryption and decryption system and method using merged ciphers
US6898288B2 (en) * 2001-10-22 2005-05-24 Telesecura Corporation Method and system for secure key exchange

Also Published As

Publication number Publication date
AU2003257891A1 (en) 2004-05-20
US20040223609A1 (en) 2004-11-11
EP1416664A2 (en) 2004-05-06
EP1416664A3 (en) 2005-02-16
IL158647A0 (en) 2004-09-27
RU2003131278A (ru) 2005-04-20
JP2004157535A (ja) 2004-06-03

Similar Documents

Publication Publication Date Title
US5717760A (en) Message protection system and method
US5671284A (en) Data encryptor having a scalable clock
US20060023875A1 (en) Enhanced stream cipher combining function
US7251326B2 (en) Method and apparatus for data encryption
Joshy et al. Text to image encryption technique using RGB substitution and AES
KR20040038777A (ko) 데이터 암호화 방법
Aparna et al. Implementation of AES algorithm on text and image using MATLAB
JP3769804B2 (ja) 解読化方法および電子機器
JP2000209195A (ja) 暗号通信システム
JP2001142396A (ja) 暗号化装置とその方法、暗号復号化装置とその方法および通信システム
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
US20040174994A1 (en) Time based encryption algorithm
Landge et al. VHDL based Blowfish implementation for secured embedded system design
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
KR20190041900A (ko) 암호화 장치 및 복호화 장치, 이들의 동작방법
Hamsanandhini et al. Securing Data in the Image Using SHA & ECC
US20040071287A1 (en) Encryption circuit arrangement and method therefor
JP2013098722A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
JP4708914B2 (ja) 解読化方法
KR100965874B1 (ko) Ckc 암호화/복호화 장치 및 방법
Haunts et al. Symmetric Encryption
RU2207736C2 (ru) Способ шифрования блоков данных
RU2204212C2 (ru) Итеративный способ блочного шифрования

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid