KR20100031717A - 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치 - Google Patents

메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치 Download PDF

Info

Publication number
KR20100031717A
KR20100031717A KR1020107000092A KR20107000092A KR20100031717A KR 20100031717 A KR20100031717 A KR 20100031717A KR 1020107000092 A KR1020107000092 A KR 1020107000092A KR 20107000092 A KR20107000092 A KR 20107000092A KR 20100031717 A KR20100031717 A KR 20100031717A
Authority
KR
South Korea
Prior art keywords
value
state vector
vector
current
permutation
Prior art date
Application number
KR1020107000092A
Other languages
English (en)
Other versions
KR101564601B1 (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 오리다오
Publication of KR20100031717A publication Critical patent/KR20100031717A/ko
Application granted granted Critical
Publication of KR101564601B1 publication Critical patent/KR101564601B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

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

Abstract

본 발명은 디지털 보안의 일반 분야에 관한 것으로, 보다 구체적으로는 암호화에 관한 것이다. 특히, 본 발명은 데이터 시퀀스를 부호화하는 장비 및 방법을 제안한다. 본 발명은 또한 유사-난수 데이터 시퀀스 (13)을 생성하는 암호화 장비(1) 및 암호화 방법, 및 이들의 디지털 보안, 특히 데이터의 부호화 및 해독화를 위한 분야 및 메시지를 암호적으로 해싱하기 위한 분야에서 바람직한 용도에 관한 것이다.

Description

메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치{CRYPTOGRAPHIC METHODS AND DEVICES FOR THE PSEUDO-RANDOM GENERATION OF DATA ENCRYPTION AND CRYPTOGRAPHIC HASHING OF A MESSAGE}
본 발명은 디지털 보안 분야에 관한 것으로, 보다 구체적으로 암호화에 관한 것이다.
본 발명은 특히 데이터 시퀀스를 대칭적으로 암호화하는 장치 및 방법을 목적으로 한다. 본 발명은 또한 유사-난수 데이터 시퀀스(pseudo-random data squence)를 생성하기 위한 암호화 장치 및 암호화 방법, 및 특히 데이터 암호화 및 해독 및 메시지의 암호화 해싱을 위한 디지털 보안 분야에서 이들의 바람직한 용도에 관한 것이다.
암호화된 데이터는 대칭적 암호화 알고리즘이 이용되어 빠른 비트 속도록 대칭적으로 교환된다.
대칭적 암호화 알고리즘의 성능은 암호화될 정보에 적용되는 처리방법의 복잡성에 따른 암호화해독에 대한 저항성, 약점의 부재 및 암화화 키의 크기에 따른 무차별 대입 공격(brute force attack)에 대한 저항성을 바탕으로 평가된다.
더욱이, 대칭형 암호화의 성능은 또한 실행 속도에 의존한다. 암호화 알고리즘이 작동하는 비트 속도(bit rate)는 암호화/해독화될 정보에 관계된 어플리케이션의 최대 비트 속도 보다 빨라야 한다.
따라서, 빠른 속도의 어플리케이션을 위하여, 보안 솔루션 인테그레이터(secure solution integrator)는 암호화 알고리즘을 선택하는 경우 처리될 정보의 비트 속도가 증가하며 일정한 연산력을 위해 정보 처리에 필요한 시간이 줄어들기 때문에 갈등을 겪게되며, 결국 암호화 저항에 대해 절충하게 된다.
대칭적 암호화를 수행하는 종래 기술의 스크림 암호화 메카니즘(stream encryption mechanism)은 연속적 통합(integration) 과정에서 데이터를 연속적으로 암호화하며, 데이터 비트 속도가 빠르고(빠르거나) 정보를 실시간으로 암호화/해독화하는데 필수적인 경우 유익하게 사용할 수 있다.
도 15A에 나타낸 바와 같이, 스트림 암호화 메카니즘은 일반적으로 키 K로 나타낸 파라미터와 초기화 벡터(initialization vector)를 갖는 유사-난수 비트 제네레이터 G[예를 들어, 시프트 레지스터(shift register)를 바탕으로]의 형태를 띠고, 이를 통해 배타적 논리합(exclusive-OR) 조작(
Figure pct00001
로 표시되며 2진 덧셈 모듈로 2에 상응함)이 제네레이터의 출력 비트 ki 및 암호화될 데이터 유래 비트 pi에 적용되어, 결국 일반적으로 각 인테그레이션 i 에 대한 단일 출력 비트 ci가 계산된다.
이러한 스트림 암호화 방법은, 간단하고 적은 수의 명령어(instruction set)를 사용하기 때문에 하드웨어 구현이 극히 빠름에도 불구하고, 이들이 특정된 빠른 비트 속도의 직접 계(corollary)이기 때문에 몇가지 심각한 단점을 갖고 있다.
첫째로, 상기 스트림 암호화 방법에서 사용된 유사-난수 제네레이터는 일반적으로 선형 또는 비선형 시프트 레지스터를 바탕으로 한다. 이와 같이 사용되는 상기 시프트 레지스트는 심각한 암호화 결점을 갖고 있다. 제네레이터의 암호화적으로 수용가능한 유사-난수 거동을 부여하기 위해, 조합 기능(combination fuction)을 이용하여 시프트 레지스터들을 서로 결합하는 것이 알려져 있다. 상기와 같은 조합 기능을 부여하기 위헤 필요한 레지스터 수의 증가와 조합 기능 자체의 복잡성이 하드웨어 구현에 필요한 구성요소의 수에 유의적인 영향일 미치며, 유사-난수 생성 알고리즘과 암호화 방법의 실행 속도를 제한한다.
더욱이, 상기 유사-난수 제네레이터는 한번에 단지 매우 제한된 수의 출력 비트만을 생성한다(전형적으로 1 비트, 가능하게는 8 또는 16 비트). 결과적으로 각 통합된 스트림 암호화 방법에서 암호화된 비트의 수 또한 매우 제한되며, 이 방법에 의해 보호되는 데이를 보유한 어플리케이션의 실제 요구량에는 미치지 못하게 된다.
이러한 단점을 완화시키기 위해, 유사-난수 생성에 블록 암호화 알고리즘을 이용하는 스트림 암호화 메카니즘을 사용할 수 있다. CFB(cipher feedback) 모두에서 블록 암호화 알고리즘을 이용하는 스트림 암호화 메카니즘의 예를 도 15B에 나타내었으며, 이는 종래 문헌(B. Scheier "Applied Crytography protocols, algorityhms and source code in C", Second edition, 1996)에 기재되어 있다. 그러나, 스트림 암호화 메카니즘에서 유사-난수 생성에 블록 암호화 알고리즘을 사용하는데는 적어도 두 가지의 주요한 단점, 즉 하드웨어 구현에 있어 전체 크기가 크고, 실행 속도가 느리다는 단점이 있다.
더욱이 상기에 기술한 스트림 암호화 메카니즘의 설계는, 유사-난수 제네레이터의 출력 비트와 암호화될 메시지의 비트에 배타적 논리합 조작을 적용하는 것을 바탕으로, 표준 암호해독과 관련하여 직접적으로 인지할 수 있고 도 15B에 도시한 바와 같이 CFB 모드에서 명령가능한 유사-난수 제네레이터를 제공한다. 달리 말하면, 유사-난수 제네레이터의 출력 상태는 배타적 논리합 조작을 이용하여 암화되지 않은 텍스트와 암호화된 텍스트의 결합에 의해 직접적으로 접근가능하며, 알고리즘의 암호해독에 직접 사용할 수 있는 정보를 연속해서 제공한다. 따라서 도 15B에 나타낸 스트림 암호화 방법의 예에서는, 암호화 방법의 출력을 인지하고 입력을 명령하여 유사-난수 제네레이터의 시프트 레지스테를 주요 암호화 약점을 구성하는 소정의 상태에 이르게 할 수 있다.
결론적으로, 임의의 소정 크기 벡터의 암호적 보안 유사-난수 시퀀스의 빠른 생성을 위한 솔루션, 즉 상기와 같은 유사-난수 제네레이터의 인지성 및 명령성에 대한 단점이 없고, 높은 수준의 디지털 보안성이 보장되는 한편, 하드웨어와 소프트웨어 모두에 간단하고 효과적으로 구현(실행 속도와 관련하여)할 수 있는 암호화/해독화 솔루션이 필요한 실정이다.
본 발명의 일 측면은 상태 벡터의 초기 값에서 반복적으로 생성된 사이즈 k의 연속적인 상태 벡터 값에 의해 형성된 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법을 제공하는 것이다. 본 발명에 따르면, 암호화 방법의 매 반복 동안, 상기 반복을 위한 상태 벡터의 전류 값을 생성시키기 위해, k 보다 크거나 같은 사이크 k1인 소정 수 d의 순열을 선행 반복에서 생성된 상태 벡터의 선행 값 중 하나 이상의 부분으로부터 형성된 사이즈 k인 하나 이상의 제1 중간 벡터를 포함한 사이즈 k1인 임시 벡터에 연속적으로 적용한다. 각 순열은 각각 사이즈 d인 순열 키의 별개 비트과 관련되고, 적어도 상기 비트의 값에서 함수로서 선택되며, 상기 순열 키는 제1 중간 벡터의 k 비트로부터 d 별개 비트로 선택된 결과이다. 이어서 상태 벡터의 전류 값이 상기 어플리케이션 단계의 생성 벡터 중 적어도 하나의 부분에서 얻어진다.
하기의 기술은 2진 데이터 및 2진 벡터, 즉 성분들이 비트인 데이터 및 벡터에 관한 것이다. 따라서 사이즈 t인 벡터는 t 비트로 구성된 벡터이다.
본 발명에 따르면, "벡터 Vb를 포함한 벡터 Va"란 표현은 그의 성분들 중 벡터 Vb 성분을 포함하는(연속적이던 아니던, 동일 순서 또는 임의 순서이던) 벡터 Va를 의미한다. 예를 들어, 벡터 Vb = (1,0,0,1) 및 벡터 Va = (0,1,Vb) 인 경우, 벡터 Va는 벡터 Vb를 포함하는 벡터이며, 벡터 Va=(0,1,1,0,0,1)과 동일한 것이다.
더욱이, 본 발명에 따르면, "사이즈 t인 벡터의 영역"이란 표현은 j가 1 내지 t의 범위인(1≤jt) 벡터에서 특정 위치를 차지하는 벡터의 일군의 j를 의미한다. 따라서 사이즈 t인 벡터의 사이즈 t인 영역은 벡터 그 자체를 의미한다.
상기 영역의 j 비트를 차지한 특정 위치는 바람직하게는 미리결정되어 고정된다(예를 들어, 벡터의 제1 j 비트로 이루어진 영역 또는 벡터의 최종 j 비트로 이루어진 영역). 그러나 이들은 동시에 고정될 필요가 없기 때문에, 예를 들어 비트들이 미리결정되어 고정된 위치 위치를 차지하고 있는 벡터의 영역 값의 함수로서 동일하게 결정될 수 있다.
따라서 각 반복시에, 본 발명은 k가 임의의 값을 갖는 파라미터인 사이즈 k인 상태 벡터 보다 적거나 같은 임의의 수의 유사-난수 비트를 갖는 생성 상태 벡터의 전류 값을 생성한다(고려될 수 있는 k의 값에 대한 이론적 제한은 없다). 본 발명은 따라서 다양한 사이즈의 유사-난수 벡터를 필요로 하고, 목적 어플리케이션의 요구사항에 맞는 다양한 어플리케이션에서 손쉽게 이용할 수 있다.
더욱이, 본 발명은 d 순열로 이루어지고 유사-난수 벡터에서 추출되었으므로 그 자체로 유사-난수인 파라미터 세트(또는 파라미터화된 세트)를 갖는 순열 함수를 이용하여 유사-난수 데이터 시퀀스를 연속적으로 생산하는 방법을 제공한다. 각 d 순열은 적어도 관련된 순열 키의 비트 값의 함수로서 미리결정된 순열 쌍(상기 쌍은 하나의 순열 단계에서 또다른 단계까지 다양하거나 모든 단계에 대해 동일하게 남을 수 있다)으로부터 선택된다. 사이즈 d인 순열 키(d≤k)가 파라미터이며, 특히 파라미터화된 데이터의 혼합을 보다 잘 보장하기 위해 비교적 크게 될 수 있다.
본 발명에서 이용된 순열 함수는 유익하게는 일방향 함수이다. 그 자체로 알 수 있는 바와 같이, 일방향 함수는 한 방향에서 손쉽게 계산할 수 있지만, 적정한 시간 내에(즉, 적정한 복잡도로) 전환하기 어렵거나 거의 불가능하다.
본 발명에서 이용된 순열 함수는 출력 데이터 벡터를 입력 데이터 벡터의 함수로서 계산하기 때문에 각각 하나의 명백한 기간을 갖는 k1 등식의 평가를 필요로한다. 반대로, 입력 데이터 벡터를 출력 데이터 벡터의 함수로서 계산하고자 하는 경우, 각각 d 미지수 중 2d 항을 포함하는 k1 방정식으로 이루어진 다변수 시스템(즉, 각 항이 다수의 미지수의 조합인 것)을 풀어야 한다. 따라서 각 방정식에서 항의 수 가 방정식의 수 보다 더 많고, 특히 높은 d의 값 보다 극도로 크기 때문에 이러한 방정식 시스템은 간단하게 풀 수 없음이 명백하다.
더욱이, 상기 수는 반복 과정에 따라 증가하고, 즉, 상기 시스템은 "자가-복제"된다. 하드웨어에 있어서, 풀려지게될 방정식 군을 특히 큰 키 사이즈로 기록하고 물리적으로 저장할 수 없다는 것이 공통된 의견이다. 예를 들어, 사이즈 d=k=256인 순열키에 있어서, 각각 2256 항을 갖는 256개의 방정식을 포함하는 256개 미지수의 다변수 시스템이 1차 반복 동안 풀려야 한다.
따라서 본 발명에서 구현된 일방향 함수는 무차별 대입 공격 및 암호해독에 대한 전환 및 강건화가 어려운 반면(그의 수학적 복잡도가 매우 크다), 순열의 사용을 통해 주로 쓰기의 관점에서 비교적 복잡하지 않은 구현을 제공한다. 따라서 이는 낮은 수준의 아키텍쳐를 사용하여 구현할 수 있고, 적은 수의 구성요소만을 필요로 하기 때문에 컴팩트하며, 그에 따라 하드웨어 및 소프트웨어 구현에서 빠른 실행을 제공한다.
생성된 유사-난수 시퀀스의 품질을 증진시키고, 고품질의 혼합을 얻기 위해, 고려된 사이즈 k1인 d 순열은 유익하게는 하기 조건 중 적어도 하나는 만족시키는 미리한정한 순열 쌍 P0, P1(P0는 비트가 0일 때 이 비트와 관련된 순열을 지시하고, P1은 비트가 1일 때 이 비트와 관련된 순열을 지시함)로부터 선택될 수 있다:
- 키의 각 비트에 대하여, P0과 P1의 각 조성에서 얻어진 순열과 P1과 P0의 각 조성에서 얻어진 순열이 모든 지점에서 상이함.
- 모든 지점에서 상이한 순열 P0 및 P1의 동일 쌍이 일방향 함수의 각 d 단계(순열의 어플리케이션에 상응하는 단계)에 이용됨.
- 모든 지점에서 동일한 수열과 개별적으로 상이한 순열 P0 및 P1의 쌍이 일방향 함수의 각 d 단계에 이용되고; 이 방식에서, 순열 키의 각 비트가 순열화될 입력 데이터의 모든 비트 영향을 줌.
각 단계에서 동일한 순열 쌍을 이용함으로써, 본 발명의 유사-난수 생성 방법의 하드웨어 복잡도를 감소시키는 이점이 있다. 각각 두 순열 P0 및 P1에 상응하는 단지 두 가지 모듈이 하드웨어에 구현될 필요가 있다. 본 발명을 구현하기 위해, 이들 모듈을 수회 연속해서 이용하거나, d 동일 모듈을 각 순율에 이용할 수 있다(즉, 모두에서 2d 모듈).
그러나, 이러한 가정은 다른 순열을 고려할 수 있기 때문에 본 발명을 어떠한 방식으로도 제한하지는 않는다. 특히, 다른 순열 단계[즉, 키의 개별 비트(distinct bit)에 대한]에서 개별 순열 쌍(P0, P1)을 고려할 수도 있다.
상이한 구현에 있어서, 임시 벡터는 제1 중간 벡터의 1에서 각 비트를 보충하여 얻어진 벡터를 추가로 포함한다. 따라서, Vprov 가 임시 벡터를 지시하고, Vint1이 제1 중간 벡터를 지시하는 경우, 다음과 같이 나타낼 수 있다.
Figure pct00002
상기 식에서,
Figure pct00003
는 제1 중간 벡터 Vint1의 1에서 각 비트를 보충하여 얻어진 벡터를 지시한다.
이는 d의 값에 상관없이 엄밀한 쇄도 효과(avalanche effect) 발생시키고, 즉 제1 중간 벡터 Vint1의 단일 비트를 변형시켜 일방향 함수의 어플리케이션에서 생겨 상태 벡터의 현재 값을 구축하는데 이용되는 벡터의 비트 절반의 값에 영향을 미친다. 그 결과, 희박한(즉, 낮은 해밍 중량) 제1 중간 벡터의 사용과 관련된 음성적인 영향을 제한하고, 하드웨어 공격에 대해 본 발명의 암호적 유사-난수 생성 방법의 저항성이 개서되었다. 따라서 프로세스 내에서 얻어진 스프레드가 뛰어나고, 이는 가치있는 암호 품질에 기여한다.
더욱이, 이 방식으로 얻은 임시 벡터는 제1 중간 벡터의 값이 무엇이건 k와 동일한 정상 헤밍 중량을 갖는다. 또한, 하드웨어 구현에 있어서, d 및 Vint1의 값에 관계없이 일방향 함수를 실행하여 절대적 정상 전력 소비를 가져온다. 일방향 함수의 각 순열 단계에서는, 1에서 비트의 정수가 존재하고, 일방향 함수의 각 단계의 활성화는 고려된 키의 비트가 0에서건 1에서건 동일한 수의 로직 게이트를 활성화시킨다. 본 발명의 일방향 함수는 따라서 전력 소비 분석을 바탕으로 한 하드웨어 공격에 민감하지 않다.
본 발명의 다른 구현에 있어서, 임시 벡터를 제1 중간 벡터와 동일하게 선택할 수 있다(k1=k).
본 발명의 일 특정 구현에 있어서, 상태 벡터의 현재 값은 배타적 논리합 조작을 어플리케이션 단계 및 상태 벡터의 선행 값으로부터 생성된 벡터의 영역에 적용한 결과이다.
이러한 구현은 상태 벡터의 연속적인 유사-난수 값 생성 공정의 수학적 복합도를 증가시킨다. 배타적 논리합 조작은 상태 벡터 초기 값의 중량과 관련된 모든 정보 소실시키기 때문에, 상태 벡터의 헤밍 중량은 통합이 진행됨에 따라 개선된다.
본 발명의 일 특정 구현에 있어서, 임시 벡터와 순열 키는 동일한 사이즈이며, 이는 제1 중간 벡터의 사이즈와 동일하다.
이 실시형태에서, 설명은 직사각형 일방향 함수에는 반대로 정사각형 일방향 함수에 관한 것이며, 여기서 순열 키는 일방향 함수가 적용되는 임시 벡터의 사이즈 k1(k1≥k)과는 다르게 사이즈 d이다(d≤k).
본 발명의 또 다른 구현에 있어서, 상기의 유사-난수 데이터 시퀀스 생성을 위한 암호화 방법에서, 각 반복이 어플리케이션 단계 전에 상태 벡터의 선행 값 및 입력 데이터 블록으로부터 계산된 현재 중간 값을 얻는 단계를 포함하고, 제1 중간 벡터가, 영역이 현재 중간 값에 의해 치환되어진 상태 벡터의 선행 값에 의해 형성된다.
따라서 본 발명에 의해 생성된 유사-난수 데이터 시퀀스는 특정 기간이 없으며, 단지 상태 벡터의 초기 값의 함수로서 미리-확정한 사이클을 따르지도 않는다. 상태 벡터의 현재 값은 상태 벡터의 초기 값 및 전체 적용된 입력 데이터 시퀀스에 의존한다. 이는 유사-난수 데이터 시퀀스의 동적 진화를 보장한다.
이러한 방식의 유사-난수 데이터 시퀀스의 생성을 확인시키기 위한 방법이 고도로 유익한 특성을 지녀서, 이는 다양한 암호화 보안 어플리케이션을 위한 잠재적 후보자가 될 것이다.
특히, 본 발명은 또한 메시지를 암호화 해싱하여 메시지의 다이제스트를 생성시키는 방법으로서 이러한 유사-난수 데이터 시퀀스의 암호화 생성 방법을 이용하는 것에 관한 것이며, 메시지의 다이제스트는, 상태 벡터의 M 값을 생성시키기 위해 유사-난수 데이터 시퀀스를 생성시키는 암호적 방법을 연속해서 반복하는 동안, 현재 중간 값을 계산하기 위한 입력 데이터 블록으로서 사용되는 미리정한 수 M의 데이터 블록을 포함한다. 이어서 메시지의 다이제스트가 이 방식으로 생성된 상태 벡터의 최종 값으로부터 얻어진다.
이러한 방식에서 사용된 해싱 방법은, 특히 강건함 및 구현의 간편성의 관점에서 본 발명의 유사-난수 생성 방법의 모든 이점을 지닌다.
더욱이, 본 발명은 또한, 하기에서 상세히 설명한 바와 같이, 입력 데이터 시퀀스를 부호화하는 방법으로 유사-난수 데이터 시퀀스 생성의 암호화 방법을 이용하는 것에 관한 것이다.
본 발명의 두 번째 측면은 입력 데이터 시퀀스를 대칭적으로 부호화하는 방법에 관한 것으로, 상태 벡터의 초기 값 및 상기 입력 시퀀스를 형성하는 연속적인 입력 문자를 기반으로, 상기 상태 벡터의 연속적인 값 및 연속적인 입력 문자가 반복적으로 생성되고, 각 반복은 하기 단계를 포함하며:
반복을 위한 현재 출력 문자가 현재 입력 문자 및 선행 반복에서 생성된 상태 벡터의 선행 값에 의존하는 가역상 어플리케이션에 의해 계산되는 부호화 단계와;
상기 반복을 위한 상태 벡터의 현재 값이 적어도 상태 벡터의 선행 값에 의존하는 비가역성 어플리케이션에 의해 계산되는 유사-난수 생성 단계;
상기 방법은
가역성 어플리케이션이 적어도 제1 및 제2 보안 키 함수를 포함하고, 상기 보안 키는 상태 벡터의 선행 값 중 적어도 하나의 영역에서 생성되며;
상기 비가역성 어플리케이션은, 상태 벡터의 선행 값 및 현재 입력 문자에 의존하며 상기 제1 보안 키 함수 또는 제2 보안 키 함수에 의해 입력 문자 또는 출력 문자에서 분리되는 현재 중간 값에 의존하는 것을 특징으로 한다.
본 발명의 개념에 있어서, “입력 및 출력 문자에서 분리된 벡터”라는 표현은 입력 및 출력 문자를 이용하여 접근할 수 없는, 즉 이들 문자에 의해 명령가능하지 않고 관찰가능하지 않은 벡터를 의미한다. 확장으로써,
상태 벡터가 유한 입력 시퀀스를 적용하여 미리정한 값을 가져오지 않는 경우, 입력, 상태 벡터 및 출력을 특징으로 하는 시스템은 비명령성이며;
주어진 시간에서 상태 벡터의 값이 출력 시퀀스의 유한 관찰 수로부터 추론될 수 없는 경우, 입력, 상태 벡터 및 출력을 특징으로 하는 시스템은 비관찰성이다.
당업계의 숙련자들에게 알려진 바와 같이, 대칭적 부호화 과정에서 상태 벡터의 초기 값은 비밀이다. 참고로서, 상태 벡터의 선행 값이 비명령성이고 비관찰성인 경우, 본 발명의 부호화 방법에서 상태 벡터의 현재 값을 계산하는데 이용된 현재 중간 값은 그 자체로 비명령성이고 비관찰성이다. 결과적으로, 얻어진 현재 상태 벡터는 또한 비명령성이고 비관찰성이며, 즉 입력 및 출력 문자로부터 분리된다. 이는 상태 벡터 값의 직접적인 관찰 또는 재구성 또는 상태 벡터의 연속적인 값의 파일롯팅을 방지한다. 더욱이, 정보 누설을 위피하기 위해 상태 벡터의 초기 값을 변형시킬 필요가 없다(예를 들어, 제1 부호화 메시지
Figure pct00004
제2 부호화 메시지 = 제1 명문 메시지
Figure pct00005
제2 명문 메시지).
본 발명의 부호화 방법을 상호교환적으로 사용하여 명문 메시지를 부호화하거나 부화된 메시지를 해독화시킬 수 있으며, 입력 데이터 시퀀스는 때때로 명문 메시지와 동일하게, 때때로 부호화된 메시지와 동일하게 취해진다는 사실이 특히 유익하다. 해독화는 부호화의 반대인 조작에 의해 수행되며, 이는 하드웨어에 구현의 관점에서 매우 이롭다. 또한, 상기의 기재를 되돌려 보면, “본 발명의 부호화 방법”이란 표현은 입력 데이터 시퀀스를 부호화 및(또는) 해독화하는 방법에 관한 것이다.
따라서 최적 실행 속도로 임의 사이즈의 연속적인 입력 문자에 의해 형성된 입력 데이터 시퀀스를 부호화/해독화하는 동시에 하드웨어 및 소프트웨어에서 간편하고 효과적인 구현을 보장할 수 있다.
상태 벡터의 연속적인 값은 상태 벡터의 초기 값 및 전체 입력 데이터 시퀀스에 의존한다. 결과적으로, 상태 벡터는 비명령성이고 비관찰성인 동적인 진화를 갖고 있다. 이는 고도로 보안성인 부호화/해독화를 보장한다.
일 특정 실시형태에 있어서, 제1 보안 키 함수 및(또는) 제2 보안 키 함수는, 상기 함수의 보안 키 중 적어도 하나의 영역, 즉 상태 벡터의 선행 값 중 적어도 하나의 영역에 의해 고정된 매개변수를 갖는 적어도 하나의 배타적 논리합 조작을 포함한다.
본 발명의 일 특정 구현에 있어서, 각 상태 벡터는 사이즈 k인 것이며, 유사-난수 생성 단계 동안, 상태 벡터의 현재 값을 계산하기 위해,
상태 벡터의 선행 값의 영역으로부터 및 현재 중간 값으로부터 형성된 사이즈 k인 적어도 하나의 제1 중간 벡터를 포함하는 k 보다 크거나 같은 사이즈 k1인 임시 벡터에, 적어도 개별 디스팅트(distinct) 비트의 함수로서 선택된 사이즈 d인 순열 키의 개이 비트와 각각 관련된 사이즈 k1인 미리정한 수 d의 순열을 적용하며,상기 순열 키는 제1 중간 값의 k 비트로부터 d 디스팅트 비트를 선택한 결과이며, 상태 벡터의 현재 값은 적어도 상기 어플리케이션 단계에서 생성된 벡터의 영역에서 얻어진다.
따라서 본 발명의 부호화 방법은 상기에서 기술한 본 발명의 유사-난수 생성 방법에서와 같은 동일한 이점을 갖는다. 더욱이, 이는
본 발명의 유사-난수 생성 방법을 위해 상기에서 제안한 다양한 실시형태 및 다양한 변형을 포함한다.
스트림 부호화 알고리즘에 상기와 같은 유사-난수 생성 방법을 이용함으로써 고도의 디지털 보안을 보장하는 동시에 하드웨어 및 소프트웨어에서 (특히 실행 속도와 관련하여)간단하고 효과적인 구현을 가능하게 하는 이점이 있다.
본 발명의 특히 유익한 변형에 있어서, 입력 및(또는) 출력 단어는 반복의 함수로서 다수의 가변적 비트를 포함한다. 이어서, 상태 벡터는 각 반복 시에 가변적인 비트의 수를 지시하는 영역을 포함할 수 있다.
상태 벡터는 유사-난수 변수가 되고, 각 반복 시에, 부호화 방법이 부호화될 입력 문자를 처리하며, 이 사이즈는 또한 입력 데이터 시퀀스 및 상태 벡터의 초기 값의 함수로서 유사-난수 방식으로 다양한다. 상태 벡터는 부호화 방법의 입력 및 출력 문자로부터 분리되고, 세분(사이즈와 관련하여)이 부호화 방법 동안 입력 단어의 수준에 영향을 받는지를 측정하는 것은 불가능하다. 이는 암호해독에 대해 보다 우수한 보호를 제공한다.
본 발명의 이 특정 실시형태에 있어서, 각 반복의 유사-난수 생성 단계는, 비트의 가변 수가 0인 상태 벡터의 현재 값으로부터 측정되는 경우, 상태 벡터의 현재 값에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값을 치환시키는 상태 벡터의 신규 현재 값을 계산하는 단계를 추가로 포함한다.
상태 벡터의 연속적인 값은, 부호화 단계와의 상호작용 없이 입력 또는 출력 문자가 0으로 남아있는 한, “엠티(empty)”로 생성된다. 달리 말하면, 유사-난수 생성 단계 동안 영향받은 조작이 부호화 단계 동안 영향받은 것들을 비동기화시켜, 보다 우수한 보호를 제공한다.
본 발명의 일 특정 실시형태에 있어서, 유사-난수 생성 단계가 제1 상태 벡터의 현재 값을 형성하는 제1 유사-난수 생성 단계이며, 상기 제1 유사-난수 생성 단계가 제2 상태 벡터의 현재 값을 형성하는 적어도 하나의 제2 유사-난수 생성 단계와 병렬로 결합하고, 상태 벡터의 현재 값이 배타적 논리합 조작을 제1 상태 벡터의 현재 값 및 적어도 제2 상태 벡터의 현재 값에 적용한 결과이다.
따라서 상태 벡터의 상이한 값이 결합되고, 이는 점진적으로 큰 사이클을 생성시킴으로써 연속적인 유사-난수 생성 데이터의 수학적 복잡도가 증가하게 된다.
본 발명의 또 다른 구현에 있어서, 부호화 단계는 제1 부호화 단계이며, 여기서 제1 현재 입력 문자 및 상태 벡터의 선행 값의 적어도 하나의 제1 영역에 의존하는 제1 가역성 어플리케이션에 의해 제1 현재 출력 문자와 제1 현재 중간 값이 계산된다.
더욱이, 상기 방법은 적어도 하나의 제2 부호화 단계를 추가로 포함하고, 여기서 제2 현재 입력 문자 및 상태 벡터의 선행 값의 적어도 하나의 제2 영역에 의존하는 제2 가역성 어플리케이션에 따라 제2 현재 출력 문자와 제2 현재 중간 값이 계산되며; 유사-난수 생성 단계 동안 이용된 상기 중간 값이 상기 제1 현재 중간 값 및 적어도 상기 제2 현재 중간 값를 포함한다.
따라서 다수의 시그널이 동일한 상태 벡터와 멀티플렉싱될 수 있고, 이는 하드웨어 또는 소프트웨어 구현을 간단하게 한다.
본 발명의 또 다른 구현에 있어서, 부호화 방법은 적어도 두 개의 명문 메시지 블록을 암호화 멀티플렉싱시켜 적어도 두 개의 부호화된 메시지 블록을 형성시키는 단계를 추가로 포함하고, 각 명문 메시지 블록이 연속적인 입력 문자에 상응하며, 상기 적어도 두 개의 부호화된 메시지 블록이 각 반복 시 상태 벡터의 선행 값 영역의 함수로서 정렬된다.
따라서 각 반복 시, 전송 채널에서, 결합여부에 상관 없이 M 부호화 블록의 정렬 또는 혼합은 유사-변수이며 상태 벡터의 초기 값 및 전체 입력 시퀀스에 의존한다. 결론적으로 입력 시퀀스에 대한 임의의 변형이 혼합을 변형시키고, 그에 따라 최적 보호를 제공한다.
상기에 기술한 바와 같이, 본 발명은 암호해독 및 무차별 대입 공격에 대해 강건하며, 빠르며, 하드웨어 구현이 비교적 복잡하지 않은 일방향 함수를 기반으로 한 유사-난수 생성 방범을 제안한다.
또한 본 발명은 사이즈 k1인 입력 비트의 벡터로부터 출력 비트의 벡터를 생성하도록 된 암호화 모듈을 제공하며, 이는 출력 벡터의 비트로부터 d 개별 비트를 선택함으로써 미리정한 사이즈 d인 순열 키를 형성하기 위한 수단; 순열 키의 각 비트와 적어도 비트의 값의 함수로서 선택된 사이즈 k1인 순열을 연관시키기 위한 수단; 및 출력 비트의 벡터를 얻기 위한 순열 키의 d 비트와 연관된 사이즈 k1인 d 순열을 입력 벡터에 연관시키기 위한 수단을 포함한다.
본 발명의 암호화 모듈은 유익하게는 상기에 언급한 일방향 함수를 포함한다.
더욱이, 본 발명은 또한 상태 벡터의 초기 값으로부터 반복적으로 형성된 사이즈 k인 상태 벡터의 연속적인 값으로 형성된 유사-난수 데이터 시퀀스의 암호화 발생기를 제공하며, 상기 발생기는 각 반복 시 반복을 위한 상태 벡터의 현재 값을 생성시키는데 이용하기 위한 수단을 포함하며; 선행 반복에서 생성된 상태 벡터의 선행 값의 적어도 하나의 영역으로부터 형성된 사이즈 k인 적어도 하나의 제1 중간 벡터를 포함한 k 보다 크거나 같은 사이즈 k1인 임시 벡터로부터 생성 벡터를 생성하도록 된 상기에 기술한 바와 같은 암호화 모듈을 포함하며, 상기 순열 키가 k 보다 크거나 같은 사이즈 d이며; 상태 벡터의 적어도 하나의 영역으로부터 상태 벡터의 현재 값을 얻기 위한 수단을 포함한다.
일 실시형태에 있어서, 이 발생기는 각 반복 시에, 상태 벡터의 선행 값 및 입력 데이터 블록으로부터 계산된 현재 중간 값를 얻기 위한 수단; 및 영역이 현재 중간 값에 의해 치환된 상태 벡터의 선행 값으로부터 제1 중간 벡터)을 형성하기 위한 수단을 추가로 이용한다.
본 발명은 또한 상태 벡터의 초기 값 및 입력 시퀀스를 형성하는 연속적인 입력 문자, 상태 벡터의 연속적인 값, 및 연속적인 출력 문자를 반복적으로 생성하도록 된 입력 데이터 시퀀스를 부호화하기 위한 장비를 제공하며, 상기 부호화 장비는 각 반복 시에, 현재 입력 문자 및 선행 반복에서 생성된 상태 벡터의 선행 값에 의존하는 가역적 어플리케이션에 의해 상기 반복을 위한 현재 출력 문자를 계산하도록 된 부호화 수단; 및 적어도 상태 벡터의 선행 값에 의존하는 비가역성 어플리케이션에 의해 상기 반복을 위한 현재 출력 문자를 계산하도록 된 유사-난수 발생기를 이용한다.
본 발명에 따르면, 상기 부호화 장비는, 가역성 어플리케이션이 적어도 제1 및 제2 보안 키 함수를 포함하고, 상기 보안 키는 상태 벡터의 선행 값 중 적어도 하나의 영역에서 생성되며, 비가역성 어플리케이션이 상태 벡터의 선행 값 및 현재 입력 문자에 의존하고 상기 제1 보안 키 함수 또는 제2 보안 키 함수에 의해 입력 문자 또는 출력 문자로부터 분리되는 현재 중간 값에 추가로 의존하게 된다.
일 실시형태에 있어서, 본 발명의 부호화 장비의 유사-난수 발생기는 상기에 기술한 바와 같은 본 발명의 유사-난수 데이터 시퀀스의 암호화 발생기이다.
본 발명의 일 특정 실시형태에 있어서, 부호화 장비는, 반복의 함수로서 가변성의 다수의 비트를 포함한 입력 문자 및(또는) 출력 문자를 처리하도록 되어 있고, 각 반복 시 상태 벡터의 영역으로부터 가변 수의 비트를 측정하기 위한 수단을 추가로 포함한다. 이 실시형태에 있어서, 부호화 장비의 유사-난수 생성기는, 상기 가변 수의 비트가 0인 상태 벡터의 현재 값으로부터 측정되는 경우, 상태 벡터의 현재 값에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값을 치환하는 상태 벡터의 신규 현재 값을 계산하기 위한 수단을 추가로 포함할 수 있다.
또 다른 실시형태에 있어서, 부호화 장비는 적어도 두 개의 명문 메시지 블록을 암호적으로 멀티플렉싱하여 적어도 두 개의 부호화된 메시지 블록을 형성시키고, 각 명문 메시지 블록이 연속적인 입력 문자에 상응하며, 상기 적어도 두 개의 부호화된 메시지 블록이 상태 벡터의 선행 값 영역의 함수로서 각 반복 시 정렬되는 장비를 추가로 포함한다.
본 발명은 또한 미리정한 수 M의 데이터 블록을 포함한 메시지로부터 다이제스트를 생성하도록 된 암호화 해싱 장비에 있어서, 상기 해싱 장비가 M 연속 반속 시에 상태 벡터의 연속적인 M 값을 생성시키는 상기에 기술한 바와 같은 본 발명에 따른 암호화 발생기; 각각의 M 반복 시에, 메시지의 현재 데이터 블록 및 상기 암호화 발생기에 의해 생성된 상태 벡터의 선행 값으로부터의 상기 반복을 위한 현재 중간 값을 생성하는 수단, 및 상기 현재 중간 값을 암호화 발생기에 공급하는 수단; 및 상기 발생기에 의해 생성된 상태 벡터의 최종 값으로부터 상기 다이제스트를 얻기 위한 수단을 포함하는 것을 특징으로 하는 암호화 해싱 장비를 제공한다.
더욱이, 본 발명의 일 특정 실시형태에 있어서, 본 발명의 암호화 발생기 및(또는) 부호화 장비 및(또는) 암호화 해싱 장비는, 데이터 버스에 의해 상호 연결된 메모리, 입력 유니트 및 출력 유니트를 시그널에 의해 조절하는 중앙 처리 유니트를 통상적으로 포함한 하나 이상의 데이터-처리 시스템에 의해 구현될 수 있음에 주목하여야 한다.
따라서 본 발명은 또한 컴퓨터 또는 데이터 처리 시스템에 로딩되어 실행되는 경우, 임의의 상기 특징을 갖는 유사-난수 데이터 시퀀스를 생성하기 위한 암호화 방법을 실행하기 위하 프로그램 코드 명령어를 포함한 컴퓨터 프로그램, 임의의 상기 특징을 갖는 부호화 방법을 실행하기 위하 프로그램 코드 명령어를 포함한 컴퓨터 프로그램 및 임의의 상기 특징을 갖는 암호화 해싱 방법을 실행하기 위하 프로그램 코드 명령어를 포함한 컴퓨터 프로그램을 제공한다.
이러한 컴퓨터 프로그램은 컴퓨터 가독성 매체에 저장할 수 있고, 마이크로프로세서에 의해 실행시킬 수 있다.
이들은 임의의 프로그래밍 언어를 사용하며, 소스 코드, 목적 코드 또는 소스 코드와 목적 코드 사이의 코드 매개체 형태, 예를 들어, 부분적으로 컴파일된 형태 또는 임의의 바람직한 형태를 취할 수 있다.
본 발명은 또한 상기에 기술한 바와 같은 컴퓨터 프로그램의 명령어를 함유한 컴퓨터-가독성 정보 매체를 제공한다.
본 발명은 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치에 관한 것으로, 본 발명에 따르면 데이터 시퀀스를 부호화하는 장비 및 방법과 유사-난수 데이터 시퀀스를 생성하는 암호화 장비 및 암호화 방법과, 이들의 디지털 보안, 특히 데이터의 부호화 및 해독화를 위한 분야 및 메시지를 암호적으로 해싱하기 바람직한 용도를 제공할 수 있는 효과가 있다.
본 발명의 다른 특징 및 이점이 하기에서 비제한적인 예시 방식 및 첨부된 도면을 참조로 나타낸 설명에 따라 드러날 것이다.
도 1a 및 1b는 유사-난수 데이터 시퀀스를 생성시키기 위한 본 발명의 일 특정 실시형태의 장비의 예를 개략적으로 나타낸 도이다.
도 2 내지 8은 입력 데이터 시퀀스를 부호화하기 위한 본 발명의 특정 실시형태의 장비의 예를 개략적으로 나타낸 도이다.
도 9a 내지 9e는 선행 도면으로부터의 유사-난수 발생기 또는 부호화 장비에서 또는 도 14로부터의 암호화 해싱 장비에서 사용되는 순열의 예를 나타낸 도이다.
도 10a 및 10b는 도 9c 순열의 하드웨어 구현의 예를 나타낸 도이다.
도 11a 내지 11c는 암호화 멀티플렉싱의 예를 나타낸 도이다.
도 12 및 13은 암호화 멀티플렉싱에 본 발명 부호화 장비의 어플리케이션의 예를 나타낸 도이다.
도 14는 본 발명의 일 특정 실시형태의 암호화 해싱 장비의 예를 개략적으로 나타낸 도이다.
도 15a 및 15b는 선행 기술의 두 가지 부호화 메카니즘을 개략적으로 나타낸 도이다(상기에서 설명하였음).
예비 표기 및 표기법
특히 유익한 방식으로서, 본 발명은 구현가능한(또는 매개변수화가능한) 순열 함수 P, 즉 고정할 수 있는 매개변수를 가지며, 하기에 기술한 바와 같은, 다양한 암호화 어플리케이션에, 특히 유사-난수 생성, 데이터의 부호화/해독화 및 메시지의 암호적 해싱에 이용할 수 있는 함수를 제안한다.
상기 순열 함수 P는 적용될 데이터의 사이즈의 함수로서 고정된 그의 매개변수와 소위 순열 키에 의해 고정된 그의 매개변수를 가질 수 있다. 따라서 순열 키 C에 의해 고정된 매개변수를 갖는 순열 함수 P가 입력 데이터 E에 적용되어 출력 데이터 S가 얻어지도록 설계하기 위해 하기의 통상적인 표기법이 이용된다.
S = P(E, C)
일반적으로 말하면, 사이즈 e인 입력 데이터 E 및 e 보다 작거나 같은 사이즈 p인 순열 키 C에 대하여, 순열 함수 P는 사이즈 ep 연속 순열을 입력 데이터 E에 적용하여 얻은 결과이며, 각 순열은 순열 키 C의 비트 하나와 관련이 있고 적어도 상기 비트의 값의 함수로서 선택된다.
예를 들어, 순열 키의 각 비트와의 관련, 즉 순열 함수의 각 순열 단계, 비트가 0인 경우 순열 P0 및 비트가 1인 경우 순열 P1와의 관계가 존재한다.
동일한 순열 쌍(P0, P1)을 순열 함수 P의 다양한 단계에 고려할 수 있다. 이들 순열 P0 및 P1은 이어서 바람직하게는 모든 지점에서 서로 상이하며, 동일 순열로부터의 모든 지점에서 각각 상한 것으로 정의된다. 그러나 이러한 가정은 본 발명을 제한하는 임의의 환경에 포함되지 않고, 상이한 순열 쌍을 순열 함수의 각 단계에 고려하거나, 또한 예를 들어, 순열 P0 및 P1을 조합하여 얻어진 순열은 순열 P0 및 P1을 조합하여 얻어진 순열로부터의 모든 지점에서 상이하여야 하는 다른 조건을 순열 P0 및 P1에 적용할 수도 있다.
순열 함수 P는 고려된 순열 키에 따라 상이한 특성을 갖는다.
따라서 순열 키 C가 순열 P가 적용되는 입력 데이터에 독립적인 데이터로부터 얻어지는 경우, 일대일 대응(또는 키 순열) 함수가 얻어지며, 즉
순열 키의 값이 알려져 있는 경우, 즉 함수 P는 가역적이고, 즉 상기 키에 의해 고정된 매개변수를 갖는 함수 P의 입력 데이터 값은 출력 데이터의 단지 하나의 값에 상응한다.
이러한 순열 함수 P의 특성은 특히 본 발명의 부호화/해독화 장비 및 암호화 해싱 장비와 관련된 특정 실시형태에서 고려된다.
순열 키 C가, 순열 함수 P가 적용되는 입력 데이터 E로부터 형성되는 경우(달리 말하면, 순열 키가 입력 데이터 E 전체 또는 일부에 의존하는 경우), 일방향 함수가 얻어지고, 즉 함수 P는 비가역적이며, 달리 말하면, 일 방향에서는 쉽게 계산되지만 적당한 시간에 전환시키기 어렵거나 불가능하다(즉 적당한 복잡도를 갖는다).
이러한 방식으로 고정된 매개변수를 갖는 순열 함수(즉, 순열 함수가 적용되는 입력 데이터에 의존하는 순열 키를 갖는) 및 이러한 순열 함수에 기반한 포르티오리(fortiori) 일방향 함수는 종래 기술에서 제안되거나 사용된 바 없다.
본 명세서의 나머지 부분에서는, 특성의 함수로서 순열 함수 P 어플리케이션 사이를 구분하기 위해, “목적 순열 수단”이란 용어는 일방향 함수인 경우 순열 함수 P를 구현하는 수단을 의미한다(또한 하기에서 “목적 순열”로 간략하게 사용되다). 결론적으로, 목적 순열은, 일방향, 즉 비가역성 함수과 관계되어 사용되며 상이한 입력 데이터 E1, E2, ....의 일방향 함수가 동일한 출력 S를 가질 수 있기 때문에(예를 들어, E1≠E2≠,...로써 S=P(E1, E2)=P(E2, E2)=....), 비가역성(즉, 비 일대일 대응)이라고 이해되어야 한다.
마찬가지로, “일대일 대응 순열 함수”란 용어는 순열 함수 P가 일대일 대응 함수인 경우 이를 구현하는 수단을 의미하며, 달리 말하면, 일대일 대응 키 순열을 의미한다(또한 이하에서 “일대일 대응 순열”로 간략하게 사용된다).
순열 함수 P를 구현하기 위한 특징 및 수단을 하기에서, 특히 도 9A-9E, 10E 및 10B를 참조로 보다 상세히 설명한다. 이러한 특징 및 구현 수단은 순열 함수 P를 이용하여 하기에서 기술한 다양한 장비 및 수단에 적용된다(일방향 함수 또는 일대일 대응 함수에 상관없음).
유사-난수 생성 방법 및 발생기
도 1은 유사-난수 데이터 시퀀스 3을 생성하기 위한 본 발명의 유사-난수 발생기 1의 예를 개략적으로 나타낸다. 도 1b는 상기 유사-난수 발생기의 특정 실시형태를 나타낸다. 도 1a 및 1b 또한 유사-난수 데이터 시퀀스를 생성하는 본 발명 방법의 기본적인 단계를 예시하고 있음을 주목할 필요가 있다.
유사-난수 발생기 1은 상태 벡터 V의 초기 값 V0에서 출발하여 상태 벡터 V의 연속 값 V0, ..., Vn -1, Vn, ...를 반복 생성시킴으로써 유사-난수 데이터 시퀀스를 형성하는 계산 수단 5를 포함한다. Vn은 nth 반복 시에 상태 벡터 V에 의해 취해진 값에 상응한다는 사실에 주목할 필요가 있다. 다른 변수들에 대해 유사한 방식으로 동일한 전환이 사용된다.
상태 벡터 V는 특정 수 k의 비트를 포함하다(즉, 사이즈 k인 벡터, 여기서 k는 1 보다 크거나 같은 정수임).
유사-난수 생성 과정의 각 반복 n 시에, 계산 수다 5는 상태 벡터의 선행 값 Vn-1에 의존하는 비가역성 어플리케이션을 이용하여 상태 벡터 V의 현재 값 Vn을 계산한다. 이 비가역성 어플리케이션은 사이즈 d≤k인 순열 키에 의해 고정된 매개변수를 갖는 일방향 함수를 기반으로 한다.
본 발명에서 구현된 예에 있어서, 상태 벡터는 유익하게는 또 다른 어플리케이션, 즉 상태 벡터의 선행 값 Vn -1 및 입력 데이터 시퀀스에 속하는 입력 문자 Un(본 발명의 개념에서 입력 데이터 블록)에 의존할 수 있는 어플리케이션 AT에 의해 계산된 현재 중간 값 Xα를 갖는 각 반복 n에 공급된다. 본 발명에서 기술한 예에 있어서, 입력 문자 Un은 특정 수 m의 비트(사이즈 m인 문자)를 포함하고, 여기서 m은 1 보다 크거나 같은 정수이다. 현재 중간 값 Xα는 m 비트(사이즈 m인 벡터)를 포함한다.
어플리케이션 AT의 예는 하기에, 특히 도 2 내지 12(여기서 어플리케이션 AT는 부호화/해독화 모듈임) 및 도 14(여기서 어플리케이션 AT는 암호화 해싱 장비의 미리조건화된 모듈임)를 참조로 기술한다.
도 1b에 따르면, 각각 본 발명의 일 특정 구현의 유사-난수 발생기 1 및 유사-난수 생성 방법에서 실행된 기본 수단 및 기본 단계는 도 1b를 참조로 기술된다.
제1 반복 시에, 유사-난수 발생기 1은 제1 입력 문자 U1(현재 중간 값 Xα를 이용) 및 상태 벡터의 초기 값 V0의 함수로서 상태 벡터 V의 제1 값 V1을 계산한다.
확장으로서, nth 반복 시에, 유사-난수 발생기 1은 현재 입력 문자 Un(현재 중간 벡터 Xα를 이용) 및 상태 벡터의 선행 값 Vn -1의 함수로서 상태 벡터 V의 현재 값 Vn을 계산한다.
이 예에 있어서, 유사-난수 발생기 1은 전송 수단 321, 수용 수단 323 및 계산 수단 325a, 325c, 325c, 326 및 327을 포함한다.
각 반복 시(예를 들어, 반복 n 시에), 전송 수단 321은 어플리케이션 AT에 상태 벡터의 선행 값 Vn -1을 전송한다. 수용 수단 323은 어플리케이션 AT에서 현재 중간 값 Xα를 수용한다.
제1 계산 수단 325a는 상태 벡터의 선행 값 Vn -1의 사이즈 m인 영역 Xn -1을 현재 중간 값 Xα로 치환하여 제1 중간 상태 벡터 Vintl의 현재 값을 형성한다.
본 발명에서 기술한 예에 있어서, 제2 계산 수단 325b는 제1 중간 상태 벡터 Vintl의 현재 값 및 제1 중간 상태 벡터 Vintl
Figure pct00006
로 표기된 보충 벡터의 현재 값으로부터 k 보다 크거나 같은 사이즈 k1인 임시 벡터 Vprov의 현재 값을 형성한다(즉, 본 발명의 개념에서, 임시 벡터 Vprov는 Vintl
Figure pct00007
을 포함한다). 당업계에 알려져 있는 바와 같이, 벡터의 보충 벡터는 상기 벡터의 각 비트에 1을 보충하여 얻어진다.
본 발명에서 상기 방식으로 얻어진 임시 벡터의 현재 값은 다음과 같다:
Figure pct00008
이어서 임시 벡터는 사이즈 k1=2k의 것이 된다.
다른 방법으로, 이 임시 벡터는 Vintl와 동일할 수 있고(즉, 제2 계산 수단 325b가 면제될 수 있음), 이어서 사이즈 k인 것이 된다. 상기의 옵션에 상응하는 실시형태를 특히 도 3a에 나타내었고, 하기에서 보다 상세하게 기술한다.
이어서 임시 벡터의 현재 값은 생성 벡터 Vres의 현재 값을 생성하기 위해 임시 벡터의 현재 값에 일방향 함수를 적용하도록 된 목적 순열 수단 326a를 포함하는 제3 계산 수단 326으로 공급된다. 목적 순열 수단 326a에 의해 적용된 상기 일방향 함수는 k 보다 크거나 같은 미리정한 사이즈 d인 순열 키 C에 의해 고정된 매개변수를 갖는 상기에 기술한 구성가능한 순열 함수 P를 기반으로 한다. 여기서, 선택된 값은 d=k이다.
일방향 함수의 순열 키 C의 현재 값은 제2 중간 상태 벡터의 현재 값으로부터 형성 수단 326b에 의해 형성된다. 본 발명에서 기술한 예에 있어서, 현재 값 C는 제1 중간 상태 벡터의 현재 값과 동일한 것, C=Vintl로서 취해진다.
하기에서는, 간편성을 위해, C 및 용어 “키”는
반복 n에 대한 순열 키의 현재 값 및 순열 키 자체를 위해 상호교환적으로 사용된다(즉, 랜덤 변수).
다른 방법으로, 본 발명의 또 다른 실시형태에 있어서, 키 d의 사이즈는 엄밀하게 k 보다 작을 수 있다. 이어서 순열 키 C는 제1 중간 벡터 Vintlk 비트로부터, 귀납적으로 또는 그렇지 않게, d 개별 비트를 선택하는 수단 326b에 의해 형성되며, 선택된 d 비트의 위치는 바람직하게는 미리정해져 고정된다. 사이즈 d인 순열 키는 바람직하게는 중간 현재 값 Xα의 사이즈 보다 크고, 선택된 d 비트는 바람직하게는 현재 중간 값 Xα를 포함한다.
여기서, 목적 순열 수단 326a에 의해 적용된 일방향 함수는 사이즈 k1=2k인(즉, e=k1=2k) d=k 연속 순열을 적용한 결과이며, 각 순열은 순열 키 C=Vintl의 개별 비트와 연관되고 적어도 이 비트 값의 함수로서 선택된다(예를 들어, 도 10a 및 10b를 참조로 하기에서 기술한 바와 같이, 미리정한 순열 테이블에서). 다른 방법으로, 이는 또한 고려된 순열 단계에 의존할 수 있다.
순열 키 C=Vintl가 순열 함수 P가 적용되는 데이터에 의존하기 때문에(
Figure pct00009
이기 때문에) P는 일방향 함수를 한정한다. 이 어플리케이션 단계 후 얻어진 생성 벡터 Vres는 사이즈 k1=2k의 것이다.
본 발명의 개념에 있어서, 계산 수단 326은 따라서 암호화 모듈로 이루어진다.
본 발명에서 기술한 실시형태에 있어서, 유사-난수 발생기 1의 계산 수단 5는 생성 벡터 Vres의 현재 값의 k1 비트로부터 k 비트의 영역을 선택하여 제2 중간 벡터 Vint2의 현재 값을 형성하는 추가의 계사 수단 325c를 추가로 포함한다. 예를 들어, 제2 중간 벡터 Vint2는 생성 벡터 Vres의 제1 k 비트에 의해 형성된다.
더욱이, 여기서 유사-난수 발생기 1의 계산 수단 5는 상태 벡터의 선행 값 Vn-1과 제2 중간 벡터 Vint2의 현재 값을 조합하는 배타적 논리합 게이트 327a를 포함한 제5 계산 수단 327을 추가로 포함한다. 비가역성이 되는 것이 부가하여, 이 배타적 논리합 조작은 유사-난수 발생기 1에 대한 보다 큰 확장을 부여한다.
본 발명의 또 다른 실시형태에 있어서, 제5 계산 수단 327의 배타적 논리합 게이트 327a는 제2 중간 벡터 Vint2의 현재 값과 제1 중간 벡터 Vint1의 현재 값을 결합한다.
본 발명의 추가의 실시형태에 있어서, 상태 벡터 V의 현재 값 Vn -1은 제2 중간 벡터 Vint2의 현재 값에 상응한다.
반복 n의 상기 조작 후, 상태 벡터 V의 현재 값 Vn -1은 다름 반복 n+1에 이용가능하다.
도 1b에 나타낸 예에 있어서, 현재 중간 값 Xα는 상태 벡터의 선행 값 Vn -1m 귀납적 비트로 이루어진 영역 Xn -1을 치환하여 제1 중간 상태 벡터 Vintl의 현재 값을 형성한다. 이러한 가정은 본 발명을 제한하는 것은 아니지만, 물론 현재 중간 값 Xα의 m 성분에 의해, 상태 벡터에서, 귀납적일 필요 없이, m 특정 위치를 차지하는 Vn -1의 영역 Xn -1m 비트를 손쉽게 치환할 수 있어 제1 중간 상태 벡터 Vintl의 현재 값을 형성한다.
부호화 방법 및 장비
도 2 내지 12는 도 1a(도 1b에서의 예로서 나타낸 특정 구현)에 개략적으로 나타낸 유사-난수 발생기 1를 부호화/해독화 모듈을 조합하는데 사용하여 입력 문자를 연속적으로 부호화 및(또는) 암호화 할 수 있음을 나타낸다. 도 2 내지 12는 또한 입력 데이터 시퀀스를 부호화하는 방법의 기본 단계도 예시함에 주목할 필요가 있다. 여기서, 현재 중간 값 Xα는 유사-난수 발생기에 독립적인 어플리케이션에 의한 부호화/해독화 모듈에 의해 계산될 수 있다.
도 2는 본 발명의 일 특정 실시형태에 있어 입력 데이터 시퀀스 9(또는 15)를 부호화(및(또는) 해독화)하기 위한 장비 7을 나타낸다. 이 장비 7은 상태 벡터의 연속적인 값 13 및 상태 벡터의 초기 값 V0로부터 연속적인 출력 문자 15(또는 9) 및 입력 시퀀스를 형성하는 연속적인 입력 문자 Un(또는 Yn)을 반복적으로 형성하기 위한 생성 수단 11을 포함한다.
상태 벡터 V는 미리정한 수 k의 비트를 포함하고, 상태 벡터의 초기 값 V0는 사이즈 k인 구성가능한 부호화/해독화 키에 상응한다. 사이즈 k인 부호화/해독화 키는 키의 비트 수에 상응하고, 따라서 상태 벡터 V의 비트 수에 상응한다.
더욱이, 입력 또는 출력 문자 Un/Yn은 각 반복 시에 부호화/해독화 모듈 17에 의해 부호화 또는 해독화되는 비트의 수에 상응하는 사이즈 m의 것이다. 이들 값 km은 미리정해질 수 있다.
입력 및 출력 문자의 사이즈가 가변적일 수 있는 실시형태를 도 7 및 8을 참조로 하기에 상세히 설명한다.
본 발명에서 구상된 예에 있어서, 생성 수단 11은 도 1a에 도시한 바와 같은 본 발명의 유사-난수 발생기 1(예를 들어 도 1b로부터의 유사-난수 발생기) 및 부호화/해독화 모듈 17을 포함한다. 다른 방법으로는, 다른 유사-난수 발생기들을, 예를 들어 고등 부호화 표준(AES) 알고리즘에 기반한 유사-난수 발생기, 블룸 블룸 셔브(Blum Blum Shub; BBS) 알고리즘에 기반한 유사-난수 발생기 또는 당업계의 숙련자들에게 알려진 쉬프트 레지스터에 기반한 유사-난수 발생기를 본 발명의 부호화 장비 및 방법을 구현하는데 이용할 수도 있다.
따라서 각 반복 n 시에, 유사-난수 발생기 1은
상태 벡터의 선행 값 Vn -1 및 부호화/해독화 모듈 17에 의해 수행된 계산에 의해 생성된 현재 중간 값 Xα에 의존하며 상태 벡터의 선행 값 Vn -1 및 현재 입력 문자 Un(또는 Yn)에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값 Vn을 게산하며, 부호화/해독화 모듈 17은 현재 입력 문자 Un(또는 Yn) 및 상태 벡터의 선행 값 Vn -1에 의존하는 가역성 어플리케이션에 의해 현재 출력 문자 Yn(또는 Un)를 계산한다.
부호화 장비 7를 부호화 및(또는) 해독화를 위해 가역적으로 사용할 수 있음에 주목할 필요가 있다. 상기에 기술한 바와 같이, 본 발명의 부호화 방법은, 입력 문자의 시퀀스가 부호화될 명문의 메시지로부터 유래한 경우 부호화 모드에서 또는 출력 문자의 시퀀스가 해독화될 부호화된 메시지에서 유래한 경우 해독화 모드에서 이용될 수 있다.
본 예에 있어서, 각 반복 n 시에, 유사-난수 발생기 1을 상태 벡터에
부호화/해독화 모듈 17에 의해 수행된 계산에 의해 생성되고 상태 벡터의 선행 값 Vn -1 및 현재 입력 문자 Un(또는 Yn)에 의존하는 현재 중간 값 Xα를 공급한다.
상기에 기술한 바와 같이, 유사-난수 발생기 1은 순열 키에 의해 고정된 매개변수를 갖는 일방향 함수에 기반한 비가역성 어플리케이션을 이용하며, 동일한 방식으로 부호화/해독화 모듈 17을 수행하는데 이용될 수도 있다. 더욱이, 부호화/해독화 모듈 17은 가역성이고, 그에 따라 역 순서로 영향을 받는 부호화/해독화 조작으로 이용될 수 있다. 따라서, 부호화 동안, 입력 데이터는 기록된 Un(명문 데이터)이고 출력 데이터는 Yn(부호화된 데이터)인 반면, 해독화 동안에는 입력 문자는 Yn(부호화된 데이터)이며, 출력 문자는 Un(명문 데이터)이다.
보다 구체적으로, 본 발명의 부호화 방법에 의한 부호화 시작 전에, 부호화 키의 값은 상태 벡터 V의 초기 값 V0이 된다(V0=부호화 키).
제1 반복 시에, 부호화/해독화 모듈 17은 제1 입력 문자 U1(명문 문자에 상응함) 및 상태 벡터의 초기 값 V0의 함수로서 제1 출력 문자 Y1(부호화된 문자에 상응함)을 계산한다. 더욱이, 유사-난수 생성기 1은 제1 입력 문자 U1 및 상태 벡터의 초기 값 V0의 함수로서 상태 벡터 V의 제1 벡터 V1을 계산한다. 확장으로써, nth 반복 시에, 부호화/해독화 모듈 17은 현재 입력 문자 Un 및 상태 벡터의 선행 값 Vn -1의 함수로서 현재 출력 문자 Yn을 계산한다. 더욱이, 유사-난수 발생기 1은 현재 입력 문자 Un 및 상태 벡터의 선행 값 Vn -1의 함수로서 상태 벡터 V의 현제 값 Vn을 계산한다.
동일한 방식으로, 본 발명의 부호화 방법에 의한 해독화 시작 전, 해독화 키의 값은 상태 벡터 V의 초기 값 V0이 된다(V0=해독화 키). 해독화 키는 본래 데이터를 부호화하는데 이용된 부호화 키와 동일하게 취해진다(대칭적 부호화).
해독화 과정의 제1 반복 시에,
부호화/해독화 모듈 17은 제1 입력 문자 Y1(부호화된 문자에 상응함) 및 상태 벡터의 초기 값 V0의 함수로서 제1 출력 문자 U1(명문 문자에 상응함)을 계산한다. 더욱이, 유사-난수 생성기 1은 제1 입력 문자 Y1 및 상태 벡터의 초기 값 V0의 함수로서 상태 벡터 V의 제1 벡터 V1을 계산한다. 확장으로써, nth 반복 시에, 부호화/해독화 모듈 17은 현재 입력 문자 Yn 및 상태 벡터의 선행 값 Vn -1의 함수로서 현재 출력 문자 Un을 계산한다. 더욱이, 유사-난수 발생기 1은 현재 입력 문자 Yn 및 상태 벡터의 선행 값 Vn -1의 함수로서 상태 벡터 V의 현재 값 Vn을 계산한다.
본 발명에서 기술한 예에 있어서, 상태 벡터 V는 유익하게는 적어도 제1 상태 변수 X, 제2 상태 변수 A, 제3 상태 변수 B 및 가능하게는 다른 상태 변수들을 포함한 일 군의 영역을 포함한다. 이들 상태 변수들은 따라서 유사-난수 변수들이다. 에를 들어, 상태 벡터 V의 현재 값 Vn은 하기 방식으로 구성될 수 있다:
Figure pct00010
또한 상태 변수 X, A 및 B의 값은 상태 값의 또는 본 발명의 개념에서 상태 벡터의 값의 영역으로 고려될 것이다.
이 예에 있어서, 상태 변수 X, A 및 B는 각각 m 귀납적 비트로 이루어진 영역이다. 제1 상태 변수 X의 현재 값 Xnm 비트 Xn1, ..., Xnm을 포함하고, 제2 상태 변수 A의 현재 값 Anm 비트 An1, ..., Anm을 포함하며, 제3 상태 변수 B의 현재 값 Bnm 비트 Bn1, ..., Bnm을 포함한다.
보다 구체적으로는, 제1 상태 변수 X의 값 Xn은, 부호화/해독화 모듈 17에 의한 다음 분리에서 영향받은 계산에 의해 생성된 중간 값 Xα로 치환되기 전에, 부호화/해독화 모듈 17의 “분리” 함수(또는 수단)으로 지칭되는 함수들(또는 수단들)에 의한 다음 반복에서 사용된다. 제2 및 제3 상태 변수의 값 An 및 Bn 또한 부호화/해독화 모듈 17의 분리 함수에 의한 다음 반복 동안 사용된다(예를 들어, 도 3a 및 3b 참조).
상태 변수는 바람직하게는 고정된 위치에 위치하지만, 그 자체로 고정된 위치에 있는 상태 벡터의 하나 이상의 영역에 의해 취해진 값 또는 값들의 함수로서 가변적인 위치에 할당할 수도 있다. 상태 변수의 고정된 위치의 솔루션 만을 하기에서 기술한다.
더욱이, 섹터들을 각 상태 변수에 겹치지 않게 할당하는 것이(필수적인 것은 아닐지라고) 바람직하다. 따라서 사이즈 k인 상태 벡터가 그에 따라 선택되고 각 상태 변수들은 제한된 크기의 상태 벡터의 영역(즉, 상태 벡터의 크기 보다 엄밀히 작인 크기)에 상응한다.
도 3a는 도 2의 부호화/해독화 모듈 17의 제1 예를 보다 상세히 나타낸다.
이 제1 예에 있어서, 유사-난수 발생기 1은 전송 수단 21, 수용수단 23 및 계산 수단 25, 26 및 가능하게는 27을 포함한다.
각 반복 시에(예를 들어, 반복 n 시에), 전송 수단 21은 부호화/해독화 모듈 17을 적어도 제1 상태 변수 X의 선행 값 Xn -1, 제2 상태 변수 A의 선행 값 An -1, 제3 상태 변수 B의 선행 값 Bn -1로 전송한다.
수용 수단 23은 부호화/해독화 모듈 17에서 현재 중간 값 Xα를 수용한다.
제1 계산 수단 25는 제1 상태 벡터 X의 선행 값 Xn -1을 현재 중간 값 Xα로 치환하여 제1 중간 상태 벡터 Vintl의 현재 값을 계산한다.
제2 계산 수단 26은 제1 중간 상태 벡터 Vintl에 적용된 목적 순열 수단 26a인, 제1 중간 상태 벡터 Vintl의 현재 값을 포함한 사이즈 d=k인 순열 키 C에 의해 고정된 매개변수를 갖는 일방향 함수를 포함하여 제2 중간 상태 벡터 Vint2를 형성한다. 제2 계산 수단 26은 상기에 기술한 계산 수단 326에서와 동일한 방식으로 기능하며(벡터의 사이즈와 상관없이), 본 발명의 개념에 있어서 암호화 모듈을 계산한다.
계산 수단 26a에 의해 적용된 일방향 함수는 상기에서 기술한 구현가능한 순열 함수 P를 바탕으로 하며(p=d=k 및 e=k), 따라서 여기서 사이즈 kk 연속 순열을 적용한 결과이고, 각 순열은 순열 키 C=Vintl의 개별 비트와 관련이 있고, 적어도 상기 비트의 값에서의 함수로서 선택된다.
따라서 수단 26a는, 제1 중간 상태 벡터 Vintl에 의해 고정된 매개변수를 갖는 일방향 함수 P=(Vintl, Vintl)를 제1 중간 상태 벡터에 적용하여 제2 중간 상태 벡터 Vint2의 현재 값을 형성한다. 본 발명의 개념에 있어, 이 제1 예에서, 각각 제1 중간 값 및 제2 중간 값은 임시 벡터와 결과 벡터를 나타낸다. 벡터 Vintl 과 Vint2은 모두 사이즈 k인 것에 주목할 필요가 있다. 따라서 상태 벡터 V의 현재 값 Vn은 제2 중간 상태 벡터 Vint2의 현재 값에 상응한다.
또 다른 변형에 있어서(도 3a에서 점선으로 나타냄), 유사-난수 발생기 1의 계산 수단 5는 제1 중간 상태 벡터 Cint1의 현재 값과 제2 중간 상태 벡터 Cint2의 현재 값을 결합하는 배타적 논리합 게이트 27a를 포함한 제3 계산 수단 27을 추가로 포함한다.
또 다른 변형에 있어서(도시하지 않음), 제3 계산 수단 27은 상태 벡터 Vn -1의 선행 값과 제2 중간 상태 벡터 Cint2의 현재 값을 결합하는 배타적 논리합 게이트 27a를 포함한다.
따라서 유사-난수 발생기 1의 계산 수단 5는 선행 반복에서 제1 중간 상태 벡터 Cint1 또는 상태 벡터와 임의로 결합한 결과인 제1 중간 상태 벡터 Cint1에서 일방향(즉 비가역적) 함수를 실행한다.
상기 반복 n의 조작 후, 상태 벡터 V의 현재 값 Vn은 다음 반복 n+1을 위해 이용가능하다.
더욱이 본 발명에서 기술한 예에 있어서, 부호화/해독화 모듈 17은 수용 수단 33, 분리 수단 35a 및 35b, 및 분리 수단 35a와 35b 사이의 연결 수단 37을 포함한다.
수용 수단 33은 유사-난수 발생기 1에서 적어도 제1 상태 벡터 X의 선행 값 Xn-1, 제1 상태 벡터 A의 선행 값 An -1, 및 제3 상태 벡터 X의 선행 값 Bn -1을 포함한 상태 벡터의 선행 값 Vn -1을 수용한다.
분리 수단은 현재 중간 값 Xα를 분리하기 위해 적어도 두 개의 분리 수단 35a 및 35b를 포함한다.
분리 수단은 대칭적 “보안 키” 함수를 적용하고, 상기 보안 키는 상태 벡터의 선행 값의 적어도 하나의 영역에서 얻어진다. 당업계의 숙련자들이 알고 있는 바와 같이, 대칭적 보안 키 함수는, 입력의 함수로서 출력 및 출력의 함수로서 입력의 계산이, 보안 키가 이용가능한 경우에는 용이하며, 보안 키가 알려져있지 않은 경우에는 불가능한 것이다.
사용된 보안 키 함수는 바람직하게는 적어도 하나의 배타적 논리합 조작을 포함하며, 즉 분리 수단은 적어도 하나의 배타적 논리합 게이트를 포함한다. 이들은 일대일 대응 순열 수단을 추가로 포함할 수 있다.
본 발명에서 기술한 예에 있어서(도 5a 참조), 분리 수단은 각각 배타적 논리합 게이트 및 두 개의 일대일 대응 순열 수단을 포함하고, 연결 수단 37은 배타적 논리합 게이트를 포함한다. 본 발명의 개념에서 각 분리 수단에 이용된 보안 키 함수는 따라서 두 개의 일대일 대응 순열 및 하나의 배타적 논리합 조작으로 이루어지며, 각각은 상태 벡터 Vn -1의 사이즈 m인 영역에 의해 고정된 파라미터를 갖는다. 이 함수의 보안 키는 제1 일대일 대응 순열의 매개변수를 고정하는 영역, 배타적 논리합 조작의 매개변수를 고정하는 영역 및 제2 일대일 대응 순열의 매개변수를 고정하는 영역으로 이루어진다.
따라서 부호화 장비 7은 두 개의 상호연결된 부재, 즉 상태 벡터 V를 개시시키기 위해 사용된 임의의 사이즈 k인 부호화/해독화 키에 의해 고정된 매개변수를 갖는 유사-난수 발생기 1 및 보안 키 분리 함수가 혼입된 부호화-해독화 모듈 17을 포함한다.
도 3b는 도 1b에서 나타낸 유사-난수 발생기 1을 이용한 도 2의 부호화 장비 7의 제2 예를 나타낸다. 상기 장비 7 및 관련 변형물의 조작 모드는 도 3a와 관련해 상기에서 기술한 것과 유사하다.
도 5a 및 6a는 도 3a의 유사-난수 발생기 1이 사용되는 경우 입력 데이터 시퀀스를 부호화 및 해독화 하는 방식을 보다 상세히 나타낸다.
보다 구체적으로, 도 5a는 입력 데이터 시퀀스가 명문의 메시지에 상응하고 연속된 출력 문자가 부호화된 메시지에 상응하는 부호화 모드에서의 부호화 장비 7을 나타낸다. 이 예에 있어서, 제1 분리 수단 35a와 제2 분리 수단 35b 사이의 연결 수단 37은 중심 배타적 논리합 게이트 41b를 포함한다.
제1 분리 수단 35a는 제1 배타적 논리합 게이트 41a에 의해 나뉘어진 제1 및 제2 일대일 대응 순열 수단 39a, 39b를 포함한다. 제2 분리 수단 35b는 제2 배타적 논리합 게이트 41c에 의해 나뉘어진 제3 및 제4 일대일 대응 순열 수단 39a, 39b를 포함한다.
본 발명에서 고려된 일대일 대응 순열 수단 39a, 39b, 39c 및 39d은, 즉, 상태 벡터 Vn -1의 상태 변수와 동일한 사이즈 m인 순열 키에 의해 각각 상태 벡터 Vn -1의 상태 변수에 의해 고정된 매개변수를 갖는 상기에서 언급한 순열 함수 P를 구현한다. 따라서,
- 제1 일대일 대응 순열 수단 39a는 제2 상태 변수 An -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제1 일대일 대응 순열을 구현한다;
- 제2 일대일 대응 순열 수단 39b는 제1 상태 변수 Xn -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제2 일대일 대응 순열을 구현한다;
- 제3 일대일 대응 순열 수단 39c는 제1 상태 변수 Xn -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제3 일대일 대응 순열을 구현한다;
- 제4 일대일 대응 순열 수단 39d는 제3 상태 변수 Bn -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제4 일대일 대잉 순열을 구현한다.
순열 키가, 생성된 순열 함수 P가 적용되는 데이터 독립적인 일대일 대응 순열 수단 39a, 39b, 39c 및 39d에서 순열 함수 P의 파라미터를 고정시키는데 이용되었고, 따라서 각각은 비가역 (일대일 대응) 함수를 순열 함수 P-1인 가역 함수로 구현한다. 이 비가역 함수 P는 고려된 순열 키의 각 비트 값의 함수로서 선택된 사이즈 mm 연속 순열을 적용한 결과이다.
따라서 이 부호화 모드에서, 반복 n 동안 현재 출력 문자 Yn의 계산은 하기의 조작을 포함한다.
제1 순열 수단 39d는 제1 일대일 대응 순열을 현재 입력 문자 Un 및 제2 상태 변수의 선행 값 An - 1으로 이루어진 쌍에 적용함으로써 제1 중간 문자 G1n을 계산한다: G1n=P(Un, An -1). 달리 말하면, 제1 순열 수단 39a는 현재 입력 문자 Un에 An -1에 의해 고정된 매개변수를 갖는 일대일 대응 순열함수 P에 적용함으로써 계산한다.
제1 배타적 논리합 게이트 41a는 배타적 논리합 조작을 제1 중간 문자 G1n 및 제2 상태 변수의 선행 값 An -1에 적용함으로써 제2 중간 문자 G2n를 계산한다: G2n=G1nAn-1.
제2 순열 수단 39b는 제2 일대일 대응 순열을 제2 중간 문자 G2n 및 제1 상태 변수의 선행 값 Xn -1에 의해 형성된 쌍에 적용함으로써 제3 중간 문자 G3n을 계산한다: G3n=P(G2n, Xn -1). 달리 말하면, 제2 계산 수단 39b는 Xn -1에 의해 고정된 매개변수를 갖는 일대일 대응 순열함수 P를 제2 중간 문자 G2n에 적용함으로써 계산한다.
중심 배타적 논리합 게이트 41b는 배타적 논리합 조작을 제3 중간 문자 G3n 및 제1 상태 변수의 선행 값 Xn -1에 적용함으로써 현재 중간 문자 Xα를 계산한다: Xα=G3n
Figure pct00011
Xn -1. 이 현재 중간 값 Xα는 이어서 유사-난수 발생기 1로 전송된다.
이어서 제3 순열 수단 39c는 제2 일대일 대응 순열을 현재 중간 값 Xα 및 제1 상태 변수의 선행 값 Xn -1에 의해 형성된 쌍에 적용함으로써 제3 중간 문자 G4n을 계산한다: G4n=P(Xα, Xn -1). 달리 말하면, 제3 순열 수단 39c는 Xn -1에 의해 고정된 매개변수를 갖는 일대일 대응 순열함수 P를 현재 중간 값 Xα에 적용함으로써 계산한다.
제3 배타적 논리합 게이트 41c는 배타적 논리합 조작을 제4 중간 문자 G4n 및 제3 상태 변수의 선행 값 Bn -1에 적용함으로써 제5 중간 문자 G5n을 계산한다: G5n=G4n Bn -1.
최종적으로, 제4 순열 수단 39d는 제4 일대일 대응 순열을 제5 중간 문자 G5n 및 제3 상태 변수의 선행 값 Bn -1에 적용함으로써 현재 출력 문자 Yn을 계산한다: Yn=P(G5n, Bn -1). 달리 말하면, 제4 순열 수단 39d는 An -1에 의해 고정된 매개변수를 갖는 일대일 대응 순열함수 P를 제5 중간 문자 G5n을 적용함으로써 현재 출력 문자 Yn을 계산한다.
도 6a는 입력 데이터 시퀀스는 부호화 메시지에 상응하며 연속적인 출력 문자는 명문 메시지에 상응하는 해독화 모드에 사용되는 것과 같은 부호화 장비를 나타낸다.
이 해독화 모드에서, 반복 n 시에 현재 출력 문자 Un의 계산은 하기의 조작을 포함한다.
제4 순열 수단 39d는 제4 일대일 대응 순열의 역수인 순열을 현재 입력 문자 Yn 및 제3 상태 변수의 선행 값 Bn -1에 의해 형성된 쌍에 적용함으로써 제5 중간 문자 G5n를 계산한다: G5n=P-1(Yn, Bn -1).
제3 배타적 논리합 게이트 41c는 배타적 논리합 조작을 제5 중간 문자 G5n 및 제3 상태 변수의 선행 값 Bn -1에 의해 형성된 쌍에 적용함으로써 제4 중간 문자 G5n를 계산한다: G4n=G5n
Figure pct00013
Bn -1.
제3 중간 순열 수단 39c는 제3 일대일 대응 순열의 역수인 순열을 제4중간 문자 G4n 및 제1 상태 변수의 선행 값 Xn -1에 의해 형성된 쌍에 적용함으로써 현재 값 Xα를 계산한다: Xα=P-1(G4n, Xn -1). 이 현재 중간 값 Xα는 이어서 유사-난수 발생기로 전송된다.
중심 배타적 논리합 게이트 41b는 배타적 논리합 조작을 현재 중간 값 Xα 및 제1 상태 변수의 선행 값 Xn -1에 적용함으로써 제3 중간 문자 G3n을 계산한다: G3n=Xα
Figure pct00014
Xn -1.
제2 순열 수단 39b는 제2 일대일 대응 순열의 역수인 순열을 제3 중간 문자 G3n 및 제1 상태 변수의 선행 값 Xn -1에 의해 형성된 쌍에 적용함으로써 제2 중간 문자 G2n을 계산한다: G2n=P-1(G3n, Xn -1).
제1 배타적 논리합 게이트 41a는 배타적 논리합 조작을 제2 중간 문자 G2n 및 제2 상태 변수의 선행 값 An -1에 적용함으로써 제1 중간 문자 G1n을 계산한다: G1n=G2n
Figure pct00015
An -1.
최종적으로, 제1 순열 수단 39a는 제1 일대일 대응 순열의 역수인 순열을 제1 중간 문자 G1n 및 제2 상태 변수의 선행 값 An -1에 적용함으로써 현재 출력 문자 Un을 계산한다: Un=P-1(G1n, An -1).
따라서 도 5a 및 6a의 예에 있어서, 분리 함수 또는 수단 35a 및 35b는 각각 제1 분리 수단 35a를 위한 An -1 및 Xn -1에 의해 및 제2 분리 수단 35b를 위한 Bn -1 및 Xn-1에 의해 고정된 파리미터를 갖는 두 개의 순열 함수(본 발명의 개념에서 일대일 대응 순열), 및 제1 분리 수단 35a에 대해 An -1을 갖고 제2 분리 수단 35b에 대해 Bn-1을 갖는 배타적 논리합 조작으로 이루어진다. 따라서 현재 중간 값 Xα는 An -1, Bn-1 및 Xn -1에 의해 고정된 매개변수를 갖는 네 가지 순열 함수와 그 자체로 입력 및 출력에서 분리된 상태 벡터 V의 상태 변수 An -1, Bn -1 및 Xn - 1를 갖는 세 가지 배타적 논리합 조작의 중가에 입력 및 출력 문자에서 분리된다(즉, 입력 및 출력 문자로부터 접근 불가능해짐). 이는 상태 벡터 V의 자가-분리에 해당한다.
도 5b 및 6b는 도 3b의 유사-난수 발생기 1을 이용하여 입력 데이터 시퀀스를 부호화 및 해독화하기 위한 동일 방식 모드를 나타낸다. 다른 방법으로, 다른 상태 유사-난수 발생기를 사용할 수도 있다.
더욱이, 일 실시형태에 있어서, 부호화/해독화 조작의 복잡도는 각각의 상태 변수 An, Bn 및 Xn을 동일한 사이즈의 두 개의 하위변수(본 발명의 개념에 있어 영역), An에 대한 An' 및 An'', 및 Bn에 대한 Bn' 및 Bn'', 및 Xn에 대한 Xn' 및 Xn''로 치환함으로써 추가로 증가될 수 있다. 하위변수 An'', Bn'' 및 Xn''를 배타적 논리합 조작을 계산하는데 이용할 수 있다.
또 다른 실시형태에 있어서, 각각의 상태 하위변수 An에 대한 An' 및 An'', 및 Bn에 대한 Bn' 및 Bn'', 및 Xn에 대한 Xn' 및 Xn''은 비근접한 각 사이즈 m일 수 있다. 예를 들어,
Figure pct00016
추가의 실시형태에 있어서, 각 상태 변수는, 예를 들어 미리정한 위치를 차지한 상태 벡터 V의 연속적 비트일 필요는 없는 m을 포함할 수 있다.
다수의 병렬 유사-난수 발생기의 이용
더욱이, 본 발명의 특정 실시형태에 있어서, 동일한 부호화/해독화 모듈을 위해 다수의 발생기를 병렬로 이용할 수 있음에 주목할 필요가 있다.
예를 들어, 도 4는 부호화 모드 및(또는) 해독화 모드에서 부호화 장비 7과 동일한 방식으로 사용될 수 있는 부호화 장비 107과 제1 실시형태에서 도 3a를 참조하여 기술한 것과 유사한 두 개의 유사-난수 발생기 101, 102를 나타낸다(다른 방법으로, 다른 유사-난수 생성기를 고려할 수 있으며, 예를 들어, 도 3b에 나타낸 생성기와 유사한 두 개의 유사-난수 생성기를 고려할 수 있다).
제1 유사-난수 생성기 101은 제1 상태 벡터 V1의 제1 현재 값 V1n을 형성하고, 제2 유사-난수 발생기 102는 제2 상태 벡터 V2의 제2 현재 값 V2n을 형성한다.
예를 들어, 배타적 논리합 게이트를 이용하여 두 개의 유사-난수 발생기 101, 102를 병렬로 연결할 수 있다. 이어서 상태 벡터의 현재 값 Vn은 제1 상태 벡터의 제1 현재 값 V1n 및 제2 상태 벡터의 제2 현재 값 V2n에 적용된 배타적 논리합 조작으로 생성된다. 임의의 다른 조합이 가능하며, 예를 들어, 두 개의 유사-난수 발생기 101, 102에서 발생된 상태 벡터의 현재 값 Vn은 제1 상태 벡터의 제1 현재 값 V1n에 의해 유도된 제1 영역, 제2 상태 벡터의 제2 현재 값 V2n에 의해 유도된 제2 영역, 및 제1 및 제2 상태 벡터의 제1 및 제2 현재 값 V1n, V2n의 임의의 조합에 의해 유도된 제3 영역으로 이루어질 수 있음에 주목할 필요가 있다.
보다 구체적으로는, 도 4의 예에 있어서, 제1 유사-난수 발생기 101에는 제1 초기 값 V10가 공급되고, 적어도 제1 상태 변수 X1의 제1 현재 값 X1n, 제2 상태 변수 A1의 제1 현재 값 A1n, 및 제3 상태 변수 B1의 제1 현재 값 B1n을 포함한 제1 상태 벡터 V1의 제1 현재 값 V1n을 생성시킨다. 더욱이, 제2 유사-난수 발생기 102에는 제2 초기 값 V20가 공급되고, 적어도 제1 상태 변수 X2의 제1 현재 값 X2n, 제2 상태 변수 A2의 제1 현재 값 A2n, 및 제3 상태 변수 B2의 제1 현재 값 B2n을 포함한 제2 상태 벡터 V2의 제2 현재 값 V2n을 생성시킨다.
이 특정 예에 있어서, 부호화/해독화 모듈 17로 전송된 상태 벡터의 선행 값 Vn-1은 제1 상태 벡터의 제1 상태 변수 X1의 제1 선행 값 X1n -1 및 제2 상태 벡터의 제1 상태 변수 X2의 제1 선행 값 X2n -1, 제1 상태 벡터의 제2 상태 변수 A1의 제1 선행 값 A1n-1 및 제2 상태 벡터의 제1 상태 변수 B1의 선행 값 Bn -1=B2n-1에 적용된 배타적 논리합 조작으로부터 생성된 제1 상태 변수 X의 선행 값 Xn -1에 의해 형성된다. 더욱이, 두 개의 유사-난수 발생기 101, 102에는 부호화/해독화 모듈 107에서 동일한 현재 중간 값 Xα가 공급된다.
따라서 일반적으로 말하자면, 동일한 부호화/해독화 모듈을 위해 병렬의(i=1 내지 h) h 유사-난수 발생기를 구현할 수 있다. 이어서 h 유사-난수 발생기는 모두 부호화/해독화 모듈로부터 동일한 현재 중간 값 Xα가 공급된다. h 유사-난수 발생기는 동일하거나 상이한 사이드 k1, ..., kh의 것일 수 있다. 초기 값 V10, ..., Vh0가 동일한 공통 부호화/해독화 키로부터 추출되거나 계산될 수 있고, 이의 사이즈는 k1, ..., kh의 최대값과 동일하다. An 및 Bn의 값은 동일한 발생기 또는 상이한 발생기에서 생성된 것일 수 있다. Xn은 각각 Xin:Xn=X1n
Figure pct00017
X2n
Figure pct00018
...
Figure pct00019
Xhn의 배타적 논리합 조작에 의해 결합된 결과에 상응할 수 있다.
물론, 병렬의 유사-난수 발생기를 부호화/해독화에 독립적으로 사용하여 고품질의 유사-난수 데이터 시퀀스를 생성시킬 수도 있다.
입력 및 출력 문자의 비트 수 다양화
상기의 예에서, 상태 벡터는 특정 수 k의 비트를 포함하고, 각 출력 또는 입력 문자는 상태 벡터의 특정 수 k의 비트 보다는 작은 수 m의 비트를 포함한다.
본 발명의 일 특정 실시형태에 있어서, 각 출력 및 입력 문자는 유익하게는 각 반복 시 다양할 수 있으나 상태 벡터의 특정 수 k의 비트 보다는 작은 수 w의 비트를 포함할 수 있다.
도 7은 본 발명의 실시형태에서 비트의 변수 수 w를 부호화하기 위한 장비를 나타낸다. 상기 도면에서 유사-난수 발생기는 도 3a에 나타낸 것과 같다. 물론, 예를 들어, 도 3b에 나타낸 것과 같은 상이한 유사-난수 발생기를 대신 고려할 수도 있다.
본 발명에서, 상태 벡터 V는 유익하게는, 변수 수 w에 부호화/해독화하기 위한 모듈 17의 배타적 논리합 게이트 및 순열 수단에 의해 구현된 순열(특히 사이즈 e인 순열 및 수 p인 고려된 순열 단계) 및 배타적 논리합 연산자를 수용하기 위한 각 반복 시의 변수인 비트의 수 w를 나타내는 4번째 상태 변수 E를 포함한다.
따라서 부호화/해독화 모듈 17에서 사용된 순열 함수 P(부호화에 대한), P-1(해독화에 대한) 및 배타적 논리합 연산자 “
Figure pct00020
”는 임의 길이 w의(w≤m≤k) 입력 및 출력 문자 Un/Yn에 적용가능하다.
순열 함수 P 및 P-1을 구현하고 상태 변수 An -1, Xn -1 및 Bn -1의 제1 w 비트에 대한 배타적 논리합 조작에 영향을 주기 위해, 모든 적용 가능한 값 w에 상응하는 순열 테이블을 미리정하는 경우, 입력 데이터를 변수 사이즈 w의 블록으로 분할하고, 부호화/해독화 모듈 17을 이용하여 이들 블록을 부호화 및(또는) 해독화시키는 것이 가능하다.
반복 n 동안 부호화 및(또는) 해독화될 입력 비트의 수 w를 나타내는 매개변수가 4번째 상태 변수 E의 선행 값 En -1에 의해 제공된다. 이 4번째 상태 변수 E는 입력 및 출력에서 분리되고 부호화/해독화 키 및 전체 적용된 입력 문자 Un/Yn에 의존하는 사이즈 r인 상태 벡터의 영역이다.
따라서 반복 n 동안, 사이즈 wn -1인 처리될 블록이 입력 문자 Un/Yn 또는 출력 문자 Yn/Un과 순열 수단 39a-39d 및 논리 게이트 41a-41c에 전송되어 순열 및 배타적 논리합 조작을 크기에 따라 배열한다.
따라서 각 반복 시 부호화된 비트의 수는, 부호화/해독화 키 및 전체 적용된 입력 문자 Un/Yn의 시퀀스에 의존하여 유사-난수이다. 따라서 입력 문자 시퀀스 Un/Yn의 가장 작은 변형으로 이 변형 후 데이터의 전체 세분의 구조적인 변형을 가져올 수 있다.
반복 n 동안 4번째 상태 변수 E의 선행 값 En -1에서 부호화/해독화되는 비트의 수 w를 추출하기 위해, w에 4번째 상태 변수의 선행 값 En -1r 비트에 대해 코딩된 십진 값을 할당할 수 있다: 0≤w≤2r-1(=m). 다른 방법으로는, w에 4번째 상태 변수의 선행 값 En -1 중 비트 수의 값을 할당할 수 있다.
본 발명에 기술한 예에 있어, 비트의 초기 수는 관례에 따라 4번째 상태 변수 E의 초기 값 E0를 고려하지 않고 w0=1로 고정하였다는 점에 주목할 필요가 있다. 따라서 단지 하나의 비트가 제1 반복 동안 구조적으로 부호화/해독화된다.
세분이 영향 받은 것을 고려한 정보의 누출을 방지하기 위해(예를 들어, 부호화 모듈의 입력 및 출력을 관찰함으로써), 출력 문자 Yn/Un를 유익하게는 그룹화하여 단지 일정 길이 m의 출력 블록에서 자유롭게할 수 있다. 해독화의 경우, 동일한 순열을 입력 문자 Un/Yn에 적용할 수 있다.
도 8은 도 3a에 나타낸 바와 같은 유사-난수 발생기 1을 포함한 부호화 장비(이는 도 7에 나타낸 바와 같은 부호화 및(또는) 암호화에 사용될 수 있음)를 나타내며, 이는 상태 벡터의 현재 값에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값을 대체하는 신규 상태 값을 계산하기 위한 추가의 수단을 포함한다. 이러한 추가의 수단은 유사-난수 발생기 1이 4번째 상태 변수 E에 의해 지시된 값 w의 변수로서 상태 벡터 V에 대한 “엠티” 반복에 영향을 미치게 한다.
따라서 유사-난수 발생기 1은 추가의 목적 순열 수단을 포함한 4번째 계산 수단 45를 포함한다. 따라서 각 반복의 유사-난수 생성 단계는 가변 수 w가 0인 경우, 상태 벡터의 현재 값 Vn에 대한 목적 순열의 4번째 계산 수단 45에 의한 어플리케이션을 포함하여(벡터 Vn과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P) 추가의 제2 중간 상태 벡터 V2ins의 현재 값을 형성한다.
제2 추가 중간 상태 벡터 V2ins의 이 현재 값은 이어서 상태 벡터 V의 현재 값 Vn을 대체한다.
다른 방법으로는, 유사-난수 발생기 1은, 배타적 논리합 조작을 추가의 제2 중간 상태 벡터 V2ins의 현재 값 Vn 및 상태 벡터의 현재 값 Vn에 적용함으로써 상태 벡터의 신규 현재 값 Vtemp를 계산하기 위한 추가의 배타적 논리합 게이트 47a를 포함하는 5번째 계산 수단 47을 포함할 수 있다.
따라서 도 8은 w=0으로 측정된 경우, 어떠한 부호화/해독화 조작도 입력 문자 Un/Yn 또는 출력 문자 Yn/Un에 영향을 미치지 않기 Aosns에(달리 말하면, 0 비트가 부호화/해독화됨), 현재 중간 값 Xα를 상태 벡터 V에 삽입하지 않고 w가 0인 한 상태 벡터 V에 대한 “엠티” 반복에 영향을 미친다는 사실을 나타낸다.
보다 구체적으로, 부호화 과정을 시작하기 전에, 부호화 키의 값은 상태 벡터 V의 초기 값 V0가 된다: V0=부호화 키 및 w0=1.
제1 반복 시, 부호화/해독화 모듈 17은 부호화될 데이터의 입력 문자 U1의 제1 비트를 취하고, U1 및 상태 벡터 V의 초기 값 V0의 함수로서 해독화될 출력 문자 Y1의 제1 비트의 값을 계산한다. 유사-난수 발생기 1은 U1 및 V0의 함수로서 상태 벡터 V의 제1 값 V1을 계산한다.
확장으로서, nth 반복 시, 유사-난수 발생기 1이 wn -1=0을 감지한 경우, 유사-난수 생성기 1은 wn -1=0인 한 상태 벡터의 선행 값 Vn -1에 대한 “엠티” 반복에 영향을 미친다.
반대로, wn -1≠0인 경우, 부호화/해독화 모듈 17은 부호화될 데이터의 다음 wn-1 비트(블록 Un)를 취하고, Un 및 Vn -1의 함수로서 출력 문자 Yn의 값을 계산한다. 유사-난수 발생기 1은 Un 및 Vn -1의 함수로서 상태 벡터 V의 신규 값 Vn을 계산한다.
대칭적으로, 해독화 전에, 암호화 키의 값은 상태 벡터 V의 초기 값 V0가 된다: V0=해독화 키 및 w0=1.
제1 반복 시, 부호화/해독화 모듈 17은 해독화될 데이터의 입력 문자 Y1의 제1 비트를 취하고, Y1 및 상태 벡터 V의 초기 값 V0의 함수로서 해독화될 출력 문자 U1의 제1 비트의 값을 계산한다. 유사-난수 발생기 1은 Y1 및 V0의 함수로서 상태 벡터 V의 제1 값 V1을 계산한다.
확장으로서, nth 반복 시, 유사-난수 발생기 1이 wn -1=0을 감지한 경우, 유사-난수 생성기 1은 wn -1=0인 한 상태 벡터의 선행 값 Vn -1에 대한 “엠티” 반복에 영향을 미친다.
반대로, wn -1≠0인 경우, 부호화/해독화 모듈 17은 해독화될 데이터의 다음 wn-1 비트(블록 Yn)를 취하고, Yn 및 Vn -1의 함수로서 출력 문자 Un의 값을 계산한다. 더욱이, 유사-난수 발생기 1은 Yn 및 Vn -1의 함수로서 상태 벡터 V의 신규 값 Vn을 계산한다.
따라서 도 8 예의 조작을 통해 유사-난수 발생기 1에 의해 영향 받은 반복이, 비접근성 유사-난수 변수(4번째 상태 변수 E), 부호화/해독화 키 및 전체 적용된 입력 문자 Un/Yn의 시퀀스의 함수로서 부호화/해독화 모듈 17에 의해 영향 받은 반복으로부터 비동기화된다. 따라서 입력 문자 Un/Yn의 시퀀스의 가장 작은 변형으로, 이러한 변형 후 전체 데이터 세분을 구조적으로 변형을 가져올 수 있고, 그에 따라 유사-난수 발생기 1의 변형이 부호화/해독화 모듈 17로부터 비동기화된다.
더욱이, 스트림 및 엠티 사이클의 비동기화를 피하기 위하여 w=0인 상황에 접근하지 않고 부호화/해독화될 블록의 사이즈를 다양하게 할 수 있으며, w=0인 상황에서 단지 하나의 비트가 부호화/해독화되어야 한다는 점에 주목할 필요가 있다.
또한 부호화/해독화될 블록의 사이즈를 다양화하지 않고 단지 스트림 비동기화 함수를 보유하는 것도 가능하다. 이어서 w=0인 경우 유사-난수 발생기 1의 엠티 사이클이 영향을 받고, 반면 임의의 다른 w 값에 대해 고정된 사이즈 m인 입력 문자 Un/Yn 또는 출력 문자 Yn/Un 이 부호화/해독화된다.
암호화 멀티플렉싱
본 발명의 부호화 방법 및 장비의 다양한 실시형태를 높은 비트 속도 스트림 부호화 어플리케이션에 이용할 수 있다(텔레커뮤니케이션, 보호된 멀티미디어 컨텐츠 방송, 서버의 데이터 플라이 부호화, 개인용 컴퓨터 및 소프트웨어 어플리케이션 등). 더욱이, 부호화 과정에 적합한 구조는 이를 암호화 멀티플렉싱 분야에서 어플리케이션에 적합하게 한다.
도 11a 내지 11c는 암호화 멀티플렉싱의 예를 나타낸다.
일반적으로 말하면, 암호화 멀티플렉싱은 부호화될 명문의 M 메시지 71이 동일한 부호화 장비 207a로 수렴하도록 하며, 여기서 M 부호화 메시지가 생성된다. 이들 M 부호화 메시지는 이어서 동일한 채널 73a(도 11a)을 통해 결합되어 전송되거나 또는 다양한 채널 73b(도 11a)를 통해 개별적으로 사용자에게 또는 목적하는 어플리케이션으로 전송된다.
도 11c는 혼합된 솔루션이 사용가능한 전송 채널의 수와 상기 각 채널의 각각의 비트 속도의 함수로서 구상될 수 있음을 나타낸다. 이 예에서, 제1 채널 73c는 단일 부호화 메시지을 전송하고, 제2 채널 73d는 M-1 결합 부호화 메시지를 전송한다.
이어서 해독화 모드에서 사용된 부호화 장비 207b(또한 해독화 장비로서 지칭되기도 함)은 M 부호화 메시지에서 M 메시지 75를 명분으로 재구성한다. M 부호화 메시지가 이용가능하지 않거나 모두가 그렇다면 단지 하나만의 M 메시지를 명분으로 재구성하는 것은 불가능하다. 이 솔루션은 암호화 어플리케니션을 모으고, 하나 이상의 미-보안 채널을 따라 라우팅(routed)되어야 하는 다중 컨텐츠를 보호하기 위한 간단하고 효과적인 솔루션을 제공한다.
본 발명의 부호화 방법은 그에 따른 사이즈의 부호화/해독화 모듈과 병렬의 M 부호화/해독화 모듈 만을 이용하여 상기에 기술한 바와 같은 암호화 멀티플렉싱에 영향을 준다. 이는 속도 및 암호해독 저항성과 관련한 부호화 방법의 성능뿐만 아니라 가변 사이즈 블록, 엠티 반복 및 M 상이 메시지에 적용된 스트림 비동기화 함수에 힘입어 극히 간단한 하드웨어 또는 소프트웨어 구현을 가능케 한다.
도 12는 암호화 멀티플렉싱을 수행하고 단지 하나의 유사-난수 발생기 1과 두 개의 부호화/해독화 모듈 17a, 17b를 병렬로 포함한 부호화 장비(부호화 모드 및(또는) 해독화 모드에서 조작될 수 있음)를 나타낸다.
이러한 상황에서, 유사-난수 발생기 1은 매 반복 시 상태 변수 영역의 제1 세트 및 하나 이상의 상태 변수 영역의 제2 세트를 포함한 상태 벡터의 현재 값을 계산한다.
일반적으로 말하면, M 메시지(도 12에서 M=2)를 멀티플렉스시키기 위해, 유사-난수 발생기 1의 상태 벡터 V의 현재 값 Vn은 하기 식을 따른다:
Figure pct00021
더욱이, 제1 부호화/해독화 모듈 17a는 현재 입력 문자 U1n/Y1n 및 상태 벡터의 선행 값 Vn -1의 영역 X1n -1, A1n-1, B1n-1, E1n -1의 제1 세트에 의존하는 제1 가역성 어플리케이션에 의해 제1 현재 출력 문자 Y1n/U1n을 계산한다. 중간 값 X1α는 유사-난수 발생기 1로 전달된다.
제2 부호화/해독화 모듈 17b는 현재 입력 문자 U2n/Y2n 및 상태 벡터의 선행 값 Vn -1의 영역 X2n -1, A2n-1, B2n-1, E2n -1의 제2 세트에 의존하는 제2 가역성 어플리케이션에 의해 제2 현재 출력 문자 Y2n/U2n을 계산한다. 중간 값 X2α는 유사-난수 발생기 1로 전달된다.
도 13은 암호화 멀티플렉싱 수단 81을 포함한 (부호화 모드 및(또는) 해독화 모드에서 사용할 수 있는) 부호화 장비의 예를 매우 개략적으로 나타낸다.
이 예에 있어서, 암호화 멀티플렉싱 수단 81은 적어도 두 개의 메시지 블록을 명문으로 멀티플렉스시켜 적어도 두 개의 부호화된 메시지 블록을 형성시킬 수 있고, 각 명문의 메시지 블록은 연속된 입력 문자에 상응한다. 암호화 멀티플렉싱 수단 81은, 5번째 상태 변수 F를 포함한 상태 벡터에 의해 상기 도면에서 나타낸 바와 같이, 유사-난수 발생기 1의 매개변수를 고정시키는데 상응한다. 따라서 유사-난수 발생기 1은, 상태 벡터에서 5번째 상태 변수 F의 함수로서 각 반복 시에 부호화된 다양하 메시지 블록을 정렬시킬 수 있다.
결과적으로, 각 반복 시 부호화된 M 블록의 전송 채널의 순서는, 결합되거나 그렇지 않은 경우를 불문하고, 미리정해지거나, 부호화 모드에서 부호화 키(또는 해독화 모드에서 해독화 키) 및 전체 적용된 입력 문자의 시퀀스에 의존하는 비가역성 유사-난수 변수(상태 벡터의 영역)의 함수일 수 있다. 예를 들어, M 부호화 블록은, 결합되거나 그렇지 않은 경우를 불문하고, 상태 벡터에 포함된 5번째 상태 변수 F에 의해 고정된 매개변수를 갖는 순열 함수 P에 의해 정렬될 수 있다.
반복 n 동안 결합된 부호화 메시지의 M 블록을 정렬시키기 위한 매개변수는 5번째 상태 변수 F의 선행 값 Fn -1에 의해 공급되고, Fn -1은 입력 문자 및 출력 문자에서 분리되고 부호화 키(또는 해독화 키) 및 전체 적용된 입력 문자 시퀀스에 의존하는 상태 벡터 선행 값 Vn -1의 사이즈 M인 영역이다.
따라서 각 반복 시 부호화 메시지의 M 블록의 전송 채널에서의 순서는, 결합되거나 그렇지 않은 경우를 불문하고, 부호화 키(또는 해독화 키) 및 전체 적용된 입력 문자의 시퀀스에 의존하는 유사-난수이다. 따라서 입력 문자 시퀀스를 가장 작게 변형시킴으로써, 변형 후, 결합되거나 그렇지 않은 경우를 불문하고, 전송 채널에서 부호화된 메시지 블록의 순서의 변형을 구조적으로 완성시킬 수 있다.
암호화 해싱 방법 및 장비
도 14는 도 1a에서 개략적으로 예시한 유사-난수 발생기 1을 본 발명의 암호화 해싱(또는 해시) 장비에서 미리조건화된 모듈과 조합하여 사용함으로써 간략한 메시지를 생성시킬 수 있음을 나타낸다.
도 14 또한 본 발명의 암호화 해싱 방법의 기본적 단계들을 예시하고 있음을 주목할 필요가 있다.
본 발명에서 상세히 기술한 실시형태에 있어서, 상태 벡터 V는 미리정한 수 k의 비트와 사이즈 k인 구체화시킬 수 있는 해싱 키에 상응하는 상태 벡터의 초기 값 V0를 포함한다.
도 14는 메시지 Mess를 암호화 해싱하기 위한 본 발명의 일 특정 실시형태의 장비 407을 나타낸다.
상기 장비 407은 메시지 Mess를 미리정한 사이즈(예를 들어, 각 m 비트의 M 블록)의 미리정한 수 M의 블록 Z1, Z2, ..., ZM으로 분할하기 위한 수단을 포함한다. 당업계에 잘 알려진 방법에 있어서, 세분된 최종 블록이 불완전한 경우(즉, m 비트를 포함하지 않은 경우), 불완전한 블록은 0에서 비트가 부연된다.
상기 장비 407은 상태 벡터의 초기 값 V0에서 상태 벡터 V의 연속적인 13 개의 M 값을 반복해서 생성하고, 생성된 상태 벡터의 최종 값 VM에서 메시지 Mess의 간략한 해시를 얻기 위한 생성 수단을 추가로 포함한다.
본 발명에서 구상된 예에 있어서, 상기 생성 수단은 본 발명의 유사-난수 발생기 1(예를 들어, 도 1b 및 3b에 나타낸 유사-난수 발생기) 및 미리조건화된 모듈 417을 포함한다. 본 발명의 암호화 해싱 방법에 의한 암호화 해싱을 시작하기 전에, 해싱 키의 값은 상태 벡터 V의 초기 값 V0가 된다(V0=해싱 키).
매 반복 n 시에, 유사-난수 생성기 1은 상태 벡터의 선행 값과 미리조건화된 모듈 417에 의해 수행된 계산에 의해 생성된 중간 현재 값 Xα에 의존하는 비가역성 어플리케이션을 이용하여 상태 벡터의 현재 값 Vn을 계산하고, 미리조건화된 모듈 417은 상태 벡터의 선행 값 Vn -1과 현재 메시지 블록 Zn(본 발명의 개념에서 입력 블록)에 의존하는 가역성 어플리케이션을 이용하여 현재 중간 값 Xα를 계산한다. 매 반복 n 시에, 유사-난수 생성기 1은 상태 벡터 Vn에 미리조건화된 모듈 417로부터 현재 중간 값 Xα를 공급한다.
제1 반복 시에, 미리조건화된 모듈 417은 제1 메시지 블록 Z1 및 제1 상태 벡터의 초기 값 V0의 함수로서 반복 1을 위한 현재 중간 값 Xα를 계산한다. 유사-난수 발생기 1은 제1 메시지 블록 Z1 및 제1 상태 벡터의 초기 값 V0의 함수로서 제1 값 V1을 계산한다. 확장으로써, nth 반복 시에, 미리조건화된 모듈 417은 현재 메시지 블록 Zn 및 상태 벡터의 선행 값 Vn -1의 함수로서 반복 n을 위한 현재 중간 값 Xα를 계산하고, 유사-난수 발생기 1은 현재 메시지 블록 Zn 및 상태 벡터의 선행 값 Vn -1의 함수로서 현재 값 Vn을 계산한다.
상기에 기술한 실시형태에 있어서, 상태 벡터 V는 유익하게는 적어도, 사이즈 m인 하나의 제1 상태 변수 X 및 하나의 제2 상태 변수 A를 포함한 일군의 영역을 포함한다. 예를 들어, 상태 벡터 V의 현재 값 Vn은 하기 방식으로 축조될 수 있으며, 여기서 본 발명의 개념에 있어, 상태 변수 X 및 A는 상태 벡터의 영역이다:
Figure pct00022
상기 예에서, 제1 상태 벡터 X의 현재 값 Xnm 비트 Xn1, .... , Xnm을 포함하고, 제2 상태 벡터 A의 현재 값 Anm 비트 an1, .... , anm을 포함하며, 여기서 m은 메시지 블록 Zn의 크기이며, n=1,., M이다.
상태 변수의 위치는 미리정해지고, 바람직하게는 고정되나, 이들에게 상태 벡터, 고정된 위치 자체의 하나 이상의 영역에 의해 취해진 값 또는 값들의 함수로서 위치 변수를 부여할 수도 있다. 상태 변수들의 고정된 위치에 대한 솔루션만을 하기에 기술한다.
더욱이, 각각의 상태 변수들에 할당된 섹터가 겹쳐지지 않도록 하는 것이 (필수적이지는 않지만) 바람직하다. 이어서 그에 따라 사이즈 k인 상태 벡터가 선택되고, 각 상태 변수는 제한된 사이즈(즉, 상태 벡터의 사이즈 보다 엄밀히 작은 사이즈)의 정정 벡터 영역에 상응한다.
물론, 부호화 방법과 관련하여 상기에서 기술한 상태 변수들의 변형을 본 발명의 암호화 해싱 방법과 관련하여 동일하게 적용할 수 있다.
제1 상태 변수 X의 값 Xn이, 미리조건화된 모듈 417에 의한 다음 반복에서 수행된 계산에 의해 생성된 중갖 값 Xα에 의해 치환되기 전에, 미리조건화된 모듈 417의 분리 함수에 의해 이어서 반복하는데 사용된다. 제2 상태 변수의 값 An은 또한 미리조건화된 모듈 417의 분리 함수에 의해 다음 반복에 이용된다.
각 반복 시에(예를 들어, 반복 n 시에), 유사-난수 생성기 1의 전송 수단 321은 미리조건화된 모듈 417을 적어도 제1 상태 변수 X의 선행 값 Xn -1 및 제2 상태 변수 A의 선행 값 An -1을 포함한 상태 벡터의 선행 값 Vn - 1으로 보낸다.
유사-난수 발생기 1의 수용 수단 323은 미리조건화된 모듈 417로부터 현재 중간 값 Xα를 수용한다.
제1 계산 수단 325a는 제1 상태 변수 X의 선행 값 Xn -1을 현재 중간 값 Xα로 치환하여 제1 중갑 상태 벡터 Vint1의 현재 값을 계산한다. 유사-난수 발생기 1의 다른 과정 단계 및 수단은 도 1b(및 도 3b)와 관련하여 기술한 것과 유사하며, 여기서는 보다 상세히 기술하지 않는다.
미리조건화된 모듈 417은 메시지 블록으로부터 현재 중간 값 Xα를 분리하기 위한 수용 수단 433 및 분리 수단 435을 포함한다.
상기 수용 수단 433은 유사-난수 발생기 1로부터 적어도 제1 상태 변수 X의 선행 값 Xn -1 및 제2 상태 변수 A의 선행 값 An -1을 포함한 상태 벡터의 선행 값 Vn -1을 수용한다.
상기 분리 수단 435는 대칭적 보안 키 함수를 각 메시지 블록 Zn에 적용하도록 하며, 상기 보안 키는 상태 벡터의 선행 값 중 적어도 하나의 영역에서 얻어진다.
사용된 보안 키 함수는 바람직하게는 적어도 하나의 배타적 논리합 조작을 포함하고, 즉 분리 수단 435는 상태 벡터의 선행 값의 사이즈 m인 영역에 의해 고정된 매개변수를 갖는 적어도 하나의 배타적 논리합 게이트를 포함한다. 다른 방법에서는, 상태 벡터의 선행 값의 사이즈 m인 영역에 의해 고정된 매개변수를 갖는 본 발명의 개념에서 하나 이상의 일대일 대응 순열을 추가로 포함할 수 있다.
여기서 기술한 예에 있어서, 분리 수단 435에 의해 이용된 보안 키 함수는, 본 발명의 개념에서의 두 가지의 일대일 대응 순열 및 상태 벡터 Vn -1의 사이즈 m인 영역에 의해 고정된 매개변수를 갖는 두 가지 배타적 논리합 조작으로 구성되어 있다. 이 함수의 보안 키는 제1 일대일 대응 순열의 매개변수를 고정하는 영역, 제1 배타적 논리합 조작의 매개변수를 고정하는 영역, 제2 일대일 대응 순열의 매개변수를 고정하는 영역, 및 제2 배타적 논리합 조작의 매개변수를 고정하는 영역으로 이루어진다.
따라서 분리 수단 435는 제1 배타적 논리합 게이트 441a에 의해 분리된 제1 및 제2 일대일 대응 순열 수단 439a 및 439b를 갖는다. 제2 배타적 논리합 게이트 441b는 제2 일대일 대응 순열 수단 439b의 출력을 수용한다.
여기서 고려된 일대일 대응 순열 수단 439a 및 439b는 각각 상기에 기술한 상태 벡터 Vn -1의 각각 상이한 상태 변수에 의해 고정된 매개변수를 갖는 순열 함수 P를 이용한다. 달리 말하면, 상기에 언급한 상이한 일대일 대응 순열 수단은 상태 벡터 Vn -1의 상태 변수와 동일한 사이즈 m인 순열 키를 이용한다.
따라서, - 제1 일대일 대응 순열 수단 439a가 제2 상태 변수 An -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제1 일대일 대응 순열을 사용한다.
- 제2 일대일 대응 순열 수단 439b가 제1 상태 변수 Xn -1의 선행 값과 동일한 순열 키에 의해 고정된 매개변수를 갖는 순열 함수 P에 상응하는 제2 일대일 대응 순열을 사용한다.
일대일 대응 순열 수단 439a 및 439b에서 순열 함수 P의 매개변수를 고정하는데 사용된 순열 키는 생성된 순열 함수 P가 적용되는 데이터에 독립적이고, 그에 따라 각각은 비가역적인(일대일 대응) 함수를 이용한다. 이 비가역적 함수 P는 고려된 순열 키의 각 비트의 값의 함수로서 선택된 사이즈 mm 연속 순열을 적용한 결과이다.
이러한 반복 n에서 현재 중간 값 Xα의 계산은 하기의 조작을 포함한다:
- 제1 순열 수단 439a가, 제2 상태 변수의 선행 값 An -1에 의해 고정된 매개변수를 갖는 제1 일대일 대응 순열을 현재 입력 블록 Zn에 적용함으로써 제1 중간 문자 J1n을 계산한다: J1n = P(Zn, An -1);
- 제1 배타적 논리합 게이트 441a가, 배타적 논리합 조작을 제1 상태 변수의 제1 중간 문자 J1n 및 선행 값 An -1에 적용함으로써 제2 중간 문자 J2n을 계산한다: J2n = J1n An -1;
- 제2 배타적 논리합 게이트 441b가, 배타적 논리합 조작을 제1 상태 변수의 제3 중간 문자 J3n 및 선행 값 Xn -1에 적용함으로써 현재 중간 값 Xα를 계산한다: Xα = J3n Xn -1.
이러한 현재 중간 값 Xα는 이어서 유사-난수 발생기 1로 보내진다.
현재 블록 Zn(즉, 해싱되는 과정 중의 메시지 블록) 중 비트 하나의 변경이 유사-난수 발생기 1의 계산 수단 325a에 의해 상태 벡터 Vn -1에 혼입된 변수 Xα의 비트를 변경시켜 반복 n에서 제1 중간 벡터 Vint1를 형성한다는 점에 주목할 필요가 있다. 결론적으로, 계산 수단 326에 의해 구현된 순열의 선택이 순열의 하나의 단계에 할당되고, 그에 따라 결과적으로 모든 상태 벡터 Vn 및 후속 상태 벡터 또한 변경될 것이다(아발란체 효과).
메시지 Mess를 구성하는 M 메시지 블록을 이용한 M 연속적 반복 후, 메시지 Mess의 간략한 해시(hash)가 유사-난수 발생기 1에 의해 생성된 최후(즉, Mth) 상태 벡터, 달리 말하면 해시 = VM로부터 암호 해싱 장비 407에 의해 형성된다.
이는 유사-변수 생성 방법의 속도와 암호해독 저항 성능에 유익한 암호화 해싱 방법 및 장비의 극히 간단한 하드웨어 또는 소프트웨어 구현을 제공한다.
더욱이, 본 발명의 부호화 장비에 구현된 것들과 유사한 원리에 따르면, 반복의 함수로서 사이즈 가변성인 메시지 블록 Zn을 고려할 수 있고(즉, 반복으로서 메시지 Mess의 분할이 사이즈 w가 변수이며, 상태 벡터의 영역에서 특정화된 블록으로 진행됨) 및(또는) 미리조건화된 모듈 및 유사-난수 발생기에서 초래된 조작을 비동기화 할 수 있다(특히 부호화 장비에 대해 기술한 바와 같은 “엠티 반복(emty iterations)”을 도입함으로써).
더욱이, 본 발명의 하나의 특정 실시형태에 있어서, h 해싱 장비를 연속해서 연결시킴으로써(다음 해싱 장비의 유사-난수 발생기에 의해 생성된 상태 벡터의 영역) 암호화 해싱의 수학적 복잡도를 증가시키는 것도 마찬가지로 가능하다.
더욱이, 본 발명의 하나의 특정 실시형태에 있어서, 본 발명의 부호화 방법의 설계를 이용하는 메시지의 부호화(또는 해독화)와 동시에 본 발명의 해싱 방법에 의한 암호화 해싱에 영향을 줄 수도 있다.
순열 함수 P의 구현
상기의 예시적인 작업에 사용된 순열 함수 P를 하기에서 도 9a 내지 9e를 참조로 보다 상세하게 설명한다.
상기에서 언급한 바와 같이, 본 명세서에서 매우 유익한 방식으로서, 유사-난수 발생기( 및 생성 방법), 부호화 장비( 및 방법), 및 암호화 해싱 장비( 및 방법)은, 고려된 입력 데이터 및 키의 사이즈의 함수로서 고정될 수 있는 매개변수와 순열 키에 의해 고정된 매개변수를 갖는, 본 발명에 의해 제안된 동일한 순열 함수 P에 의존한다.
따라서 상기 예들에서 순열 함수 P는 다양한 요구사항을 만족시킬 수 있는 이점을 갖는다.
하나의 경우에 있어서, 순열 키의 사이즈는 입력 데이터의 사이즈와 동일하고, 이는 또한 (예를 들어, 도 3a에 나타낸 예에서 부호화 또는 암호화 해싱뿐만 아니라 유사-난수 생성을 위한)출력 데이터의 사이즈와 동일하다. 이는 “정사각형” 순열 함수로 지칭된다.
또 다른 경우에 있어서, 순열 키의 크기는 입력 데이터의 사이즈 보다 엄밀하게 작으며, 이는 또한 (예를 들어, 도 1b 및 3b에 나타낸 예에서 유사-난수 생성을 위한) 출력 데이터의 사이즈와 동일하다. 이는 “직사각형” 순열로 지칭된다.
다른 경우에 있어서, 순열 함수 P는 고정된 매개변수를 가져 사이즈 e인(e= k1 ≥ k - 상태 벡터 V의 사이즈) 및 m(부호화/해독화될 데이터 U/V의 사이즈)인 입력 데이터에 적용될 수 있다. 또 다른 경우들에 있어서, 순열 함수 P는 고정된 매개변수를 가져 임의의 사이즈 e=w인 입력 데이터에 적용됨으로써 각 반복 시에 부호화될 비트의 수를 변형시키기 위한 함수에 접근가능하도록 할 수 있다.
도 9a는 박스 61a-61f를 포함한 순열 테이블을 나타내며, 여기서 각 박스는 고려된 위치에 나타나는 소스 비트를 지시한다. 각 비트는 이동 시에 그의 값: 고려된 데이터의 ith 비트의 v(i)=이진 값(0 또는 1)을 보유한다.
상기 예에 있어서, 입력 데이터의 제1 비트는 그의 값 v(1)을 보유한 입력 데이터의 3rd 위치(박스 61c)로 이동된다. 입력 데이터의 제2 비트는 그의 값 v(2)을 보유한 입력 데이터의 kth 위치(박스 61f)로 이동된다. 입력 데이터의 제3 비트는 그의 값 v(3)을 보유한 입력 데이터의 4th 위치(박스 61d)로 이동된다. 입력 데이터의 제4 비트는 그의 값 v(k)을 보유한 입력 데이터의 2nd 위치(박스 61b)로 이동된다.
순열 함수 P가 적용되는 입력 데이터와 관련된 키를 위해 행해진 선택에 따르면, 순열 함수 P는
- 일방향 함수 이고, 따라서 순열 키가 입력 데이터로부터 생성되는 경우(예를 들어, 키=입력 데이터) 비가역성이며; 이들 일방향 함수 특성은 유사-난수 발생기 1에 의해 수행된 조작 및 본 발명의 암호화 모듈에서 개발되거나; 또는
- 일대일 대응(bijective) 함수(일대일 대응 키 순열)이며, 이는 따라서 순열 키의 값이 알려져 있고, 이 순열 키가 입력 데이터에 대해 독립적이거나 고정되어 있을 경우 가역성이며; 이들 일대일 대응 함수 특성은 분리 함수 또는 부호화/해독화 모듈 17의 수단 또는 암호화 해싱 장비의 미리조건화한 모듈 417에서 개발될 수 있다.
사이즈 p인 순열 키 C에 의해 고정된 매개변수를 갖는 순열 함수 P를 사이즈 e인 순열화될 데이터에 적용하기 위해서는, 순열화될 데이터를 순열 키의 p 비트 값에 의해 고정된 매개변수를 갖는 사이즈 ep 순열에 연결하여야 하고, 즉, 각 순열은 순열 키의 개별 비트의 값의 함수로서 선택된다.
순열 키의 각 비트에 대해, 순열은 각 순열 단계를 위해 미리정한 사이즈 e인 상이한 순열의 쌍(P0, P1)으로부터 선택된다. 예를 들어, 고려된 순열 키의 비트가 0과 같은 경우, 순열 P0가 선택되고, 고려된 순열키의 비트가 1과 같은 경우 순열 P1이 선택된다.
특히, 고려된 사이즈 e인 순열을 미리정한 순열의 쌍(P0, P1)으로부터 선택하여 하기의 조건 중 하나 이상을 만족시킬 수 있다.
- 키의 각 비트에 대하여, 각각 P0 및 P1의 조합으로 얻어진 순열 및 각각 P1 및 P0의 조합으로 얻어진 순열을 모든 지점에 상이하고;
- 순열 함수의 각 p 단계(순열의 어플리케이션에 상응하는 단계)에서 모든 지점에서 상이한 순열 P0 및 P1의 동일 쌍이 사용되고, 즉, 임의의 t에 대해, 제1 순열을 위한 출력에서 비트 t의 위치가 제2 순열을 위한 출력에서 비트 t의 위치와 상이하며;
- 각 단계에서 순열의 쌍(P0; P1)이 사용되어 순열 P0 및 P1이 동일 순열로부터 모든 지점에서 개별적으로 상이하게 되며, 즉 각각 순열 P0, P1의 어플리케이션 전에 위치 t에서의 비트가 각각 순열 P0, P1으로부터 배출될 때 t와 상이한 위치에 위치할 것.
다른 방법으로는, 상이한 순열의 쌍(P0i, P1i)을 각 순열 단계 i에 적용시킬 수 있다.
따라서 처리될 임의의 사이즈 e인 데이터에 대하여, 순열 함수 P는 하기의 두 가지 단계로 진행된다.
- 첫 번째 단계로서, 하드웨어 구현에서 라우팅 매트릭스로도 작용하는 사이즈 e인 두 가지 순열(P0, P1) 각각의 p 열로 이루어진 사이즈(p, 2e)인 테이블이 먼저 계산되고,
- 두 번째 단계로서, 순열 함수 P가 이용되는 경우, 상기 테이블의 각 열 i는 두가지 가능한 순열을 제공하며, 이들 순열 중 하나 또는 다른 것이 사용된 순열 키 i번째 비트의 값 v 키(i)의 함수로서 선택된다.
주어진 순열 키 값에 대하여, 순열 함수 P는 따라서 사이즈 e인 입력 데이터 p 순열을 각각 순열 키 중 각 p 비트의 값에 의해 고정된 매개변수에 연결한다.
도 9b는 순열 함수 P의 다섯 가지 순열 단계 각각에 사용되고 함수 P의 사이즈 p=5인 순열 키의 i번째 비트의 값 v 키(i)의 함수로서 사이즈 e=5인 입력 데이터에 적용될 사이즈 e=5인 연속 순열에 대한 다섯 가지 상이한 쌍의 예를 나타낸다.
도 9e는 순열 함수 P의 다섯 가지 순열 단계 각각에 사용되고 함수 P의 사이즈 p=5인 순열 키의 i번째 비트의 값 v 키(i)의 함수로서 사이즈 e=5인 입력 데이터에 적용될 사이즈 e=5인 두 가지 상이한 순열에 대한 동일 쌍의 예를 나타낸다.
도 9d는 순열 함수 P의 다섯 가지 순열 단계 각각에 사용되고 함수 P의 사이즈 p=5인 순열 키의 i번째 비트의 값 v 키(i)의 함수로서 사이즈 e=7인 입력 데이터에 적용될 사이즈 e=7인 연속 순열에 대한 다섯 가지 상이한 쌍의 예를 나타낸다.
도 9e는 순열 함수 P의 다섯 가지 순열 단계 각각에 사용되고 함수 P의 사이즈 p=5인 순열 키의 i번째 비트의 값 v 키(i)의 함수로서 사이즈 e=7인 입력 데이터에 적용될 사이즈 e=7인 두 가지 상이한 순열에 대한 동일 쌍의 예를 나타낸다.
상기에 기술한 순열 함수 P의 주요한 이점은 단지 “NOT” 및 “AND” 논리 함수만을 이용할 수 있는 그의 매우 간편한 하드웨어 구현에 있다.
도 10a 및 10b는 비트 v 키(i) 값의 함수로서, 각 비트 v 키(i), i=1, ...., p, 사이즈 p인 순열 키, 사이즈 e(순열화될 데이터의 시이즈)인 두 개의 미리정한 순열 중 하나를 선택함으로써 p 순열과 상기 순열 키의 p 비트 각각의 값에 의해 고정된 매개변수를 결합시킬 수 있는 논리 게이트 63, 65를 포함한 순열 수단을 나타낸다.
도 10a의 예는 “NOT” 논리 게이트 63 및 “AND” 논리 게이트 65가 이용되어 p=5 및 e=5에 대한 도 9c로부터 순열 함수 P의 제1 순열 단계의 연결(wiring)을 보다 구체적으로 나타낸다.
이 어플리케이션에서 AND 논리 게이트 65는 순열 키 또는 그의 컴플리먼트 비트의 값 v 키에 의해 조절되는 스위치(또는 하드웨어 구현에서 트렌지스터)에 상응한다. 상기 스위치는 따라서 키 또는 그의 컴플리먼트 비트의 값 v 키의 함수로서 개방되거나 폐쇄된다(스위치가 트렌지스터인 경우 켜지거나 꺼진다).
따라서 상기 단계들은 순서대로 연결되고, 단계 h-1의 출력 69에는 단계 h의 출력 67이 공급된다.
제1 단계의 입력에 순열화될 데이터 각 비트의 각 값을 적용하고, 각 단계의 키 입력에 그곳에 관련된 키의 비트의 각 값을 적용함으로써, 사이즈 e인 입력 데이터에 영향을 주는 사이즈 ep 순열에 상응하고 사이즈 p인 키에 의해 고정된 매개변수를 갖는 전체 p 단계에 대해 오직 하나의 조작으로 수행할 수 있는 논리 함수가 얻어진다.
도 10b에, 도 9c에 나타낸 바와 같은 p=5에 대한 값 v 키(i)의 함수로서 사이즈 e=5인 입력 데이터에 적용될 각 p=5 단계에 사용되는 두 가지 상이한 순열의 동일 쌍의 하드웨어 구현의 예를 나타내었다.
소프트웨어 구현을 위해, 귀납적 함수(recursive function)는 매개변수, 즉 입력 데이터, 순열 키, 순열 표 및 순열 단계 i를 갖도록 사용될 수 있다. 순열 함수 P는 i=p를 갖는 하기 “귀납적 함수”를 호출함으로써 극히 빠르게 계산 된다:
Figure pct00023
상기에서 기술한 하드웨어 및 소프트웨어 구현은 즉, 순열 함수 P가 일방향 함수인지 여부 또는 순열 함수 P가 바이젝티브(bijective) 키 순열인 경우 고려된 순열 키의 본성과는 상관없이(즉, 순열화될 입력 데이터에 의존하거나 또는 독립적으로) 사용될 수 있다는 이점을 갖는다. 이는 상기에 기술한 과정 구현의 복잡도를 제한하는 이점이 있다.
따라서 본 발명은 각 반복 시에 부호화/암호화 모듈에서 발생되는 중간 결과가 공급된 상태 벡터의 반복에 영향을 주고, 그에 따라 적용된 입력 데이터 전체에 의존하는 임의 사이즈 k의(상태 벡터의 초기 값으로 사용된)의 부호화 키에 의해 고정된 매개변수를 갖는 유사-난수 발생기를 제공한다. 부호화/해독화 모듈은 유사-난수 발생기의 자가-분리 기능을 통합하고, 각 반복 시에 유사-난수 발생기 상태 벡터의 복수 영역 값의 함수로서 입력 데이터의 부호화 및(또는) 해독화를 수행한다.
따라서 본 발명의 부호화 장비는 특히 하기의 이점을 갖는다:
부호하/해독화 모듈은, 하드웨어 또는 소프트웨어에 구현되는 지 여부에 따라 비가역성이다. 따라서 부호화 및 해독화 기능을 위한 상이한 프로그램/회로를 가질 필요가 없다.
유사-난수 발생기는 비가역성이다.
순열 함수 P는, 유사-난수 발생기에서 비가역성 형태의 P[데이터. 키(데이터)](즉, 키는 순열화될 데이터에 의존함) 및 부호화/해독화 모듈에서 비가역성 형태의 P(데이터, 고정된 키)(즉, 키는 순열화될 데이터와의 관계에서 고정되어 있음)에 이용되는 하드웨어 또는 소프트웨어에 구현되는지 여부에 따라 단일의 극히 빠른 조작에 영향을 미친다.
유사-난수 발생기는 특별한 기간을 갖지 않으며, 미리정한 사이클을 따르지 않는다. 상태 벡터의 값은, 하나의 어트랙터(attractor)(특별한 입력 시퀀스에 특이적인 사이클)에서 다른 것으로 각 반복을 스위칭하기 때문에 어떤 결정된 사이클이 아닌 부호화/암호화 키 및 적용된 입력 문자의 전체 시퀀스에 의존한다.
본 발명에서 제안한 상태 벡터 유사-난수 발생기는 상태 벡터의 값을 입력 문자 시퀀스의 관찰로 재구성하거나 의도적으로 입력 문자 시퀀스에 의해 미리정한 값이(관찰불가능하고 명령불가능한 상태 벡터) 되록 할 수 없는 것이다. 상태 벡터는 특정한 자체 상태 변수들의 값에 의해 주어진 매개변수를 갖는 분리 함수를 이용하여 입력 및 출력 문자를 분리한다(자가-분리). 암호해독에 대한 저항을 떠나, 이러한 특성은 부호화 과정이 개시되는 매 시간에 초기화 벡터의 변형에 대한 문제점을 제거한다. 따라서 초기화 벡터로서 작용하는 부호화/해독화 키를 변형시킬 필요는 없다. 또한 메시지들이 유사한 헤더를 갖고 있다는 고려 하에 정보의 누설을 회피하기 위해 메시지 번호 유형의 난스(Nonce)(한 번 사용된 번호)를 시작으로 메시지 헤더를 사용할 수 있다.
본 발명은 접근불가능하고(상태 벡터의 영역) 부호화/해독화 키 및 적용된 입력 문자의 전체 시퀀스에 의존하는 유사-난수 변수의 함수로서 각 반복 시에 부호화된 비트의 수를 변경시킬 수 있는 가능성을 제공한다.
또 다른 옵션은 접근불가능하고(상태 벡터의 영역) 부호화/해독화 키와 적용된 출력 문자의 전체 시퀀스에 의존하는 유사-난수 변수의 함수로서 “엠티 사이클(empty cycles)"에 영향을 주어(입력을 부호화하지 않고 상태 벡터에 영향을 주는 반복) 유사-난수 발생기 및 데이터 부호화/해독화 모듈의 비동기화를 가져오는 유사-난수 발생기에 대한 것이다.
추가의 옵션은 M 암호화 메시지를 생산하는 동일한 부호화 모듈 상에서 변환되기 위해 부호화될 명문의 M 메시지를 갖게 함으로써 암호화 멀티플렉서(multiplexer)로서 부호화 장비를 이용하는 것이다. M 부호화 메시지가 접근불가능하기 때문에 명문의 단일 M 메시지 또는 모든 M 메시지를 재구성하는 것은 불가능하다. 부호화 메시지를 서로 결합하여 전송 채널의 수를 감소시킬 수 있다. 결합되거나 그렇지 않은 각 반복에 대한 전송 채널의 부호화 블록의 순서는 접근불가능하고(상태 벡터의 영역) 부호화 키 및 적용된 전체 입력 문자 시퀀스에 의존하는 미리 정한 또는 유사-난수 변수의 함수일 수 있다.
본 발명에서는 동시적인 암호화 해싱 및 구조적 부호화/해독화를 가능케함으로써 고도의 보안과 하드웨어 또는 소프트웨어에 간단하고 효과적인 구현을 제공할 수 있는 매우 유익한 어플리케이션을 밝혀냈다.
암호화 해싱 및 대칭적 부호화는 모든 유형의 커뮤니케니션, 예를 들어, 모바일 커뮤니케이션, 인터넷, 스마트 카드 등에 일상적으로 사용되고 있음이 주목된다.
C 순열 키
V 상태 벡터
V0 상태 벡터의 초기 값
Vn -1 상태 벡터의 선행 값
Vn 상태 벡터의 현재 값
Vprov 임시 벡터
Vint1 제1 중간 벡터
Vres 생성 벡터
Vint2 생성 벡터의 영역
VM 상태 벡터의 최종 값
Vtemp 상태 벡터의 신규 현재 값
Un, Yn, Zn 입력 데이터 블록
Xα 현재 중간 값
Zn 입력 블록
w 가변적인 비트의 수
V1 제1 상태 벡터
V1n 제1 상태 벡터의 현재 값
V2 제2 상태 벡터
V2n 제2 상태 벡터의 현재 값
Y1n, U1n 제1 가역성 어플리케이션에 의해 제1 현재 출력 문자
X1α 제1 현재 중간 값
U2n, Y2n 제2 현재 입력 문자
1 유사-난수 데이터 시퀀스의 암호화 발생기
3, 13 유사-난수 데이터 시퀀스
327a, 27a, 41a, 41c, 131 배타적 논리합 조작
326 암호화 모듈
326b 미리정한 사이즈 d인 순열 키를 형성하기 위한 수단

Claims (27)

  1. 상태 벡터의 초기 값(V0)으로부터 반복적으로 생성된 사이즈 k인 상태 벡터(V)의 연속된 값에 의해 형성된 유사-난수 데이터 시퀀스(3, 13)을 생성시키는 암화화 방법에 있어서,
    매 반복 동안, 상기 반복에 대한 상태 벡터의 현재 값(Vn)을 생성시키기 위하여, k 보다 크거나 같은 사이즈 k1인 순열의 미리정한 수 d가 선행 반복에서 생성된 상태 벡터의 선행 값(Vn -1) 중 하나 이상의 영역으로부터 형성된 사이즈 k인 하나 이상의 제1 중간 벡터(Vint1)를 포함한 사이즈 k1인 임시 벡터(provisional vector)(Vprov)에 연속적으로 적용되어, 각 순열이 사이즈 d인 순열 키(C)의 비트와 관계하고, 적어도 상기 비트의 값에 대한 함수로서 선택되며, 상기 순열 키는 제1 중간 벡터(Vint1)의 k 비트로부터 d 비트를 선택한 결과이고;
    상태 벡터의 현재 값(Vn)이 어플리케이션 단계의 생성 벡터(Vres)의 하나 이상의 영역(Vint2)에서 얻어지는
    것을 특징으로 하는 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법.
  2. 제1항에 있어서, 상기 임시 벡터가 제1 중간 벡터의 각 비트에 1을 보완하여 얻은 벡터를 추가로 포함하는 것을 특징으로 하는 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법.
  3. 제1항 또는 제2항에 있어서, 상태 벡터의 현재 값이 exclusive-OR 조작(327a, 27a)을 상기 어플리케이션 단계의 생성 벡터의 영역(Vint2) 및 상태 벡터의 선행 값에 적용하여 얻어진 것임을 특징으로 하는 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법.
  4. 제1항 또는 제3항에 있어서, 상기 임시 벡터(Vprov) 및 순열 키(C)가 제1 중간 벡터(Vintl)의 사이즈와 같은 동일한 사이즈의 것임을 특징으로 하는 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 각 반복이, 상기 어플리케이션 단계 전에 상태 벡터의 선행 값(Vn) 및 입력 데이터 블록(Un, Yn, Zn)으로부터 계산된 현재 중간 값(Xα)을 얻는 단계를 포함하고, 상기 제1 중간 벡터가, 영역(Xn -1)이 현재 중간 값(Xα)에 의해 치환되어진 상태 벡터의 선행 값에 의해 형성되는 것을 특징으로 하는 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법
  6. 메시지가, 상태 벡터 (V)의 M 값을 생성시키기 위해 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법을 연속해서 반복하는 동안, 입력 블록(Zn)으로서 사용되는 미리정한 수 M의 데이터 블록을 포함하며, 상기 메시지의 다이제스트가 이 방식으로 생성된 상태 벡터의 최종 값(VM)으로부터 얻어지는 것을 특징으로 하는 메시지(Mess)를 암호화 해싱하여 메시지의 다이제스트(digest; hash)를 생성시키는 방법으로 유사-난수 데이터 시퀀스를 생성시키는 암호화 방법의 용도.
  7. 상태 벡터 (V)의 초기 값 (V0) 및 상기 입력 시퀀스를 형성하는 연속적인 입력 문자 (Un, Yn)를 기반으로, 상기 상태 벡터의 연속적인 값 (Vn)및 연속적인 입력 문자(Yn, Un)가 반복적으로 생성되고, 각 반복은 하기 단계를 포함하며:
    반복을 위한 현재 출력 문자가 현재 입력 문자 및 선행 반복에서 생성된 상태 벡터의 선행 값에 의존하는 가역상 어플리케이션에 의해 계산되는 부호화 단계와; 상기 반복을 위한 상태 벡터의 현재 값이 적어도 상태 벡터의 선행 값에 의존하는 비가역성 어플리케이션에 의해 계산되는 유사-난수 생성 단계;
    상기 방법은 가역성 어플리케이션이 적어도 제1 및 제2 보안 키 함수를 포함하고, 상기 보안 키는 상태 벡터의 선행 값 중 적어도 하나의 영역에서 생성되며;
    상기 비가역성 어플리케이션은, 상태 벡터의 선행 값 및 현재 입력 문자에 의존하며 상기 제1 보안 키 함수 또는 제2 보안 키 함수에 의해 입력 문자 또는 출력 문자에서 분리되는 현재 중간 값에 의존하는 것을 특징으로 하는 입력 데이터 시퀀스를 부호화하는 방법.
  8. 제7항에 있어서, 상기 제1 및 제2 보안 키 함수 중 하나 또는 모두가, 상기 함수의 보안 키의 적어도 하나의 영역(An -1, Bn -1)에 의해 고정된 매개변수를 갖는 적어도 하나의 배타적 논리합 조작 (41a, 41c)를 포함하는 것을 특징으로 하는 부호화 방법.
  9. 제7항 또는 제8항에 있어서, 상태 벡터는 사이즈 k인 것이며, 유사-난수 생성 단계 동안, 상태 벡터의 현재 값을 계산하기 위해,
    상태 벡터의 선행 값의 영역으로부터 및 현재 중간 값으로부터 형성된 사이즈 k인 적어도 하나의 제1 중간 벡터를 포함하는 k 보다 크거나 같은 사이즈 k1인 임시 벡터에, 적어도 개별 디스팅트(distinct) 비트의 함수로서 선택된 사이즈 d인 순열 키의 개이 비트와 각각 관련된 사이즈 k1인 미리정한 수 d의 순열을 적용하며,상기 순열 키는 제1 중간 값의 k 비트로부터 d 디스팅트 비트를 선택한 결과이며,
    상태 벡터의 현재 값은 적어도 상기 어플리케이션 단계에서 생성된 벡터의 영역에서 얻어지는 것을 특징으로 하는 부호화 방법.
  10. 제9항에 있어서, 상기 임시 벡터가, 각 제1 중간 값의 비트에 1을 보충하여 얻어진 벡터를 추가로 포함하는 것을 특징으로 하는 부호화 방법.
  11. 제9항 또는 제10항에 있어서, 상태 벡터의 현재 값이, 상기 어플리케이션 단계의 생성 벡터의 영역(Vint2) 및 상태 벡터의 선행 값에 적용된 배타적 논리합 조작 (27a, 327a)의 결과인 것을 특징으로 하는 부호화 방법.
  12. 제7항 내지 제11항 중 어느 한 항에 있어서, 입력 문자(Un, Yn) 및(또는) 출력 문자가 반복의 함수로서 가변적인 비트의 수 (w)를 포함하고, 상태 벡터가 각 반복시 가변적인 상기 수의 비트를 지시하는 영역을 포함하는 것을 특징으로 하는 부호화 방법.
  13. 제12항에 있어서, 각 반복의 유사-난수 생성 단계가, 비트의 가변 수가 0인 상태 벡터의 현재 값으로부터 측정되는 경우, 상태 벡터의 현재 값에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값을 치환시키는 상태 벡터의 신규 현재 값(Vtemp)을 계산하는 단계를 추가로 포함하는 것을 특징으로 하는 부호화 방법.
  14. 제7항에 있어서, 유사-난수 생성 단계가 제1 상태 벡터 (V1)의 현재 값(V1n)을 형성하는 제1 유사-난수 생성 단계이며, 상기 제1 유사-난수 생성 단계가 제2 상태 벡터 (V2)의 현재 값(V2n)을 형성하는 적어도 하나의 제2 유사-난수 생성 단계와 병렬로 결합하고, 상태 벡터의 현재 값 (Vn)이 배타적 논리합 조작 (131)을 제1 상태 벡터 (V1)의 현재 값(V1n) 및 적어도 제2 상태 벡터의 현재 값(V2n)에 적용한 결과인 것을 특징으로 하는 부호화 방법.
  15. 제7항 내지 제14항 중 어느 한 항에 있어서, 부호화 단계가 제1 현재 입력 문자(U1n, Y1n) 및 상태 벡터의 선행 값 (Vn -1)의 적어도 하나의 제1 영역에 의존하는 제1 가역성 어플리케이션에 의해 제1 현재 출력 문자(Y1n, U1n); 및 제1 현재 중간 값(X1α)이 계산되는 제1 부호화 단계이며;
    제2 현재 입력 문자(U2n, Y2n) 및 상태 벡터의 선행 값 (Vn -1)의 적어도 하나의 제2 영역에 의존하는 제2 가역성 어플리케이션에 따라 제2 현재 출력 문자(Y2n, U2n); 및 제2 현재 중간 값(X2α)이 계산되는 적어도 하나의 제2 부호화 단계를 추가로 포함하고;
    유사-난수 생성 단계 동안 이용된 상기 중간 값이 상기 제1 현재 중간 값(X1α) 및 적어도 상기 제2 현재 중간 값(X2α)를 포함하는 것을 특징으로 하는 부호화 방법.
  16. 제15항에 있어서, 적어도 두 개의 명문 메시지 블록을 암호화 멀티플렉싱시켜 적어도 두 개의 부호화된 메시지 블록을 형성시키는 단계를 추가로 포함하고, 각 명문 메시지 블록이 연속적인 입력 문자에 상응하며, 상기 적어도 두 개의 부호화된 메시지 블록이 각 반복 시 상태 벡터의 선행 값 영역의 함수로서 정렬되는 것을 특징으로 하는 부호화 방법.
  17. 사이즈 k1인 입력 비트(Vprov)의 벡터로부터 출력 비트(Vres)의 벡터를 생성하도록 된 암호화 모듈 (326)에 있어서,
    출력 벡터의 비트로부터 d 개별 비트를 선택함으로써 미리정한 사이즈 d인 순열 키 (C)를 형성하기 위한 수단 (326b);
    순열 키의 각 비트와 적어도 비트의 값의 함수로서 선택된 사이즈 k1인 순열을 연관시키기 위한 수단; 및
    출력 비트의 벡터를 얻기 위한 순열 키의 d 비트와 연관된 사이즈 k1인 d 순열을 입력 벡터에 연관시키기 위한 수단을 추가로 포함하는 것을 특징으로 하는 암호화 모듈 (326).
  18. 상태 벡터의 초기 값(V0)으로부터 반복적으로 형성된 사이즈 k인 상태 벡터 (V)의 연속적인 값(Vn)으로 형성된 유사-난수 데이터 시퀀스의 암호화 발생기 (1)에 있어서,
    상기 발생기가 각 반복 시 반복을 위한 상태 벡터의 현재 값 (Vn)을 생성시키는데 이용하기 위한 수단 (5)을 포함하며;
    선행 반복에서 생성된 상태 벡터의 선행 값(Vn -1)의 적어도 하나의 영역으로부터 형성된 사이즈 k인 적어도 하나의 제1 중간 벡터(Vintl)를 포함한 k 보다 크거나 같은 사이즈 k1인 임시 벡터(Vprov)로부터 생성 벡터(Vres) 생성하도록 된 제17항에 따른 암호화 모듈을 포함하고, 상기 순열 키가 k 보다 크거나 같은 사이즈 d이며;
    상태 벡터의 적어도 하나의 영역으로부터 상태 벡터의 현재 값을 얻기 위한 수단을 포함하는 것을 특징으로 하는 암호화 발생기 (1).
  19. 제18항에 있어서, 각 반복 시에 상태 벡터의 선행 값(Vn -1) 및 입력 데이터 블록으로부터 계산된 현재 중간 값(Kα)를 얻기 위한 수단 (323); 및 영역(Xn -1)이 현재 중간 값(Kα)에 의해 치환된 상태 벡터의 선행 값으로부터 제1 중간 벡터(Vintl)을 형성하기 위한 수단 (325a, 25)를 추가로 이용하는 것을 특징으로 하는 발생기.
  20. 상태 벡터의 초기 값(V0) 및 입력 시퀀스를 형성하는 연속적인 입력 문자(Un, Yn), 상태 벡터의 연속적인 값(Vn), 및 연속적인 출력 문자(Yn, Un)를 반복적으로 생성하도록 된 입력 데이터 시퀀스를 부호화하기 위한 장비 (7)에 있어서,
    상기 부호화 장비가 각 반복 시에, 현재 입력 문자(Un, Yn) 및 선행 반복에서 생성된 상태 벡터의 선행 값(Vn -1)에 의존하는 가역적 어플리케이션에 의해 상기 반복을 위한 현재 출력 문자(Yn, Un)를 계산하도록 된 부호화 수단 (17); 및 적어도 상태 벡터의 선행 값에 의존하는 비가역성 어플리케이션에 의해 상기 반복을 위한 현재 출력 문자(Yn, Un)를 계산하도록 된 유사-난수 발생기 (1)를 포함하고,
    상기 부호화 장비는 상기 가역성 어플리케이션이 적어도 제1 및 제2 보안 키 함수 (35a, 35b)를 포함하고, 상기 보안 키는 상태 벡터의 선행 값의 적어도 하나의 영역(Xn -1, An -1, Bn -1)으로부터 생성되며; 상기 비가역성 어플리케이션이 상태 벡터의 선행 값 및 현재 입력 문자에 의존하고, 상기 제1 보안 키 함수 또는 제2 보안 키 함수에 의해 입력 문자 또는 출력 문자로부터 선택되는 현재 중간 값(Kα)에 추가로 의존하는 것을 특징으로 하는 장비 (7).
  21. 제20항에 있어서, 상기 유사-난수 발생기가 유사-난수 데이터 시퀀스를 생성하기 위한 제19항에 따른 암호화 생성기인 것을 특징으로 하는 부호화 장비.
  22. 반복의 함수로서 가변성의 다수의 비트를 포함한 입력 문자(Un, Yn) 및(또는) 출력 문자를 처리하도록 된 제20항 또는 제21항에 따른 부호화 장비에 있어서, 상기 장비가 각 반복 시 상태 벡터의 영역으로부터 가변 수의 비트를 측정하기 위한 수단을 추가로 포함하고, 상기 유사-난수 생성기가, 상기 가벼 수의 비트가 0인 상태 벡터의 현재 값으로부터 측정되는 경우, 상태 벡터의 현재 값에 의존하는 비가역성 어플리케이션에 의해 상태 벡터의 현재 값을 치환하는 상태 벡터의 신규 현재 값(Vtemp)를 계산하기 위한 수단(45)를 추가로 포함하는 것을 특징으로 하는 부호화 장비.
  23. 제20항 내지 제22항 중 어느 한 항에 있어서, 적어도 두 개의 명문 메시지 블록을 암호적으로 멀티플렉싱하여 적어도 두 개의 부호화된 메시지 블록을 형성시키고, 각 명문 메시지 블록이 연속적인 입력 문자에 상응하며, 상기 적어도 두 개의 부호화된 메시지 블록이 상태 벡터의 선행 값 영역의 함수로서 각 반복 시 정렬되는 것을 특징으로 하는 부호화 장비.
  24. 미리정한 수 M의 데이터 블록(Zn)을 포함한 메시지(Mess)로부터 다이제스트(digest; hash)를 생성하도록 된 암호화 해싱 장비(407)에 있어서,
    상기 해싱 장비가 M 연속 반속 시에 상태 벡터의 연속적인 M 값을 생성시키는 제1항에 따른 암호화 발생기 (1)와; 각각의 M 반복 시에, 메시지의 현재 데이터 블록(Zn) 및 상기 암호화 발생기에 의해 생성된 상태 벡터의 선행 값으로부터의 상기 반복을 위한 현재 중간 값(Xα)를 생성하는 수단, 및 상기 현재 중간 값을 암호화 발생기에 공급하는 수단; 및 상기 발생기에 의해 생성된 상태 벡터의 최종 값(VM)으로부터 상기 다이제스트를 얻기 위한 수단
    을 포함하는 것을 특징으로 하는 암호화 해싱 장비(407).
  25. 프로그램이 적재되고 컴퓨터 또는 데이터 처리 시스템에서 실행되는 경우, 제1항 내지 제5항 중 어느 한 항에 따른 유사-난수 데이터 시퀀스의 생성 방법을 실행하기 위한 프로그램 코드 구조를 포함하는 컴퓨터 프로그램.
  26. 프로그램이 적재되고 컴퓨터 또는 데이터 처리 시스템에서 실행되는 경우, 제6에 따른 암호화 해싱 방법을 실행하기 위한 프로그램 코드 구조를 포함하는 컴퓨터 프로그램.
  27. 프로그램이 적재되고 컴퓨터 또는 데이터 처리 시스템에서 실행되는 경우, 제7항 내지 제16항 중 어느 한 항에 따른 부호화 방법을 실행하기 위한 프로그램 코드 구조를 포함하는 컴퓨터 프로그램.
KR1020107000092A 2007-06-05 2008-06-04 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치 KR101564601B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07301086.0 2007-06-05
EP07301086A EP2001154A1 (fr) 2007-06-05 2007-06-05 Procédé et dispositif de chiffrement/déchiffrement d'une séquence de données d'entrée

Publications (2)

Publication Number Publication Date
KR20100031717A true KR20100031717A (ko) 2010-03-24
KR101564601B1 KR101564601B1 (ko) 2015-10-30

Family

ID=38621191

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107000092A KR101564601B1 (ko) 2007-06-05 2008-06-04 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치

Country Status (8)

Country Link
US (1) US8837719B2 (ko)
EP (2) EP2001154A1 (ko)
JP (2) JP5551065B2 (ko)
KR (1) KR101564601B1 (ko)
CN (1) CN101779412B (ko)
AU (1) AU2008258582B2 (ko)
CA (1) CA2687822C (ko)
WO (1) WO2008148784A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2912529A1 (fr) * 2007-02-13 2008-08-15 France Telecom Couplage d'un programme informatique ou de donnees a un systeme de reference et verification associee.
US8311222B2 (en) * 2008-08-26 2012-11-13 GlobalFoundries, Inc. Hardware based multi-dimensional encryption
CN102135871B (zh) * 2011-03-29 2013-12-18 深圳职业技术学院 利用混沌原理产生随机数的装置及其动态口令牌
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US8879733B2 (en) * 2012-07-10 2014-11-04 Infineon Technologies Ag Random bit stream generator with guaranteed minimum period
US8861725B2 (en) * 2012-07-10 2014-10-14 Infineon Technologies Ag Random bit stream generator with enhanced backward secrecy
EP2731291A1 (en) * 2012-11-12 2014-05-14 Gemalto SA Control method and device for controlling authenticity of codes resulting from application of a bijective algorithm to messages
US10187358B2 (en) * 2013-12-03 2019-01-22 Amazon Technologies, Inc. Data transfer optimizations
US20150222421A1 (en) * 2014-02-03 2015-08-06 Qualcomm Incorporated Countermeasures against side-channel attacks on cryptographic algorithms
EP2996277B1 (en) * 2014-09-10 2018-11-14 Nxp B.V. Securing a crytographic device against implementation attacks
US10375070B2 (en) 2015-04-20 2019-08-06 Certicom Corp. Generating cryptographic function parameters from compact source code
US10079675B2 (en) 2015-04-20 2018-09-18 Certicom Corp. Generating cryptographic function parameters from a puzzle
US10361844B2 (en) * 2015-04-20 2019-07-23 Certicom Corp. Generating cryptographic function parameters based on an observed astronomical event
US11876889B2 (en) * 2015-09-03 2024-01-16 Fiske Software, Llc NADO cryptography with key generators
US10229282B2 (en) 2016-06-12 2019-03-12 Apple Inc. Efficient implementation for differential privacy using cryptographic functions
US10756892B2 (en) * 2017-02-09 2020-08-25 Sap Se Protecting data in a multi-tenant cloud-based system
CN108776583B (zh) * 2018-06-07 2022-10-18 福建江夏学院 π小数点后面位数的随机数表建立方法
US11451521B2 (en) 2018-10-18 2022-09-20 Paypal, Inc. Systems and methods for encrypted data transmission
CN109150923A (zh) * 2018-11-06 2019-01-04 江苏怡通数码科技有限公司 基于混合加密的网络传输数据安全处理方法
US20220224509A1 (en) * 2019-04-23 2022-07-14 Quantropi Inc. Enhanced randomness for digital systems
US11816228B2 (en) 2020-09-25 2023-11-14 Advanced Micro Devices, Inc. Metadata tweak for channel encryption differentiation
CN113098860B (zh) * 2021-03-30 2023-04-07 三一汽车起重机械有限公司 一种can总线加密方法、装置、工程机械和存储介质
CN113342985B (zh) * 2021-08-02 2021-11-09 武汉泰乐奇信息科技有限公司 一种基于权限认证的大数据再生方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
US5796836A (en) * 1995-04-17 1998-08-18 Secure Computing Corporation Scalable key agile cryptography
US5734721A (en) * 1995-10-12 1998-03-31 Itt Corporation Anti-spoof without error extension (ANSWER)
EP0963634A1 (de) * 1997-02-26 1999-12-15 Siemens Aktiengesellschaft Verfahren und anordnung zur rechnergestützten bildung einer permutation zur permutierung digitaler signale und verfahren und anordnung zur verschlüsselung digitaler signale
US6339645B2 (en) * 1998-03-06 2002-01-15 Telefonaktiebolaget Lm Ericsson (Publ) Pseudo-random sequence generator and associated method
US7197142B2 (en) * 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
WO2004017192A2 (en) * 2002-08-19 2004-02-26 Analog Devices Inc. Fast linear feedback shift register engine
US7215769B2 (en) * 2002-11-06 2007-05-08 Fiske Software Llc Non-autonomous dynamical orbit cryptography
US20100067687A1 (en) * 2004-12-06 2010-03-18 The Trustees Of The Stevens Institute Of Technology Method and apparatus for maintaining data integrity for block-encryption algorithms
US7715563B2 (en) * 2006-02-16 2010-05-11 General Dynamics C4 Systems, Inc. Rapid acquisition of state vectors in an encrypted data communication system

Also Published As

Publication number Publication date
WO2008148784A3 (fr) 2009-08-20
JP5551065B2 (ja) 2014-07-16
CA2687822C (en) 2016-07-26
CN101779412A (zh) 2010-07-14
JP5822970B2 (ja) 2015-11-25
EP2165456A2 (fr) 2010-03-24
KR101564601B1 (ko) 2015-10-30
AU2008258582B2 (en) 2013-05-30
US20100142705A1 (en) 2010-06-10
EP2001154A1 (fr) 2008-12-10
WO2008148784A2 (fr) 2008-12-11
CA2687822A1 (en) 2008-12-11
JP2010529496A (ja) 2010-08-26
AU2008258582A1 (en) 2008-12-11
CN101779412B (zh) 2014-12-17
US8837719B2 (en) 2014-09-16
JP2014139687A (ja) 2014-07-31

Similar Documents

Publication Publication Date Title
KR101564601B1 (ko) 메시지의 암호 해싱 및 데이터 암호화의 유사-난수 생성을 위한 암호화 방법 및 그 장치
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US10320554B1 (en) Differential power analysis resistant encryption and decryption functions
Rahim et al. Cryptography technique with modular multiplication block cipher and playfair cipher
US8094816B2 (en) System and method for stream/block cipher with internal random states
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
CN102204158A (zh) 低等待时间的分块密码术
WO2001082524A1 (en) Cryptographic system for data encryption standard
KR20080073348A (ko) 멀티 레인 고속 암호화 및 복호화
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
US20040120521A1 (en) Method and system for data encryption and decryption
KR20010034058A (ko) 이진 데이터 블록의 암호 변환 방법
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Islam et al. Data encryption standard
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
RU2359415C2 (ru) Способ криптографического преобразования блоков цифровых данных
Sekhar et al. Data Encryption technique using Random number generator
Pal et al. An ANN Approach of Twisted Fiestel Block Ciphering
Vidhya Secure Format Preserving Encryption for Multiple Data Fields
Ibadi Twin Concept for stream cipher algorithms
Elganzoury et al. Enhanced stream cipher algorithm using consecutive Nonlinear functions
Mahdi New Paradigm Design by Merging the Techniques of Stream Cipher with Block Cipher
Chawla A 3D RGB Axis-based Color-oriented Cryptography
REDDY et al. Implementation of Security-Enabled Flexible Architecture with Symmetric Cryptography

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee