KR100834364B1 - 3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법 - Google Patents

3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법

Info

Publication number
KR100834364B1
KR100834364B1 KR1020057022072A KR20057022072A KR100834364B1 KR 100834364 B1 KR100834364 B1 KR 100834364B1 KR 1020057022072 A KR1020057022072 A KR 1020057022072A KR 20057022072 A KR20057022072 A KR 20057022072A KR 100834364 B1 KR100834364 B1 KR 100834364B1
Authority
KR
South Korea
Prior art keywords
block
key
generating
message
abandoned
Prior art date
Application number
KR1020057022072A
Other languages
English (en)
Other versions
KR20060019548A (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 KR20060019548A publication Critical patent/KR20060019548A/ko
Application granted granted Critical
Publication of KR100834364B1 publication Critical patent/KR100834364B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Abstract

3단계 암호화 프로세스를 사용하여 메시지의 무결성을 암호화 및 검증하는 방법 및 시스템이 제공된다. 타겟과 공유되는 비밀 마스터 키를 갖는 소스는 메시지를 수신하고 난수를 발생한다. 소스는 이어서 메시지 및 난수로부터 제1 중간값 세트를, 제1 값 세트로부터 제2 중간값 세트를, 및 제2 값 세트로부터 암호문을 생성한다. 이 3 단계에서, 값들은 블록 암호 암호화/복호화 알고리즘의 암호화 함수를 사용하여 생성된다. 난수 및 암호문은 타겟으로 전송되고, 타겟은 암호화 프로세스를 거꾸로 하여 암호문을 복호화한다. 타겟은 수신된 난수를 복호화된 암호문으로부터 추출된 난수와 비교함으로써 메시지의 무결성을 검증한다.

Description

3단계 암호화를 사용하여 메시지를 암호화 및 검증하는 시스템 및 방법{SYSTEM AND MEMTHOD FOR ENCRYPTING AND VERIFYING MESSAGES USING THREE-PHASE ENCRYPTION}
본 발명은 일반적으로 메시지의 암호화, 복호화 및 그 메시지의 무결성을 검증하는 시스템 및 방법에 관한 것이다. 특히, 본 발명은 3단계 암호화 프로세스를 사용하여 메시지의 암호화, 복호화 및 그 메시지의 무결성을 검증하는 시스템 및 방법에 관한 것이다.
인터넷은 다수의 사용자 간에 효율적이고 저렴한 통신 수단을 제공한다. 동일한 기반구조가 서로 다른 사용자 간에 공유될 수 있지만, 예를 들어 표준의 전화 및 팩스 기계 사용자의 경우에서와 같이 통신하는 사용자의 각 쌍이 별도의 통신 채널을 설정할 필요가 없다. 인터넷에 의해 제공된 통신 채널의 공유는 통신 감청(intercepted communication), 도청, 메시지 변조, 기타 등등의 가능성을 상당히 증가시킨다. 따라서, 인터넷 등의 공유 통신 채널을 통한 소스와 타겟 간의 메시지의 전송을 보호하는 효율적인 방법을 제공하는 이용가능한 통신 수단을 갖는 것이 점차 중요하게 되었다. 가장 통상적인 보안 통신 방법은 실제로 타겟만이 메시지를 복호화할 수 있도록 소스에서 메시지를 암호화하는 것이다.
보안 통신의 필요성을 해소하기 위해 많은 유형의 암호화/복호화가 개발되어 왔다. 2가지 주된 유형의 암호화 기술, 즉 비밀키(secret key) 암호화 및 개인/공개키(private/public key) 암호화가 있다. 비밀키 암호화에서, 소스에서의 메시지의 암호화 및 타겟에서의 메시지의 복호화의 양쪽 모두에 대해서 동일한 비밀키가 사용된다. 비밀키 암호화의 예로는 DES(Data Encryption Standard, 데이터 암호화 표준)가 있다. 공개/개인키 암호화에서, 각 사용자는 개인키(이는 다른 사용자에 비밀로 유지됨) 및 공개키(이는 각 사용자가 공개적으로 배포함)를 갖는다. 이 2개의 키는 실제로 타겟만이 메시지를 복호화할 수 있도록 메시지를 암호화하는 데 소스가 타겟의 공개키를 사용하는 방식으로 수학적으로 관련되어 있다.
양호한 암호화 표준은 소스 및 타겟에 있어서 계산상 효율적이어야만 하고, 이와 동시에 표준은 암호화 알고리즘을 깨는 방법 및 기술인 암호 해독(cryptanalysis)을 사용하여 "깨지기(break)" 쉽게 되어 있어서는 안된다. 또한, 암호화 표준이 메시지의 무결성 - 메시지가 비보안 매체를 통한 그의 전송 동안에 변경되었는지 여부 - 을 검증하는 수단을 제공하는 것이 중요하다.
따라서, 암호 해독에 취약하지 않으면서 소스와 타겟 간의 효율적인 암호화/복호화 표준을 제공할 수 있는 시스템 및 방법이 필요하다. 이 시스템 및 방법은 또한 전송된 메시지의 무결성을 높은 확률로 검증할 수 있는 기능도 제공해야만 한다.
도 1은 소스에서의 메시지의 암호화, 비보안 매체를 통한 암호화된 형태로 전송, 및 타겟에서의 메시지의 복호화를 나타낸 블록도.
도 2는 3단계 암호화 프로세스를 사용하여 메시지를 암호화하는 시스템을 나타낸 블록도.
도 3은 3단계 복호화 프로세스를 사용하여 메시지를 복호화하는 시스템을 나타낸 블록도.
도 4는 메시지를 수신, 암호화 및 전송하는 방법을 나타낸 플로우차트.
도 5는 3단계 암호화 프로세스를 사용하여 메시지를 암호화하는 방법을 나타낸 플로우차트.
도 6은 암호화된 문을 수신, 암호화된 문을 복호화, 및 복호화된 문으로부터 메시지를 추출하는 방법을 나타낸 플로우차트.
도 7은 3단계 복호화 프로세스를 사용하여 암호화된 메시지를 복호화하는 방법을 나타낸 플로우차트.
도 8은 수신된 복호화된 메시지의 무결성을 검증하는 방법을 나타낸 플로우차트.
도 9는 본 명세서에 기술된 동작을 수행할 수 있는 컴퓨터 시스템의 간단화된 예인 정보 처리 시스템을 나타낸 도면.
3단계 암호화 프로세스를 사용하여 메시지의 암호화, 복호화 및 그 메시지의 무결성을 검증하는 방법 및 시스템에 의해 상기한 과제들이 해소될 수 있음이 밝혀졌다. 3단계 암호화 프로세스의 구조는 알고리즘의 암호 해독을 아주 어렵게 만들며, 이는 암호화를 "깰(breaking)" 확률을 크게 감소시킨다. 게다가, 본 방법 및 시스템은, 타겟에서, 수신된 제어 숫자를 복호화된 제어 숫자와 비교함으로써 전송된 메시지의 무결성을 검증하는 수단을 제공한다.
소스 및 타겟은 비밀 마스터 키를 공유하며, 소스는 이를 사용하여 메시지를 암호화하고, 메시지가 타겟으로 전송된 후에 타겟은 이를 사용하여 메시지를 복호화한다. 암호화되어 타겟으로 전송될 메시지는 소스에 의해 평문 형태로 수신된다. 소스는 먼저 제1 및 제2 난수(random number)를 발생하고, 평문 메시지, 제1 난수, 제2 난수, 패드 필드(pad field), 및 패드 필드의 길이를 나타내는 숫자를 포함하는 평문 봉투(plain-text envelope)를 작성한다. 패드 필드는 평문 메시지, 제1 난수, 제2 난수, 패드 필드, 및 패드 필드의 길이를 나타내는 숫자의 길이가 암호화/복호화 프로세스에서 사용되는 블록 암호 알고리즘(block cipher algorithm)의 블록 크기의 정수배가 되도록 생성된다. 그 다음에, 제1, 제2 및 제3 키가 생성된다. 3개의 키는 암호화 프로세스의 3 단계 각각에서 사용된다. 이들 키는 암호화/복호화 프로세스에서 사용되는 블록 암호 알고리즘의 복호화 함수를 사용하여 비밀 마스터 키 및 제1 난수로부터 생성된다.
암호화 프로세스의 첫번째 단계에서, N개의 중간 블록의 제1 세트가 블록 암호 알고리즘 암호화/복호화의 함수를 사용하여 N개의 평문 블록 및 제1 키로부터 생성된다. 암호화 프로세스의 두번째 단계에서, N개의 중간 블록의 제2 세트가 블록 암호 암호화/복호화 알고리즘의 암호화 함수를 사용하여 N개의 중간 블록의 제1 세트 및 제2 키로부터 생성된다. 암호화 프로세스의 세번째의 마지막 단계에서, N개의 암호문 블록이 블록 암호 암호화/복호화 알고리즘의 암호화 함수를 사용하여 N개의 중간 블록의 제2 세트 및 제3 키로부터 생성된다.
이어서, 피보호문 봉투(protected-text envelope)의 길이를 나타내는 숫자, 제1 난수, 및 N개의 암호문 블록을 포함하는 피보호문 봉투가 작성된다. 피보호문 봉투는 인터넷 등의 비보안 매체를 통해 타겟으로 전송된다.
피보호문 봉투는 소스의 비밀 마스터 키를 공유하는 타겟에 의해 수신된다. 타겟은 피보호문 봉투로부터 피보호문 봉투의 길이를 나타내는 숫자, 제1 난수 및 N개의 암호문 블록을 추출한다. 이어서, 제1, 제2 및 제3 키가 블록 암호 암호화/복호화 알고리즘의 복호화 함수를 사용하여 추출된 제1 난수 및 비밀 마스터 키로부터 생성된다.
복호화 프로세스의 첫번째 단계에서, N개의 중간 블록의 제2 세트가 블록 암호 암호화/복호화 알고리즘의 복호화 함수를 사용하여 N개의 암호문 블록 및 제3 키로부터 생성된다. 복호화 프로세스의 두번째 단계에서, N개의 중간 블록의 제2 세트가 블록 암호 암호화/복호화 알고리즘의 복호화 함수를 사용하여 N개의 중간 블록의 제1 세트 및 제2 키로부터 생성된다. 복호화 프로세스의 세번째의 마지막 단계에서, N개의 평문 블록이 블록 암호 암호화/복호화 알고리즘의 복호화 함수를 사용하여 N개의 중간 블록의 제1 세트 및 제1 키로부터 생성된다. 그 다음에, 평문 메시지가 평문 봉투의 N개의 평문 블록으로부터 추출된다.
메시지의 무결성을 검증하기 위해, 그 다음에 N개의 평문 블록에 포함된 제1 난수가 추출되어 피보호문 봉투로부터 추출된 제1 난수와 비교된다. 2개의 숫자가 같지 않은 경우, 수신된 메시지는 신뢰되지 않는데 그 이유는 메시지가 소스로부터 타겟으로의 그 메시지의 전송 중에 변경되었을 가능성이 많은 것으로 결론내릴 수 있기 때문이다. 2개의 숫자가 같은 경우, 메시지는 신뢰될 수 있다.
이상의 것은 요약이며, 따라서 필요에 의해 단순화, 일반화, 및 상세의 생략을 포함한다. 그 결과, 당업자라면 이 요약이 단지 예시적인 것이며 어떤 방식으로든지 제한하는 것이 아님을 잘 알 수 있을 것이다. 본 발명의 다른 측면, 발명의 특징 및 이점은 청구항에 의해서만 정의되는 바와 같이, 이하에 기술된 비제한적인 상세한 설명에서 명백하게 될 것이다.
첨부 도면을 참조함으로써 본 발명이 보다 잘 이해될 수 있고 그의 여러가지 목적, 특징 및 이점이 당업자에게 명백하게 될 수 있다. 서로 다른 도면에서 동일한 참조 번호의 사용은 유사하거나 동일한 구성요소를 나타낸다.
이하는 본 발명의 예에 대한 상세한 설명을 제공하기 위한 것이며 본 발명 자체를 한정하는 것으로 보아서는 안된다. 오히려, 다수의 변형이 상세한 설명 이후에 오는 청구항에 정의된 본 발명의 범위 내에 속할 수 있다.
도 1은 소스에서의 메시지의 암호화, 비보안 매체를 통한 암호화된 형태로의 전송, 및 타겟에서의 메시지의 복호화를 나타낸 블록도이다. 소스(110)는 평문 메시지를 수신하여 평문 봉투(120)를 작성하도록 구성되어 있다. 일 실시예에서, 평문 봉투(120)는 소스에서 생성된 평문 메시지 및 부가의 숫자 및 필드를 포함한다. 타원(160)은 평문 봉투(120)의 확대 이미지를 나타낸 것이다. 일 실시예에서, 봉투(envelope)(120)는 난수 , 패드 필드의 길이를 나타내는 숫자, 메시지 "Hello!", 패드 필드, 및 난수 을 포함하는 N개의 블록 을 포함한다. 소스(110)는 평문 봉투(120)를 암호화하여 마스터 키 (115) 및 3단계 암호화 프로세스를 사용해서 N개의 암호문 블록 을 생성한다. 이어서, 피보호문 봉투(130)는 암호문 및 다른 제어 숫자를 사용하여 작성되고 비보안 매체(125)를 통해 전송된다. 타원(160)은 피보호문 봉투(130)의 확대 이미지를 나타낸 것이다. 일 실시예에서, 봉투(130)는 피보호문 봉투의 길이를 나타내는 숫자, 제어 난수 , 및 암호문을 포함한다.
타겟(135)은 메시지를 수신하고 소스와 타겟 간에 공유되는 마스터 키 (140)을 사용하여 추출된 암호문을 복호화하도록 구성되어 있다. 복호화 후에, 타겟은 평문 봉투(145)를 복구하고, 이 평문 봉투(145)는 암호문이 비보안 매체(125)를 통한 전송 중에 변경되지 않은 한, 평문 봉투(120)와 동일해야만 한다.
도 2는 3단계 암호화 프로세스를 사용하여 메시지를 암호화하는 시스템을 나타낸 블록도이다. 암호화 장치(210)는 평문 봉투 의 N개의 블록 을 수신하여 암호문 의 N개의 블록 을 생성하도록 구성되어 있다. 암호화 장치(210)는 N-1개의 배타적 OR 모듈(220, ..., 222, 및 224), N-1개의 배타적 OR 모듈(242, 244, ..., 246), N-1개의 배타적 OR 모듈(256,..., 258 및 260), N개의 암호화 모듈(212, 214, ..., 216 및 218), N개의 암호화 모듈(226, 228, ..., 230 및 232), 및 N개의 암호화 모듈(248, 250, ..., 252 및 254)을 포함한다. 배타적 OR 모듈은 모듈로의 2개의 입력에 대해 비트별 "XOR" 연산을 수행함으로써 출력을 생성하도록 구성되어 있다. 암호화 모듈은 다음 식에 따라 출력을 생성하도록 구성되어 있다.
함수 는 임의의 블록 암호 암호화/복호화 알고리즘의 암호화 함수일 수 있고, 는 소스에서 생성된 3개의 키 , 중 하나이다. 제1 키는 암호화 모듈(212-218)에서 사용되고, 제2 키는 암호화 모듈(226-232)에서 사용되며, 제3 키는 암호화 모듈(248-254)에서 사용된다. 3개의 키는 다음 식에 따라 생성된다.
는 임의의 블록 암호 암호화/복호화 알고리즘의 복호화 함수일 수 있고, 은 비밀 마스터 키이며, 는 "XOR" 연산자이다.
처음에, 블록 는 중간 블록 을 생성하기 위해 암호화 모듈(212)에 입력된다. 이어서, 블록 및 블록 은 배타적 OR 모듈(220)에 입력되고, 배타적 OR 모듈(220)로부터의 출력은 중간 블록 을 생성하기 위해 암호화 모듈(214)에 입력된다. 프로세스는 암호화 프로세스의 첫번째 단계를 완료하기 위해, 블록 및 블록 이 배타적 OR 모듈(224)에 입력되고 배타적 OR 모듈(224)로부터의 출력이 중간 블록 을 생성하기 위해 암호화 모듈(218)에 입력될 때까지 반복된다.
암호화 프로세스의 두번째 단계는 중간 블록 이 중간 블록 을 생성하기 위해 암호화 모듈(232)에 입력되는 것으로 시작한다. 이어서, 블록 가 암호화 모듈(230)에 입력되고 암호화 모듈(230)로부터의 출력 및 블록 이 중간 블록 를 생성하기 위해 배타적 OR 모듈(246)에 입력된다. 이 프로세스는 암호화 프로세스의 두번째 단계를 완료하기 위해, 블록 이 암호화 모듈(226)에 입력되고 암호화 모듈(226)로부터의 출력 및 블록 가 중간 블록 를 생성하기 위해 배타적 OR 모듈(242)에 입력될 때까지 반복된다.
암호화 프로세스의 세번째 단계는 중간 블록 이 암호문 블록 을 생성하기 위해 암호화 모듈(248)에 입력되는 것으로 시작한다. 이어서, 블록 은 암호화 모듈(250)에 입력되고, 암호화 모듈(250)로부터의 출력 및 블록 은 암호문 블록 을 생성하기 위해 배타적 OR 모듈(256)에 입력된다. 이 프로세스는 암호화 프로세스의 제3 단계를 완료하기 위해, 블록 이 암호화 모듈(254)에 입력되고 암호화 모듈(254)로부터의 출력 및 블록 가 암호문 블록 을 생성하기 위해 배타적 OR 모듈(260)에 입력될 때까지 반복된다.
도 3은 3단계 복호화 프로세스를 사용하여 메시지를 복호화하는 시스템을 나타낸 블록도이다. 복호화 장치(310)는 암호문 의 N개의 블록 을 수신하여 평문 봉투 의 N개의 블록 을 생성하도록 구성되어 있다. 복호화 장치(310)는 N-1개의 배타적 OR 모듈(320, ..., 322, 및 324), N-1개의 배타적 OR 모듈(334, 336, ..., 338), N-1개의 배타적 OR 모듈(348,..., 350 및 352), N개의 복호화 모듈(312, 314, ..., 316 및 318), N개의 복호화 모듈(326, 328, ..., 330 및 332), 및 N개의 복호화 모듈(340, 342, ..., 344 및 346)을 포함한다. 배타적 OR 모듈은 모듈로의 2개의 입력에 대해 비트별 "XOR" 연산을 수행함으로써 출력을 생성하도록 구성되어 있다. 복호화 모듈은 다음 식에 따라 출력을 생성하도록 구성되어 있다.
함수 는 임의의 블록 암호 알고리즘의 복호화 함수일 수 있고, 는 타겟에서 생성된 3개의 키 , 중 하나이다. 제3 키는 복호화 모듈(312-318)에서 사용되고, 제2 키는 복호화 모듈(326-332)에서 사용되며, 제1 키는 복호화 모듈(340-346)에서 사용된다. 3개의 키는 다음 식에 따라 생성된다.
는 임의의 블록 암호 암호화/복호화 알고리즘의 복호화 함수일 수 있고, 은 비밀 마스터 키이며, 는 "XOR" 연산자이다.
처음에, 블록 는 중간 블록 을 생성하기 위해 복호화 모듈(312)에 입력된다. 이어서, 블록 및 블록 은 배타적 OR 모듈(320)에 입력되고, 배타적 OR 모듈(320)로부터의 출력은 중간 블록 을 생성하기 위해 복호화 모듈(314)에 입력된다. 이 프로세스는 복호화 프로세스의 첫번째 단계를 완료하기 위해, 블록 및 블록 이 배타적 OR 모듈(324)에 입력되고 배타적 OR 모듈(324)로부터의 출력이 중간 블록 을 생성하기 위해 복호화 모듈(318)에 입력될 때까지 반복된다.
복호화 프로세스의 두번째 단계는 중간 블록 이 중간 블록 을 생성하기 위해 복호화 모듈(332)에 입력되는 것으로 시작한다. 이어서, 블록 및 블록 이 배타적 OR 모듈(338)에 입력되고 모듈(338)로부터의 출력이 중간 블록 를 생성하기 위해 복호화 모듈(330)에 입력된다. 이 프로세스는 복호화 프로세스의 두번째 단계를 완료하기 위해, 블록 및 중간 블록 이 배타적 OR 모듈(334)에 입력되고 배타적 OR 모듈(334)로부터의 출력이 중간 블록 를 생성하기 위해 복호화 모듈(326)에 입력될 때까지 반복된다.
복호화 프로세스의 세번째 단계는 중간 블록 이 평문 블록 을 생성하기 위해 복호화 모듈(340)에 입력되는 것으로 시작한다. 이어서, 블록 은 복호화 모듈(342)에 입력되고, 복호화 모듈(342)로부터의 출력 및 블록 은 평문 블록 을 생성하기 위해 배타적 OR 모듈(348)에 입력된다. 이 프로세스는 복호화 프로세스의 제3 단계를 완료하기 위해, 블록 이 복호화 모듈(346)에 입력되고 복호화 모듈(346)로부터의 출력 및 블록 가 평문 블록 을 생성하기 위해 배타적 OR 모듈(352)에 입력될 때까지 반복된다.
도 4는 메시지를 수신, 암호화 및 전송하는 방법을 나타낸 플로우차트이다. 프로세싱은 단계(400)에서 시작하고, 단계(410)에서 비밀 마스터 키 가 소스에 의해 수신된다. 동일한 비밀 마스터 키 은 소스와 타겟 간에 공유된다. 비밀 마스터 키 은 저장 유닛(415)으로부터 수신될 수 있다. 비밀 마스터 키는 키의 기밀성을 보장하기 위해 자주 변경될 수 있다. 단계(420)에서, 암호화될 메시지가 저장 유닛(425)으로부터 수신될 수 있다. 단계(430)에서, 2개의 고정 크기 난수()가 생성된다.
이어서, 결정 단계(435)에서 평문 봉투를 작성하기 위해 패드 필드가 필요한지 여부의 판정이 행해진다. 평문 봉투는 고정 크기 난수 , 패드 필드(있는 경우)의 길이를 나타내는 숫자, 암호화될 메시지, 패드 필드, 및 고정 크기 난수 을 사용하여 형성된다. 블록 암호 암호화 알고리즘이 평문 봉투의 암호화에서 사용되는 일 실시예에서, 봉투의 크기(길이)는 암호의 블록 크기의 정수배이어야만 한다. 예를 들어, AES 블록 암호 알고리즘에 대한 블록 크기는 128 비트이다. 메시지, , , 및 패드 필드의 길이를 나타내는 숫자의 길이가 암호의 블록 크기의 정수배인 경우, 결정 단계(435)는 "예" 분기(445)로 분기하고 프로세싱은 단계(455)에서 계속된다.
메시지, , 및 패드 필드의 길이를 나타내는 숫자의 길이가 암호의 블록 크기의 정수배가 아닌 경우, 결정 단계(435)는 "아니오" 분기(440)로 분기하고, 단계(450)에서 임의의 임의적 패턴을 포함하는 패드 필드가 생성된다. 패드 필드의 길이는 암호의 블록 크기의 정수배인 길이를 갖는 평문 봉투를 제공하도록 선택된다. 단계(455)에서, 평문 봉투 가 생성된다. 일 실시예에서, 봉투 는 고정 크기 난수 , 패드 필드의 길이를 나타나는 숫자, 암호화될 메시지, 패드 필드, 및 고정 크기 난수 을 포함한다. 봉투 는 N개의 동일 크기의 블록 을 포함한다.
단계(460)에서, 평문 봉투 는 피보호문 봉투를 작성하기 위해 3단계 암호화 프로세스를 사용하여 암호화된다. 암호화 프로세스에 대한 추가의 상세는 도 5의 플로우차트에 나타내어져 있다. 단계(465)에서, 피보호문 봉투는 인터넷 등의 비보안 매체를 통해 타겟으로 전송된다.
도 5는 3단계 암호화 프로세스를 사용하여 메시지를 암호화하는 방법을 나타낸 플로우차트이다. 프로세싱은 단계(500)에서 시작하고, 단계(510)에서 3개의 키가 블록 암호 알고리즘의 복호화 함수를 사용하여 난수 및 비밀 마스터 키로부터 생성된다. 일 실시예에서, 3개의 키는 이하의 식에 따라 생성될 수 있다.
는 임의의 블록 암호 암호화/복호화 알고리즘의 복호화 함수일 수 있고, 은 비밀 마스터 키이며, 는 "XOR" 연산자이다.
단계(515)에서, 3단계 암호화의 3개의 단계 중 첫번째 단계가 수행된다. N개의 중간 블록 는 이하의 식에 따라 암호화 함수를 사용하여 평문 봉투의 N개의 블록 및 제1 키로부터 생성된다.
는 블록 암호 암호화/복호화 알고리즘의 암호화 함수일 수 있다.
단계(520)에서, 3단계 암호화의 3개의 단계 중 두번째 단계가 수행된다. N개의 중간 블록 이 이하의 식에 따라 암호화 함수를 사용하여 N개의 중간 블록 및 제2 키 로부터 생성된다.
단계(525)에서, 3단계 암호화의 세번째의 마지막 단계가 수행된다. N개의 암호문 블록 이 이하의 식에 따라 암호화 함수를 사용하여 N개의 중간 블록 및 제3 키 로부터 생성된다.
이어서, 피보호문 봉투가 작성된다. 일 실시예에서, 피보호문 봉투는 봉투의 길이, 난수 , 및 암호문 블록 를 포함한다. 프로세싱은 단계(599)에서 종료된다.
도 6은 암호화된 문을 수신, 암호화된 문을 복호화, 및 복호화된 문으로부터 메시지를 추출하는 방법을 나타낸 플로우차트이다. 프로세싱은 단계(600)에서 시작하고, 단계(610)에서 피보호문 봉투가 인터넷 등의 비보안 매체를 통해 수신된다. 일 실시예에서, 피보호문 봉투는 봉투의 길이, 난수 및 N개의 암호문 블록 를 포함한다. 암호문 블록은 일반적으로 암호화된 형태로 메시지를 포함한다. 단계(615)에서, 봉투의 길이, 난수 , 및 암호문 블록 가 피보호문 봉투로부터 추출된다. 단계(620)에서, 암호문 블록은 평문 봉투의 N개의 블록을 복구하기 위해 복호화된다. 복호화에 관한 추가의 상세는 도 7의 플로우차트에 제공되어 있다. 일 실시예에서, 평문 봉투는 고정 크기 난수 , 봉투에 포함된 패드 필드의 길이를 나타내는 숫자, 메시지, 패드 필드, 및 난수 의 부가의 복사본을 포함한다. 이어서, 평문 메시지가 단계(625)에서 추출된다. 단계(630)에서, 메시지의 무결성이 판정된다. 무결성 판정에 대한 추가의 상세는 도 8의 플로우차트에 제공되어 있다. 프로세싱은 단계(699)에서 종료된다.
도 7은 3단계 프로세스를 사용하여 암호화된 메시지를 복호화하는 방법을 난타낸 플로우차트이다. 프로세싱은 단계(700)에서 시작하고, 단계(710)에서 3개의 키가 암호 알고리즘의 복호화 함수를 사용하여 추출된 난수 및 비밀 마스터 키 으로부터 생성된다. 일 실시예에서, 3개의 키는 이하의 식에 따라 생성될 수 있다.
는 임의의 블록 암호 암호화/복호화 알고리즘의 복호화 함수일 수 있고, 은 비밀 마스터 키이며, 는 "XOR" 연산자이다.
단계(715)에서, 3단계 복호화의 3개의 단계 중 첫번째 단계가 수행된다. N 개의 중간 블록 가 이하의 식에 따라 복호화 함수를 사용하여 수신된 피보호문 봉투로부터 추출된 N개의 암호문 블록 및 제1 키 으로부터 재생성된다.
단계(720)에서, 3단계 복호화의 3개의 단계 중 두번째 단계가 수행된다. N개의 중간 블록 가 이하의 식에 따라 복호화 함수를 사용하여 N개의 중간 블록 및 제2 키 로부터 재생성된다.
단계(725)에서, 3단계 복호화의 3개의 단계 중 세번째 단계가 수행된다. 평문 봉투의 N개의 블록 이 이하의 식에 따라 암호화 함수를 사용하여 N개의 중간 블록 및 제3 키 로부터 재생성된다.
도 8은 복호화된 메시지의 무결성을 검증하는 방법을 나타낸 플로우차트이다. 단계(810)에서, 난수 의 제2 복사본이 복호화된 평문 봉투 로부터 추출된다. 난수 의 제1 복사본은 피보호문 봉투 로부터 추출된다. 이어서, 판정 단계(815)에서 평문 봉투로부터 추출된 난수 이 피보호문 봉투로부터 추출된 난수 과 같은지 여부에 관한 판정이 행해진다. 2개의 숫자가 같은 경우, 판정 단계(815)는 "예" 분기(820)로 분기하고, 단계(830)에서 복호화된 메시지가 신뢰될 수 있는 것으로 판정된다. 환언하면, 아무도 메시지가 비보안 매체를 통해 전송되고 있는 동안 그 메시지를 변조하지 않았을 가능성이 높은 것으로 판정된다. 2개의 숫자가 같지 않은 경우, 판정 단계(815)는 "아니오" 분기(825)로 분기하고, 단계(835)에서 복호화된 메시지가 신뢰될 수 없는 것으로 판정된다. 환언하면, 누군가 메시지가 비보안 매체를 통해 전송되고 있는 동안 그 메시지를 변조하였을 가능성이 높은 것으로 판정된다. 프로세싱은 단계(899)에서 종료된다.
도 9는 본 명세서에 기술된 컴퓨팅 동작을 수행할 수 있는 컴퓨터 시스템의 간단화된 예인 정보 처리 시스템(901)을 나타낸 것이다. 컴퓨터 시스템(901)은 호스트 버스(902)에 연결된 프로세서(900)를 포함한다. 2차(L2) 캐시 메모리(904)도 역시 호스트 버스(902)에 연결되어 있다. 호스트-PCI 브리지(906)는 메인 메모리(908)에 연결되어 있으며, 캐시 메모리 및 메인 메모리 제어 기능을 포함하고, 또 PCI 버스(910), 프로세서(900), L2 캐시(904), 메인 메모리(908), 및 호스트 버스(902) 간의 전송을 처리하는 버스 제어를 제공한다. 메인 메모리(908)는 호스트-PCI 브리지(906)는 물론 호스트 버스(902)에도 연결되어 있다. LAN 카드(930) 등의 호스트 프로세서(들)(900)에 의해서만 사용되는 장치는 PCI 버스(910)에 연결되어 있다. 서비스 프로세서 인터페이스 및 ISA 액세스 패스쓰루(Service Processor Interface and ISA Access Pass-through)(912)는 PCI 버스(910)와 PCI 버스(914) 간의 인터페이스를 제공한다. 이와 같이, PCI 버스(914)는 PCI 버스(910)와 분리되어 있다. 플래시 메모리(918) 등의 장치는 PCI 버스(914)에 연결되어 있다. 한 구현에서, 플래시 메모리(918)는 각종의 저레벨 시스템 기능 및 시스템 부팅 기능을 위해 필요한 프로세서 실행가능 코드를 포함한 BIOS 코드를 포함한다.
PCI 버스(914)는 예를 들어, 플래시 메모리(918)를 비롯한, 호스트 프로세서(들)(900) 및 서비스 프로세서(916)에 의해 공유되는 각종의 장치에 대한 인터페이스를 제공한다. PCI-ISA 브리지(935)는 PCI 버스(914)와 ISA 버스(940), USB 기능(945), 전력 관리 기능(955) 간의 전송을 처리하는 버스 제어를 제공하고, 또한 실시간 클럭(RTC), DMA 제어, 인터럽트 지원 및 시스템 관리 버스 지원 등의 도시되지 않은 다른 기능 요소를 포함할 수 있다. 비휘발성 RAM(NVRAM: Nonvolatile RAM)(920)은 ISA 버스(940)에 부착되어 있다. 서비스 프로세서(916)는 초기화 단계 중에 프로세서(들)(900)와의 통신을 위한 JTAG 및 I2C 버스(922)를 포함한다. JTAG/I2C 버스(922)는 또한 L2 캐시(904), 호스트-PCI 브리지(906) 및 메인 메모리(908)에 연결되어, 프로세서, 서비스 프로세서, L2 캐시, 호스트-PCI 브리지 및 메인 메모리 간의 통신 경로를 제공한다. 서비스 프로세서(916)는 또한 정보 처리 장치(901)의 전원을 끄기 위해 시스템 전원 리소스에 액세스한다.
주변 장치 및 입/출력(I/O) 장치는 여러가지 인터페이스[예를 들어, ISA 버스(940)에 연결된 병렬 인터페이스(962), 직렬 인터페이스(964), 키보드 인터페이스(968), 및 마우스 인터페이스(970)]에 부착될 수 있다. 다른 대안에서, 많은 I/O 장치는 ISA 버스(940)에 부착된 수퍼 I/O 콘트롤러(도시 생략)에 의해 수용될 수 있다.
컴퓨터 시스템(901)을 다른 컴퓨터 시스템에 부착하여 네트워크를 통해 파일을 복사하기 위해, LAN 카드(930)가 PCI 버스(910)에 연결되어 있다. 이와 유사하게, 컴퓨터 시스템(901)을 ISP에 연결하여 전화 회선 연결을 사용해서 인터넷에 연결하기 위해, 모뎀(975)이 직렬 포트(964) 및 PCI-ISA 브리지(935)에 연결되어 있다.
도 9에 기술된 컴퓨터 시스템이 본 명세서에 기술된 프로세스를 실행할 수 있지만, 이 컴퓨터 시스템은 컴퓨터 시스템의 단지 한 예에 불과하다. 당업자라면 많은 다른 컴퓨터 시스템 설계가 본 명세서에 기술된 프로세스를 수행할 수 있다는 것을 잘 알 것이다.
본 발명의 양호한 구현 중 하나는 애플리케이션, 즉 예를 들어 컴퓨터의 랜덤 액세스 메모리에 존재할 수 있는 코드 모듈 내의 명령어 세트(프로그램 코드)이다. 컴퓨터에 의해 요구될 때까지, 이 명령어 세트는 다른 컴퓨터 메모리에, 예를 들어 하드 디스크 드라이브 상에 또는 광학 디스크나 플로피 디스크 등의 분리형 저장 장치에(종국의 사용을 위해 CD ROM에) 저장되어 있거나, 또는 인터넷이나 다른 컴퓨터 네트워크를 통해 다운로드될 수 있다. 따라서, 본 발명은 컴퓨터에서 사용하기 위한 컴퓨터 프로그램 제품으로서 구현될 수 있다. 게다가, 기술된 여러가지 방법이 소프트웨어에 의해 선택적으로 활성화 또는 재구성되는 범용 컴퓨터에서 편리하게 구현되지만, 당업자라면 이러한 방법이 하드웨어로, 펌웨어로, 또는 요구되는 방법 단계들을 수행하도록 구성된 다른 특수 장치로 수행될 수 있음을 잘 알 것이다.
본 발명의 특정 실시예가 도시되고 기술되어 있지만, 당업자에게는 여기의 개시 내용에 기초하여, 본 발명 및 그의 광의의 측면을 벗어나지 않고 여러 변경 및 수정이 행해질 수 있고, 따라서 첨부된 청구항들이 그의 범위 내에 본 발명의 진정한 정신 및 범위 내에 속하는 이러한 변경 및 수정 모두를 포괄한다는 것이 자명하다. 게다가, 본 발명이 첨부된 청구항들에 의해서만 한정된다는 것을 잘 알 것이다. 당업자라면 소개된 청구항의 구성 요소의 구체적인 개수가 의도되는 경우, 이러한 의도는 청구항에 명시적으로 언급되며, 이러한 언급이 없는 경우 이러한 제한이 없다는 것을 잘 알 것이다. 비제한적인 예로서, 이해를 돕기 위해, 이하의 첨부된 청구항은 청구항의 구성 요소를 소개하기 위해 도입 구문 "적어도 하나" 및 "하나 이상"의 사용을 포함한다. 그렇지만, 이러한 구문의 사용은 단수형 관형사에 의한 청구항의 구성 요소의 소개가 이러한 소개된 청구항의 구성 요소를 포함하는 임의의 특정의 청구항을 단지 하나의 이러한 구성 요소를 포함하는 발명으로 한정하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구문 "하나 이상" 또는 "적어도 하나" 및 단수형 관형사를 포함하는 경우라도 하더라도 청구항에서의 지시 관형사의 사용에 대해서도 마찬가지이다.
본 발명은 메시지의 암호화, 복호화 및 그 메시지의 무결성의 검증에 의해 달성되는 보안 메시지의 전송 및 수신을 필요로 하는 시스템에서 사용된다.

Claims (57)

  1. 메시지를 암호화하는 방법으로서,
    제1 블록, 최종 블록 및 상기 제1 블록과 최종 블록 사이의 복수 개의 중간 블록을 포함하는 평문 봉투(plain-text envelope)를 수신하는 단계로서, 각각의 중간 블록들은 제1 인접 블록과 제2 인접 블록을 포함하고, 제1 난수가 상기 제1 블록으로서 포함되는 것인, 상기 평문 봉투를 수신하는 단계와;
    제1 키, 제2 키 및 제3 키를 생성하는 단계와;
    각각의 중간 블록에 대해서,
    상기 중간 블록, 상기 제1 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제1 암호값을 사용해서 제1 중간값을 생성하는 단계와;
    상기 제1 중간값, 상기 제2 키, 및 상기 중간 블록의 제2 인접 블록으로부터 수신된 제2 암호값을 사용해서 제2 중간값을 생성하는 단계와;
    상기 제2 중간값, 상기 제3 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제3 암호값을 사용해서 암호문 블록을 생성하는 단계
    를 포함하고,
    상기 중간 블록의 제1 인접 블록의 제2 중간값을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제1 인접 블록에 의해 사용되고, 상기 중간 블록의 제2 인접 블록의 제1 중간값을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제2 인접 블록에 의해 사용되는,
    메시지 암호화 방법.
  2. 제1항에 있어서, 비밀 마스터 키(secret master key)를 수신하는 단계를 더 포함하는 메시지 암호화 방법.
  3. 제2항에 있어서, 제1 난수 및 제2 난수를 생성하는 단계를 더 포함하는 메시지 암호화 방법.
  4. 청구항 4은(는) 설정등록료 납부시 포기되었습니다.
    제3항에 있어서, 평문 메시지, 상기 제1 난수, 상기 제2 난수, 패드 필드(pad field), 및 상기 패드 필드의 길이를 나타내는 숫자의 길이가 블록 암호 알고리즘(block cipher algorithm)의 블록 크기의 정수배가 되도록 상기 패드 필드를 생성하는 단계를 더 포함하는 메시지 암호화 방법.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서, 상기 평문 봉투(plain-text envelope)를 작성하는 단계를 더 포함하고,
    상기 평문 봉투는
    상기 평문 메시지, 상기 제1 난수, 상기 제2 난수, 상기 패드 필드 및 상기 패드 필드의 길이를 나타내는 숫자를 포함하는,
    메시지 암호화 방법.
  6. 삭제
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제3항에 있어서, 피보호문 봉투(protected-text envelope)를 작성하는 단계를 더 포함하고,
    상기 피보호문 봉투는
    상기 피보호문 봉투의 길이를 나타내는 숫자, 상기 제2 난수, 상기 제1 블록으로부터 작성된 제1 암호문 블록, 상기 최종 블록으로부터 작성된 최종 암호문 블록, 및 상기 각각의 중간 블록으로부터 생성된 상기 암호문 블록을 포함하는,
    메시지 암호화 방법.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서, 상기 피보호문 봉투를 비보안 매체(unsecured medium)를 통해 타겟으로 전송하는 단계를 더 포함하는 메시지 암호화 방법.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제3항에 있어서, 상기 제1 키, 제2 키 및 제3 키를 생성하는 단계는, 상기 비밀 마스터 키 및 상기 제1 난수로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 단계를 포함하는 것인 메시지 암호화 방법.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제3항에 있어서, 상기 제1 키, 제2 키 및 제3 키를 생성하는 단계는, 블록 암호 알고리즘의 복호화 함수(decryption function)를 사용하여 상기 비밀 마스터 키 및 상기 제1 난수로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 단계를 포함하는 것인 메시지 암호화 방법.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서, 상기 제1 중간값을 생성하는 단계, 상기 제2 중간값을 생성하는 단계, 및 상기 암호문 블록을 생성하는 단계는, 블록 암호 알고리즘의 암호화 함수를 사용하는 단계를 포함하는 것인 메시지 암호화 방법.
  12. 암호문 메시지를 복호화하는 방법으로서,
    제1 블록, 최종 블록 및 상기 제1 블록과 최종 블록 사이의 복수 개의 중간 블록을 포함하는 암호문 봉투(cipher-text envelope)를 수신하는 단계로서, 상기 각각의 중간 블록들은 제1 인접 블록과 제2 인접 블록을 포함하는 것인, 상기 암호문 봉투를 수신하는 단계와;
    제1 키, 제2 키 및 제3 키를 생성하는 단계와;
    평문 봉투(plain-text envelope)를 생성하는 단계
    를 포함하고,
    상기 평문 봉투를 생성하는 단계는,
    각각의 중간 블록에 대해서,
    상기 중간 블록, 상기 제1 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제1 복호값을 사용해서 제1 중간값을 생성하는 단계;
    상기 제1 중간값, 상기 제2 키, 및 상기 중간 블록의 제2 인접 블록으로부터 수신된 제2 복호값을 사용해서 제2 중간값을 생성하는 단계; 및
    상기 제2 중간값, 상기 제3 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제3 복호값을 사용해서 평문 블록을 생성하는 단계
    를 수행하는 단계를 더 포함하고,
    상기 중간 블록의 제1 인접 블록의 제2 중간값을 생성하기 위하여 상기 제2 중간값이 상기 중간 블록의 제1 인접 블록에 의해 사용되고, 상기 중간 블록의 제2 인접 블록의 평문 블록을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제2 인접 블록에 의해 사용되는,
    메시지 복호화 방법.
  13. 제12항에 있어서, 상기 암호문 봉투는 제1 제어 숫자(control number)를 더 포함하고,
    상기 평문 봉투는 평문 메시지 및 제2 제어 숫자를 포함하는 것인 메시지 복호화 방법.
  14. 제13항에 있어서, 상기 수신된 암호문 봉투의 무결성(integrity)을,
    상기 제1 제어 숫자가 상기 제2 제어 숫자와 같은 경우 "신뢰할 수 있음(Can be Trusted)" 설정으로 설정하고,
    상기 제1 제어 숫자가 상기 제2 제어 숫자와 같지 않은 경우 "신뢰할 수 없음(Cannot be Trusted)" 설정으로 설정하는 단계를 더 포함하는 메시지 복호화 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제13항에 있어서, 비밀 마스터 키를 수신하는 단계를 더 포함하는 메시지 복호화 방법.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서, 상기 제1 키, 제2 키 및 제3 키를 생성하는 단계는, 상기 비밀 마스터 키 및 상기 제1 제어 숫자로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 단계를 포함하는 것인 메시지 복호화 방법.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서, 상기 제1 키, 제2 키 및 제3 키를 생성하는 단계는, 블록 암호 알고리즘의 복호화 함수를 사용하여 상기 비밀 마스터 키 및 상기 제1 제어 숫자로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 단계를 포함하는 것인 메시지 복호화 방법.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 제1 중간값을 생성하는 단계, 상기 제2 중간값을 생성하는 단계 및 상기 평문 블록을 생성하는 단계는, 블록 암호 알고리즘의 복호화 함수를 사용하는 단계를 포함하는 것인 메시지 복호화 방법.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제12항에 있어서, 상기 암호문 봉투를 비보안 매체를 통해 소스로부터 수신하는 단계를 더 포함하는 메시지 복호화 방법.
  20. 하나 이상의 프로세서들과;
    상기 프로세서들로부터 액세스가능한 메모리와;
    상기 프로세서들로부터 액세스가능한, 데이터를 수신하는 수신기와;
    메시지를 암호화하는 메시지 암호화 도구
    를 포함하고,
    상기 메시지 암호화 도구는,
    상기 수신기에서 평문 봉투(plain-text envelope) -상기 평문 봉투는 제1 블록, 최종 블록 및 상기 제1 블록과 최종 블록 사이의 복수 개의 중간 블록을 포함하고, 각각의 중간 블록들은 제1 인접 블록과 제2 인접 블록을 포함하고, 제1 난수가 상기 제1 블록으로서 포함됨- 를 수신하는 동작,
    제1 키, 제2 키 및 제3 키를 생성하는 동작,
    각각의 중간 블록에 대해서,
    상기 중간 블록, 상기 제1 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제1 암호값을 사용해서 제1 중간값을 생성하는 동작,
    상기 제1 중간값, 상기 제2 키, 및 상기 중간 블록의 제2 인접 블록으로부터 수신된 제2 암호값을 사용해서 제2 중간값을 생성하는 동작, 및
    상기 제2 중간값, 상기 제3 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제3 암호값을 사용해서 암호문 블록을 생성하는 동작
    을 수행할 수 있고,
    상기 중간 블록의 제1 인접 블록의 제2 중간값을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제1 인접 블록에 의해 사용되고, 상기 중간 블록의 제2 인접 블록의 제1 중간값을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제2 인접 블록에 의해 사용되는,
    정보 처리 시스템.
  21. 청구항 21은(는) 설정등록료 납부시 포기되었습니다.
    제20항에 있어서, 상기 메시지 암호화 도구는 비밀 마스터 키를 수신하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  22. 청구항 22은(는) 설정등록료 납부시 포기되었습니다.
    제21항에 있어서, 상기 메시지 암호화 도구는 상기 제1 난수 및 제2 난수를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  23. 청구항 23은(는) 설정등록료 납부시 포기되었습니다.
    제22항에 있어서, 상기 메시지 암호화 도구는 상기 평문 메시지, 상기 제1 난수, 상기 제2 난수, 패드 필드, 및 상기 패드 필드의 길이를 나타내는 숫자의 길이가 블록 암호 알고리즘의 블록 크기의 정수배가 되도록 상기 패드 필드를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  24. 청구항 24은(는) 설정등록료 납부시 포기되었습니다.
    제23항에 있어서, 상기 메시지 암호화 도구는 상기 평문 봉투를 작성하는 동작을 더 수행할 수 있고,
    상기 평문 봉투는
    상기 평문 메시지, 상기 제1 난수, 상기 제2 난수, 상기 패드 필드, 및 상기 패드 필드의 길이를 나타내는 숫자를 포함하는,
    정보 처리 시스템.
  25. 삭제
  26. 청구항 26은(는) 설정등록료 납부시 포기되었습니다.
    제22항에 있어서, 상기 메시지 암호화 도구는 피보호문 봉투(protected-text envelope)를 작성하는 동작을 더 수행할 수 있고,
    상기 피보호문 봉투는
    상기 피보호문 봉투의 길이를 나타내는 숫자, 상기 제1 난수, 상기 제1 블록에서 작성된 제1 암호문 블록, 상기 최종 블록에서 작성된 최종 암호문 블록 및 상기 각각의 중간 블록에서 작성된 상기 암호문 블록을 포함하는,
    정보 처리 시스템.
  27. 청구항 27은(는) 설정등록료 납부시 포기되었습니다.
    제26항에 있어서, 상기 메시지 암호화 도구는 상기 피보호문 봉투를 비보안 매체를 통해 타겟으로 전송하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  28. 청구항 28은(는) 설정등록료 납부시 포기되었습니다.
    제22항에 있어서, 상기 제1 키, 상기 제2 키, 및 상기 제3 키를 생성하기 위해, 상기 메시지 암호화 도구는 상기 비밀 마스터 키 및 상기 제1 난수로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  29. 청구항 29은(는) 설정등록료 납부시 포기되었습니다.
    제22항에 있어서, 상기 제1 키, 상기 제2 키, 및 상기 제3 키를 생성하기 위해, 상기 메시지 암호화 도구는 블록 암호 알고리즘의 복호화 함수를 사용하여 상기 비밀 마스터 키 및 상기 제1 난수로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  30. 청구항 30은(는) 설정등록료 납부시 포기되었습니다.
    제20항에 있어서, 상기 제1 중간값, 상기 제2 중간값, 및 상기 암호문 블록을 생성하기 위해, 상기 메시지 암호화 도구는 블록 암호 알고리즘의 암호화 함수를 사용하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  31. 하나 이상의 프로세서들과;
    상기 프로세서들로부터 액세스가능한 메모리와;
    상기 프로세서들로부터 액세스가능한, 데이터를 수신하는 수신기와;
    메시지를 복호화하는 메시지 복호화 도구
    를 포함하고,
    상기 메시지 복호화 도구는,
    상기 수신기에서 암호문 봉투(cipher-text envelope) -상기 암호문 봉투는 제1 블록, 최종 블록 및 상기 제1 블록과 최종 블록 사이의 복수 개의 중간 블록을 포함하며, 각각의 중간 블록들은 제1 인접 블록과 제2 인접 블록을 포함함- 를 수신하는 동작,
    제1 키, 제2 키, 및 제3 키를 생성하는 동작,
    각각의 중간 블록에 대해서
    상기 중간 블록, 상기 제1 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제1 복호값을 사용해서 제1 중간값을 생성하는 동작,
    상기 제1 중간값, 상기 제2 키, 및 상기 중간 블록의 제2 인접 블록으로부터 수신된 제2 복호값을 사용해서 제2 중간값을 생성하는 동작, 및
    상기 제2 중간값, 상기 제3 키, 및 상기 중간 블록의 제1 인접 블록으로부터 수신된 제3 복호값을 사용해서 평문 블록을 생성하는 동작
    을 수행함으로써 평문 봉투(plain-text envelope)를 생성하는 동작
    을 수행할 수 있고,
    상기 중간 블록의 제1 인접 블록의 제2 중간값을 생성하기 위하여 상기 제2 중간값이 상기 중간 블록의 제1 인접 블록에 의해 사용되고, 상기 중간 블록의 제2 인접 블록의 평문 블록을 생성하기 위하여 상기 제1 중간값이 상기 중간 블록의 제2 인접 블록에 의해 사용되는,
    정보 처리 시스템.
  32. 청구항 32은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서,
    상기 암호문 봉투는 제1 제어 숫자(control number)를 더 포함하고,
    상기 평문 봉투는 평문 메시지 및 제2 제어 숫자를 포함하는 것인,
    정보 처리 시스템.
  33. 청구항 33은(는) 설정등록료 납부시 포기되었습니다.
    제32항에 있어서, 상기 메시지 복호화 도구는,
    상기 수신된 암호문 봉투의 무결성(integrity)을,
    상기 제1 제어 숫자가 상기 제2 제어 숫자와 같은 경우 "신뢰할 수 있음(Can be Trusted)" 설정으로 설정하고,
    상기 제1 제어 숫자가 상기 제2 제어 숫자와 같지 않은 경우 "신뢰할 수 없음(Cannot be Trusted)" 설정으로 설정하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  34. 청구항 34은(는) 설정등록료 납부시 포기되었습니다.
    제32항에 있어서, 상기 메시지 복호화 도구는 비밀 마스터 키를 수신하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  35. 청구항 35은(는) 설정등록료 납부시 포기되었습니다.
    제34항에 있어서, 상기 제1 키, 상기 제2 키, 및 상기 제3 키를 생성하기 위해, 상기 메시지 복호화 도구는 상기 비밀 마스터 키 및 상기 제1 제어 숫자로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  36. 청구항 36은(는) 설정등록료 납부시 포기되었습니다.
    제34항에 있어서, 상기 제1 키, 상기 제2 키, 및 상기 제3 키를 생성하기 위해, 상기 메시지 복호화 도구는 블록 암호 알고리즘의 복호화 함수(decryption function)를 사용하여 상기 비밀 마스터 키 및 상기 제1 제어 숫자로부터 상기 제1 키, 상기 제2 키 및 상기 제3 키를 생성하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  37. 청구항 37은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서, 상기 제1 중간값, 상기 제2 중간값, 및 상기 평문 블록을 생성하기 위해, 상기 메시지 복호화 도구는 블록 암호 알고리즘의 복호화 함수를 사용하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  38. 청구항 38은(는) 설정등록료 납부시 포기되었습니다.
    제31항에 있어서, 상기 메시지 복호화 도구는 상기 암호문 봉투를 비보안 매체를 통해 소스로부터 수신하는 동작을 더 수행할 수 있는 것인 정보 처리 시스템.
  39. 청구항 제1항 내지 제5항 또는 제7항 내지 제11항 중 어느 하나의 청구항에 기재된 메시지 암호화 방법의 각 단계들을 컴퓨터에서 구현 가능하게 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 청구항 제12항 내지 제19항 중 어느 하나의 청구항에 기재된 메시지 복호화 방법의 각 단계들을 컴퓨터에서 구현 가능하게 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
KR1020057022072A 2003-06-19 2003-10-20 3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법 KR100834364B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/464,891 US6996233B2 (en) 2003-06-19 2003-06-19 System and method for encrypting and verifying messages using three-phase encryption
US10/464,891 2003-06-19

Publications (2)

Publication Number Publication Date
KR20060019548A KR20060019548A (ko) 2006-03-03
KR100834364B1 true KR100834364B1 (ko) 2008-06-02

Family

ID=33563713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022072A KR100834364B1 (ko) 2003-06-19 2003-10-20 3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법

Country Status (6)

Country Link
US (1) US6996233B2 (ko)
KR (1) KR100834364B1 (ko)
CN (1) CN1820448B (ko)
AU (1) AU2003282981A1 (ko)
TW (1) TWI273809B (ko)
WO (1) WO2005006642A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650409B1 (en) 2004-09-15 2014-02-11 Altera Corporation FPGA configuration data scrambling using input multiplexers
US7685631B1 (en) * 2003-02-05 2010-03-23 Microsoft Corporation Authentication of a server by a client to prevent fraudulent user interfaces
US7617158B2 (en) * 2004-03-22 2009-11-10 Telefonaktiebolaget L M Ericsson (Publ) System and method for digital rights management of electronic content
US7725715B2 (en) * 2005-02-24 2010-05-25 Access Business Group International Llc System and method for three-phase data encryption
US7352621B2 (en) * 2005-06-23 2008-04-01 Intel Corporation Method for enhanced block management
KR20070076848A (ko) * 2006-01-20 2007-07-25 삼성전자주식회사 카드 인증 시스템의 보안레벨을 향상시키는 장치 및 방법
KR100746033B1 (ko) * 2006-02-17 2007-08-06 삼성전자주식회사 무결성 측정 장치 및 방법
KR100864092B1 (ko) 2006-11-23 2008-10-16 한국전자통신연구원 블록암호의 블록 체이닝 모드를 사용한 패킷 암호화 방법,이를 이용한 패킷 암/복호화 서비스 제공 방법
NZ608548A (en) * 2007-01-30 2014-06-27 Datasci Llc Systems and methods for filtering cellular telephone messages
CN100594691C (zh) * 2007-10-09 2010-03-17 华中科技大学 Manet网络的数据传递加密方法
KR100954224B1 (ko) 2007-11-06 2010-04-21 한국전자통신연구원 오프셋 코드북 암호화 장치
WO2010022776A1 (en) * 2008-08-28 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for a digital subscriber line
CN101409618B (zh) * 2008-11-24 2011-01-26 农革 一种多读者文档加密和解密方法
CN101924632B (zh) * 2010-09-07 2012-05-09 西南交通大学 一种分路加密传输交易信息的可靠传递方法
US9088805B2 (en) * 2012-02-08 2015-07-21 Vixs Systems, Inc. Encrypted memory device and methods for use therewith
US9154471B2 (en) 2013-11-26 2015-10-06 At&T Intellectual Property I, L.P. Method and apparatus for unified encrypted messaging
CN107070637A (zh) * 2017-01-13 2017-08-18 广东技术师范学院天河学院 一种交叠分组的数据加解密方法
US10615971B2 (en) * 2017-05-22 2020-04-07 Microsoft Technology Licensing, Llc High integrity logs for distributed software services
WO2019045741A1 (en) * 2017-08-31 2019-03-07 Visa International Service Association MULTIPARTITE ENCRYPTION ON SINGLE NODE

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4941176A (en) * 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
US5157567A (en) * 1990-12-05 1992-10-20 Seagate Technology, Inc. Composite disk drive head assembly having an improved core-to-slider bond
US5517567A (en) * 1994-08-23 1996-05-14 Daq Electronics Inc. Key distribution system
US5544086A (en) * 1994-09-30 1996-08-06 Electronic Payment Services, Inc. Information consolidation within a transaction network
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system
CN1365088A (zh) * 2001-01-19 2002-08-21 南相浩 密钥多重算法和多层存储法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. Schneier, Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C, John Wiley & Sons, Inc., 1996.

Also Published As

Publication number Publication date
US6996233B2 (en) 2006-02-07
WO2005006642A1 (en) 2005-01-20
TW200518549A (en) 2005-06-01
TWI273809B (en) 2007-02-11
CN1820448A (zh) 2006-08-16
CN1820448B (zh) 2012-09-12
AU2003282981A1 (en) 2005-01-28
KR20060019548A (ko) 2006-03-03
US20050008162A1 (en) 2005-01-13

Similar Documents

Publication Publication Date Title
KR100834364B1 (ko) 3단계 암호화를 사용하여 메시지를 암호화 및 검증하는시스템 및 방법
US9735962B1 (en) Three layer key wrapping for securing encryption keys in a data storage system
US8358781B2 (en) Nonlinear feedback mode for block ciphers
US7277542B2 (en) Stream cipher encryption application accelerator and methods thereof
WO2007118829A1 (en) Encryption apparatus and method for providing an encrypted file system
JPH08340330A (ja) 通信システム
EP2290871A2 (en) Encryption method and apparatus using composition of ciphers
US7894608B2 (en) Secure approach to send data from one system to another
KR20080025121A (ko) 비대칭 개인키로부터 비밀키 생성
JP2546504B2 (ja) 暗号における暗号化前処理装置および復号後処理装置
EP0877509A2 (en) Data encyrption/decryption method and apparatus
CN112035860A (zh) 文件加密方法、终端、装置、设备及介质
KR20130093557A (ko) 적어도 하나의 암호화 명령어를 포함하는 소프트웨어 애플리케이션의 협력 실행을 위한 시스템, 장치, 및 방법
CN113726725A (zh) 一种数据加解密方法、装置、电子设备及存储介质
CN115622772A (zh) 一种金融业务服务的金融数据传输方法及应用网关
Al-Qdah et al. Simple encryption/decryption application
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
AU2003257891A1 (en) Data Encryption Method
Whelihan et al. Shamrock: a synthesizable high assurance cryptography and key management coprocessor
Vennela et al. Performance analysis of cryptographic algorithms for cloud security
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
CN117221878B (zh) 一种基于无线网络设备的信息安全管控方法及装置
Ramos et al. Advanced Encryption Standard-Cipher Blockchain Mode for File Cryptography Stint Control
US20230044822A1 (en) Cypher system, encryption method, decryption method and program
Kaur et al. Cryptography in cloud computing

Legal Events

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