KR100994841B1 - 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체 - Google Patents
다중키를 이용한 스트림 암호 생성 방법 및 기록 매체 Download PDFInfo
- Publication number
- KR100994841B1 KR100994841B1 KR1020057008993A KR20057008993A KR100994841B1 KR 100994841 B1 KR100994841 B1 KR 100994841B1 KR 1020057008993 A KR1020057008993 A KR 1020057008993A KR 20057008993 A KR20057008993 A KR 20057008993A KR 100994841 B1 KR100994841 B1 KR 100994841B1
- Authority
- KR
- South Korea
- Prior art keywords
- bytes
- function
- generating
- key
- length
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Saccharide Compounds (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
대칭 암호화 방법에서 스트림 암호는 평문 메시지만큼 길어야 한다. 이러한 스트림 암호는 암호화 될 평문 메시지가 방대한 경우 생성하기가 어렵다. 본 발명은 매우 길수 있는 가변 길이를 가지는 스트림 암호를 생성하는 방법을 제공한다. 이러한 스트림 암호는 비반복 길이들을 가지는 다수의 랜덤 서브-키들을 생성하고 그 생성된 랜덤 서브-키들을 랜덤하게 결함함으로써 생성된다.
평문 메시지, 암호문, 난수, 선형성, 소수, 서브-키, 슈퍼-키, 스트림 암호, 유한 스트링, 완전 제곱, mod
Description
본 발명은 암호화 방법 및 상기 암호화 방법에 대한 기록 매체에 관한 것으로, 특히 매우 길 수 있는 전자 통신 데이터를 암호화하기 위한 스트림 암호(stream cipher)를 생성하는 방법 및 기록 매체에 관한 것이다.
안전한 전자 통신을 제공하기 위한 여러 가지 암호화 방법들이 당업계에 잘 알려져 있다. 대칭적인 암호화 방법인 경우, 송신자와 수진자는 메시지를 암호화하고 복호화하기 위해서 동일한 부호(code) 또는 키(key)를 이용한다. 파괴되거나 해독될 가능성이 없는 완전히 안전한 부호(cipher)로는 OTP (One-Time-Pad) 부호가 유일하다. OTP는 평문(plaintext) 메시지를 포함하는 비트 스트림과, 그 평문과 동일한 길이를 가지는 비밀 랜덤 비트 스트림(secret random bit-stream)을 취한다. 키를 이용하여 평문을 암호화하기 위해서, 키와 평문으로부터의 각 비트 쌍이 배타적 논리합(XOR) 함수에 의해 순차적으로 처리되어 암호문이 얻어진다. 상기 키가 완전히 랜덤하고 승인 받지 않은 제 3자로에게 비밀이 유지된다면 상기 암호문은 해독이 불가능하다. 이러한 암호화 방법은 상기 키(key)가 적어도 상기 메시지와 통일한 길이를 가져야 한다는 문제점이 있다. 만약에 더 작은 키가 사용되고 반복되어진다면 상기 암호는 파괴될 수 있다. 경우에 따라서는 암호화가 요구되는 데이터의 길이가 매우 크다.
따라서 가변 길이를 가지며 매우 다양한 양의 데이터를 암호화 할 수 있는 랜덤 키 또는 OTP를 생성하는 방법이 요구된다.
따라서, 본 발명은 상기 문제점을 해결하기 위해 안출된 것으로서, 매우 다양한 양의 데이터를 암호화 할 수 있는 다중키를 이용한 스트림 암호 생성 방법을 제공함에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 일 실시예에 따르면, x 바이트 길이를 가지는 스트림 암호를 생성하는 방법은, i) 각각 고유의 mn 바이트 길이를 가지는 n개의 서브-키들을 선택하는 단계와, ii) 상기 서브-키 각각을 위한 것으로서 각각 mn 바이트 길이를 가지는 n개의 난수들을 생성하는 단계와, iii) (n+1)번째 난수 R을 생성하는 단계와, iv) p=Modmn(R)로 설정하는 단계와, v) 상기 n번째 난수에서의 위치가 p인 각 바이트에 대해서 함수를 모든 n 바이트들에 적용하여 값을 생성하는 단계와, vi) 상기 생성된 값을 상기 스트림 암호의 끝 부분에 결합하는 단계와, vii) p=p+1로 설정하는 단계와, viii) 상기 스트림 암호의 길이가 x 바이트가 될 때 까지 상기 v), vi) 및 vii) 단계들을 반복하는 단계를 포함함을 특징으로 한다. 바람직하게는, 상기 각 서브-키의 선택된 길이 mn이 소수(prime number)이다. 상기 스트림 암호 생성 방법은 비선형화(delinearization) 함수를 상기 스트림 암호에 적용하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에 따르면, 상기 n개의 난수들 각각이, i) 완전 제곱이 아닌 (n+2)번째 난수를 생성하는 단계와, ii) 상기 (n+2)번째 난수의 제곱근을 산출하는 단계와, iii) (n+3)번째 난수를 생성하는 단계와, iv) 상기 (n+2)번째 난수에서의 위치가 상기 (n+3)번째 난수를 근거로 하여 산출되는 디지트(digit)로 부터 시작하여, 유한 디지트 스트링들(strings)을 순차적으로 취하여, 상기 유한 디지트 스트링 각각을 바이트로 변환하는 단계와, v) 상기 n개의 난수들 각각의 상기 선택된 길이 mn이 도달될 때 까지 상기 변환된 각각의 바이트를 순차적으로 결합하는 단계를 통해 생성된다.
또한, 본 발명은 상기 스트림 암호 생성 방법을 수행하기 위한 컴퓨터 프로그램 제품 및 데이터 처리 시스템도 제공한다.
도 1은 본 발명에 따른 방법을 수행하기 위한 컴퓨터 시스템의 개략적인 구성도이다.
도 2는 본 발명에 따른 방법을 도시하는 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 2는 본 발명의 실시예 따른 암호화 키를 생성하기 위한 방법의 흐름도를 도시하고 있다. 구체적으로, 암호화 키 즉, 무한한 길이를 가지는 비반복 스트림 암호(non-repeating stream cipher)(이하, 슈퍼-키(Supr Key)라 칭함)는 서브-키들(sub-key)을 결합해서 생성된다. 다수의(n) 서브-키들(K1, K2, ..., Kn)은 응용프로그램(application)에 따라 구체화될 수 있다. 상기 서브-키들의 개수가 많을수록 상기 비반복 슈퍼-키의 길이는 길어진다. 각 서브-키의 길이는 소수(prime number)개의 비트들이 되며, 상기 소수는 10 이상인 것이 바람직하다.
본 발명의 방법에서의 첫 번째 단계에서는 이용할 슈퍼-키 또는 스트림 암호의 크기를 결정한다. 서브-키들의 개수(n)와 각 서브-키의 비 반복 길이(mn)가 선택된다. 상기 서브-키들 각각은 고유의 비반복 길이를 가진다. 즉, 어떤 두개의 서브-키들도 동일한 비반복 길이를 가지지 않는다. 상기 서브-키들의 비반복 길이들은 소수개의 바이트들(prime numbers of bytes)인 것이 바람직하다. 서브-키들의 길이는 바이트로 171개의 상이한 소수들이므로 2, 3, 5, ..., 1021 범위의 소수들인 것이 바람직하다. 서브-키들의 개수와 그들의 소수 비반복 길이들을 상호적으로 고려하여 구체적인 선택이 수행될 수 있다. 대안적으로, 키들의 개수와 그들의 소수 비반복 길이들은 응용 프로그램에 프로그래밍되거나, 프로그램이 서브-키들의 개수와 그들의 비반복 길이를 임의로 선택할 수 있다. n 서브-키(Kn)인 경우, 슈퍼-키의 비반복 길이는 Size(K1) × Size (K2) × Size (K3) ... × Size (Kn)이 된다. 예를 들면, 하기의 소수 비반복 길이들의 10개의 서브-키들이 사용된다고 가정한다.
Sub Key 1 = 13 bytes = K1
Sub Key 2 = 17 bytes = K2
Sub Key 3 = 19 bytes = K3
Sub Key 4 = 23 bytes = K4
Sub Key 5 = 29 bytes = K5
Sub Key 6 = 31 bytes = K6
Sub Key 7 = 37 bytes = K7
Sub Key 8 = 41 bytes = K8
Sub Key 9 = 43 bytes = K9
Sub Key 10 = 47 bytes = K10
그러면 비반복 슈퍼-키의 길이는 13×17×19×23×29×31×37×41×43×47 = 266,186,053,068,611 bytes가 된다. 따라서 작은 수의 서브-키들을 사용하게 되면, 작은 소수 비반복 길이 각각은 매우 긴 비반복 슈퍼-키를 초래하게 된다. 상기 슈퍼-키의 크기에 대한 총 정의는 300 바이트(비반복 서브-키들의 길이들의 합)와 헤 더(header)(서브-키들의 수 및 그들의 길이들)에 포함된다. 따라서 슈퍼-키들에 대한 총 정의는 상기 슈퍼-키의 크기의 일부가 된다.
바람직하게 최종적인 암호의 랜덤 성질(randomness)을 개선하기 위하여 각 서브-키의 상기 비반복 길이가 소수개의 바이트들이 되지만, 본 발명의 방법은 상기 최종적인 암호가 매우 길기만 하다면 비소수(non-prime number) 길이들이 사용되더라도 효과가 있다.
서브-키들의 수를 선택하는 것은 바람직하게는 50과 99사이의 다수의 키들을 제공하도록 랜덤 스트림에 의해 생성된 처음 두개의 디지트(digit)를 취하고 50으로 MOD하고(MODed) 50을 더해서 계산될 수 있다.
다중 키(multi-key) 과정의 각 서브-키는 다음과 같이 생성될 수 있다.
먼저 완전 제곱수(perfect square)가 아닌 난수(random number)가 바람직하게는 매우 랜덤한 소스(source)에 의해 생성된다. 바람직하게는 그러한 난수는 500 내지 700 디지트들 범위의 정수이다. 이 값은 "제1 씨드 값(first seed value)" O의 역할을 한다. 상기 선택된 값 O가 완전 제곱수가 아닌지 확인된다. 만약 상기 선택된 값 O가 완전 제곱수이면, 완전 제곱수가 아닐 때까지 추가적인 난수들이 생성된다. 제2 씨드 값 P는 컴퓨터의 랜드 함수(rand function)를 씨드(seed)하는데 이용되는 32 비트 값이다. 대부분의 컴퓨터들의 운영 시스템(operating system)들에 포함된 난수 발생기(random number genertor)들은 의사 랜덤(pseudo-random)한 특성을 가지며 그리 강인한 특성을 가지지는 않는다. 그러나 이러한 값들은 시작점으로서는 충분하다. 제2 난수 P도 컴퓨터의 랜드 함수로 부터 생성된다. 그리고 나 서 그것은 상기 시작점을 설정하기 위해 100에 의해 MOD된다. 제1 씨드 값 O의 제곱근 Q가 계산되는데, 무리수 Q(소수점 이후로 비반복적으로 무한이 연장되는 수)가 산출된다. 소수점 이후의 디지트들의 결과적인 스트링(string)은 길이가 무한할 수 있으며 매우 랜덤하다. 상기 컴퓨터는 소수점 이전의 디지트들은 버리고 소수점 이후의 P 디지트들까지의 수 Q을 산출한다. 그리고 나서 Q의 P번째 디지트를 기점으로 하여 컴퓨터는 동시에 4개의 디지트들을 순차적으로 선택하고 그 선택된 4개의 디지트들의 MOD 256 값을 계산한다. 이로서 8비트값이 산출된다. 이러한 값은 상기 서브-키의 첫번째 바이트로 사용된다. 이러한 과정은 한 번에 4 디지트씩 반복되며, 소수 비반복 길이의 서브-키와 동일한 랜덤 데이터 스트링의 생성이 완료될 때 까지 다음의 디지트들에 대해서 순차적으로 계속 수행된다. 이러한 과정은 모든 서브-키들에 대한 비반복 길이들이 생성될 때 까지 모든 서브-키들에 대해 반복된다. 그리고 나서 각 서브-키가, 비반복 스트링 바이트들을 취해서 그것을 다른 서브-키들과 결합하여 슈퍼-키를 생성하기에 충분한 길이의 서브-키를 형성하는데 필요한 만큼 반복해서 형성된다.
상기 서브-키들을 생성하기 위한 알고리즘은 하기와 같이 표현될 수 있다.
1. Treat seedl as the decimal representation of an integer in the range of 500-700 digits.
2. Let X: = seedl
4. Let Zl,Z2,Z3,Z4,.. be the digits after the decimal point in the decimal representation of Y. Each Zi is in the range 0,.., 9.
5. Call srand(seed2).//only the first time
6. Call rand() to get the irrational starting point, start.
7. Let start: = rand() mod 100. start is in the range 0,1,.., 99.
8. Throw away Z1 and Z2 all the way to Zstart.
9. Let tmp: =10*Z(start+i) + Z(gtart+2). Throw away those used values.
10. Let n: = 50 + (tmp mod 50). n is in the range 50,51,.., 99.
11. For i : = 1,2,..,n, do:
12. Let j = 3*(i-1)
13. Let tmp be the next byte from the Z stream.
14. Let tmp: = 100*Zj+1 + 10*Zj+2 +Zj+3
15. Let t: = 172- (tmp mod 172). t is in the range 1, 2,.., 172.
16. Let u be the tth prime among the sequence 2,3, 5,..,1021.
17. If u is equal to any of 11, 12, .., 1{i-1}, set t to (t+l)mod 172 goto 16
18. Setli=u.
19. Next I: goto 11 until all subkey sizes are set.
20. For i : = 1, 2,.., n, do:
21. For j: =0, 1,2,..,1i, do:
22. Let k : = 4*j
23. Let tmp be the next byte from the Z stream.
24. Let tmp:=(1000*Zk +100*Zk+i + 10*Zk+2 +Zk+3) mod 256
26. Next j : Next subkey byte
27. Next I: Nextsubkey
28. For i : = 0, 1, 2,.., 255, do:
29. Let j : = 4*i
30. Let tmp :=(1000*Zj + 100*Zj+l + 10*Zj+2 +Zj+3) mod 256
31. If tmp is equal to any of S [0], S[1],.., S[i-l], set to(tmp+l) mod 256 goto 31
32. Set S[i]:=tmp.
33. Next i
34. Let offset: =ZiZi+l... Zi+9
35. Return n, (11,12,..,1n), (s1,s2,..,sn), S[256] and offset.
36. Save in keyfile and add seedl and start value to DB
37. Increment seedl and goto 2//repeat until enough keys are created
상기와 같이 모든 서브-키들이 생성되면 상기 슈퍼-키(암호)가 요구되는 길이로 생성된다. 이는 슈퍼-키가 암호화 될 관련된 데이터를 암호화하기 위해 계속 생성되며 모든 데이터가 암호화 될 때 까지만 계속 생성됨을 의미하다. 먼저 난수 R("제3 씨드 값" 또는 슈퍼-키에 대한 시작 오프셋이며, 이는 수 Q에 대한 시작점 P에 대립됨)이 생성된다. 길이 mn을 가지는 n개의 서브-키들 중의 어느 하나를 기점으로 하여, R의 Modmn이 계산되고, 각 서브-키의 Modmn(R) 번째의 바이트가 다른 모든 서브-키들의 대응하는 Modmn(R) 번째의 바이트들과 연속적으로 배타적 논리합 연산이 수행된다. 예를 들면, R=100이고 첫번째 서브-키의 길이가 97 바이트이며 두번째 서브-키의 길이가 43 바이트라면, 서브-키 1의 세번째 바이트가 선택되어 서브-키 2의 14번째 바이트 및 R에 근거하여 동일한 방법으로 선택된 다른 나머지 서브-키들의 대응하는 바이트과 배타적 논리합 연산이 수행된다. 이러한 과정은 각 서브-키로부터 선택된 모든 바이트들이 배타적 논리합 연산이 수행될 때 까지 반복된다. 그 결과값은 하기에서 설명되는 바와 같이 대체(substitution) 암호 또는 슈퍼-키 스트림을 비선형화하는 다른 비선형화(delinearization) 함수를 거친다. 이에 따른 이진 결과값은 결합(concatenation)에 이해 슈퍼-키에 더해된다. 다음으로, 서브-키 1의 다음 바이트가 서브-키 2의 다음 바이트 등과 배타적 논리합 연산이 수행된다. 다시 상기 과정은 각 서브-키로부터 선택된 모든 바이트들이 배타적 논리합 연산이 수행되어 비선형화될 때 까지 반복된다. 각 함수의 이진 결과값은 다시 결합에 의해 슈퍼-키들에 더해진다. 배타적 논리합 함수가 바람직하지만, 물론 다른 함수들도 적용될 수 있다. 예를 들면, 가산 또는 감산의 수학적 함수들이 사용될 수 있다. 수퍼 키의 각 바이트가 생성되고, 평문 메시지의 대응되는 바이트가 배타적 논리합 함수 또는 다른 수학적 함수에 의해 슈퍼-키의 대응되는 바이트로 암호화된다. 평문 메시지의 모든 바이트들이 암호화 되면 슈퍼-키의 생성 과정은 종료된다. 상기 암호화된 메시지는 상기 암호화 함수의 역(inverse) 함수를 그 자신과 슈퍼-키에 적용하여 해독될 수 있다.
서브-키들로부터 슈퍼-키를 생성하는 과정을 더 상세히 설명하기 위해, i번째 서브-키의 j번째 바이트를 로 표시하고 i번재 서브-키의 길이를 로 표시하자. 예를 들면, 등을 가질 수 있다. 서브-키 i로부터 하기와 같은 무한 수열을 생성한다.
상기 무한 수열의 j번째 바이트를 로 표시하고, j가 0 내지 ∞의 자연수라면, R이 난수인 경우 의 아래첨자 j의 최소값은 Rmodulo 이 된다. 그러면, 슈퍼-키의 j번째 바이트 Zj는 는 하기식과 같이 정의된다.
P0, P1, P2, P3, ... 는 평문의 바이트들을 나타내며, C0, C1, ... 은 암호문의 바이트들을 나타낸다. 또한, z0, z1, ... 는 수퍼 키의 바이트들(상술한 바와 같이 계산됨)을 나타낸다. 암호문을 Ci := Pi XOR S[zi]로 정의한다. 암호문은 상기 바이트 C0, C1, ... 을 결합해서 형성되고, C는 암호화 과정의 결과로서 리턴된다. 암호해독은 반대의 과정으로 이루어진다.
L-바이트의 평문을 암호화하기 위해, L-바이트의 수퍼 키가 생성되고, 상기 평문의 바이트들의 수를 카운트하기 위해 대수(big number) 카운터 T를 이용한다. 출력은 L-바이트 암호문이 된다. 상기 암호문을 해독하기 위해 동일한 대수 카운터 T가 사용되고 출력은 L-바이트의 평문이 된다.
본 발명을 이용하여 암호문의 선형성을 감소하기 위해서, 평문 메시지가 암호화되기 전에 더 많은 단계가 슈퍼-키에 적용될 수 있다. 본 발명의 바람직한 실시예에 있어서는, 대체 암호가 슈퍼-키에 적용되고, 그 결과의 스트링(string)은 평문 메시지를 암호화하기 위해 사용된다. 예를 들면, 1에서 256까지의 256개의 고유 바이트들의 어레이(array)가 생성된다. 상기 슈퍼-키의 첫번째 바이트는 슈퍼-키의 x+1 번째 바이트의 값으로 대체되며, 여기서 x는 256-바이트 어레이의 첫번째 값이다. 상기 슈퍼-키의 두번째 바이트는 슈퍼-키의 y+2 번째 바이트의 값으로 대체되며, 여기서 y는 256-바이트 어레이의 두번째 값이다. 다른 것도 동일하게 적용된다. 상기 어레이의 이전 엔트리(entry)를 반복하기 않을 때 까지 바이트틀을 서브-키로부터 상기 어레이들로 더해서, 상기 256-바이트 어레이가 서브-키들 중의 하나로부터 형성될 수 있다.
암호문의 선형성은 대체 암호를 암호화된 메시지(암호문)에 적용함으로 감소될 수 있다. 그러나 암호화 이전에 대체 암호를 슈퍼-키에 적용하는 것이 더 효과적이다. 대체 암호 외 다른 유틸러티들(utility) 예를 들면, SANDIA labs의 INFL((invertible non-linear function: 역 비선형 함수) 유틸러티가 선형성을 감소시키는데 사용될 수 있다. 이것들은 Berlekamp-Massey 공격에 대한 보호를 제공하는데 유용한다.
각 서브-키를 형성하는 상기 랜덤 비반복 스트링은 상술한 바와 같이 형성하는 것이 바람직하지만, 본 발명의 방법은, 생성되는 슈퍼-키가 암호화될 데이터 크기의 두배가 되도록 슈퍼-키의 총 길이가 충분히 길기만 하면, 각 서브-키의 상기 랜덤 비반복 스트링이 각 서브-키를 형성하는 난수 발생기에 의해 생성되는 경우에도 효과가 있다.
상기한 바와 같은 방법은 키를 이용하여 사용자가 보호하기를 원하는 개인 파일을 암호화하는 개인 보안 시스템을 생성하는데도 사용될 수 있다. 이러한 경우 키를 분배하기 위한 어떠한 방법도 요구되지 않는다. 각 파일이 암호화되므로 새로운 파일은 {OLDFILENAME}.{OFFSET].wn으로 명명된다. OLDFILENAME은 용이한 해독을 가능하게 하는 확장자(extension)와 실용성을 위한 동일한 파일 포맷을 포함한다. 각 파일이 암호화되므로 그것은 즉시 해독되어 원래의 파일과 비교되고 테스트 카피(test copy)와 원래 파일 모두가 클린 스위프 삭제 절차를 통해 삭제된다(전체 파일이 0들로 재기록하고나서 1들로 재기록한 후 삭제된다).
바람직한 키 파일 포맷은 아래와 같이 정의된다.
typedef struct wnkeyfiletype {
char field[2];//must be WN to identify file format
long version;//file type version number to allow changes
BIGNUMBER offset;//the offset is a large number stored as a
//string of decimal digits delineated by""'s
long numsk;//the numberof subkeys
long sklen[numsk];//the individual subkey lengths
char skl[sklen[l]];//the 1st subkey
char skl[sklen[2]];//the 2nd subkey
char skl[sklen[3]];//the 3rd subkey
... ... ... ...
char sknumsk[sklen[numsk]];//the numskth subkey
char substit[256];//the substitution cipher key
} WNKEYFILE;
상기 키 파일 포맷은 표준이다. 유일하게 다른 값은 "s"로 서술되는 소수 디지트 스트링에 저장되는 오프셋이다.
이것의 예는 "987654321"이며, 이는 최고 1000 디지트 길이의 값들을 허용하게 되며, 상기 오프셋이 적절하게 구현된다면 키 선택의 재사용을 방지해 주게 된다.
본 발명은 상기에서 컴퓨터로 구현되는 방법, 예를 들면 도 1에 도시된 바와 같이 네트워크(12)를 통한 컴퓨터들(14 및 16)간이 통신을 암호화하고 해독하는 방법으로 설명되었다. 본 발명은 컴퓨터 하드웨어 장치, 컴퓨터 소프트웨어 명령어, 또는 그 조합으로도 구현될 수 있다. 또한, 본 발명은 본발명을 구현하기 위한 명령어를 이용한 컴퓨터로 판독 가능한 저장 매체로도 구현될 수 있다. 이러한 저장 매체는 자기 디스크, 광 디스크, 하드 디스크, 플로피 디스크, CD-ROM, 펌웨어(firmware) 등이 될 수 있다. 또한, 본 발명은 컴퓨터로 판독 가능한 변조 케리어 신호(modulated carrier signal)로도 구현될 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여져야만 할 것이다.
Claims (20)
- x 바이트 길이를 가지는 스트림 암호를 생성하는 방법에 있어서,i) 서브-키의 갯수를 나타내는 수 n과, 각각이 고유의 비반복 서브-키의 바이트 길이 mn을 나타내는 고유의 소수들(prime numbers) mn을 선택하는 단계와;ii) 각각 비반복 바이트 길이 mn을 가지는 n개의 고유 난수들을 생성하는 단계와;iii) 새로운 (n+1)번째 난수 R을 생성하는 단계와;iv) 상기 n개의 고유 난수들 중 하나에서의 위치가 p(이 때, p =R Modmn)인 각 바이트에 대해서, 함수를 상기 n개의 난수들 각각의 p번째 바이트 각각에 연속적으로 적용하여 값을 생성하는 단계와;v) p값을 1만큼 증가시키는 단계와;vi) x 바이트 길이의 스트림 암호가 생성될 때 까지, 상기 ⅳ) 및 v) 단계들을 반복하고 상기 단계 iv)에서 생성된 각각의 값을 상기 단계 iv)에서 생성된 각각의 이전(previous) 값에 결합하는 단계를 포함하는 것을 특징으로 하는 x 바이트 길이의 스트림 암호 생성 방법.
- 제1항에 있어서,상기 각 서브-키의 선택된 길이 mn이 10 이상인 소수(prime number)인 것을 특징으로 하는 스트림 암호 생성 방법.
- 제1항에 있어서,상기 n개의 난수들 각각의 p번째 바이트 각각에 연속적으로 적용된 상기 함수가 배타적 논리합(XOR) 함수이고, 상기 함수는 i=1에서 시작하여 XOR 함수를 먼저 i 번째 및 (i+1) 번째 쌍의 p번째 바이트들에 적용한 결과값을 구하고나서 i 값을 1 만큼 증가해서 XOR 함수를 상기 결과값과 다음 p번째 바이트에 적용하는 방식으로 적용되어지는 것을 특징으로 하는 스트림 암호 생성 방법.
- 제1항에 있어서,비선형화(delinearization) 함수를 상기 스트림 암호에 적용하는 단계를 더 포함하는 것을 특징으로 하는 스트림 암호 생성 방법.
- 제4항에 있어서,상기 비선형화 함수가 대체 암호(substitution cipher)인 것을 특징으로 하는 스트림 암호 생성 방법.
- 제1항에 있어서,상기 n개의 난수들 각각이,i) 완전 제곱이 아닌 새로운 (n+2)번째 난수를 생성하는 단계와;ii) 상기 (n+2)번째 난수의 제곱근을 산출하는 단계와;iii) 새로운 (n+3)번째 난수를 생성하는 단계와;iv) 상기 (n+2)번째 난수에서의 위치가 상기 (n+3)번째 난수를 근거로 하여 산출되는 디지트(digit)로 부터 시작하여, 유한 디지트 스트링들(strings)을 순차적으로 취하여, 상기 유한 디지트 스트링 각각을 바이트로 변환하는 단계와;v) 상기 n개의 난수들 각각의 상기 선택된 길이 mn이 도달될 때까지 상기 변환된 각각의 바이트를 순차적으로 결합하는 단계를 통해 생성되는 것을 특징으로 하는 스트림 암호 생성 방법.
- 제6항에 있어서,상기 유한 디지트 스트링들의 길이가 적어도 4 디지트인 것을 특징으로 하는 스트림 암호 생성 방법.
- 제7항에 있어서,상기 유한 스트링이 mod 함수를 적용하여 바이트로 변환되는 것을 특징으로 하는 스트림 암호 생성 방법.
- 제8항에 있어서,상기 유한 스트링이 mod 256 함수를 적용하여 바이트로 변환되는 것을 특징으로 하는 스트림 암호 생성 방법.
- x 바이트 길이를 가지는 스트림 암호를 생성하기 위한 프로그램을 포함하는기록매체에 있어서, 상기 프로그램은,i) 각각 비반복 바이트 길이 mn(소수(prime number)임)을 가지는 n개의 고유 난수들을 생성하는 단계와;ii) 새로운 (n+1)번째 난수 R을 생성하는 단계와;iii) 상기 n개의 고유 난수들 중 하나에서의 위치가 p(이 때, p =R Modmn)인 각 바이트에 대해서, 함수를 상기 n개의 난수들 각각의 p번째 바이트 각각에 연속적으로 적용하여 값을 생성하는 단계와;iv) p값을 1만큼 증가시키는 단계와;v) x 바이트 길이의 스트림 암호가 생성될 때 까지, 상기 iii) 및 iv) 단계들을 반복하고 상기 단계 iii)에서 생성된 각각의 값을 상기 단계 iii)에서 생성된 각각의 이전(previous) 값에 결합하는 단계;를 수행하는 컴퓨터 판독 가능한 프로그램 명령어 수단이 구현되어 있는 컴퓨터 판독 가능한 기록 매체.
- 제10항에 있어서,상기 비반복 바이트 길이 mn이 10 이상인 소수(prime number)인 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제10항에 있어서,상기 n개의 난수들 각각의 p번째 바이트 각각에 연속적으로 적용된 상기 함수가 배타적 논리합(XOR) 함수이고, 상기 함수는 i=1에서 시작하여 XOR 함수를 먼저 i 번째 및 (i+1)번째 쌍의 p번째 바이트들에 적용한 결과값을 구하고나서 i 값을 1 만큼 증가해서 XOR 함수를 상기 결과값과 다음 p번째 바이트에 적용하는 방식으로 적용되어지는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제10항에 있어서,상기 컴퓨터 판독 가능한 프로그램 명령어 수단이 비선형화(delinearization) 함수를 상기 스트림 암호에 적용하는 단계를 더 수행하는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제13항에 있어서,상기 비선형화 함수가 대체 암호(substitution cipher)인 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제10항에 있어서,상기 n개의 난수들 각각이,i) 완전 제곱이 아닌 새로운 (n+2)번째 난수를 생성하는 단계와;ii) 상기 (n+2)번째 난수의 제곱근을 산출하는 단계와;iii) 새로운 (n+3)번째 난수를 생성하는 단계와;iv) 상기 (n+2)번째 난수에서의 위치가 상기 (n+3)번째 난수를 근거로 하여 산출되는 디지트(digit)로 부터 시작하여, 유한 디지트 스트링들(strings)을 순차적으로 취하여, 상기 유한 디지트 스트링 각각을 바이트로 변환하는 단계와;v) 상기 n개의 난수들 각각의 상기 선택된 길이 mn이 도달될 때 까지 상기 생성된 각각의 바이트를 순차적으로 결합하는 단계를 통해 생성되는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제15항에 있어서,상기 유한 디지트 스트링들의 길이가 적어도 4 디지트인 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제15항에 있어서,상기 유한 스트링이 mod 함수를 적용하여 바이트로 변환되는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 제17항에 있어서,상기 유한 스트링이 mod 256 함수를 적용하여 바이트로 변환되는 것을 특징으로 하는 컴퓨터 판독 가능한 기록매체.
- 삭제
- 삭제
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/299,847 | 2002-11-20 | ||
US10/299,847 US7190791B2 (en) | 2002-11-20 | 2002-11-20 | Method of encryption using multi-key process to create a variable-length key |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050086746A KR20050086746A (ko) | 2005-08-30 |
KR100994841B1 true KR100994841B1 (ko) | 2010-11-16 |
Family
ID=32297785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020057008993A KR100994841B1 (ko) | 2002-11-20 | 2003-10-06 | 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체 |
Country Status (13)
Country | Link |
---|---|
US (1) | US7190791B2 (ko) |
EP (1) | EP1566009B1 (ko) |
JP (1) | JP4608319B2 (ko) |
KR (1) | KR100994841B1 (ko) |
CN (1) | CN100568802C (ko) |
AT (1) | ATE370569T1 (ko) |
AU (1) | AU2003273688B2 (ko) |
BR (2) | BRPI0316473B1 (ko) |
CA (2) | CA2414261A1 (ko) |
DE (1) | DE60315700T2 (ko) |
ES (1) | ES2291675T3 (ko) |
MX (1) | MXPA05005358A (ko) |
WO (1) | WO2004047361A1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7006629B2 (en) * | 2000-12-19 | 2006-02-28 | International Business Machines Corporation | Method and system for processing a data set |
FR2838262B1 (fr) * | 2002-04-08 | 2004-07-30 | Oberthur Card Syst Sa | Procede de securisation d'une electronique a acces crypte |
EP1766568A1 (en) * | 2004-06-14 | 2007-03-28 | The University of North Carolina at Greensboro | Systems and methods for digital content security |
EP2016701A4 (en) * | 2006-04-25 | 2012-04-25 | Stephen Laurence Boren | DYNAMIC DISTRIBUTED KEY SYSTEM AND METHOD FOR MANAGING IDENTITY, AUTHENTICATION OF SERVERS, DATA SECURITY AND PREVENTING ATTACKS OF MIDDLE MAN |
US20080304664A1 (en) * | 2007-06-07 | 2008-12-11 | Shanmugathasan Suthaharan | System and a method for securing information |
US20100235689A1 (en) * | 2009-03-16 | 2010-09-16 | Qualcomm Incorporated | Apparatus and method for employing codes for telecommunications |
EP2611062B1 (en) * | 2010-08-24 | 2018-07-18 | Mitsubishi Electric Corporation | Encryption device, encryption system, encryption method and encryption program |
CN102647393B (zh) * | 2011-02-21 | 2017-02-22 | 鸿合科技有限公司 | 一种数字标牌的内容防盗播方法 |
US8767954B2 (en) * | 2011-12-01 | 2014-07-01 | Colloid, Llc | Methods and systems for deriving a cryptographic framework |
US9497185B2 (en) * | 2013-12-30 | 2016-11-15 | Google Inc. | Systems, methods, and computer program products for providing application validation |
CN106209736B (zh) * | 2015-05-04 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 流媒体数据播放方法、终端及流媒体服务器 |
CN105406960B (zh) * | 2015-12-20 | 2019-02-22 | 河南思维自动化设备股份有限公司 | 一种信息加密和解密的方法 |
WO2017132693A2 (en) * | 2016-01-28 | 2017-08-03 | Tfor Llc | Removing information from data |
FI20165911L (fi) * | 2016-11-30 | 2018-05-31 | Sam Widlund | Menetelmä ja järjestelmä tiedon salaukseen |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
ZA202004225B (en) | 2019-07-11 | 2023-07-26 | Entersekt International Ltd | System and method for secure input at a remote service |
US11621837B2 (en) | 2020-09-03 | 2023-04-04 | Theon Technology Llc | Secure encryption of data using partial-key cryptography |
US11310042B2 (en) | 2020-09-11 | 2022-04-19 | Crown Sterling Limited, LLC | Methods of storing and distributing large keys |
US11552780B2 (en) | 2020-12-23 | 2023-01-10 | Theon Technologies, Inc. | Homomorphic one-time pad encryption |
US11755772B2 (en) * | 2021-09-20 | 2023-09-12 | Crown Sterling Limited, LLC | Securing data in a blockchain with a one-time pad |
US11943336B2 (en) | 2021-11-22 | 2024-03-26 | Theon Technology Llc | Use of gradient decent function in cryptography |
US11791988B2 (en) | 2021-11-22 | 2023-10-17 | Theon Technology Llc | Use of random entropy in cryptography |
US11902420B2 (en) * | 2021-11-23 | 2024-02-13 | Theon Technology Llc | Partial cryptographic key transport using one-time pad encryption |
US20240069889A1 (en) * | 2022-08-25 | 2024-02-29 | National Technology & Engineering Solutions Of Sandia, Llc | Systems and methods for automatically updating system firmware |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3706941A (en) * | 1970-10-28 | 1972-12-19 | Atomic Energy Commission | Random number generator |
US4058573A (en) * | 1971-07-02 | 1977-11-15 | Ciba-Geigy Corporation | Process for the addition of gaseous non-halogenated olefins and acetylenes to perfluoroalkyl iodides |
SE385644B (sv) | 1974-10-17 | 1976-07-12 | Ericsson Telefon Ab L M | Anordning vid kryptering och dekryptering av meddelanden |
US4375579A (en) * | 1980-01-30 | 1983-03-01 | Wisconsin Alumni Research Foundation | Database encryption and decryption circuit and method using subkeys |
US4791594A (en) * | 1986-03-28 | 1988-12-13 | Technology Inc. 64 | Random-access psuedo random number generator |
JPH0769662B2 (ja) * | 1988-08-03 | 1995-07-31 | 松下電器産業株式会社 | 二元擬似乱数発生器 |
US5414771A (en) * | 1993-07-13 | 1995-05-09 | Mrj, Inc. | System and method for the creation of random sequences and for the cryptographic protection of communications |
US5454039A (en) * | 1993-12-06 | 1995-09-26 | International Business Machines Corporation | Software-efficient pseudorandom function and the use thereof for encryption |
JPH08181679A (ja) | 1994-12-26 | 1996-07-12 | Nec Corp | 疑似乱数雑音発生装置 |
US5533128A (en) * | 1995-01-18 | 1996-07-02 | Vobach; Arnold | Pseudo-random transposition cipher system and method |
JP3557037B2 (ja) * | 1996-04-22 | 2004-08-25 | 株式会社東芝 | 乱数生成装置及び方法、鍵系列生成装置及び方法、暗号化装置及び方法、並びに復号装置及び方法 |
KR19990082665A (ko) * | 1996-02-21 | 1999-11-25 | 오오노 도시오 | 공통키 통신방법 |
US5666414A (en) * | 1996-03-21 | 1997-09-09 | Micali; Silvio | Guaranteed partial key-escrow |
CA2262551C (en) * | 1996-08-16 | 2002-09-17 | Bell Communications Research, Inc. | Improved cryptographically secure pseudo-random bit generator for fast and secure encryption |
US6307940B1 (en) * | 1997-06-25 | 2001-10-23 | Canon Kabushiki Kaisha | Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof |
US6307936B1 (en) * | 1997-09-16 | 2001-10-23 | Safenet, Inc. | Cryptographic key management scheme |
US6345359B1 (en) * | 1997-11-14 | 2002-02-05 | Raytheon Company | In-line decryption for protecting embedded software |
US6151676A (en) * | 1997-12-24 | 2000-11-21 | Philips Electronics North America Corporation | Administration and utilization of secret fresh random numbers in a networked environment |
US6243470B1 (en) * | 1998-02-04 | 2001-06-05 | International Business Machines Corporation | Method and apparatus for advanced symmetric key block cipher with variable length key and block |
CN1240318A (zh) * | 1998-03-04 | 2000-01-05 | 朗迅科技公司 | 产生伪随机数的方法 |
US6490353B1 (en) * | 1998-11-23 | 2002-12-03 | Tan Daniel Tiong Hok | Data encrypting and decrypting apparatus and method |
US6415032B1 (en) * | 1998-12-01 | 2002-07-02 | Xilinx, Inc. | Encryption technique using stream cipher and block cipher |
US20030210783A1 (en) * | 2000-07-27 | 2003-11-13 | Ross Filippi | Method and system of encryption |
JP4596686B2 (ja) * | 2001-06-13 | 2010-12-08 | 富士通株式会社 | Dpaに対して安全な暗号化 |
US20030016823A1 (en) * | 2001-07-05 | 2003-01-23 | Shine Chung | Method and apparatus of using irrational numbers in random number generators for cryptography |
US7197142B2 (en) * | 2001-08-24 | 2007-03-27 | Alten Alexander I | System and methods for a vernam stream cipher |
EP2148463A3 (en) * | 2001-10-19 | 2015-04-22 | Panasonic Intellectual Property Management Co., Ltd. | A numerical array output device, a numerical array output method, an encryption device, and a decryption device |
-
2002
- 2002-11-20 US US10/299,847 patent/US7190791B2/en active Active
- 2002-12-16 CA CA002414261A patent/CA2414261A1/en not_active Withdrawn
-
2003
- 2003-10-06 BR BRPI0316473-0A patent/BRPI0316473B1/pt unknown
- 2003-10-06 CA CA2505338A patent/CA2505338C/en not_active Expired - Lifetime
- 2003-10-06 DE DE60315700T patent/DE60315700T2/de not_active Expired - Lifetime
- 2003-10-06 BR BR0316473-0A patent/BR0316473A/pt not_active IP Right Cessation
- 2003-10-06 MX MXPA05005358A patent/MXPA05005358A/es active IP Right Grant
- 2003-10-06 AT AT03757595T patent/ATE370569T1/de not_active IP Right Cessation
- 2003-10-06 AU AU2003273688A patent/AU2003273688B2/en not_active Ceased
- 2003-10-06 ES ES03757595T patent/ES2291675T3/es not_active Expired - Lifetime
- 2003-10-06 CN CNB2003801037554A patent/CN100568802C/zh not_active Expired - Fee Related
- 2003-10-06 KR KR1020057008993A patent/KR100994841B1/ko not_active IP Right Cessation
- 2003-10-06 WO PCT/CA2003/001538 patent/WO2004047361A1/en active IP Right Grant
- 2003-10-06 JP JP2004552295A patent/JP4608319B2/ja not_active Expired - Fee Related
- 2003-10-06 EP EP03757595A patent/EP1566009B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2006506668A (ja) | 2006-02-23 |
BRPI0316473B1 (pt) | 2018-03-13 |
CA2414261A1 (en) | 2004-05-20 |
EP1566009A1 (en) | 2005-08-24 |
DE60315700D1 (de) | 2007-09-27 |
DE60315700T2 (de) | 2008-06-05 |
CA2505338A1 (en) | 2004-06-03 |
MXPA05005358A (es) | 2005-08-03 |
CN1714531A (zh) | 2005-12-28 |
ES2291675T3 (es) | 2008-03-01 |
AU2003273688B2 (en) | 2009-06-25 |
US7190791B2 (en) | 2007-03-13 |
KR20050086746A (ko) | 2005-08-30 |
ATE370569T1 (de) | 2007-09-15 |
EP1566009B1 (en) | 2007-08-15 |
BR0316473A (pt) | 2005-10-11 |
CN100568802C (zh) | 2009-12-09 |
AU2003273688A1 (en) | 2004-06-15 |
CA2505338C (en) | 2012-09-04 |
JP4608319B2 (ja) | 2011-01-12 |
WO2004047361A1 (en) | 2004-06-03 |
US20040096056A1 (en) | 2004-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100994841B1 (ko) | 다중키를 이용한 스트림 암호 생성 방법 및 기록 매체 | |
JP3339688B2 (ja) | 非決定論的ミクスチャー発生器ストリーム暗号化システム | |
KR101267109B1 (ko) | 준군을 이용한 암호화 프리미티브, 에러 코딩, 및 의사난수 향상 방법 | |
US5751811A (en) | 32N +D bit key encryption-decryption system using chaos | |
CA2218148C (en) | Generating unique and unpredictable values | |
CN106941407B (zh) | 一种平台数据动态加密的方法和装置 | |
JPH08505275A (ja) | 暗号ストリームを発生させるための装置及び方法 | |
US20140112469A1 (en) | Novel encryption processes based upon irrational numbers and devices to accomplish the same | |
US8462939B2 (en) | RNS-based cryptographic system and method | |
WO2005076521A1 (en) | Method of generating a stream cipher using multiple keys | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
JP2004258667A (ja) | N個のデジットを含むワードの擬似ランダム置換の生成方法 | |
JPH1117673A (ja) | 共通鍵暗号通信方法及びその通信ネットワーク | |
KR101076747B1 (ko) | 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치 | |
AU750408B2 (en) | A method of combining a serial keystream output with binary information | |
Padhi et al. | Modified version of XTS (XOR-Encrypt-XOR with Ciphertext Stealing) using tweakable enciphering scheme | |
AU750323B2 (en) | A method of generating a key for a public key encryption system | |
JP2001509608A (ja) | デジタル・データのlビットの入力ブロックをlビットの出力ブロックに暗号変換するための方法 | |
Abbas et al. | Audio cryptosystem based on LFSH and Chaotic map with ECC key management | |
Tripathi et al. | Secret Image Sharing Scheme for Gray-Level Images Using Toeplitz Matrix Based Stream Cipher | |
RU2140712C1 (ru) | Способ блочного шифрования двоичной информации | |
EP3285429A1 (en) | Method for securely transmitting digital data | |
Boren et al. | Software Specifications For Tinnitus Utilizing Whitenoise (Revised Feb 2004) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131024 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20141027 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20151103 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |