KR20000035057A - 능률적인 블록 암호화 방법 - Google Patents

능률적인 블록 암호화 방법 Download PDF

Info

Publication number
KR20000035057A
KR20000035057A KR1019990045550A KR19990045550A KR20000035057A KR 20000035057 A KR20000035057 A KR 20000035057A KR 1019990045550 A KR1019990045550 A KR 1019990045550A KR 19990045550 A KR19990045550 A KR 19990045550A KR 20000035057 A KR20000035057 A KR 20000035057A
Authority
KR
South Korea
Prior art keywords
sum
key
bit
function
bits
Prior art date
Application number
KR1019990045550A
Other languages
English (en)
Other versions
KR100583495B1 (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 KR20000035057A publication Critical patent/KR20000035057A/ko
Application granted granted Critical
Publication of KR100583495B1 publication Critical patent/KR100583495B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 다른 의사랜덤 함수를 사용하는 대신에 동일한 의사랜덤 함수를 두 번 사용하는 암호화 방법을 제공함으로써, 종래 암호화의 비능률을 해소한다. 추가로, 본 발명에서는 고능률의 해싱 함수, 즉, 승산을 사용하는 대신에 키와 데이터 열의 합을 제곱하는 스퀘어 해싱 함수(square hashing function)를 사용한다. 그 결과, 종래 기술에서 사용되는 비능률적인 해싱 함수에 의해서 w2개의 연산이 요구되는 대신에 해싱 연산은

Description

능률적인 블록 암호화 방법{EFFICIENT BLOCK CIPHER METHOD}
본 발명은 데이터 처리(data mainpulation)에 관한 것으로서, 더욱 상세하게는, 데이터를 암호화하는 방법에 관한 것이다.
블록 데이터 암호화는 데이터의 블록 또는 열(string)을 입력하고 그에 대응해서 암호화된 블록 또는 열을 생성하는 것을 포함한다. 블록 암호화는, 셀 방식(celluler) 통신과 같이 쉽게 도청되는 통신을 사용하는 경우 데이터의 보안을 제공하는데 사용된다.
종래에는 데이터 블록을 암호화하는데 루비-랙오프(Luby-Rackoff) 법이 사용되었는데, 이 방법이 도 1에 도시된다. 단계 (100)에서는 "2n" 비트를 포함하는 암호화된 데이터 블록이 입력된다. 단계 (102)에서는 "2n" 입력 데이터 블록 또는 문자열이 각각 L0및 R0로 식별되는 "n" 비트의 2 블록으로 분할된다. 단계 (104)에서는 R0데이터 블록이 피연산자(operand)로 사용되어 의사랜덤(pseudorandom) 함수 f1이 수행된다. 의사 랜덤 함수 f1은 RIPE-MD 의사랜덤 함수, GGM 의사랜덤 함수 또는 MD5 의사랜덤 함수일 수 있다. 단계 (106)에서는 단계 (104)로부터의 출력이 단계 (102)로부터의 L0비트 문자열과 배타적 논리합(exclusive OR) 된다. 단계 (106)의 출력은 단계 (108)으로 전달되는데, 여기서 단계 (106)의 출력은 "n" 비트를 갖는 R1으로 사용되고, L1은 역시 "n"비트를 갖는 R0와 일치되게 설정된다. 단계 (110)에서는, R1이 제 2 의사랜덤 함수 f2의 피연산자로 사용된다. 의사랜덤 함수 f2는 의사랜덤 함수 f1과는 다르다. 단계 (110)에 의해서 산출된 결과는 단계 (112)에서 L1과 배타적 논리합된다. 단계 (114)에서는 단계 (112)에서의 출력이 "n"비트의 열 R2로 저장되고 열 L2는 "n"비트의 열 R1과 같게 설정된다. 단계 (116)에서는 열 R2가 의사랜덤 함수 f3의 피연산자로 사용된다. 의사랜덤 함수 f3은 의사랜덤 함수 f1및 f2와는 다르다. 단계 (118)에서는 의사랜덤 함수 f3의 출력이 L2값과 배타적 논리합된다. 단계 (120)에서는 단계 (118)의 출력이 "n" 비트의 열 R3로 저장되고 열 L3는 "n"비트의 열 R2와 같게 설정된다. 단계 (122)에서는 의사랜덤 함수 f4가 열 R3를 연산자로 사용해서 단계 (124)에 의해서 사용될 출력을 생성한다. 의사랜덤 함수 f4는 의사랜덤 함수 f1내지 f3와는 다르다. 단계 (124)에서는 의사랜덤 함수 f4의 출력이 열 L3와 배타적 논리합된다. 단계 (126)에서는 단계 (124)로부터의 출력이 "n" 비트의 열 R4로 저장되고, 열 L4가 "n" 비트의 열 R3와 같게 설정된다. 단계 (128)에서는 열 L4와 R4가 도에 도시된 암호화 방법의 "2n" 출력으로 출력된다.
도 1에 도시된 방법은 네 개의 다른 의사랜덤 함수를 사용하며, 그 결과 상당한 계산량을 요한다.
도 2에는 데이터의 블록 또는 열을 암호화하기 위한 종래 기술의 두 번째 방법이 도시되어 있다. 이 방법은 나오-레인골드(Naor-Reingold) 암호화 방법이라고 알려져 있다. 단계 (140)에서는 암호화될 "2n" 데이터 블록이 입력된다. 단계 (142)에서는 "2n" 비트의 데이터가 수학식 1의 해싱 함수(hash function)와 같은 해싱 함수의 피연산자로 사용되어 "2n" 비트 출력을 생성한다.
단계 (144)에서는 단계 (142)에 의해서 산출된 "2n" 비트가 각각 "n"비트로 이루어진 블록 L0와 R0로 분리된다. 단계 (146)에서는 의사랜덤 함수 f1이 데이터 블록 R0를 피연산자로 사용하여 단계 (148)에 의해서 사용될 출력을 생성한다. 의사랜덤 함수 f1은 예를 들어, 도 1을 참조해서 논의된 바와 같은 의사랜덤 함수의 하나일 것이다. 단계 (148)에서는 단계 (146)으로부터의 출력이 데이터 블록 또는 열 L0와 배타적 논리합된다. 단계 (150)에서는 단계 (148)의 출력이 "n" 비트의 열 R1으로 저장되고, "n" 비트의 열 L1은 "n" 비트의 열 R0와 같게 설정된다. 단계 (152)에서는 의사랜덤 함수 f2가 데이터 열 R1을 피연산자로 사용하여 단계 (154)용 출력을 생성한다. 의사랜덤 함수 f2는 의사랜덤 함수 f1과는 다르다. 단계 (154)에서는 단계 (152)의 출력이 데이터 열 L1과 배타적 논리합된다. 단계 (156)에서는 단계 (154)의 출력이 "n" 비트의 열 R2로 저장되고, 열 L2는 "n"비트의 열 R1과 같게 설정된다. 단계 (158)에서는 제 2 해시 함수가 "n"비트의 열 L2와 "n"비트의 열 R2둘다로부터의 "2n"을 피연산자로 사용해서 단계 (160)에서 출력될 "2n"비트 출력을 생성한다.
두 개의 다른 의사랜덤 함수와 두 개의 비능률적인 해싱 함수를 사용하기 때문에, 도 2에 도시된 종래 기술의 암호화 방법도 또한 상당한 계산량을 요한다. 수학식 1의 해싱 함수와 같은 해싱 함수는 데이터열과 키("A")의 승산(multiplication)을 수반한다. 이 승산은 상당한 계산량을 요하고 w2개의 연산이 수반된다. 여기에서, w는 데이터 열에서의 워드 수이다. 예를 들어, 만일 데이터 블록이 160 비트 길이이고, 프로세서가 32비트 워드를 사용해서 이 방법을 수행한다면, 열을 구성하는 5개의 워드가 있으므로, 그 결과 연산을 수행하는데는 55또는 25 번의 연산이 요구된다.
본 발명은 다른 의사랜덤 함수를 사용하는 대신에 동일한 의사랜덤 함수를 두 번 사용하는 암호화 방법을 제공함으로써, 상술한 비능률을 해소한다. 추가로, 본 발명에서는 고능률의 해싱 함수 즉, 승산을 사용하는 대신에 키와 데이터 열의 합을 제곱하는 스퀘어 해싱 함수(square hashing function)를 사용한다. 그 결과, 종래 기술에서 사용되는 비능률적인 해싱 함수에 의하면 w2개의 연산이 요구되는 반면 본 발명의 해싱 연산은개의 연산 만이 요구된다. 더욱이, 본 발명에서는 종래 기술의 배타적 논리합 연산을 모듈러 "n" 가산으로 대체한다.
도 1은 종래 기술에 따른 루비-랙오프 암호화 방법이 도시된 도면,
도 2는 종래 기술에 따른 나오-레인골드 암호화 방법이 도시된 도면,
도 3은 스퀘어 해싱 함수가 사용된 효율적인 암호화 방법이 도시된 도면,
도 4는 스퀘어 해싱 함수가 사용된 효율적인 암호화 방법이 도시된 도면,
도 5는 키 K1내지 K4를 생성하는데 사용된 방법의 개요가 도시된 도면,
도 6은 S1이 생성되도록 SHA 함수용 피연산자가 선택되는 방법이 도시된 도면,
도 7은 S2내지 S11생성되도록 SHA 함수용 피연산자가 선택되는 방법이 도시된 도면,
도 8은 키 K1내지 K4로 사용되는 832비트가 제공되도록 열 X1내지 X11의 최하위 비트가 사용되는 방법이 도시된 도면.
도 3에는 스퀘어 해싱 함수 및 단일 유형의 의사랜덤 함수가 사용된 효율적인 암호화 방법이 도시되어 있다. 단계 (200)에서는 암호화될 데이터의 블록 또는 열이 입력된다. 단계 (202)에서는, "2n" 비트의 열이 각각 "n" 비트로 이루어지는 열 "L"과 "R"로 분리된다. 단계 (204)에서는, 수학식 2의 스퀘어 해싱 함수와 같은 스퀘어 해싱 함수가 사용된다.
해싱 함수는 키 K1과 데이터 블록 "R"을 피연산자로 사용해서 "n"비트의 출력을 산출한다. 단계 (206)에서는 단계 (204)로부터의 "n" 비트 출력이 데이터 "L" 블록과 모듈러 "n"에 의해서 합산된다. 단계 (208)에서는, 단계 (206)으로부터의 출력이 "n" 비트의 열 "S"로 저장되고, 열 "R"은 다시 한번 "n"비트 열 블록 "R"로 저장된다. 단계 (210)에서는, 의사랜덤 함수 "f"에 의해서 "n" 비트 블록 "S"가 키 K2와 함계 피연산자로 사용되어 단계 (212)에서 사용될 "n"비트 출력을 생성한다. 의사랜덤 함수 "f"는 도 1 및 2를 참조해서 설명한 의사랜덤 함수중 어느 하나 일 것이지만, 주지된 표준인 SHA 의사랜덤 함수인 것이 바람직하다. 단계 (212)에서는 단계 (210)으로부터의 출력이 데이터 열 "R"과 모듈러 "n"에 의해서 합산되어 "n" 비트 출력이 산출된다. 단계 (214)에서는, 단계 (212)로부터의 "n"비트 출력이 "n"비트 열 "T"로 저장되고, 단계 (208)로부터의 출력 "n" 비트 열이 "n" 비트 블록 "S"로 다시 저장된다. 단계 (216)에서는, 단계 (210)에서 사용된 동일한 의사랜덤 함수가 동일한 키 K2와 함께 다시 사용되어 데이터 열 "T"에 대해 작용되어 "n"비트 열을 생성한다. 단계 (218)에서는, 단계 (216)으로부터의 "n" 비트 출력이 "n" 비트 열 "S"와 모듈러 "n"에 의해서 합산된다. 단계 (220)에서는 단계 (218)로부터의 "n" 비트 출력이 "n"비트 열 "V"로 저장되고 "n"비트 열 "T"는 다시 한번 열 "T"로 저장된다. 단계 (222)에서는, 단계 (204)에서 사용된 동일한 스퀘어 해싱 함수가 키 K3와 함께 사용되어 데이터 열 "V"에 대해 작용하여 "n"비트 출력을 생성한다. 단계 (224)에서는, 모듈러 "n"에 의해서 단계 (222)의 출력이 "n" 비트 열 "T"와 합산된다. 단계 (226)에서는, 단계 (224)의 출력이 "n" 비트 열 "W"로 저장되고 "n" 비트 열 "V"는 다시 한번 "n" 비트 열 "V"로 저장된다. 단계 (228)에서는 데이터 열 "V"와 "W"가 입력 블록 또는 열의 암호화 표현인 "2n" 비트 출력으로 사용된다.
도 4에는 도 3에 도시된 암호화 방법과 연관된 해독 방법이 도시되어 있다. 단계 (240)에서는 해독될 "2n"비트 입력이 입력된다. 단계 (242)에서는 "2n" 비트 입력이 각각 "n"비트로 이루어지는 열 또는 블록 "V" 와 "W"로 분리된다. 단계 (244)에서는, "n" 비트 열 "V"가 키 K3와 함계 수학식 2에 의해서 표현되는 스퀘어 해싱 함수의 피연산자로 사용된다. 단계 (244)는 단계 (246)에 의해서 사용될 "n"비트 출력을 생성한다. 단계 (246)은 열 "W"로부터 단계 (244)의 출력을 모듈러 "n" 연산을 사용해서 감산한다. 단계 (248)에서는, 단계 (246)의 출력이 "n" 비트 열 "T"로 저장되고 "n"비트 열 "V"는 다시 한번 열 "V"로 저장된다. 단계 (250)에서는, 암호화 프로세스에서 사용된 것과 동일한 의사랜덤 함수가 키 K2와 함께 사용되어 "T"에 대해 작용되어 "n" 비트 출력을 생성한다. 단계 (252)에서는, 데이터 열 "V"로부터 단계 (250)으로부터의 출력을 모듈러 "n"을 사용해서 감산하여 "n" 비트 출력을 생성한다. 단계 (254)에서는 단계 (252)의 출력이 "n" 비트 열 "S"로 저장되고, "n" 비트 열 "T"는 다시 한번 열 "T"로 저장된다. 단계 (256)에서는 단계 (250)에서 사용된 동일한 의사랜덤 함수가 동일한 키와 함께 사용되어 열"S"에 대해 작용하여 "n"비트 출력을 생성한다. 단계 (258)에서는 열 "T"로부터 단계 (256)의 출력을 모듈러 "n"을 사용하여 감산하여 "n" 비트 열을 생성한다. 단계 (260)에서는 단계 (258)로부터의 "n"비트 열이 "n" 비트 열 "R"로 저장되고 "n" 비트 열 "S"는 다시한번 열 "S"로 저장된다. 단계 (262)에서는 수학식 2에 의해서 표현되는 스퀘어 해싱 함수가 키 K1과 함께 사용되어 데이터 열 "R"에 대해 작용하여 "n" 비트 출력을 생성한다. 단계 (264)에서는 데이터 열 "S"로부터 단계 (262)로부터의 "n" 비트 출력을 모듈러 "n"을 사용해서 감산한다. 단계 (266)에서는 단계 (264)로부터의 "n" 비트 출력이 "n" 비트 열 "L"로 저장되고 "n" 비트 열 "R"은 다시한번 열 "R"로 저장된다. 단계 (268)에서는 "n" 비트 열 "L"과 "R"이 입력된 블록 또는 열의 해독된 형태에 대응하는 "2n" 비트 블록으로 출력된다. 도 3의 단계 (204) 및 (222)와 도 4의 단계 (244) 및 (262)의 해싱 함수를 다른 해싱 함수로 대체할 수 있다는 점에 유의해야 할 것이다. 단계 (204) 및 (262)에서 사용된 해시 함수는 동일해야하고, 단계 (222) 및 (244)에서 사용된 해시 함수는 동일해야하는 점에 유의해야 할 것이다. 또한, 도 3의 단계 (210) 및 (216)의 의사랜덤 함수용으로 상이한 키 또는 의사랜덤 함수를 사용할 수도 있고, 도 4의 단계 (250) 및 (256)의 의사랜덤 함수용으로 상이한 키 또는 의사랜덤 함수를 사용할 수도 있다. 단계 (216) 및 (250)에서 사용되는 키 및 의사랜덤 함수는 동일해야하고, 단계 (210) 및 (256)에서 사용되는 키 및 의사랜덤 함수도 동일해야하는 점에 유의해야 할 것이다.
본 발명의 일 실시예에서는, 비트 수 "n"이 160과 같다. 그 결과, 스퀘어 해싱 함수에 의해서 사용되는 키 K1및 K3는 각각 160 비트 길이이다. 추가로, 의사랜덤 SHA 함수는 2개의 키를 사용한다. 첫 번째 키는 160비트 길이이고 두 번째 키는 352비트 길이이다. SHA 함수는 512비트를 160비트로 감소시키는 암호화 함수이다. 수학식 3에 표현된 바와같이, SHA 함수의 피 연산자는 키 K2및 데이터 블록 "B"의 접합(concatenation)이다. 여기에서, 데이터 블록 "B"는 도 3 및 도 4에서 설명된 의사랜덤 함수의 피연산자로서 사용된 "n" 비트 블록 또는 열이다.
키 K4는 160 비트 길이이고 데이터를 암호화하는 사용자 및 해독할 사용자에 의해서 공유되는 비밀값(secret value)이다.
키는 데이터를 암호화하는 사람 및 데이터를 해독하는 사용자 둘다에게 알려져 있는 초기 의사랜덤 수에 의해서 발생된다. 도 5-8에는 초기 시드(seed) S0에 의해서 키 K1내지 K4를 생성하는데 사용되는 프로세스가 도시되어 있다. 도 5에는 키를 생성하기 위한 프로세스의 개요가 도시되어 있다. S0, 공용 상수(public constant) PC 및 공용 키(public key) PK는 의사랜덤 함수 SHA(secure hash function)로 공급된다.
단계 (302)에서는 수학식 4에 의해서 표현되는 SHA 함수가 대화형(interactive fashion)으로 수행되어 S1내지 S11값을 생성한다. S1내지 S11값 각각은 160 비트 길이이다. 단계 304에서는, S1내지 S11값이 다항식 계산(306)으로 제공된다.
여기에서 Q는 160 차수의 불가약 다항식(irredducible polynomial)이다.
단계 306에서는, 수학식 5가 실행되어 각각 160비트를 포함하는 값 X1내지 X11을 생성한다. 수학식 5에는 수학식 4로부터의 출력 Si에 대응하는 피연산자 Si에 대해서 다항식 승산이 이루어진 다음에 다항식 가산이 이루어지는 것이 표현되어 있다. 다항식 "A" 및 "B"는 160비트의 한 변수를 갖는 임의의 두 랜덤 2진 다항식(random binary polynomials) 이다. 수학식 5는 Si의 각 값에 대해서 수행되어 값 X1내지 X11을 생성한다. 각 값 Xi는 처음에 320 비트 길이이고 2진 불가약 다항식(binary irreducible polynomial)을 사용해서 160비트로 감소된다. 다항식 계산(arithmetic) 및 불가약 다항식은 당업계에 잘 알려져 있고, "Mathematics for Computer Algebra" by Maurice Mignotte, 1991년, Springer-Verlag, New York의 문헌에 논의되어 있다. 단계 310에서는, 열 X1내지 X11의 76 최하위 비트(LSBs : least significant bits)와 X11의 72 최하위 비트가 832비트 집합체를 생성하는데 사용된다. 단계 310에서 확장된 832비트는 키 K1내지 K4와 대응한다.
도 6 및 도 7에는 SHA 함수의 피연산자가 생성되는 방법이 도시되어 있다. SHA 함수는 160비트의 키와 512비트의 피연산자를 사용해서 160비트의 출력을 생성한다는 점을 상기해야 할 것이다. SHA 함수는 160비트의 키를 사용해서 512비트의 피연산자를 해싱하거나 감축시켜 160 비트로 출력한다. 도 6에는 160비트의 공용 키 PK를 SHA 함수용 키로 사용하고 시드 S0및 공용 상수 PC의 일부의 접합을 SHA 함수의 피연산자로 사용해서 열 S1이 생성되는 과정이 도시되어 있다. 전형적으로, 시드 S0는 40∼512비트 범위내의 비트를 포함할 것이고, SHA 함수의 피연산자에는 512비트가 요구된다. 그 결과, S0가 512비트 보다 작은 경우에는, SHA 함수용 512비트 피연산자를 생성하는 데 공용 상수 PC의 최하위 비트가 필수 비트로 제공되어진다. 예를 들어, 시드 S0가 "x" 비트를 갖는 경우에, 공용 상수 PC의 최하위 비트 512-"x" 비트가 S0의 비트와 접합된다. S0의 비트는 SHA 함수용 피연산자 512비트의 최하위 비트로 사용된다. 도 6에 도시된 연산은 160 비트를 갖는 열 S1을 생성한다. 도 7에는 잔여 Si(i는 2내지 11)를 생성하기 위한 프로세스가 도시되어 있다. 이번에도 역시, SHA 함수에는 160 비트 키와 감축될 512 비트 열이 요구된다. 공용 키 PK는 도 7의 SHA 함수용 160비트로 사용되고, 감축될 512 비트는 이전 160 비트 열 Si-1과 공용 상수의 최하위 비트 352 비트가 접합되어 형성된다. Si-1은 160 비트를 제공하기 때문에, SHA 함수용 총 512비트를 생성하기 위해서는, 공용 상수 PC로부터 352비트의 최하위 비트가 요구된다. Si-1에 대응하는 160비트는 해싱될 열의 최하위 비트로 사용되고, 공용 상수 PC로부터 제공받은 352비트의 최하위 비트는 해싱될 열의 최상위 비트(most significant bits)로 사용된다.
도 5로 되돌아가면, 열 S1내지 S11이 생성된 후, 그 생성된 열 S1내지 S11각각은 수학식 5에 의해서 정의된 다항식 연산에 의해서 각각 160 비트의 열인 X1내지 X11을 생성하는데 사용된다. 도 8에는 X1내지 X11의 집합체가 키 K1내지 K4에 대응하는 832비트 열을 생성하는데 어떻게 사용되는 지가 도시되어 있다. 열 X1내지 X10의 최하위 76 비트와 열 X11의 최하위 72 비트가 접합되어 키 K1내지 K4를 산출하는데 사용되는 832비트를 생성한다. 832 비트 열의 최하위 비트는 열 X1의 최하위 76비트이고, 그 X1의 최하위 76비트에 X2의 최하위 76비트가 이어지며 열 X11의 최하위 72 비트에 의해서 832비트가 완성될 때까지 각 열 X3내지 X10의 최하위 76비트가 이어진다. 그리고 나서, 상술한 프로세스에 의해서 얻어진 832 비트 열이 키 K1내지 K4으로 분리된다. 여기에서, 최하위 160 비트는 키 K1에 대응하고, 그 다음 352비트는 키 K2에 대응하고, 이어지는 160비트는 키 K3에 대응하며, 마지막 160 비트는 키 K4에 대응한다.
본 발명에 따르면, 데이터의 블록 또는 열을 암호화하는 능률을 증진시킬 수 있다.

Claims (8)

  1. 제 1 n 비트 열과 제 2 n 비트열을 암호화하는 방법에 있어서,
    제 1 키를 사용해서 상기 제 1 n 비트 열의 스퀘어 해시를 수행하여 제 1 해싱 결과를 생성하는 단계와,
    상기 제 1 해싱 결과와 상기 제 2 n 비트 열을 모듈로 n 합산(nodulo n summing)해서 제 1 합계를 생성하는 단계와,
    상기 제 1 합계를 제 2 키와 함께 의사 랜덤 함수(pseudo random function)의 피연산자로 사용해서 제 1 의사 랜덤 결과를 생성하는 단계와,
    상기 제 1 의사 랜덤 결과와 상기 제 1 n 비트 열을 모듈로 n 합산해서 제 2 합계를 생성하는 단계와,
    상기 제 2 합계를 상기 제 2 키와 함께 상기 의사 랜덤 함수의 피연산자로 사용해서 제 2 의사 랜덤 결과를 생성하는 단계와,
    상기 제 2 의사 랜덤 결과와 상기 제 1 합계를 모듈로 n 합산해서 제 3 합계를 생성하는 단계와,
    제 4 키를 사용해서 상기 제 3 합계의 스퀘어 해싱을 수행하여 제 2 해시 결과를 생성하는 단계와,
    상기 제 2 합계와 상기 제 2 해싱 결과를 모듈로 n 합산해서 제 4 합계를 생성하는 단계와,
    상기 제 4 합계와 제 3 합계를 상기 제 1 n 비트 열과 상기 제 2 n 비트열의 암호화된 표현으로 사용하는 단계를 포함하는 암호화 방법.
  2. 제 1 항에 있어서,
    상기 제 2 키 및 제 3 키는 동일한 암호화 방법.
  3. 제 1 항에 있어서,
    상기 의사 랜덤 함수는 SHA 의사 랜덤 함수인 암호화 방법.
  4. 제 3 항에 있어서,
    상기 제 2 키 및 제 3 키는 동일한 암호화 방법.
  5. 제 1 n 비트 열과 제 2 n 비트열을 암호화하는 방법에 있어서,
    제 1 키를 사용해서 상기 제 1 n 비트 열의 해싱을 수행하여 제 1 해싱 결과를 생성하기 위해 제 1 해싱함수를 사용하는 단계와,
    상기 제 1 해싱 결과와 상기 제 2 n 비트 열을 모듈로 n 합산(nodulo n summing)해서 제 1 합계를 생성하는 단계와,
    상기 제 1 합계를 제 2 키와 함께 의사 랜덤 함수(pseudo random function)의 피연산자로 사용해서 제 1 의사 랜덤 결과를 생성하는 단계와,
    상기 제 1 의사 랜덤 결과와 상기 제 1 n 비트 열을 모듈로 n 합산해서 제 2 합계를 생성하는 단계와,
    상기 제 2 합계를 상기 제 3 키와 함께 상기 의사 랜덤 함수의 피연산자로 사용해서 제 2 의사 랜덤 결과를 생성하는 단계와,
    상기 제 2 의사 랜덤 결과와 상기 제 1 합계를 모듈로 n 합산해서 제 3 합계를 생성하는 단계와,
    제 4 키를 사용해서 상기 제 3 합계의 해싱을 수행하여 제 2 해싱 결과를 생성하기 위해 제 2 해싱 함수를 사용하는 단계와,
    상기 제 2 합계와 상기 제 2 해싱 결과를 모듈로 n 합산해서 제 4 합계를 생성하는 단계와,
    상기 제 4 합계와 제 3 합계를 상기 제 1 n 비트 열과 상기 제 2 n 비트열의 암호화된 표현으로 사용하는 단계를 포함하는 암호화 방법.
  6. 제 5 항에 있어서,
    상기 제 1 및 제 2 해싱 함수는 동일한 암호화 방법.
  7. 제 5 항에 있어서,
    상기 의사 랜덤 함수는 SHA 의사 랜덤 함수인 암호화 방법.
  8. 제 1 n 비트 열과 제 2 n 비트열을 암호화하는 방법에 있어서,
    제 1 키를 사용해서 상기 제 1 n 비트 열의 스퀘어 해시를 수행하여 제 1 해싱 결과를 생성하는 단계와,
    상기 제 1 해싱 결과와 상기 제 2 n 비트 열을 모듈로 n 합산(nodulo n summing)해서 제 1 합계를 생성하는 단계와,
    상기 제 1 합계를 제 2 키와 함께 의사 랜덤 함수(pseudo random function)의 피연산자로 사용해서 제 1 의사 랜덤 결과를 생성하는 단계와,
    상기 제 1 의사 랜덤 결과와 상기 제 1 n 비트 열을 모듈로 n 합산해서 제 2 합계를 생성하는 단계와,
    상기 제 2 합계를 상기 제 3 키와 함께 제 2 의사 랜덤 함수의 피연산자로 사용해서 제 2 의사 랜덤 결과를 생성하는 단계와,
    상기 제 2 의사 랜덤 결과와 상기 제 1 합계를 모듈로 n 합산해서 제 3 합계를 생성하는 단계와,
    제 4 키를 사용해서 상기 제 3 합계의 스퀘어 해싱을 수행하여 제 2 해시 결과를 생성하는 단계와,
    상기 제 2 합계와 상기 제 2 해싱 결과를 모듈로 n 합산해서 제 4 합계를 생성하는 단계와,
    상기 제 4 합계와 제 3 합계를 상기 제 1 n 비트 열과 상기 제 2 n 비트열의 암호화된 표현으로 사용하는 단계를 포함하는 암호화 방법.
KR19990045550A 1998-10-20 1999-10-20 암호화 방법 KR100583495B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17517998A 1998-10-20 1998-10-20
US9/175,179 1998-10-20
US09/175,179 1998-10-20

Publications (2)

Publication Number Publication Date
KR20000035057A true KR20000035057A (ko) 2000-06-26
KR100583495B1 KR100583495B1 (ko) 2006-05-24

Family

ID=22639275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR19990045550A KR100583495B1 (ko) 1998-10-20 1999-10-20 암호화 방법

Country Status (7)

Country Link
EP (1) EP0996250A3 (ko)
JP (2) JP2000122534A (ko)
KR (1) KR100583495B1 (ko)
CN (1) CN1251444A (ko)
AU (1) AU5361099A (ko)
BR (1) BR9904711A (ko)
CA (1) CA2282051A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030059500A (ko) * 2001-12-29 2003-07-10 한국전자통신연구원 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법
KR101437033B1 (ko) * 2012-06-21 2014-11-03 기초과학연구원 저성능 디바이스의 인증 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577250B2 (en) 2004-08-12 2009-08-18 Cmla, Llc Key derivation functions to enhance security
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
FR2847402B1 (fr) * 2002-11-15 2005-02-18 Gemplus Card Int Procede de division entiere securise contre les attaques a canaux caches
KR20060003328A (ko) * 2003-03-27 2006-01-10 엔디에스 리미티드 향상된 cfm 모드 시스템
CA2780980C (en) * 2004-08-12 2014-12-02 Cmla, Llc. Data security enhancement using secure hash function
EP1877948B1 (en) 2005-05-02 2013-07-03 NDS Limited Native scrambling system
EP1995710A1 (en) * 2006-03-14 2008-11-26 NEC Corporation Information processing system, information processing method, and information processing program
JP5141558B2 (ja) * 2006-10-30 2013-02-13 日本電気株式会社 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体
CN101542431B (zh) * 2006-11-28 2011-11-23 皇家飞利浦电子股份有限公司 在给定种子时产生Feistel分块密码的方法和***
CN101753304B (zh) * 2008-12-17 2012-07-04 中国科学院自动化研究所 一种生物特征和密钥绑定的方法
US10887080B2 (en) 2017-03-16 2021-01-05 King Fahd University Of Petroleum And Minerals Double-hashing operation mode for encryption

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625076A (en) * 1984-03-19 1986-11-25 Nippon Telegraph & Telephone Public Corporation Signed document transmission system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030059500A (ko) * 2001-12-29 2003-07-10 한국전자통신연구원 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법
KR101437033B1 (ko) * 2012-06-21 2014-11-03 기초과학연구원 저성능 디바이스의 인증 방법

Also Published As

Publication number Publication date
CN1251444A (zh) 2000-04-26
CA2282051A1 (en) 2000-04-20
EP0996250A3 (en) 2002-05-22
KR100583495B1 (ko) 2006-05-24
JP2004361969A (ja) 2004-12-24
AU5361099A (en) 2000-05-04
EP0996250A2 (en) 2000-04-26
BR9904711A (pt) 2000-10-03
JP2000122534A (ja) 2000-04-28

Similar Documents

Publication Publication Date Title
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
KR100610367B1 (ko) 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치
US7451310B2 (en) Parallelizable authentication tree for random access storage
JP4608319B2 (ja) 複数鍵を用いたストリーム暗号の生成方法
KR100583495B1 (ko) 암호화 방법
KR102154164B1 (ko) 의사 랜덤 시퀀스 생성 방법 및 데이터 스트림의 코딩 또는 디코딩 방법
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
EP1059760A1 (en) Method for the block-encryption of discrete data
KR101923293B1 (ko) 데이터 가산 장치 및 방법
JP2950485B2 (ja) ストリーム暗号処理装置
US20030165242A1 (en) Confusion encryption
JP5436373B2 (ja) 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
JPH0736672A (ja) 乱数発生器、及びそれを用いた通信システム及びその方法
KR100434558B1 (ko) 고속블록암호화방법및이를위한키스케쥴링방법
JP2010186075A (ja) 整数の暗号化及び復号化方法
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
RU2186467C2 (ru) Способ блочного итеративного шифрования
KR100262384B1 (ko) 암호화 방법 및 장치(Encryption Method and Apparatus)
JP2010152012A (ja) 整数の暗号化及び復号化方法
KR20030083326A (ko) 암호화 방법
KR20080042663A (ko) 비선형 필터링된 t함수에 기반한 스트림 암호화 장치 및방법
RU2199826C2 (ru) Способ итеративного шифрования блоков цифровых данных
RU2140712C1 (ru) Способ блочного шифрования двоичной информации
JP4150612B2 (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム

Legal Events

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