KR100233979B1 - 2-상태 암호화 키 회복 시스템 - Google Patents

2-상태 암호화 키 회복 시스템 Download PDF

Info

Publication number
KR100233979B1
KR100233979B1 KR1019970045080A KR19970045080A KR100233979B1 KR 100233979 B1 KR100233979 B1 KR 100233979B1 KR 1019970045080 A KR1019970045080 A KR 1019970045080A KR 19970045080 A KR19970045080 A KR 19970045080A KR 100233979 B1 KR100233979 B1 KR 100233979B1
Authority
KR
South Korea
Prior art keywords
key
recovery
value
secret
encrypted
Prior art date
Application number
KR1019970045080A
Other languages
English (en)
Other versions
KR19980032357A (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 KR19980032357A publication Critical patent/KR19980032357A/ko
Application granted granted Critical
Publication of KR100233979B1 publication Critical patent/KR100233979B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement 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
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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

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

본 발명의 암호화 키 회복 시스템은 두가지 상태로 동작한다. 제 1 상태에서, 송신자는 수신자와 비밀 값을 설정한다. 각각의 키 회복 에이젼트에 대해, 송신자는 키-발생 값을 비밀 값의 1-방향 함수로서 발생하며, 키 회복 에이젼트의 공용 키에 의해 키-발생 값을 암호화한다. 제 2 상태에서, 특정의 암호화 세션에 대해 수행될 경우, 송신자는 각각의 키 회복 에이젼트에 대해 대응하는 키-발생 값을 1-방향 함수로서 키-암호화 키를 발생하며, 이 세션 키를 키 회복 에이젼트들의 키-암호화 키들에 의해 다수회 암호화한다. 암호화된 키-발생 값들 및 다중 암호화된 세션 키는 비밀 값을 회복하고자 하는 당사자에 의한 인터셉트를 허용하는 방법에 의해 다른 회복 정보와 함께 전송된다. 비밀 값을 회복하기 위해, 회복 요구 당사자는 암호화된 키-발생 값들 및 공용 회복 정보를 키 회복 에이젼트에게 제공하며, 에이젼트는 키-발생 값을 암호해독하며, 대응하는 키-발생 값들로부터 키-암호화 키를 재발생하여, 회복중인 당사자에게 이 재발생된 키-암호화 키들을 제공한다. 회복 당사자는 비밀 키를 회복하기 위해 키-암호화 키들을 사용한다. 키-발생 값들은 키-암호화 키들로부터 도출될 수 있으므로, 이들은 새로운 값들 또는 새로운 공용 키 암호화를 요구하지 않고 다수의 암호화 세션에 걸친 주기동안 사용될 수 있다.

Description

2-상태 암호화 키 회복 시스템
본 발명은 암호화 키 회복 시스템(a cryptographic key recovery system)에 관한 것으로, 보다 구체적으로는, 통신 당사자간에 키를 설정하는데 있어 기존의 시스템과 상호동작할 수 있는 키 회복 시스템에 관한 것이다.
데이터 암호화 시스템은 데이터 처리 분야에 잘 알려져 있다. 일반적으로, 이러한 시스템은 암호화 키를 사용하여 평문 입력 블럭(a plaintext input block)에 대해 암호화 조작을 수행하여 암호문 출력 블럭(a ciphertext output block)을 생성함으로써 동작한다. 암호화된 메시지의 수신자는 해독 키(a decryption key)를 사용하여 대응하는 해독 동작을 수행함으로써 평문 블럭을 회복한다.
암호화 시스템은 2개의 일반적인 범주로 나뉘어진다. DES(Data Encryption Standard) 시스템과 같은 대칭(또는 전용 키) 암호화 시스템은 메시지를 암호화하고 해독하는데 동일한 비밀 키(secret key)를 사용한다. DES 시스템에서는, 64 비트의 평문 블럭을 암호문 블럭으로 변환하기 위해, 또는 그 역동작을 위해 56개의 지정가능한 비트를 갖는 키가 사용된다.
반면에, 비대칭(또는 공용 키) 암호화 시스템은 암호화 및 해독을 위해 서로로부터 용이하게 도출해낼 수 없는 상이한 키를 사용한다. 메시지를 수신하고자 하는 사람은 한 쌍의 대응하는 암호화 키 및 해독 키를 생성한다. 이 경우 암호화 키는 공개되고, 대응하는 해독 키는 비밀로 유지된다. 수신자와 통신하고자 하는 사람이면 누구든지 수신자의 공용 키를 사용하여 메시지를 암호화할 수 있다. 그러나 수신자만이 전용 키를 가지므로 수신자만이 메시지를 해독할 수 있다. 비대칭 암호화 시스템으로 가장 널리 알려진 것은 그의 개발자, 즉, 리베스트(Rivest), 샤미르(Shamir) 및 애들맨(Adleman)의 이름을 딴 RSA 시스템이다.
비대칭 암호화 시스템은 통상 대칭 암호화 시스템보다 많은 양의 연산을 요하지만, 이들이 암호화 키의 전송을 위한 안전한 채널을 요하지 않는다는 장점을 갖는다. 이러한 이유로, 비대칭 암호화 시스템은 대칭 암호화 키와 같은 고도로 민감한 데이터를 일회 전송하는데 흔히 사용된다.
모든 형태의 데이터 암호화 시스템은 정부 정보 기관 및 법 집행 기관의 관심을 끌어왔는데, 이것은, 인증되지 않은 제 3 자에 의한 해독을 방지하는 데이터 암호화 능력은 평문 데이터를 액세스하려는 합법적인 이유를 갖는 정보 또는 법 집행 기관에 의한 복호화도 못하게 하기 때문이다. 이러한 염려로 인해, 정부는 강력한 암호화 시스템의 사용 또는 수출을 금지하거나, 키-검토 공격(key-exhaustion attacks)(즉, 올바른 키가 발견될 때까지 모든 가능한 키를 체계적으로 검사함)을 받기 쉬운 열등한 키의 사용으로 승인을 통제하였다. 이러한 열등한 암호화 시스템은 그들이 인증된 정부 기관에 대해서 취약한 만큼 인증되지 않은 제 3 자에 대해서도 취약하다는 분명한 단점을 갖는다.
최근, 다양한 암호화 키 회복 시스템이 전자 통신 분야에서의 보안에 대한 통신 당사자의 요구 및, 국가 보안에 대한 범죄 또는 위협을 밝혀내기 위해 필요할 때 이러한 통신에 대한 액세스를 위한 법 집행 기관의 요구간의 절충으로서 제안되었다. 통상, 이러한 키 회복 시스템에서 통신 당사자에 의해 사용되는 키의 전부 혹은 일부는 실제로 키 부분(key portions)을 키 회복 에이젼트에게 제공(이 경우 키 부분은 "에스크로우(escrow)"되었다고 말함)함으로써 또는 통신 내용 자체내에 충분한 정보를 제공(키 부분을 암호화하는 등의 방법으로)함으로써, 하나 이상의 키 회복 에이젼트가 키 부분을 재생성할 수 있도록 하여 키 회복 에이젼트가 이를 이용할 수 있도록 한다. 키 회복 에이젼트들은 인터셉트(interception)를 허가하는 법원의 영장과 같은 적절한 인증 증거를 제시할 경우에 한해서만 법 집행 기관의 요구에 대해 에스크로우된 또는 재발생된 키 부분을 공개하게 된다. 키를 회복하기 위해 함께 작용해야 하는 다수의 키 회복 에이젼트들을 사용함으로써 법 집행 기관이 부정한 키 회복 에이젼트를 사용하여 키를 부당하게 회복할 수 있는 가능성을 최소화한다.
키 회복 시스템들은 프라이버시에 대한 통신 당사자의 이해를 충족시키는데, 이는 그들의 암호화 시스템이 제 3 자에 대해 스스로 충분한 강도를 유지하고, 암호화에 대한 자국내의 제한을 따르거나 수출 요건을 만족시키기 위해 약화될 필요가 없기 때문이다. 동시에, 키 회복 시스템들은 암호화되지 않은 통신이 사전에 인터셉트되는 경우(예를 들면, 법정 명령이 획득된 경우)에 암호화된 통신의 인터셉트를 허용함으로써 합법적인 법 집행의 요구를 충족시킨다.
법 집행의 요구를 충족시키는 것 이외에도, 키 회복 시스템은 순수히 사적인 환경에 응용될 수 있다. 따라서, 조직체는 고용인들이 키가 회복될 수 없는 강력한 암호화를 중요한 화일에 사용하는 것을 염려할 수도 있다. 키를 손실하면 결과적으로 저장된 중요 데이터가 손실된다.
키 회복 시스템의 다수의 바람직한 기능이 확인되었다. 따라서, 가장 중요한 특성으로서, 키 회복 시스템은 소프트웨어 또는 하드웨어로 구현될 수 있어야 한다. 키 회복 시스템은 설치를 위해 제 3 자와의 통신을 요구해도 안되며(즉, "박스(box) 밖에서" 작동해야 함), 메시지를 생성 또는 접속을 셋업하는 동안 제 3 자와의 통신을 필요로 해서도 안된다. 키 회복 시스템은 상이한 국가의 사용자간에 상호동작성을 제공해야 한다. 사용된 알고리즘은 공개적으로 알려져야 하며, 메카니즘은 알고리즘과 독립적이여야 한다. 설계는 개방되어야 하며, 공개된 사양에 기초하여 다수의 판매자에 의해 구현될 수 있어야 한다. 키 회복 시스템은 각각의 국가에 대해 독립적으로 키 회복 능력을 제공해야 한다. 단일의 시스템내에서 키 회복 시스템은 상이한 환경의 상이한 보안 레벨에 대한 호환성을 제공해야 하며, 법에 의해 허용가능한 최고의 암호화 보안 레벨을 제공해야 한다. 키 회복 시스템은 기존의 암호화 시스템에 대해 모듈화된 확장성(a modular extension)(추가성(add-on))을 제공해야 한다. 키 회복 시스템은 키 회복에 대한 순응을 집행하는 제어 포인트(a control point)를 선택사양적으로 유지하면서 모든 키 교환 메카니즘이 사용될 수 있도록 해야 한다. 교환된 키의 보안 특성은 회복을 허용하는 경우를 제외하고는 유지되어야 한다.
이보다는 보다 덜 중요하지만 다른 기능들도 굉장히 요구된다. 키 회복 시스템은 저장-및-발송형(store-and-forward)(즉, 비대화형(non-interactive)) 및 대화형 환경을 모두 지원해야 한다. 키 회복 시스템은 키를 회복하기 위해 다수의 키 회복 에이젼트의 합작을 요구하는 정책적 선택사양을 지원(부정한 키 회복 에이젼트에 대한 보호를 제공)해야 한다. 키 회복 시스템은 선택사양적으로 패치된(부당한) 구현(a patched implementation)이 언패치된(정당한) 구현(an unpatched implementation)과 상호동작하지 못하게 해야 한다.
다양한 형태의 키 회복 시스템이 디. 이. 데닝(D. E. Denning) 및 디. 케이. 브랜스태드(D. K. Branstad)의 "A Taxonomy for Key Escrow Encryption Systems", Communication of the ACM, vol. 39, no. 3, Mar. 1996, pp. 34-40에 개시되어 있으며, 본 명세서에서 참조로 인용된다.
이하에서는 몇 개의 특정 키 회복 시스템이 설명된다.
미칼리(Micali) 등의 미국 특허 제 5,276,737 호("미칼리의 제 1 출원") 및 제 5,315,658 호("미칼리의 제 2 출원")는 "정당한" 공용 키 암호법(a "fair" public key cryptosystem)을 개시하며, 여기서 공용/전용 키 쌍중 전용 키는 수탁자들(trustees)에게 할당되는 "지분들(shares)"로 분배된다. 이러한 "분배(breaking)"는 다음과 같은 방법으로 이루어진다. 즉, (1) 키를 재구성하는데 모든 수탁자들(또는 사전결정된 정족수(a predetermined quorum))의 지분들이 요구되며, (2) 각각의 수탁자는 개인적으로 자신 지분의 올바름을 검증할 수 있다. 모든 수탁자가 그들 지분의 올바름을 보증했을 때 사용자의 공용 키(에스크로우된 전용 키에 대응함)가 키 관리 센터에 의해 인증된다. 사전결정된 요구에 따라, 수탁자들은 그들 지분을 법 집행 기관 또는 다른 회복 엔티티에 제공하며, 그 때서야 이들은 지분들로부터 전용 키를 재구성하며 이 전용 키를 이용하여 사용자에 대한 통신을 모니터할 수 있다.
미칼리 시스템이 유리하게도 키를 다수의 에스크로우 에이젼트들간에 분배하고 있지만, 이 시스템은 몇가지 단점을 갖는다. 미칼리 시스템은 사용자와 다른 통신자간에 통신이 이루어질 수 있기 전에 능동적인 참여를 요구한다. 또한, 수탁자들은 사실상 지분을 에스크로우된 채로 유지(또는 외부적으로 암호화된 형태로 보존)해야 하므로, 각각의 수탁자는 결코 회복 요구의 당면과제가 아닌 다수의 키들의 지분들을 유지 또는 보존하는 것으로 끝날 수도 있다.
1996년 4월 10일, "Cryptographic Key Recovery System"이란 명칭으로 출원된 디. 비. 죤슨(D. B. Johnson) 등의 미국 특허 출원 제 08/629,815 호("죤슨 등의 제 1 출원")는 다수의 키 회복 에이젼트들을 사용한 부분적 키 회복 시스템을 개시한다. 이 특허 출원에 개시된 시스템의 한 버전(version)에서는 송신자가 한 세트의 키 회복 값들(또는 키 요소들) P, Q 및 R(선택사양적임)을 생성한다. P 및 Q 값들을 XOR 가산에 의해 결합한 후 그 결과를 R과 연관시키고, 이 연관 결과를 해쉬(hash)하여 키를 발생함으로써 세션 키(session key)가 생성된다. 그리고 나서, P 및 Q 값은 각각의 키 회복 에이젼트들의 공용 키를 사용하여 암호화되며, 암호화된 P 및 Q 값은 암호화된 메시지와 함께 세션 헤더(a session header)내에 (다른 회복 정보와 함께) 포함된다. R 값이 생성된 경우, 이 R 값은 어떠한 키 회복 에이젼트도 이용할 수 없으며, 키를 회복하고자 하는 법 집행 기관에 대해 중요한 작업 인수(a nontrivial work factor)를 제공하도록 비밀로 유지된다.
수신자는 자신의 데이터를 사용하여 정보를 재생성하고 그 결과를 비교함으로써 회복 정보의 올바름을 검증한다. 재생성된 회복 정보가 세션 헤더내의 정보와 일치하면, 수신자는 암호화된 메시지를 해독하기 시작한다.
암호화된 메시지를 인터셉트하는 (법 집행 기관과 같은) 당사자는 동반하는 세션 헤더로부터 암호화된 P 및 Q 값과 다른 회복 정보를 획득한다. 세션 키를 회복하기 위해, 당사자는 세션 헤더로부터의 암호화된 P 및 Q 값을 키 회복 에이젼트에 제공하며, 에이젼트는 P 및 Q 값을 해독하여 해독된 값을 회복을 요구한 당사자에게 복귀시킨다. 이 때, 이 당사자는 세션 키를 재구성(필요하다면 강제로 R 값을 발생)하여 암호화된 메시지를 해독한다.
다른 키 회복 시스템이 리프너(Lipner) 등의 미국 특허 제 5,557,346 호에 개시되며, 이 특허에서는 송신자가 세션 키를 제 1 세션 키 부분과 제 2 세션 키 부분으로 나누며, 제 1 세션 키 부분은 임의의 수로 설정하고, 제 2 세션 키 부분은 이 임의의 수와 세션 키의 XOR 프로덕트(product)로 설정한다. 송신자는 제각기의 세션 키 부분을 제 1 및 제 2 키 회복 에이젼트의 공용 암호화 키를 사용하여 암호화하고 두 암호화 프로덕트를 연관시킴으로써 법 집행 액세스 필드(a law enforcement access field;LEAF)를 생성한다. 송신자는 또한 원래의 세션 키 부분들을 연관시킴으로써 LEAF 검증 스트링(a LEAF verification string;LVS)을 생성하며, 이것을 세션 키를 사용하여 암호화함으로써 암호화된 LEAF 검증 스트링(an encrypted LEAF verification string;ELVS)을 형성한다. 마지막으로, 송신자는 이들 LEAF 및 ELVS와 함께 암호화된 메시지를 수신자에게 송신한다.
수신자는 암호화된 메시지를 해독하기 전에 LEAF를 재생성하여 송신자가 키 회복 에이젼트들에 의한 세션 키의 회복을 사실상 허용하게 되는 적절한 LEAF를 생성하였는지를 검증한다. 이것은 ELVS를 해독하여 세션 키 부분들을 획득한 후 제각기의 세션 키 부분들을 제 1 및 제 2 키 회복 에이젼트들의 공용 암호화 키들을 사용하여 암호화함으로써 수행된다. 수신자가 이와 같은 방식으로 송신된 LEAF를 재생성하는데 성공하면, 수신자는 이 LEAF가 진짜인 것으로 결정하고 메시지를 해독하기 시작한다. 실패하면, 수신자는 이 LEAF가 부정한 것으로 결정하고 해독 단계를 시작하지 않는다.
1996년 7월 29일, "Interoperable Cryptographic Key Recovery System"이란 명칭으로 출원된 디. 비. 죤슨(D. B. Johnson) 등의 미국 특허 출원 제 08/681,679 호("죤슨 등의 제 2 출원")는 키 회복 값을 생성하기 위해 "엔트로피-보존(entropy-preserving) 절차를 사용하는 키 회복 시스템을 개시한다. 죤슨 등의 제 2 출원에 개시된 바와 같이, P, Q 및 R 키 회복 값들(여기서 P 및 Q는 암호화된 형식으로 제각기의 키 회복 에이젼트들에게 제공되며 R은 죤슨 등의 제 1 출원에서처럼 비밀로 유지됨)은 회복된 세션 키 K와, 수신자 및 회복 처리에 참가하고 있는 당사자가 이용할 수 있는 비보안 정보만을 입력으로서 갖는 키 반전 함수(a key inversion function)를 사용하여 생성된다. 이러한 엔트로피-보존 키 반전 함수를 사용함으로써, 단지 수신자가 회복 정보를 검증할 수 있도록 수신자에게 추가의 비밀 정보를 전송해야 하는 필요성이 제거된다.
미칼리의 시스템과는 대조적으로, 죤슨 등의 제 1 및 제 2 시스템과 리프너 등의 시스템은 키가 실제로 회복될 때까지 키 회복 에이젼트들의 개입을 요구하지 않는다. 그러나, 죤슨 등의 시스템은 물론 리프너 등의 시스템은 각각의 새로운 세션 키에 대해 키 회복 에이젼트들의 공용 키를 사용하여 새로운 키 회복 값을 암호화해야 할 필요가 있다. 공용 키 암호화는 계산 비용이 많이 드는 동작이므로, 각각의 새로운 세션 키에 대해 이러한 동작을 수행하는 것은 키 회복 시스템의 연산 부담을 크게 증가시킨다.
본 발명은 키 회복을 처리하는 시스템을 제공하기 위한 것이다. 본 발명은 키 회복 정보의 부분이 한번 발생되도록 한 후 다수의 암호화된 데이터 통신 세션들 및 암호화된 화일 응용에 사용되도록 함으로써 앞서 설명된 죤슨 등의 출원에 개시된 시스템을 향상시킨다. 보다 구체적으로, 단 한번 생성된 언급된 키 회복 정보의 부분은 공용 키 암호화 동작을 요구하는 부분이다. 그러므로 본 발명은 죤슨 등의 출원에서 요구되는 고가의 공용 키 암호화 동작을 감소시키는 방법을 제공한다.
선행 기술과 달리, 본 발명은 키 회복 에이젼트의 공용 키하에서 키(즉, 키 회복 프로토콜에 의해 보호되고 회복되어야 할 키)를 암호화하지도 않으며, 키 회복 에이젼드들의 공용 키들하에서 키를 부분들 또는 조각들 또는 지분들로 나누거나 보안 키의 이들 부분들 또는 조각들 또는 지분들을 암호화하지도 않는다.
본 발명에서, 키 회복 에이젼트들의 공용 키들하에서 암호화된 정보는 요구하는 통신 당사자가 키 회복 단계를 실행하기 위해 키 회복 에이젼트에게 궁극적으로 제공하게 되는 정보로서, 한 세트의 무작위로 발생된 키들(소위 키-생성 키들(key-generating keys)이라 함)로 구성된다. 이들 키는 키 회복 프로토콜을 사용하여 보호 및 회복되도록 의도된 키들과 독립적이며 그에 관련되지 않는다. 사실, 발생된 키-생성 키들은 키 회복 프로토콜하에서 보호되어야 할 키 또는 키들의 값을 알기 전에 키 회복 에이젼트들의 공용 키를 사용하여 암호화될 수 있다. 따라서, 본 발명은 잠재적으로 장치 또는 시스템의 처리 부하가 낮은 시간동안에 고가의 공용 키 동작이 실행되도록 하거나 또는 이들 동작이 보호-대상-키(key-to-be-protected)가 키 회복 시스템에 의해 처리되는 시간에 수행되어야 할 경우 기대되는 시간보다 잠재적으로 더 긴 시간에 걸쳐 요구되는 처리를 분산시키도록 한다. 그리고 본 발명은 고가의 공용 키 동작이 한 번 수행되도록 한 후 잠재적으로 긴 시간에 걸쳐 다수의 키들의 회복을 인에이블시키기 위한 키 회복 처리에 사용되도록 한다.
이제 본 발명에 따른 키 회복 방법과 종래 기술에 따른 방법간의 한가지 차이점이 설명된다. 본 발명은 키 회복 방법은 지포드(Gifford)에 의해 제안된 소위 암호화 밀봉(cryptographic sealing) 보호 메카니즘(디. 케이. 지포드(D. K. Gifford)의 "정보 비밀 및 인증을 위한 암호화 밀봉(Cryptographic Sealing for Information Secrecy anc Authentication)", Communications of the ACM, vol. 25, no. 4, pp. 274-286, April 1982 참조)에 근거한다. 지포드에 따르면, 이 메카니즘은 "임의의 객체를 키를 이용하여 밀봉하는 발상에 기초한다". 이러한 보호 메카니즘은 보안 특성을 제공하며, 여기서 밀봉된 객체는 객체를 밀봉하는데 사용되었던 키를 밀봉해제하는 키들의 세트를 소유하지 않는 사람에게는 소용없게 된다. 암호화 밀봉은 데닝(Denning)에 의해 보다 상세히 설명(디. 이. 데닝(D. E. Denning)의 암호화 및 데이터 보안성(Cryptography and Data Security), Addison-Wesley Publishing Company, Reading, Massachusetts, 1982, pp. 229-230 참조)되며, 데닝은 암호화 밀봉을 "고정(lock) 및 키 메카니즘"의 한 예로서 설명한다. 데닝에 따르면, 데이터를 암호화한다는 것은 "데이터를 고정한다는 것으로 해독 키에 의해서만 고정해제될 수 있다. X가 키 K를 이용하여 암호화된 객체이면, X에 대해 액세스하려면 K가 요구된다. K에 대한 액세스는 "해결자(an opener)"를 X와 연관시킴으로써 제어될 수 있다. 해결자들은 다양한 종류의 공유, 즉, OR-액세스, AND-액세스 및 정족수-액세스를 제공할 수 있으며, 이하에서 이들 각각의 상이한 해결자들이 설명된다.
OR-액세스의 경우, K는 n개의 암호해독 변환 리스트 D1, D2, ···, Dn중 임의의 Di에 의해 회복될 수 있다. 해결자 R는 리스트 R=(E1(K), E2(K), ···, En(K))에 의해 정의되며, 여기서 Ei는 Di에 대응하는 암호화 변환이다. 예를 들어, (Ei, Di)는 RSA 키들의 공용 키 및 전용 키 쌍일 수 있다. K는 각각의 Ei하에서 개별적으로 암호화되므로, 모든 사람 또는 프로세스는 Di를 이용하여 K를 암호해독하고, 획득할 수 있다.
AND-액세스의 경우, 암호해독 변환 리스트 D1, D2, ···, Dn내의 모든 Di가 K를 회복하기 위해 제공되어야 한다. 여기서 해결자 R는 R=En(En-1(···E2(E1(K))···))로 정의된다. 모든 Di는 K를 암호해독하고 회복하기 위해 제공되어야 한다.
정족수-액세스의 경우, K는 리스트 D1, D2, ···, Dn내의 Di의 임의의 t 서브세트(subset)로부터 회복될 수 있다. 여기서 R은 리스트 R=(E1(K1), E2(K2), ···, En(Kn))로 정의되며, 여기서 각각의 Ki는 (t, n) 임계 기구(threshold scheme) 또는 키 공유 기구(key sharing scheme)내에서 K의 보안 지분(a secret share)이다. t=n인 경우에 대해, 키 K를 재구성하기 위해 모든 Ki가 회복되어야 하며, 따라서, 리스트 D1, D2, ···, Dn내의 모든 Di가 K를 회복하기 위해 제공되어야 한다.
본 발명의 키 회복 보호 메카니즘은 지포드의 AND-액세스 암호화 밀봉 메카니즘에 근거한다. K가 키 회복 메카니즘에 의해 보호되어야 할 키를 나타내는 경우, 이 때 K는 하나 이상의 의사 무작위 추출로 발생된 키-암호화 키들 KK1, KK2, 등에 의해 암호화된다. 이들 키-암호화 키들(KK1, KK2, 등)은, 임의의 KK 키에 대한 지식이 KG 키가 산출될 수 있도록 허락하지 않을 것을 보장하며, 나머지 공개되지 않은 키-암호화 키의 보안을 유지하면서 키 회복 에이젼트에게 하나 이상의 키-암호화 키들을 공개하는 처리에 의해 앞서 언급된 키-발생 키들(KG1, KG2, 등)으로부터 도출된다. 이와 같이 하여, 본 발명은 1방향 해쉬 기능(a one-way hash function)을 사용하여, 키 회복 에이젼트들에게 제공되는 키-발생 키들과 단일 키-발생 키로부터 도출된 다수의 키-암호화 키들로 구성되는 키 계층(a key hierarchy) 및 다른 정보를 고려한다. 따라서, 본 발명에서 키-발생 키들로부터 도출된 상이한 키-암호화 키들은 키 회복 메카니즘에 의헤 보호되는 키들을 암호화하는데 사용된다. 이것은, 단지 보호되는 키들을 암호해독하여 회복하는데 필요한 적절한 키-암호화 키들만을 해제함으로써 키 회복 에이젼트들에게 (인증된 요구에 근거하는) 보호되는 키들에 대한 제각기의 액세스를 가능하게 하기 위한 수단을 제공한다.
본 발명에서, K의 암호화된 값은 전송된 암호화된 메시지 또는 저장된 암호화된 데이터 화일에 부가되며, 이렇게 함으로써 (필요한 경우) 키 회복을 용이하게 하는데 이용가능하게 보장된다. 예를 들어, K가 KK1 및 KK2에 의해 암호화 밀봉(암호화)되고 암호화된 값 eKK1(eKK2(K))가 암호화된 메시지 또는 화일에 부가된 경우, 암호화된 데이터를 액세스하기를 원하는 요구 당사자는 우선 키 회복 에이젼트1로부터 KK1을 획득하고 키 회복 에이젼트2로부터 KK2를 획득함으로써 K를 회복(즉, 키 회복 단계들을 실행)한 후, KK1 및 KK2를 사용하여 eKK1(eKK2(K))를 암호해독하며, 마지막으로 K의 복원된 값을 이용하여 암호화된 데이터를 암호해독한다. 키-암호화 키들 KK1, KK2 등은 의사 무작위 추출로 발생되므로, 키 관리 및 KK1, KK2 등을 지원하는 키 하부구조는 키 회복 메카니즘에 의해 복원되도록 의도된 키 K와 독립될 수 있음이 분명하다.
대조적으로, 미칼리에 의해 개시된 키 회복 방법(미국 특허 제 5,276,737 호 및 제 5,315,658 호)은 키 공유에 근거한다. 키 공유의 경우, 키 K는 우선 한 세트의 비밀 지분으로 분할된다. 이 비밀 지분들은 대응하는 세트의 수탁자들에게 에스크로우되어 제공된다. 인증된 통신 당사자는 다음과 같은 단계들, 즉, (1) 우선 수탁자들로부터 필요한 수의 비밀 지분들을 요구하여 획득한 후, (2) 이 비밀 지분들을 결합하여 K를 재생성함으로써 원래의 키 K를 회복할 수 있다.
마찬가지로, 리프너 등에 의해 개시된 키 회복 방법(미국 특허 제 5,557,346 호 및 제 5,557,765 호)은 하나의 키 "반(half)"을 임의의 수로 설정하고 다른 "반"을 임의 수와 키의 XOR 프로덕트로 설정함으로써 수행되는 키 분할에 근거한다.
쉬나이어(Schneier)는 비밀 분할을 메시지를 조각들로 분할하는 것으로서 정의한다. (브루스 쉬나이어(Bruce Schneier)의 Applied Cryptography, Second Edition, John Wiley & Sons, Inc, New York, 1996, pp.70-71 참조.) 쉬나이어에 의해 제공된 예는 메시지 M가 3개의 임의 비트-스트링, R, S 및 T를 생성한 후 종속 비트-스트링 U=M xor S xor T를 산출함으로써 분할될 수 있음을 교시하며, 여기서 M은 R, S, T 및 U를 XOR 연산함으로써 재생성될 수 있다. 또한 리프너 등 및 계속되는 쉬나이어에 의한 교시로부터, 분할에 대한 통상적이고 바람직한 방법은 분할될 양과 동일한 사이즈의 하나 이상의 임의의 수를 생성한 후 동일한 사이즈(예를 들면, 임의의 수와 분할되어야 할 양의 XOR 프로덕트)의 하나의 종속 값을 산출하는 것을 포함함이 명백하다. 따라서, 리프너 등 및 쉬나이어는 키 또는 메시지를 분할하는 것이 분할될 양이 알려진 후에만 산출될 수 있는 적어도 하나의 종속 값의 산출을 포함함을 개시한다. 따라서, 키 분할의 경우에, K가 알려지기 전에 키의 분할 또는 부분이 수탁자(또는 키 회복 에이젼트들)들의 공용 키하에서 암호화될 수 없다.
마찬가지로, 죤슨 등의 제 2 특허출원(제 08/681,679 호)에 의해 생성된 P 및 Q 값은 종속 값들이며, 단지 키 K의 값이 알려진 후에만 생성될 수 있다. 그러므로 죤슨 등의 제 2 특허출원은 또한 키 K가 알려진 후에야 키 회복을 용이하게 하는데 필요한 P 및 Q 값들이 암호화될 수 있다는 단점을 갖는다.
죤슨 등의 제 1 특허출원(제 08/629,815 호)에 의해 생성된 P 및 Q 값들은 완전히 임의로 발생된 값들이며, 따라서 K의 값이 알려지기 전에 발생될 수 있고 K의 값이 알려지기 전에 키 회복 에이젼트들의 공용 키하에서 암호화될 수 있다. 그러나 죤슨 등의 제 1 특허출원에 의해 개시된 키 회복 방법은 키 K가 독립적인 키 값이 아니라는 단점이 있다. 대신에, 키 K는 독립적으로 생성된 P 및 Q로부터 산출되며, 이것은 이러한 키 회복 방법이 모든 형식의 키 분배를 지원하지 않음을 의미한다. 이 경우, 키가 키 회복을 지원하는 키 분배 프로토콜에 의해 분배된 경우에만 키 회복 메카니즘을 사용할 수 있다. 대조적으로, 본 발명은 키 K가 임의의 키 분배 프로토콜을 사용하여 분배될 수 있다는 장점을 가지며, 미칼리에 의해 개시된 키 공유에 근거한 키 회복 메카니즘 또는 리프너 등에 의해 개시된 키 분할에 근거한 키 회복 메카니즘의 단점들을 제거한다.
데이터에 대한 액세스를 제어하기 위한 목적으로, 둘 이상의 키에 의해 데이터를 암호화하는 방법(이 경우 키 대신에 메시지를 암호화함)이 샤암(Chaum)에 의해 개시된다(디. 엘. 샤암(D. L. Chaum)의 "Untraceable Electronic Mail, Return Address, and Digital Pseudonyms", Communications of the ACM, vol. 24, no. 2, pp 84-88, Feb.1981 참조). 샤암은 각각의 사용자가 공용 키 및 전용 키 쌍을 갖는 메일 시스템을 개시하며, 여기서 Ka는 주소 A를 갖는 수신인(an addressee)의 공용 키이다. 이 메일 시스템은 또한 소위 "믹스(a mix)"라고 불리우는 컴퓨터를 포함하며, 이 컴퓨터는 전달되기 전에 각 메일의 세목을 처리한다. 당사자는 메시지 M를 수신인의 공용 키 Ka로 밀봉하고 주소 A를 부착한 후 그 결과를 믹스의 공용 키 K1으로 밀봉함으로써 주소 A의 당사자에게 전달할 메시지를 준비한다. 따라서, 각각의 M가 이중 암호화된다. 즉, 수신인의 Ka 및 믹스 컴퓨터의 K1으로 암호화된다. 믹스는 각각의 입력을 암호해독하여 Ka하에 암호화된 메시지를 주소 A의 수신인에게 전송한다. 믹스의 목적은 믹스에 대한 입력내의 메시지와 믹스의 출력내의 메시지간의 대응성(correspondences)을 숨기는 것이다.
메이어(Meyer) 및 마티야스(Matyas)에 의하면, 키(KSTR)가 2개의 키들(KTR1 및 Knode)하에서 암호화되어 이중 암호화된 키 값 eKnode(eKTR1(KSTR))을 형성한다(씨. 에이치. 메이어(C. H. Meyer) 및 에스. 엠. 마티야스(S. M. Matyas)의 암호법(Croptography), John Wiley and Sons, Inc., New York, 1982, p.558 참조). 이 방법은 또한 브레치틀(Brachtl) 등에 의한 "Transaction Security System"이란 명칭의 미국 특허 제 4,755,940 호에 개시된다. 전자 기금 네트워크(an electronic funds network)내에서, 시변(time-variant) 키 KSTR는 무작위로 발생된 후 먼저 키 KTR2하에서 암호화되고 키 Knode하에서 두번째 암호화되며, 여기서 Knode는 시변 시스템 키이고 KTR1은 고객에게만 알려진 개인용 키 및 고객에게만 알려진 보안 핀(PIN)(개인용 식별 번호(Personal Identification Number)로부터 도출된 키이다. 따라서, 보안 키 KSTR를 회복하려면, 시스템-보유 키(a system-held key), Knode와 사용자-보유 정보(user-held information)로부터 도출된 사용자 키, KTR1을 알아야 할 필요가 있다.
또한 다음과 같이 설명될 수 있는 키 공유의 두가지 경우가 있다. 즉, (1) K가 종속 키인 경우, 또는 (2) K가 독립 키인 경우이다. K가 종속 키인 경우에 대해, 단순 키 공유 기법을 생각할 수 있으며, 이 경우 각각의 비밀 지분은 독립적으로 발생된 무작위 값이다. 예를 들어, 간격 [1, p-1]에서 5개의 임의의 정수들 RN1, RN2, ···, RN5을 생성하고, 미국 특허 제 5,276,737 호에서 미칼리에 의해 개시된 바와 같이 K를 그들의 합 mod p(p는 소수(a prime number))로 정의할 수 있다. 이들 값 RN1, RN2, ···, RN5은 비밀 지분이 된다. 그러나 본 발명은 SKR-보호될 키 K가 임의의 키일 수 있고, 임의의 독립적인 키 전송 또는 키 일치 프로토콜의 사용에 도달될 수 있는 회복 메카니즘을 제공하고자 한다. 따라서, 본 발명은 K가 종속 키 값인 것을 허용할 수 없다. 따라서, 비밀 공유 기법이 사용될 경우, K가 독립 키 값인 공유 기법을 사용해야 할 필요가 있다. 그러나 K가 독립 키인 비밀 공유 기법에서, 비밀 지분들중 적어도 하나는 독립 값인 경우일 것임이 분명하다. 예를 들어, 3개의 비밀 지분들이 있는 경우, 이 때 이들 비밀 지분들중 기껏해야 2개만이 독립적인 임의 발생된 값일 수 있다. 이들 값중 하나는 2개의 독립 지분들 및 키 K로부터 산출되어야 한다. 예를 들어, K가 간격 [1, p-1]내의 임의 정수로 가정했을 때, 이 간격내에서 4개의 임의 정수 RN1, RN2, ···, RN4를 생성하고, RN5를 RN1, RN2, RN3, RN4 및 K mod p의 합으로 정의할 수 있다. 그러므로, K가 독립적인 키 값일 때 비밀 공유에 관하여 다음과 같이 말할 수 있다.
1. 비밀 지분들의 적어도 하나는 K 값이 알려진 후에 산출되어야 한다.
2. 모든 비밀 지분들은 보호(즉, 비밀 유지)되어야 한다. 암호화가 사용된 경우, 적어도 하나의 암호화는 K가 알려진 후에만 수행될 수 있다.
키 분할은 키를 단편들 또는 부분들로 분할하는 기법으로서, 키는 입력으로서 지정된다. 즉, K는 독립적인 키 값이다. 그러므로 키 분할은 비밀 공유 또는 키 공유와 동일한 단점을 갖는다. 즉, 적어도 하나의 비밀 지분 또는 단편 또는 부분은 K가 알려진 후에만 암호화될 수 있다. 그리고 지분들 또는 단편들 또는 부분들이 공용 키에 의해 암호화되어야 하는 경우, 모든 고가의 공용 키 암호화가 K를 알기 전에 수행될 수 있는 것은 아니다.
따라서, 본 발명은 암호화 밀봉을 사용함으로써 키 공유 또는 키 분할의 단점을 회피하고자 하며, 독립적인 임의의 비밀 값들 또는 키들로부터 산출된 종속적인 값은 비밀 지분이 아니라 암호화된 K이고 K는 공용 키 알고리즘이 아니라 대칭 키 알고리즘에 의해 암호화된다. 이 경우에 암호화 동작은 공용 키 암호화 동작보다 훨씬 더 빠르며, 비밀 지분과 달리 암호화된 K는 공용 값으로서 처리될 수 있고 암호화된 데이터와 함께 전송 또는 저장된 SKR 정보내에서 "이용가능하게 된다".
단일의 키-생성 키(KG)로부터 다수의 키-암호화 키들(KK1, KK2 등)과 같은 다수의 키들을 발생하는 개념은 당분야에 잘 알려져 있다. 예를 들어, 1995년 10월 26일, Public Key Cryptographiy For The Financial Services Industry:Establishment of Symetric Algorithm Keys Using Diffie-Hellman이라는 명칭의 경영 초안 미국 국내 표준 X9.42-1995는 단일의 공유 비밀 번호로부터 다수의 키들을 발생하는 방법을 개시하며, 이는 소위 암호화 키 유도(Cryptographic Key Derivation)로 불리워진다. 이것은 입력을 1방향 함수로 해싱함으로써 성취되며, 이 경우 입력은 공유된 비밀 번호와 적어도 PerPartyData를 포함하는 공용 정보의 연관으로서 정의된다. PerPartyData의 내용은 키 관리 프로토콜에 의해 정의된다. 예를 들면, PerPartyData는 공용 키 회복 정보를 포함하며, 이에 의해 (키 회복 메카니즘에 의해 보호되어야 하는) 특정 데이터 키와 연관된 정보를 특정의 발생된 키-암호화 키와 결합한다.
본 발명에서는, 이미 언급된 바와 같이, 다수의 키-암호화 키들(KKs)이 단일의 키-생성 키(KG)로부터 생성된다. 따라서, 본 발명의 키 회복 프로세스는 다수의 키들(K1, K2 등), 예들 들면, 다수의 데이터 키들(세션 키들 또는 화일 키들)이 키 회복 메카니즘에 의해 보호될 수 있게 한다. 이것은 각각의 키(K1, K2 등)를 상이한 키-암호화 키들을 사용하여 암호화함으로써 성취된다. 키-암호화 키들은 비교적 안정되고 수명이 긴 키-생성 키들로부터 생성된다. 본 발명에서, 키-생성 키들은 키 회복 에이젼트들의 공용 키들하에서 암호화된다. 그러므로 키 회복을 수행하려면 그와 같이 암호화된 키-생성 키들이 키 회복 에이젼트들에게 제공되며, 키 회복 에이젼트들은 키-생성 키들을 암호해독한 후 회복된 키-생성 키들을 사용하여 적절한 키-암호화 키들을 생성하고, 이 키-암호화 키들은 인증된 요구 당사자에게로 복귀된다. 이 때, 요구 당사자는 암호화된 데이터에 부가된 암호화된 키 값을 암호해독한다. 그러므로 본 발명의 키 회복 메카니즘은 고가의 공용 키 암호화 동작(즉, 키-생성 키들을 암호화)이 한번 수행된 후 잠재적으로 긴 시간에 걸쳐 다수의 키들의 회복을 가능하게 하는 요구되는 키-암호화 키들을 생성하기 위해 다수 회 사용될 수 있게 한다. 따라서, 본 발명에서 키 회복 에이젼트들에게 제공된 비밀 값들은 잠재적으로 긴 수명의 키-생성 키들이며, 키 회복 메카니즘에 의해 보호되어야 하는 키들을 암호화 밀봉하는데 사용된 비밀 값들은 키-암호화 키들이며, 이들 키는 도출된 키-암호화 키들을 키 회복 메카니즘에 의해 보호되는 키와 연관된 유일한 공용 키 회복 정보에 밀접하게 결합하는 키 유도 절차를 사용하여 이들 키-생성 키들로부터 도출된다.
대조적으로, 미칼리의 키 회복 메카니즘(미국 특허 제 5,276,737 호 및 제 5,315,658 호)은 수신인에게 제공되는 키의 비밀 지분들이 바로 수신인에 의해 인증된 요구 당사자에게로 복귀되는 비밀 지분들과 동일함을 개시한다. 마찬가지로, 리프너 등의 키 회복 메카니즘(미국 특허 제 5,557,346 호 및 미국 특허 제 5,557,765 호)은 에스크로우 에이젼트에게 제공되는 키의 비밀 부분들 또는 단편들이 에스크로우 에이젼트에 의해 인증된 요구 당사자에게로 복귀되는 키의 비밀 부분들 또는 단편들과 동일함을 개시한다. 더욱이, 미칼리 및 리프너 등은 또한 비밀 지분들 및 비밀 키의 비밀 부분들 또는 단편들이 수탁자들의 공용 키들 또는 에스크로우 에이젼트들에 의해 그들을 암호화함으로써 보호될 수 있으며, 어느 경우든, 미칼리 및 리프너 등에 의해 개시된 방법들은 키 회복 메카니즘에 의해 보호될 각각의 비밀 키에 대해 고가의 공용 키 암호화가 수행될 것을 요구하게 된다.
본 발명은 또한 각각의 키 회복 에이젼트는 (공용키 암호화를 사용하는) 적어도 한 쌍의 공용 키 및 전용 키를 갖게 됨을 고려한다. 그러나 키 회복 에이젼트들은 어느 정도의 분리의 입도(granularity of separation)를 제공하기 위해 2개 이상의 이러한 전송 및 공용 키 쌍을 가질 수도 있다. 이들 키는, 키의 절충으로 인해 또는 의심스러운 키의 절충으로 인해 또는 키의 최신성을 유지하기 위한 키의 자동 전복(an automatic rollover)으로 인해 변화될 수도 있음을 알 수 있다.
본 발명은 또한 키 회복 에이젼트가 관할 영역(a domain of jurisdiction)을 갖게 되며, 이 관할 영역은 한 국가(예를 들면, 독일, 프랑스, 네덜란드)의 경계이거나, 한 국가의 규정된 영역 또는 더 큰 그룹을 형성하기 위해 결합된 있을 수 있는 몇 국가들로 구성된 관할 지역일 수 있음을 고려한다.
본 발명은 또한 조직(organizations)이 또한 그들 자신의 키 회복 에이젼트들로서 작용할 수도 있으며, 이 경우, 이 조직은 그의 자유 재량으로 키 회복 서비스의 인증된 사용자들을 그 자신의 조직의 고용자 또는 얼마간의 다른 한정된 사용자 세트로 제한할 수도 있음을 고려한다.
본 발명은 또한 사용자는 또한 그 자신의 키 회복 에이젼트로서 작용하기를 원할 수도 있음을 고려한다.
본 발명은 또한 조직 또는 사용자가 조직 또는 사용자에 의해 그들에게 제공된 키들의 전용 부분을 사용하여 키 회복에 필요한 단계들의 수행을 위하여 동작할 수 있는 몇몇 다른 키 회복 에이젼트에게 키의 전용 부분을 제공하는 것 이외에 또한 그들 자신의 공용 및 전용 키 쌍을 생성하기를 바랄수도 있음을 고려한다. 이러한 전자의 경우에, 키 회복 에이젼트가 조직 또는 사용자의 전용 키 부분을 소유할 수도 있고, 키 회복의 필요한 단계를 용이하게 하기 위해 이러한 키의 전용 부분을 사용할 수 있는 능력을 갖게 되지만 전용 키 부분 자체의 값을 알 수도 또는 모를 수도 있음이 고려된다. 본 발명에 의해 개시되는 키 회복 메카니즘은 앞서 설명된 모든 환경에서 및 각각의 환경에서 동작가능하다.
본 발명에서 집합적인 에이젼트들의 세트와 회복 서비스(또는 법 집행)간의 지식이 강력하게 분할된다. 이러한 지식의 분할은 결코 중개되지 않는다. 즉, 회복 에이젼트들은 결코 자신의 전체 비밀을 회복 서비스에게 결코 알리지 않으며, 회복 서비스는 K에 관련된 자신의 정보를 에이젼트들에게 결코 알리지 않는다. 따라서, 임의 키 K의 회복을 위해 모든 회복 에이젼트들과 회복 서비스는 함께 동작해야 한다. 보다 구체적으로,
1. 법 집행 기관이 KKx(KKy(K))를 소유할 경우, 표시 수단 K는 KKy에 의해 암호화된 후 그 결과가 KKx에 의해 암호화되어 어떤 에이젼트에게도 누설되지 않으므로, 총괄적으로 에이젼트들은 K에 관해 전혀 아는 바가 없다. 따라서, 모든 에이젼트들이 함께 동작할지라도 그들을 K를 회복할 수 없다. 대조적으로, 미칼리 및 리프너 등의 방법에서 에이젼트들은 총괄적으로 키를 회복하기에 충분한 정보를 갖는다.
2. 주어진 K의 합법적인 회복후일지라도, 법 집행 기관은 S 또는 임의의 도출된 KG를 결코 알지 못한다. 에이젼트들은 단지 하나의 세션에 대해 특정된 KK만을 복귀시킨다. 언급된 바와 같이, 이것은 암호화된 KG가 재사용될 수 있도록 하는데 필수적이지만, 또한 에이젼트들이 자신의 KG를 결코 누설하지 않을 경우 에이젼트들의 협동없이는 어떤 회복도 이루어질 수 없음을 더욱 일반적으로 보장한다.
본 발명은 키 회복 에이젼트에게 제공된 비밀 정보 또는 키 회복 에이젼트에게 제공된 비밀 정보로부터 도출된 비밀 정보에 대한 액세스를 인증하기 위한 새로운 방법을 생각한다. 예를 들어, 본 발명에서, 비밀 키-발생 키들은 키 회복 에이젼트들의 공용 키들에 의해 암호화된다. 계속해서, 이들 키-발생 키는 키-암호화 키들을 발생하는데 사용된다. 세션 통신 또는 저장-및-발송 전자 메일 응용의 경우에, 이들 키-암호화 키는 개개의 데이터 키들(세션 키들 또는 데이터-암호화 키들)을 암호화하는데 사용될 수 있다. 법원의 명령 또는 영장을 갖는 법 집행 기관이 키 회복 에이젼트들로부터 필요한 키-암호화 키들을 획득할 수 있고, 이에 의해 그들이 암호화된 메시지에 부가된 암호화된 데이터 키들을 암호해독하고 다음으로 암호화된 통신내용 또는 메일을 암호해독할 수 있도록 허용하는 것이 또한 고려된다. 마찬가지로, 암호화된 화일들이 시스템내에서 전송되거나 저장되어 있는 경우, 이러한 암호화된 화일의 송신자 또는 수신자는 그의 또는 그녀의 화일 키 카피가 손상되거나 우연히 소거된 것을 발견할 수 있음이 고려되며, 이 경우 송신자 또는 수신자는 본 발명의 키 회복 메카니즘을 사용하여 키를 회복하기를 원할 수도 있다. 암호화된 화일의 송신자 또는 수신자가 데이터를 회복할 수 있도록, 본 발명은 키 회복 에이젼트가 비밀 정보를, 정보를 수신할 권리가 있는 합법적인 당사자 이외의 누군가에게 비밀 정보(예를 들면, 키-발생 키로부터 발생된 키-암호화 키)를 누설하지 않도록 방지하는 새로운 메카니즘을 제공한다.
수탁자에 의해 에스크로우된 디지털 비밀이 부주의하게 공개되는 것을 방지하기 위한 방법이 휘셔(Fischer)에 의해 교시(미국 특허 제 5,436,972 호)된다. 휘셔에 의하면, 사용자는 에스크로우된 비밀 패스워드를 갖는다. 이 패스워드는 대칭 DES 키를 도출하는데 사용되며, 대칭 DES 키는 또한 사용자의 비밀(즉, 사용자가 보호하기를 원하는 비밀)을 암호화하는데 사용된다. 그러나 어떤 비밀도 에스크로우될 수 있으므로, 이 발명은 단지 패스워드의 에스크로윙에만 제한되지 않는다. 이 발명에서, 사용자는 패스워드와 함께 자기-식별 데이터로 구성되는 에스크로우 레코드를 정의하며, 이러한 정보의 결합은 수탁자의 공용 키에 의해 암호화된다. 이 암호화된 레코드는 사용자의 컴퓨터내에 에스크로우 비밀 레코드로서 저장된다. 그리고 나서, 사용자의 패스워드로부터 도출되는 키는 사용자의 디스크상의 모든 데이터를 암호화하는데 사용된다. 사용자가 자신의 패스워드를 잊어버린 경우, 본 발명의 복구 단계가 수행된다. 이 경우, 사용자는 에스크로우 에이젼트와 접촉하며, 자신의 신원을 명확히 입증하기 위해 충분한 증명서를 제공한다. 자기-식별 데이터 및 패스워드를 포함하는 암호화 및 에스크로우된 레코드가 또한 에스크로우 에이젼트에게 제공된다. 에스크로우 에이젼트는 자신의 전용 키 부분을 이용하여 에스크로우 레코드를 암호해독하며, 자기-식별 데이터에 대한 자격 증명서를 확인하며, 사용자가 적당히 검증된 경우에만 사용자에게 패스워드를 제공한다.
그러나, 휘셔에 따른 기법의 단점은 비밀 패스워드 및 자기-식별 데이터의 결합이, 즉, 에스크로우 에이젼트의 공용 키를 이용하여 이들 두 정보의 단편들을 단일의 유닛으로서 암호화함으로써, 이루어지는 방법이다. 본 발명에서 이와 동일한 종류의 검증 시퀀스를 수행하는 것은, 이 경우에 수신기(Bob)가 키 회복 에이젼트들의 공용 키들에 의해 암호화된, 송신자(Alice)로부터 수신된 정보를 확인할 수 없게 되므로 불리하다. 이것은 Bob이 Alice의 자기-식별 데이터를 알지 못하기 때문이며, 더욱이 Alice는 통상 Bob이 자기-식별 데이터를 알기를 원하지 않게 된다. 그러므로 Bob이 Alice로부터 수신된 키 회복 에이젼트들의 공용 키들에 의해 암호화된 정보를 확인하는 단계를 수행할 수 있도록 Alice가 Bob에게 알려진 키에 의해 암호화된 형식으로 자기-식별 데이터를 Bob에게 송신하는 것은 이해되지 않게 된다.
그러므로 본 발명에서는 자기-식별 데이터를 비밀, 예를 들면, 키-발생 키 KG로부터 도출된 비밀 값에 결합시키기 위해 다른 수단이 사용된다. 본 발명에서, 키-발생 키 및 키 회복 프로토콜에 의해 수신자(Bob)에게 알려지거나 알려질 수 있는 가능한 다른 정보(비밀 또는 공개)는 키 회복 에이젼트의 공용 키에 의해 암호화된다. 이것은 수신자(Bob)로 하여금 자신이 알고 있는 데이터로부터 입력을 재생성하고, Bob이 알고 있는 키 회복 에이젼트의 공용 키에 의해 입력을 암호화한 후 이와 같이 생성된 암호화된 값을 송신자(Alice)로부터 수신된 암호화된 값과 비교함으로써 수신된 암호화된 숫자를 확인할 수 있게 한다. 이와 같이 하여, Bob은 2개의 암호화된 값이 동일할 경우 송신자(Alice)로부터 수신된 값을 확인할 수 있다.
본 발명에서, 비밀(예를 들면, 키-발생 키로부터 도출된 값)은 자기-식별 데이터와 결합(예를 들면, 이들 값을 연관시킴으로써)되며, 그 결과 얻어진 데이터 블럭을 강력한 1방향 해쉬 함수(예를 들면, Federal Information Processing Standard, FIPS PUB 180-1 Secure Hash Standard, April 1995에 개시된 보안 해쉬 알고리즘(Secure Hash Algorithm) SHA-1을 사용함)에 의해 해쉬한다. 그리고 나서, 이 결과 해쉬 값은, 예를 들면, 암호화된 화일의 헤더 레코더내에 암호화된 데이터와 함께 저장된다. Alice로부터 Bob에게 송신된 암호화된 화일의 경우에, Bob은 또한 유사한 해쉬 값을 생성하여, Bob이 또한 알고 있는 자기 자신의 자기-식별 데이터 및 비밀(KG로부터 도출된 비밀)을 사용하여 이것을 화일 헤더 레코더에 저장할 수 있다.
Alice 또는 Bob이 나중에 KG로부터 도출된 키중 하나를 회복하기를 바랄 경우, 이들은 키 회복 에이젼트에게 적절한 해쉬 값과 함께 자격 증명 세트(a set of credentials)를 제공해야 한다. 이 키 회복 에이젼트는 사용자에 의해 또한 제공되는 자기-식별 데이터에 대해 자격 증명을 확인하게 된다. 그리고 나서, 키 회복 에이젼트는 해쉬 값을 발생하기 위해 SKR 시스템에 의해 사용되었던 것과 동일한 절차를 사용하여 자기-식별 데이터와 KG로부터 도출된 비밀 값으로 구성되는 입력 블럭을 형성하게 된다. 그리고 나서, 얻어진 데이터 블럭은 SKR 시스템에 의해 사용되었던 것과 동일한 알고리즘에 의해 해쉬되며, 얻어진 해쉬된 결과는 사용자에 의해 공급되는 해쉬 값과의 동일성에 대해 비교된다. 이들 두 값이 동일하면, 키 회복 에이젼트는 사용자가 유효하며 따라서 원하는 비밀(예를 들면, 키-발생 키로부터 도출된 키-암호화 키)을 수신할 자격이 있다고 결론을 내린다.
본 발명은 또한 이후 설명되는 바와 같은 키 방식의 셔플러 함수(a keyed shuffler function)를 사용하는 새로운 암호화 형식을 고려한다.
도 1은 본 발명의 키 회복 시스템이 사용될 수 있는 통신 시스템을 도시하는 도면
도 2는 본 발명의 두 통신 처리 단계를 도시하는 도면
도 3은 보호되는 키가 회복될 수 있도록 하는 본 발명의 회복 처리를 도시하는 도면
도 4는 본 발명의 키 계층을 도시하는 도면
도 5는 인증 코드 발생 처리를 예시하는 도면
도 6은 본 발명의 셔플러 함수의 고급 블럭도
도 7은 셔플링된 값들을 "언셔플링"하기 위한 본 발명의 역 셔플러 함수의 고급 블럭도
도 8은 본 발명의 키 회복 시스템에 의해 사용된 정보를 저장하기 위한 전역 통신 정책 테이블
도 9는 회복 절치의 상태 1동안 송신자에 의해 수행되는 단계들을 도시하는 도면
도 10은 회복 절차의 상태 2동안 송신자에 의해 수행되는 단계들을 도시하는 도면
도 11은 상태 1 데이터 블럭의 구조를 도시하는 도면
도 12는 상태 2 데이터 블럭의 구조를 도시하는 도면
도면의 주요부분에 대한 부호의 설명
100 : 통신 시스템 116, 118, 146 : 법 집행 기관
108, 110, 112, 142, 144 : 키 회복 에이젼트
120 : SKR 통신 프로세스 140 : SKR 회복 프로세스
160 : SKR 키 계층
본 발명의 키 회복 시스템은 본 명세서에서 SKR(Simple Key Recovery) 시스템으로서 일컬어진다. SKR 키 회복 정보가 생성된 키는 SKR-보호 키로 불리워진다. SKR-보호 키는 비록 설명은 주로 데이터 키들에 제한되지만 어떤 형태의 비밀 키도 될 수 있다. 데이터 키들은 세션내에서 또는 전자 메일 애플리케이션내에서 전송되는 메시지를 암호화하는 데 사용되는 키들 또는 데이터 화일들을 암호화하는데 사용되는 키들이다. 정책적인 선택사양은 사용자가 주어진 SKR-보호 키의 일부만을 누설할 수 있음을 규정한다.
비록 설명은 주로 두 당사자들간의 통신에 국한되었지만, 둘 이상의 당사자들간에 통신이 이루어질 수 있다. 당분야에 숙련된 자라면 SKR 프로토콜이 셋 이상의 당사자들에게도 쉽게 확장될 수 있음을 알 것이다. SKR 프로토콜은 송신자와 수신자가 실시간으로 대화하는 세션 통신, 송신자와 수신자가 실시간으로 대화하지 않는, 전자 메일 및 화일 전송 응용과 같은 저장-및-송신 통신을 지원한다. 또한, SKR 프로토콜은 단일의 사용자 또는 애플리케이션을 포함하는 화일 애플리케이션을 지원한다. 이러한 후자의 경우에 데이터 화일을 생성한 애플리케이션 또는 사용자는 데이터 화일을 검색한 동일한 애플리케이션 또는 사용자이다.
전반적 환경
도 1은 본 발명에 따른 키 회복 시스템이 사용될 수 있는 통신 시스템(100)을 도시한다. 시스템(100)에서, 국가 X내의 송신자(102)("Alice")는 통신 채널(106)을 통해 하나 이상의 암호화된 메시지를 전송(통신 세션 또는 전자 메일 애플리케이션을 구성함) 또는 하나 이상의 암호화된 화일들을 전송(화일 전송 애플리케이션을 구성함)함으로써 국가 Y내의 수신자(104)("Bob")와 통신한다. 송신자(102) 및 수신자(104)는 제각기, 이후 설명되는 암호화 및 키 회복 기능들을 제공하도록 적절히 프로그램된 컴퓨터 워크스테이션들을 포함할 수 있다. 비록 도 1의 예는 송신자(102) 및 수신자(104)가 상이한 국가(X, Y)내에 위치한 것으로 가정하였지만, 본 발명은 또한 단일 국가내에서 전적으로 사용될 수도 있다.
도 1의 예는 구체적으로 2개의 상이한 통신 당사자(앨리스(Alice), 밥(Bob))가 존재하는 경우를 다룬다. 그러나 이 두 당사자 모델은 또한 앨리스가 화일들을 암호화하는 1-당사자 모델을 (다소) 설명한다. 이 경우, 화일 암호화 애플리케이션은, 밥=앨리스이고 화일 송신 동작(Alice가 송신자로서 동작함)과 화일 수신 동작(Alice가 수신자로서 동작함)간에 긴 시간이 존재하는 저장-및-발송 애플리케이션으로서 간주될 수 있다. 그러나, 이들 각각의 경우들에서 프로토콜에 영향을 주는 분명한 차이가 상세한 설명중에 지적될 것이다.
도 1의 설명에 연속하여, 송신된 메시지는 데이터 암호화 키를 사용하여 송신자(102)에 의해 암호화되며, 대응하는 데이터 암호해독 키를 사용하여 수신자(104)에 의해 암호해독된다. 대칭 암호화 기법(예를 들면, DES)이 사용된 경우, 데이터 암호화 키(이것은 또한 데이터 암호해독 키임)는 키 회복을 목적으로 하는 "비밀" 데이터 키(즉, SKR-보호 키)이다. 그러나 본 발명은 데이터 키들의 보호에만 국한되지 않는다. SKR 시스템은 또한 임의의 비밀 키에 대해 키 회복 서비스를 제공하는데 사용될 수 있다. 예를 들면, 비대칭 암호화 기법(예를 들면, RSA)이 사용된 경우, 키의 전용 부분은 이후 보다 상세히 설명되는 바와 같이 키 회복을 목적으로 하는 "비밀" SKR-보호 키이다.
국가 X에서는 한 쌍(본 특정 실시예의 경우)의 키 회복 에이젼트들(108, 110)이 선택되며, 국가 Y에서는 한 쌍의 키 회복 에이젼트들(112, 114)이 선택된다. 키 회복 에이젼트들의 설정이 일반적인 공용 키 하부구조 설정의 일부로서 일어날 수도 있다. 각각의 키 회복 에이젼트는 적어도 하나의 공용 및 전용 키 쌍(PU, PR로 표기됨)을 갖는다. 국가 X내에서 Alice의 두 키 회복 에이젼트들에 대한 공용 및 전용 키 부분들은 (PUx1, PRx1) 및 (PUx2, PRx2)이고, 국가 Y내에서 Bob의 두 키 회복 에이젼트들에 대해서는 (PUy1, PRy1) 및 (PUy2, PUy2)이다. 이것은 Alice 및 Bob로 하여금, 키 회복 에이젼트에 의한 이러한 정보의 암호해독을 요구하는데 필요할 수도 있는 때까지 공용 키 암호법(예를 들면, 디피에-헬만의 RSA 또는 타원형 곡선 알고리즘(Elliptic Curve algorithm)을 사용함)을 사용하여 특정의 SKR 정보를 암호화하여 보호할 수 있게 한다.
통신 채널(106)을 통한 통신은 제각기 국가 X 및 Y에서의 법 집행 기관(116, 118)을 포함하는 제 3 당사자에 의해 인터셉트될 수 있는 것으로 가정한다. 암호화된 통신을 인터셉트하는 정부 기관이 아닌 제 3 당사자는 그들이 성공적으로 하나 이상의 암호해독 기법(cryptanalytic)을 사용하지 않는 한 통신내용을 암호해독할 수 없게 된다. 다른 한편, 적당한 권한을 갖는 법 집행 기관(116, 118)은 이후 설명되는 바와 같이 자신의 국가에 대한 키 회복 에이젼트들(108, 110) 또는 (112, 114)을 사용하여 SKR-보호 키를 회복할 수 있게 되며, 송신자(Alice) 또는 수신자(Bob)는 또한 마찬가지의 절차를 사용하여 SKR-보호 키를 회복할 수 있게 된다.
2-단계 프로토콜
본 발명은, 암호화된 통신이 발생하거나 암호화된 화일들이 생성되는 국가 또는 국가들의 법 및 규칙에 따라, 암호화된 통신들 또는 암호화된 화일들내에 키 회복 정보를 포함시키는 2-단계 시스템을 호출한다.
도 2는 SKR 통신 프로세스(120)의 두 단계를 도시하며, 이는 상태 1(122) 및 상태 2(128)로 구성된다. 상태 1(122)에서, 통신 당사자(Alice, Bob)는 각각의 회복 에이젼트(도 2에는 도시되지 않음)에게 특정된 임의의 키-발생 키들(KG)이 도출되는 공통의 랜덤 시드(a common random seed;S)(124)를 설정한다. KG는 에이젼트들의 공용 키들을 이용하여 그들을 암호화함으로써 제각기의 에이젼트들(또한 도 2에는 도시되지 않음)에게 이용가능하게 된다. 암호화된 KG는 Alice에 의해 마련되어 Bob에게 송신되는 SKR 블럭 1(B1)(126)내에 포함된다.
랜덤 시드 S(124)가 설정되는 방법은 통신 환경에 의존한다. 대화형 세션중에 Alice 및 Bob은 (예를 들면, 디피에-헬만의 2-패스(pass) 프로토콜을 사용하여) 상호대화적으로 S를 설정할 수도 있고 또는 Alice가 S를 발생하여 이것을 Bob에게 송신(예를 들면, RSA 키 전송 프로토콜 또는 디피에-헬만의 1-패스 프로토콜을 사용함)할 수도 있다. 저장-및-발송 애플리케이션에서는, Alice와 Bob이 대화형으로 S를 설정하도록 하는 특별한 세션을 설정하는 것이 가능하지만, (앞서 언급된 바와 같이) Alice가 Bob에게 S를 송신한다. Alice=Bob인 화일 암호화 애플리케이션의 경우, Alice는 단지 S를 생성하여 저장하며, 그리고 나서 Alice에 의해 마련되어 저장된 SKR 블럭 1내에 S를 포함시킴으로써 회복 프로세스에 의해서 필요하게 될 수도 있는 나중(즉, 긴 시간 지연된 후에 Alice로부터 Alice로 송신됨)까지 암호화된 K를 이용할 수 있게 된다.
상태 2(128)에서, 통신 당사자들(Alice, Bob)은 비밀 데이터 키 K(130)를 설정한다. K를 설정하는 수단이 SKR 시스템과 독립적이므로 임의의 키 전송 또는 키 합치 메카니즘이 K를 설정하는데 사용될 수 있다. 암호화된 통신 세션 또는 저장-및-발송 전송을 원할 경우, 저장된 KG로부터 (계층적 키 도출 절차에 의해) 도출된 키-암호화 키들(KK)하에서의 대칭 암호화에 의한 회복을 위해 데이터 키(K)를 이용할 수 있게 된다. 암호화된 K의 부분 R을 숨김으로써 데이터 키 K의 일부만이 회복 정보내에서 이용할 수 있게 하는 것도 가능하다. 암호화된 K 또는 그의 일부(부분 R이 유지된 경우)은 Alice에 의해 마련되어 Bob에게 송신되는 SKR 블럭 2(B2)(132)내에 포함된다. Bob=Alice인 화일 암호화 애플리케이션의 경우, Alice는 단지 K를 생성하여 저장하며, 암호화된 K는 Alice에 의해 마련되어 저장된 SKR 블럭 2내에 암호화된 K를 포함시킴으로써 회복 프로세스에 의해 필요할 수도 있는 나중(긴 시간 지연후에 Alice로부터 Alice로 송신됨)까지 암호화된 K를 이용할 수 있게 된다. 최종적으로, K에 의해 암호화된 데이터(134)가 전달되거나 화일내에 저장된다.
다시 도 2를 참조하면, 키 회복 생성 프로세스를 2개의 단계로 분할하게 되면 (124)에서의 "S 설정" 동작 및 K의 완전한 세션 교환으로부터 (126)에서의 SKR 블럭 1의 마련에 요구되는 연관된 공용 키 암호화(상태 1)와 세션 키 회복 정보의 연관된 계산 및 검증(상태 2)의 분할을 허용한다. 상태 1에 포함된 정보, 즉, (a) (124)에서 설정된 S 및 (b) (126)에서의 SKR 블럭 1은 어떤 방법으로도 전체 통신 또는 전체 화일 정보에 근거하지 않으며, 따라서 다수의 통신 또는 생성된 화일들에 걸쳐서 사용될 수 있다. 정보(S 및 SKR 블럭 1)가 캐쉬되면, (122)의 상태 1에서 수행되는 고가의 공용 키 암호화가 통신 당사자간의 첫번째 통신 또는 첫번째 생성된 화일을 제외하고는 회피될 수 있고, 따라서, 모든 측면(2-당사자 암호화 통신 및 1-당사자 암호화 화일 애플리케이션들)에 대해 필요한 연산 노력을 크게 감소시킨다.
도 3은 SKR-보호 키들이 회복되도록 하는 SKR 회복 프로세스(140)를 도시한다. 회복 서비스(146)는 키 K(158)를 회복하기 위해 키 회복 에이젼트 1(142) 및 키 회복 에이젼트 2(144)와 상호작용한다. 회복 서비스(146)는, 손상되거나 잃어버린 키들을 회복하고자 하는 사용자들 또는 기업들을 대신하는 독립적인 서비스 제공 당사자(a independent Service Provider party)에 의해 동작될 수도 있고, 또는 범죄 활동에 관련된 것으로 알려지거나 의심되는 개인들의 통신내용 또는 화일들을 인터셉트하여 판독하기 위해 키들을 회복하고자 하는 법 집행를 대신하여 법 집행 기관에 의해 동작될 수도 있다.
우선 키를 회복하고자 하는 당사자는 회복 서비스(146)에게 필요한 SKR 블럭들(1 및 2)을 제공한다. 그러면, 회복 서비스(146)는 키 회복 에이젼트 1(142)에게 (148)에서 SKR 블럭 1을, (150)에서 SKR 블럭 2를 제공한다. 계속해서, 키 회복 에이젼트 1(142)는 이 제공된 정보를 자신의 전용 키 부분과 함께 사용하여 암호화된 KG 값을 암호해독하며, 그리고 나서, KG로부터 키-암호화 키(KK)를 계산하여, (150)에서 암호해독된 정보로 회복 서비스(146)에게 복귀시킨다. 마찬가지로, 회복 서비스(146)는 (152)에서 SKR 블럭 1을, (154)에서 SKR 블럭 2를 키 회복 에이젼트 2(144)에게 제공한다. 또한, 키 회복 에이젼트 2(144)는 이 제공된 정보를 자신의 전용 키 부분과 함께 사용하여 암호화된 KG 값을 암호해독하며, 그리고 나서, KG로부터 키-암호화 키(KK)를 계산하여, (156)에서 암호해독된 정보로 회복 서비스(146)에게 복귀시킨다. 이와 같이 계산된 상이한 2개의 키-암호화 키들은 그리고 나서 회복 서비스(146)에 의해 SKR 블럭 2내의 암호화된 K를 암호해독하는데 사용되며, (158)에서 K의 클리어 값이 요구 당사자에게로 복귀된다.
도 3에 도시된 바와 같이, 법 집행 기관은 키 회복 에이젼트 1 및 2에 의해 회복 서비스(146)에게 제공될 수 있는 유효한 영장 또는 법원의 명령을 가진 경우에만 키 K를 획득할 수 있다. 마찬가지로, 사용자 또는 기업은 각 키 회복 에이젼트에게 인증 정보를 또한 제공하는 회복 서비스(146)에게 올바른 인증 정보를 제공한 경우에만 K를 회복할 수 있다. 각각의 키 회복 에이젼트는 이러한 인증 정보를 사용하여 사용자의 또는 기업의 K를 회복할 권리를 확인한다.
대화형 통신을 위한 SKR 상위-레벨 설계
이제부터는, 하나의 송신자(Alice), 하나의 수신자(Bob) 및 송신자 및 수신자 각각에 대한 2개의 회복 에이젼트들을 가정한 경우에 대한 공칭 데이터 흐름이 제공된다. 또한, 본 설명은 안전한 형태로 S 및 K를 교환하는 기존의 메카니즘과의 대화형 세션의 경우를 가정한다. SKR은 임의 수의 통신 당사자들 및 당사자마다 임의 수의 에이젼트들의 경우에도 또한 효과적으로 동작하며, 대화형 통신을 물론 비-대화형인 경우에도 효과적으로 동작한다. SKR은 또한 필요한 경우(즉, S 및 K가 SKR에 의해 제공된 메카니즘을 사용하여 설정될 수 있는 경우) 디폴트 키 교환 메카니즘을 제공할 수 있다. 간략화를 위해, 여기서는 대표적인 경우만이 설명되고, 나머지 경우들은 상세한 설명 부분에 포함된다.
키 발생 계층: SKR은 주로 대칭 키 관리에서 동작한다. 대칭 키들은 주어진 SKR-보호 데이터 키(세션 키)에 대한 회복 정보를 보호하고, 또한 선택사양적으로 주어진 SKR-보호 데이터 키(세션 키)에 관련된 회복 요구들을 인증하는데 사용된 회복 정보를 보호하는데 사용된다.
도 4는 SKR 키 계층(160)을 도시한다. SKR 키 계층은 그들의 용도 및 도출 관계에 따른 레벨들로 구성된 키들이다. 이것은 SKR 시스템의 기능이 구성되는 기초이다.
도 4의 SKR 키 계층(160)에서 키들은 초기 랜덤 시드 S(162)로부터 계층적인 유형으로 발생된다. S로부터, 키 회복 에이젼트마다 하나의, 의사 무작위 추출된 키-발생 키들, KG(164, 165, 166, 167)이 발생되며, 이것은 에이젼트의 공용 키하의 암호화에 의해 주어진 에이젼트에게만 이용가능하게 된다. KGa1(164) 및 KGa2(165)는 제각기 Alice의 제 1 및 제 2 키 회복 에이젼트들과 연관된 KG이다. KGb1(166) 및 KGb2(167)는 제각기 Bob의 제 1 및 제 2 키 회복 에이젼트들과 연관된 KG이다.
KG 키-발생 키들은 또한 도 4에서 하위의 의사 무작위 추출된 키-발생 키들 KH 및 KI(168∼175)을 도출하는데 사용된다. 예를 들면, KGa1(164)은 KHa1(168) 및 KIa1(169)을 발생하는데 사용되고, KGa2(165)는 KHa2(170) 및 KIa2(171)를 발생하는데 사용된다. 마지막으로, KH 키-발생 키들(168, 170, 172, 174)은 제각기 하위의 의사 무작위 추출된 키-암호화 키들 KK의 세트들(176, 178, 180, 182)를 도출하는데 사용된다. 마찬가지 방식으로, KI 키-발생 키들(169, 171, 173, 175)은 하위의 의사 무작위 추출된 키-암호화 키들 KA의 세트들(177, 179, 181, 183)을 도출하는데 사용된다. 이들 키-암호하 키 KK는, 각각의 세션에 대해 유일한 KK가 사용된 경우, 데이터 키들(즉, SKR에 의해 보호된 세션 키들)을 암호화/암호해독하는데 사용된다. 키-암호화 키들 KA는 선택사양적 인증 정보(authorization information;AI) 필드의 보호를 위해 사용된다. 그러나 본 발명은 이러한 KA 키들의 사용을 키-암호화 키들에만 한정하지 않으며, 이러한 KA 키들을 사용한 다른 경우들이 이후 설명된다.
도 4의 SKR 키 계층(160)에서 키들을 도출하는 한가지 방법은 작업 초안 미국 국가 표준 X9.42에 개시된 암호화 키 도출 절차를 사용하는 것이다.
도 4의 예는 Alice에 대한 한 세트(a) 및 Bob에 대한 한 세트(b)로 이루어진 2개의 에이젼트 세트들의 경우를 도시하며, 각 세트는 2개의 에이젼트 (1) 및 (2)를 포함한다. 일반적인 경우에, 임의 수의 에이젼트들의 세트들(a, b, c 등)과 주어진 세트내에 임의 수의 에이젼트들(1, 2, 3, 등)이 있을 수 있다.
비록 여기서는 S가 랜덤한 수로서 지정되었지만, 당분야에 숙련된 자라면, 본 발명이 S를 랜덤한 수에 제한하지 않고, 보다 일반적으로 본 발명은 단일의 S에 의해 보호될 수 있는 세션들의 최소수 또는 최대 수를 한정 또는 제한하지도 않으며, S가 설정되는 또는 계산되는 방법을 한정, 제한 또는 규정하지도 않고, S 또는 정보의 특정 사이즈는 이 S의 값을 결정하는데 사용될 수도 사용되지 않을 수도 있음을 알 것이다.
상태 1: 상태 1은 하나 이상의 암호화된 통신 세션들을 개시하기 전에 적어도 한번 발생해야 한다. 전형적인 경우에, 당사자간의 첫번째 세션을 개시하기 전에 한번 수행될 수 있으며, 정보는 상태 1이 반복되는 어느 때까지 이들 당사자간의 연속하는 세션들에 대해 재사용된다. 원한다면, 상태 1은 모든 세션에 대해 수행될 수 있지만, 이것은 공용 키 동작을 재사용하는 성능상의 잇점을 제거한다.
상태 1에서, Alice와 Bob은 외부 키 교환 메카니즘을 사용하여 랜덤 값 5를 교환한다. 어떤 교환 메카니즘도 이용가능하지 않은 경우, Alice는 단순히 임의의 S를 골라잡을 수 있고, 이것은 상태 1 SKR 데이터 블럭의 일부로서 Bob에게 SKR 전송한다. Alice는 이 S를 사용하여 의사 임의 KG 값들을, "키 도출 계층(Key Derivation Hierarchy)" 섹션에서 도 2에 도시된 바와 같이 Alice와 Bob에 대해 필요한 제각기의 회복 에이젼트들에 대해 하나씩, 발생한다. 이들 KGa1, KGa2, KGb1 및 KGb2 값들은 각 회복 에이젼트들의 공용 키들에 의해 암호화되며, Bob에게로 송신된 SKR 상태 1 데이터 블럭(B1)내에 포함된다.
Alice와 Bob은 미래의 사용을 위해 적어도 S를 Bi의 해쉬와 함께 캐쉬할 수 있다.
도 9 및 도 11을 참조하면, 간략화된 데이터 흐름에서 상태 1은 다음으로 구성된다.
1. Alice와 Bob은 임의의 S를 교환한다(단계 902).
2. Alice는 S 및 각 에이젼트의 ID를 해싱함으로써 S로부터 각각의 에이젼트에 대한 KG 값을 도출한다(단계 904).
3. Alice는 각 에이젼트들의 공용 키들에 의해 KG 값들을 암호화한다(단계 906).
4. Alice는 Bob에게 T1, ePUa1(KGa1), ePUa2(KGa2), ePUb1(KGb1) 및 ePUb2(KGb2)로 구성되는 SKR 상태 1 데이터 블럭(B1)(도 11 참조)을 송신한다(단계 908).
여기서 상기한 양들은 다음과 같이 정의된다.
T1 : Alice, Bob 및 모든 키 회복 에이젼트들의 ID를 포함하는 공용 헤더
e : 공용 키 암호화
PUa1 : Alice의 첫번째 에이젼트에 대한 공용 키
PUa2 : Alice의 두번째 에이젼트에 대한 공용 키
PUb1 : Bob의 첫번째 에이젼트에 대한 공용 키
PUb2 : Bob의 두번째 에이젼트에 대한 공용 키
KGa1 : Alice의 첫번째 에이젼트에 대한 키-발생 키
KGa2 : Alice의 두번째 에이젼트에 대한 키-발생 키
KGb1 : Bob의 첫번째 에이젼트에 대한 키-발생 키
KGb2 : Bob의 두번째 에이젼트에 대한 키-발생 키
상태 2: 상태 2는 각각의 암호화된 세션에 대한 암호화를 개시하기 전에 발생한다. 상태 2에서, Alice와 Bob은 몇몇 외부 키 교환 메카니즘과 데이터 K(세션 키)를 교환한다. 필요하다면, Alice는 임의의 K를 선택할 수 있고 SKR 상태 2 데이터 블럭은 이것을 Bob에게로 전송할 수 있다. 각 에이젼트들의 세트에 대해, Alice는 키 암호화 키들(KK)의 제각기의 세트하에서 K를 이중 암호화하며, 이들 값을 상태 2 데이터 블럭에서 대응하는 상태 1 블럭(B1)의 해쉬와 함께 Bob에게 송신한다.
도 10 및 도 12를 참조하면, 간략화된 데이터 흐름에서 상태 2는 다음으로 구성된다.
1. Alice 및 Bob은 임의의 데이터 키 K(세션 키)를 교환한다(단계 1002).
2.. Alice는 각 KG 값의 해쉬로서의 각 에이젼트에 대한 키 발생 KH 값과 공용 키-발생 헤더를 도출한다(단계 1004).
3. Alice는 각 KH 값의 해쉬로서의 각 에이젼트에 대한 세션-특정 KK와 이 세션의 공용 헤더 T2를 도출한다(단계 1006).
4. Alice는 세션-특정 KK 키-암호화 키들에 의해 K를 암호화한다(단계 1008).
5. Alice는 Bob에게 T2, Hash(B1), fKKa1.1(fKKa2.1(K)) 및 fKKb1.1(fKKb2.1(K))로 구성되는 SKR 상태 2 데이터 블럭(B2)을 송신한다(단계 1010).
여기서 상기한 양들은 다음과 같이 정의된다.
T2 : T1, 세션 ID, 시간스탬프 등을 포함하는 공용 헤더
f : 대칭 키 암호화
Hash(B1) : 블럭 B1의 해쉬
KKa1.1 : Alice의 첫번째 에이젼트에 대한 제 1 키-암호화 키
KKa2.1 : Alice의 두번째 에이젼트에 대한 제 1 키-암호화 키
KKb1.1 : Bob의 첫번째 에이젼트에 대한 제 1 키-암호화 키
KKb2.1 : Bob의 두번째 에이젼트에 대한 제 1 키-암호화 키
회복 상태: 회복 상태에서, 에이젼트들의 세트는 블럭 1으로부터의 모두와 블럭 2로부터의 T2를 제공받는다. 이들은 이중 암호화된 fKK1(fKK2(K))를 제공받지 않으므로, 따라서 비록 그들이 자신의 제각기의 KG 정보를 합동할지라도 키를 회복할 수 없다. 적절한 SKR 정보가 제공되면, 이들은 자신의 제각기의 블럭들을 암호해독하며, 자신의 제각기의 KG 값들을 획득한다. 이들의 KG 값들 및 T1 및 T2 헤더들이 제공되면, 이들은 T2 헤더에 의해 커버되는 세션에 대해 KK 및 KA 값들을 발생할 수 있다. 인증 정보 필드(AI)가 존재하는 경우, 회복 요구를 확인하기 위해 비밀 KA 키가 사용될 수 있다. 회복 요구가 유효이면, 각 에이젼트는 단지 계산된 KK 값을 회복 서비스에게 복귀시켜, 이 때서야 회복 서비스는 이중 암호화된 회복 필드 fKK1(fKK2(K))로부터 데이터 K(세션 키)를 회복할 수 있다.
중요한 것은, 에이젼트가 발생 KG 값을 복귀시키는 것이 아니라, 단지 KG로부터 도출된 특정 값들을 복귀시킨다는 것이다. 예를 들면, 에이젼트는 단지 특정의 키-암호화 키들(KK)만을 법 집행 기관에 복귀시키게 된다. 따라서, 다른 데이터 키들(세션 키들)이 주어진 하나의 KK 값을 회복할 수 없는 경우, 보다 더 기간동안 비밀 KG 정보가 손상되지 않고 사실상 유지될 수 있다.
사용자 및 에이젼트는, 사용자가 충분한 AI 정당성을 제공하지 않는 경우, 사용자가 보다 편리하게 세션들의 세트를 회복할 수 있도록 에이젼트가 KH를 복귀하기를 사용자가 원한다는 것을 결정할 수 있다. 이러한 결정은 애플리케이션, 사용자 및 에이젼트에게 달려 있다. 그러나 회복 서비스와 에이젼트들간의 지식의 분리가 SKR의 기본적인 특징인 한, 본 발명은 에이젼트가 KG를 누군가에게 공개하도록 요구하게 되는 환경들의 세트를 고려하지 않으며, 이것은 KG 비밀들의 공용 키 암호들을 안전하게 재사용하는데 중요하다.
SKR 설계 상세
이제부터 본 발명이 실시될 수 있는 방법을 나타내기 위해 보다 상세히 설명된다.
SKR내의 암호화 알고리즘의 선택: SKR은 Bob와 Alice간에 사용된 세션-레벨 암호화와 독립적이다. 그러나 SKR 자체는 SKR 블럭들내의 값들을 계산하기 위해 대칭 및 비대칭 암호화를 모두 사용한다. SKR내에 사용된 암호화 알고리즘은 또한 자유로이 선택될 수 있으며, 이러한 선택사항들은 파라미터로서 T1 및 T2 헤더들내에 표시된다. 디폴트로, RSA는 공용 키 암호화에 사용되며, 키 방식의 셔플러(이후 설명됨)가 대칭 암호화에 사용된다. 키 방식 셔플러는, 임의 사이즈 암호화 키들을 수용하는 유용한 특성 및 임의 사이즈 데이터 블럭들을 수용하는 유용한 특성을 가지므로, 디폴트로 사용된다. SKR내에서 사용되는 대칭 암호화를 위한 다른 가능한 선택은 세션 레벨 암호화를 위해 애플리케이션에 의해 사용되는 것과 동일한 암호화 알고리즘을 사용하는 것일 것이다. 이것은, 애플리케이션이 이미 그것을 구현한 것처럼 이용상의 장점을 제공하며, 따라서, SKR내의 대칭 키 암호화는 세션 데이터를 보호하는데 사용된 암호화와 동일한 강도를 갖게 된다.
S 또는 K의 선택사양적 전송: 필요한 경우, SKR은 S 및 K를 모두 또는 어느 하나를 전송할 수 있다. Bob가 키 분배를 수행하기 위한 공용 키 쌍을 소유한 경우, 이것은 Bob의 공용 키에 의해 S 또는 K 값을 암호화하고 Bob에게 송신된 SKR 정보에 암호화된 값을 가산(예를 들면, 상태 1 또는 상태 2 SKR 데이터 블럭내에 그것을 포함함)함으로써 수행될 수 있다.
회복 검증 해쉬 및 R: 상위 레벨 설계에서, 간략화된 데이터 흐름은 데이터 키 K(세션 키)의 이중 암호화의 전체 값의 전송을 도시하였다. 부분 R이 회복 필드로부터 취소되어야 하는 경우, 이것은 fKKa1.1(fKKa2.1(K))-R에서와 같이 얻어진 암호화된 K로부터 R를 삭제함으로써 수행된다. 예를 들면, 세션 키 K가 168비트(3중 DES)이고 취소되어야 할 부분 R이 40비트인 경우, 이중 암호화된 K의 40개의 최소 유효 비트가 삭제되며, 단지 128개의 최대 유효 비트만이 SKR 블럭내에 포함된다.
회복 프로세스중에 시험적인 R 값을 검증할 수 있도록 부가의 회복 검증 필드 Ha 및 Hb(에이젼트들의 세트마다 하나씩)가 상태 2 SKR 블럭에 부가된다. Ha 및 Hb는 다음으로 정의된다.
Ha=Hash(검증 헤더, 카운터, fKKa1.1(fKKa2.1(K)), T2, KKa1.1, KKa2.2)
Hb=Hash(검증 헤더, 카운터, fKKb1.1(fKKb2.1(K)), T2, KKb1.1, KKb2.1)
여기서 Hash()는 리스트된 데이터 항목들의 연관의 해쉬이다.
해쉬는 카운터를 증분시키면서 필요한 만큼 다수회 수행되며, 따라서, 검증 해쉬는 충돌 확률(즉, R의 오류 검증)이 충분히 작음을 보장하기에 충분히 길다. 예를 들어, r이 R의 비트 수를 나타내고 Ha의 길이가 2r+t(t의 임의의 값에 대해)인 경우, R의 두 값들이 해쉬의 동일한 값으로 끝날 확률은 약 e-t(여기서 e는 자연 로그의 베이스인 2.7182818···)이다. t≥20의 값이 아마도 충분할 것이다.
이들 부가된 필드들의 경우, R의 시험적인 값들은 fKKa1.1(fKKa2.1(K))의 시험적인 값들을 구성하는데 사용될 수 있으며, 그리고 나서, 해쉬가 행해해져서 시험적인 R이 올바른지의 여부를 알기 위해 비교된다. 이러한 탐색은 세트내의 두 에이젼트들 모두가 상태 1 SKR 블럭으로부터 자신의 제각기의 암호화된 KG 필드들을 암호화하고, 제각기의 KK 키-암호화 키들(예를 들면, KKa1.1 및 KKa2.1)을 계산하여, 이들을 회복 프로세스로 복귀시키지 않는 한 진행될 수 없다.
비-대화형 통신: SKR에 대해 제공된 구성은 Alice와 Bob간의 대화형 세션을 설명한다. 여기서 "대화형 세션(interactive session)"이라는 용어는 Alice 측과 Bob 측에 대한 프로세스가 동일한 시간 프레임에서 발생하여 프로세스들이 프로토콜의 실행중에 상호작용 및 정보를 교환할 수 있음을 의미한다. 보다 일반적인 상황에서, 통신은 비-대화형일 수도 있고, 이 경우 양 측상에서의 프로세스는 상이한 시간에 발생하며, 따라서 이들은 프로토콜의 실행중에 정보를 교환할 수 없다. 비-대화형 통신의 예로는, (1) Alice에 의해 메일이 작성되고 상이한 시간에 Bob에 의해 메일이 읽혀지는 전자 메일(e-mail), 및 (2) Alice에 의해 한번 데이터가 보관되고 나중에 보관된 데이터의 검색이 수행(아마도 또한 Alice에 의해)되는 데이터 보관(data archibing)이 포함된다. (데이터 보관은 단지 하나의 사용자와 관련되는 것처럼 보일 수도 있지만, 실제로는 송신 및 수신 사용자와 관련되며, 단지, 이들 사용자가 종종 동일한 사람이다.)
SKR 구성은 수정없이 비-대화형 통신을 처리한다. 비-대화형 통신이 SKR 프로토콜의 실행중에 정보를 교환할 수 없으므로, 이것은 S 및 K 키들의 교환에 사용되는 방법을 제한할 수 있지만, 이것은 명목상 SKR 프로세스 밖에서 일어난다. SKR이 S 및 K를 교환하는데 사용된 경우, SKR은 대화형 또는 비-대화형 상황에 적합한 방법(즉, 수신자의 공용 키에 의한 암호화)을 사용한다.
SKR 블럭 1 및 2의 검증: 지금까지 제공된 구성은 SKR 블럭 1 및 2를 검증하지 않았다. 이것은 몇몇 애플리케이션에 대해 허용가능할 수도 있지만, 일반적인 경우에, 몇몇 애플리케이션들은 어떤 방식으로 회복 정보를 검증하여 대화 양측이 적당한 회복 정보를 제공되었음을 보장할 수 있도록 하기를 바랄 수도 있다.
한가지 검증 방법은 설명된 바와 같이 Alice가 SKR 블럭들을 발생하고, Bob이 이들을 검증하는 것이다. Bob에 의한 검증은, Bob이 비밀 값들 S 및 K를 안다면 간단하며, 따라서, 블럭들의 생성을 복제하여 Alice로부터 송신된 값들에 대해 자신의 결과치를 검증할 수 있다. (이러한 검증 방법의 한가지 문제점은 대표적인 공용 키 암호화 방법들에서 임의의 정보를 사용한다는 것이다. 본 발명의 이러한 측면은 다음 하부 섹션에서 논하여진다.)
이러한 방법에 있어서의 한가지 문제점은 Alice가, Bob이 포함하기를 바랄수도 있는 임의의 선택사양적인 회복 필드들을 포함하는 Bob의 회복 요건들에 대한 완전한 지식을 가져야 한다는 것이다. 또한, Bob은 미리 Alice의 정보를 알아야 할 필요가 있거나 또는 검증을 시작할 수 있기 전에 T1 및 T2 헤더 정보를 알기 위해 기다려야 하므로, SKR 동작개시 지연을 가중시킨다.
모든 회복 정보가 올바르게 제공되었음을 보장하기 위한 가능한 바람직한 방법으로서 다른 방법은 Alice와 Bob이 제각기 독립적으로 SKR 회복 블럭들을 생성하고 Alice 및 Bob이 서로의 생성된 블럭을 체크하지 않는 것이다. 이러한 모드에서, 적어도 한쪽이 올바르게 구성되면, 모든 요구되는 회복 정보는 올바르게 생성된다. 또한, Alice와 Bob은 모두 상대편이 송신한 것을 오류로 무효화하는 일을 발생하지 않고 어떤 선택사양적 회복 필드들도 포함할 필요가 없다. 이러한 방법의 한가지 한계는 비-대화형 통신에서 사용될 수 없다는 것이다.
SKR은 어떤 발생-검증 방법이 사용되는지를 지시하지 않는다. 모든 경우에 Alice는 SKR 블럭을 생성한다. 주어진 애플리케이션에 따라 Bob이 Alice의 블럭을 체크하고 자신의 블럭을 생성하게 할수도 있고 또는 애플리케이션의 요구 및 가능한 지역 법들 또는 규칙에 따라 전혀 체크하지 않을 수도 있다.
검증 방법을 변화시키는데 부가하여, 체킹 레벨이 또한 변할 수도 있다. Bob이 Alice의 SKR 블럭을 검증하고 있는 경우에, Bob은 블럭내의 모든 엔트리들에 대한 완전한 검증(에이젼트들에 대해 암호화된 부분들을 검증하는 것을 포함함)을 행할 수도 있고, 또는 메시지의 단지 일부만을 체크할 수도 있다. 예를 들어, 그는 공용 키 암호화에 관련된 전산 부하로 인해 공용 키-암호화된 부분들을 검증하기를 원하지 않을 수도 있지만, 모든 다른 부분들은 여전히 검증할 수 있다. 이것은 Alice가 암호화를 올바르게 수행했음은 보장하지 않지만, 에이젼트들의 그녀의 선택 및 그들의 제각기의 R은 올바른 것이었는지를 검증하게 된다. 이러한 형태의 부분적 체킹은 통신 지연에 민감한 애플리케이션에 중요하다. 즉, Alice가 SKR 블럭을 사전에 계산할 수 있고 Bob이 단지 부분적 체킹만을 행한다면, 어떤 공용 키 동작들이 수반되지 않는 한 동작개시 지연은 현저히 빨라질 것이며, Bob은 Alice의 SKR 프로세스의 얼마간의 중요한 부분들을 검증하기만 하면된다. 이것은, 부분적 검증이 포함된 공용 키 암호화의 전체 검증에 대해 추가의 시간을 요구하지 않고 적당한 회복의 더욱 큰 가능성을 제공하게 되는 경우(상대방의 시스템이 적당히 구성되어 적당히 동작하고 있을 경우), Alice와 Bob이 독립적인 SKR 정보를 발생하고 있을 때 특히 유용하다.
부가의 캐슁: 지금까지 제공된 구성에서, Bob과 Alice는 그들의 공유된 비밀 시드 S로부터 도출된 공용 키 암호화된 KG 값들을 캐쉬할 수 있다. 일반적인 경우에, S는 Alice와 Bob에게만 알려져 있을 때 이들 암호화된 KG 값들은 단지 Alice와 Bob의 연속적인 대화들에서만 재사용될 수 있고 다른 당사자들과의 대화에는 재사용될 수 없으며, 회복 정보를 충분히 검증하기 위해 S는 다른 수신자에게 알려져야 한다.
암호화된 KG 값들은 2개의 상이한 조건하에서 다른 당사자와의 대화에 재사용될 수 있다. 첫째, 암호화된 KG 값들은 S의 값이 새로운 당사자에게 명시적으로 송신된 경우 재사용될 수 있다. 둘째, 이들은 수신자에 의해 B1의 부분적 검증이 행해져야 하거나 또는 B1의 검증이 전혀 행해지지 않는 경우 재사용될 수 있다. 예를 들어, Alice가 Bob과의 세션 개시시에 자신의 에이젼트들에 대한 암호화된 KG 세트를 생성한 경우, 이 S를 Ted에게도 송신하거나 Ted가 전송된 B1내의 암호화된 KG 값들을 검증하기 위해 S를 사용하지 않는다면 Ted와의 대화에 대해 이들 암호화된 KG를 재사용할 수 있다. 이러한 재사용을 지원하기 위한 상태 1에서 공칭 데이터 흐름의 유일한 문제점은 KG의 주어진 암호화가 또한 주어진 T1의 해쉬를 암호화하고, 따라서 암호화가 새로운 상태 1 블럭(새로운 T1을 가짐)에서 재사용될 경우, 에이젼트가 이후에 암호화된 T1의 해쉬를 공개된 이전의 T1에 일치시킬 수 있도록 이전의 T1이 암호화된 KG 필드와 함께 송신될 것이 또한 필요하다는 것을 인식하는 것이다.
본 바람직한 경우에서, Alice와 Bob은 대화형 세션을 가지며, 제각기 독립적으로 SKR 블럭을 발생하고, 서로의 SKR 블럭을 단지 부분 체크한다. 이러한 상황에서, Alice와 Bob은 전혀 S를 교환할 필요가 없고, 심지어 다른 당사자와의 세션들로부터 이전에 계산되었던 S를 재사용하는 것은 자유이다. 관련된 에이젼트들이 동일한 경우, S의 재사용은 추가의 공용 키 암호화를 회피하게 된다. Alice가 동일한 회복 에이젼트 세트를 갖는 다수의 당사자들과 통신할 수 있는 경우, 주어진 에이젼트들의 세트에 대해 암호화된 KG를 재사용할 수 있는 능력은 각 에이젼트의 KG 값을 암호화하는데 사용되는 공용 키 동작들에 대해 요구되는 계산을 더욱 현저히 감소시킨다.
암호화 솔트(encryption salts): 일반적인 경우에, 공용 키 암호화는 다음 형식으로 표현될 수 있다.
c=K(D,X)
여기서 암호문(cipher text) c는 키 K하에서 데이터 D와 임의 값 X의 암호로서 도출된다. RSA PKCS-1 암호화, 향상된 최적의 비대칭 암호화에 의한 RSA 암호화 및 디피에-헬만 암호화를 포함하는 몇 개의 공용 키 암호화 알고리즘중 어느 하나가 사용될 수 있다. 이들 알고리즘중 첫 번째 및 두 번째 알고리즘은 당분야에 잘 알려져 있으며, 따라서 더 이상 설명되지 않는다.
향상된 최적의 비대칭 암호화(enhanced optimal asymmetric encryptio;EOAE)에 의한 RSA 암호화는 포맷된 블럭(데이터와 부가된 값들을 포함함)이 다수의 마스킹 라운드(masking rounds)(해쉬들이 키잉(keying) 처리되지 않는 것을 제외하면 이후 설명되는 키 방식의 셔플러와 유사함)에 처해진 후 RSA 암호화를 사용하여 마스킹 라운드 결과를 암호화하는 암호화 처리이다. 이 처리는 죤슨(Johnson) 등의 미국 특허 출원 08/681,679은 물론, ANSI X9.44 키 전송 초안 표준(Key Transport draft standard) 및 디. 비. 죤슨(D.B. Johnson)과 에스. 엠. 마티야스(S. M. Matyas)의 "Enhanced Optimal Asymmetric Encryption: Reverse signatures and ANSI X9.44", Proceedings of the 1996 RSA Data Security Conference, San Francisco, CA, 1996(본 명세서에서 참조로 인용됨)에 개시되어 있다.
RSA PKCS-1 암호화의 경우, 데이터를 블럭 사이즈까지 임의 패딩하는데 사용되는 임의 수 발생기를 시드하기 위해 X가 사용된다. 향상된 최적의 비대칭 암호화(EOAE)에 의한 RSA 암호화(이후 설명됨)의 경우, X는 데이터에 명백히 부가된 솔트에 대응하며, 어떤 다른 임의의 패딩도 행해지지 않는다. 디피에-헬만 암호화의 경우에, X는 Alice의 일시적인 키 쌍을 발생하는데 사용된 임의 값을 나타낼 수 있으며, 이 키 쌍은 에이젼트의 공용 디피에-헬만 키와 함께 공통 키(common key)를 발생하는데 사용되며, 그리고 나서 이 공통 키는 통상 데이터용 마스크로서 사용된다.
예를 들어, Alice가 디피에-헬만을 사용하여 KGs를 에이젼트 "a"에게 송신하기를 원할 경우, Alice는 일시적 디피에-헬만 키 쌍, {KPx, KSx}를 발생하기 위해 X를 사용하게 되며, 여기서 KPx는 공용부분이고, KSx는 비밀 부분이다. 에이젼트 "a"의 공용 키 부분 KPa가 주어진 경우, Alice는 파워 KPa에 대해 공통 키 KC=KSx를 계산한다. 이제 암호문 c는 Alice의 일시적 공용 키인 복합 세트 {KPx, KC(M)} 및 공통 키 KC에 의해 암호화된 최초의 데이터 D가 된다. (이와 같은 암호화는 단순히 KC를 사용하여 D와 XOR된 마스크를 도출하는 것일 수도 있고 또는 키로서 KC를 사용하는 보다 일반적인 대칭 암호화법일 수도 있다.) {KPx, KC(D)}가 주어지면, 에이젼트는 파워 KPx에 대해 KC=KSa를 계산하여 이것을 D를 암호해독하는데 사용하게 된다.
요약하면, 디피에-헬만은 임의의 X가 일시적 키 쌍을 생성하는데 사용되고, 일시적 공용키 KPx가 암호문의 일부로서 포함되는 한 SKR에서 용이하게 사용될 수 있다.
이들 모두의 경우에, Bob은 SKR 상태 1 블럭내의 공용 키-암호화된 필드를 재생성하여 검증할 수 있도록 값 X를 알아야 할 필요가 있을 수 있다. Bob과 Alice가 사용된 임의 솔트에 대해 일치할 수 있도록 솔트는 교환된 S로부터 임의 무작위 추출에 의해 도출되며, S는 또한 KG 값들의 발생원으로서 사용된다. 따라서, S는 SKR 처리에서 사용되는 모든 필요한 무작위의 소스이다. 보다 구체적으로, KG 및 솔트 값들은 다음과 같이 발생된다.
KGx = Hash(KG 발생 헤더, 카운터, T1, 에이젼트 x의 ID, S)
saltx = Hash(솔트 발생 헤더, 카운터, T1, 에이젼트 x의 ID, S)
여기서, Hash(x)는 x의 해쉬를 표시하고, KG 발생 헤더 및 솔트 발생 헤더는 정의된 상수이며, 카운터는 간단한 정수 카운터이고, T1은 Alice, Bob 및 모든 키 회복 에이젼트들의 ID들을 포함하는 공용 헤더이며, S는 교환된 임의 S이다.
e에서의 Hash(T1) 결합: 암호화된 KG 값들의 구체적 구성은 다음과 같다.
ePUa1(Hash(T1), KGa1, salt1)
PUa1에 의해 암호화된 데이터 블럭은 공용 헤더 T1의 해쉬와 솔트를 포함함을 나타낸다. T1의 해쉬를 포함하여 KG 값을 특정 헤더에 결합함으로써, 에이젼트들은 암호화된 KG를 표시된 당사자들의 세트 및 공용 헤더 T1에 지정된 에이젼트들과 연관시킬 수 있다. 솔트를 포함함으로써 암호화된 KG 값을 더한층 보호할 수 있다.
AI 전송: Alice 및 Bob은 선택사양적으로 SKR 정보내에 키 회복 인증 정보(Authorization Information;AI)를 포함시킬 수 있다. 실질적인 목적을 위해, 본 발명에서 AI 정보는 휘셔에 의해 개시된 자기-식별 데이터(미국 특허 제 5,436,972 호)의 정의된 용도는 물론 본 명세서에 설명된 AI를 사용하는 방법을 포함한다. 그러나 본 발명은 AI 정보가 비밀 KG 키들에 결합되는 방식에서 휘셔와 다르다.
AI 정보(식별 정보, 입증 정보 또는 인증 정보)는 선택사양적으로 있을 수 있는 계속되는 키 회복 요구들을 검증하는데 사용된다. SKR 구조는 이러한 회복 인증 레코드들의 정확한 내용이 애플리케이션 및 사용자의 요구에 따라 변화할 수 있도록 되어 있다. 각각의 SKR 상태 2 블럭은 에이젼트의 KI로부터 도출된 값들(KAa.1, KAa1.2 등)을 정의한다. 이들 KA 값들은 몇가지 방법으로 AI 데이터를 보호하는데 사용된다. 공칭 방법에서, AI 정보는 형식 Hash(AI, KA, T2)의 키잉된 해쉬에서처럼 제각기의 KA 키에 의해 간단히 해쉬된다. 이러한 방법에서, Alice는 에이젼트에게 AI(대표적으로 통과문(a pass phrase))를 제공함으로써 회복 요구를 검증할 수 있으며, 그리고 나서 에이젼트는 해쉬를 검증할 수 있고, 이에 의해, 확실하게 대응하는 KK의 복귀를 요청할 수 있다. 본 실시예에서, KA는 시드된 해쉬 동작에서 키로서 사용된다.
다른 방법들이 AI 데이터를 보호하는데 사용될 수 있으며, 예를 들면, Alice는 AI(KA, T2)에서와 같은 KA를 암호화하기 위해 통과문을 사용할 수 있다. 회복시에, Alice는 통과문을 사용하여 필드를 암호해독함으로써 KA를 회복하여 회복 인증에 대해 제출할 수 있다. 이 경우에, KA는 코드워드(a codeword) 또는 인증 토큰(authorization token)으로서 사용된다. 단지 Alice와 에이젼트와 몇몇 경우 Bob(Alice와 Bob이 S를 공유한 경우)만이 KA를 알고 있으므로, 이것은 후일의 침투로부터 Alice의 통과문을 보호한다. 이러한 모드에서 Alice는 자신의 통과문을 에이젼트에게 공개할 필요가 없다는 추가의 잇점을 갖는다.
디폴트로, AI 정보는 다음 형식으로 평문의 블럭 2에 포함된다. 즉,
Hash(인증 헤더, 카운터, AIa1, KAa1.i, i번째 세션에 대한 T2),
Hash(인증 헤더, 카운터, AIa2, KAa2.i, i번째 세션에 대한 T2),
Hash(인증 헤더, 카운터, AIb1, KAb1.i, i번째 세션에 대한 T2),
Hash(인증 헤더, 카운터, AIb2, KAb2.i, i번째 세션에 대한 T2),
AI는 에이젼트들 및 세션, 또는 바람직하다면 그들의 조합에 걸쳐 모든 에이젼트들 및 세션들에 대해 동일할 수 있다. AI의 값들은 비록 사용자들 또는 에이젼트들이 어떤 표준 내용에 동의할 수도 있지만 간단히 몇 개의 비밀 패스워드 또는 통과문일 수 있다.
SKR 메카니즘내에서 AI를 처리하는 방법은 휘셔에 의해 개시된 방법과 다르다. 휘셔는 우선 비밀(본 발명의 경우 KG)과 자기-식별 데이터(본 발명의 경우 AI)를 결합한 후 수탁자(본 발명의 경우 키 회복 에이젼트)의 공용 키에 의해 이 결합된 결과의 적어도 일부를 암호화함으로써 비밀과 자기-식별데이터를 결합한다. 그러나 본 발명에서는, AI가 KG와 결합되고 키 회복 에이젼트의 공용 키에 의해 암호화되지 않는다. 이것은 이렇게 할 경우 AI 정보를 모르는 Bob이 암호화된 KG 값을 검증할 수 없기 때문이다.
본 발명의 일실시예에서, Bob은 Alice로부터의 암호화된 KG를 검증하며, 이 경우 암호화된 값들은 AI를 포함할 수 없다. 그러므로 본 발명은 Bob이 Alice로부터의 암호화된 KG를 검증하는 경우를 포함하여 본 발명의 모든 실시예에서 동작하게 되는 AI와 KG를 결합할 방법을 요구한다. 이를 가능하게 하기 위해, KG로부터 우선 KI를 그리고 나서 KA를 도출하며, 따라서 결합 동작에 사용된 비밀은 KG가 아니며, 이에 의해 입증 코드 발생 처리에서 KG를 반복적으로 노출시키지 않는다. 그리고 나서, AI와 KA가 가능하다면 다른 정보와 함께 결합되며, 이러한 결합 결과는 해쉬되어 입증 코드를 생성한다. Alice는 S를 알고 따라서 키 계층내의 키들중 어느 것을 발생할 수 있으므로, 입증 코드를 생성할 수 있고, 자신의 AI를 알며, AI는 비밀을 포함할 수 있다.
키 회복 에이젼트가 Hash(AI, KA, T1)를 검증할 수 있도록, Alice는 키 회복 에이젼트에게 AI를 제공해야 한다. 이를 행하는데 있어 다향한 옵션이 존재한다. 즉, 이것은, 사람으로 나타내고 자격증명서를 제출하거나, 또는 사용자의 자격을 검증하는 중개인을 사용하거나, AI 레코드를 마련하여 이것을 비밀리게 키 회복 에이젼트에게 송신하거나 하는 것을 포함하며, 또는 Alice가 그녀 자신의 AI 레코들 마련하여 키 회복 에이젼트에게 알려진 키에 의해 이것을 암호화한 후 회복 에이젼트에게 암호화된 AI를 송신할 수 있다. 예를 들어, AI는 에이젼트의 공용 키에 의해 암호화되어 에이젼트에게 송신될 수 있다.
설명되는 방식으로 AI와 KG를 분리함으로써 키 회복 에이젼트에게 제공되거나 이용가능하게 된 AI는 긴 시간동안 반복적으로 사용될 수 있다. 전형적으로, AI는 다수의 상이한 KG에 대해 일정하게 유지된다. 또한, AI는 대량의 데이터를 포함할 수 있으며, 따라서 다수 회의 공용 키 암호화를 요구할 수 있다. 이 경우 각각의 KG와 함께 AI를 반복적으로 송신해야 하는 것이 단점이다.
도 5는 SKR 입증 코드 발생(Authentication Code Generation)(220)의 처리를 예시한다. 단계(232)에서 사용자는 보호되는 입증 정보 AI(227)를 마련한다(예를 들면, 키 회복 에이젼트에게 알려진 키에 의해 암호화함으로써). 그리고 나서, 얻어진 보호 AI(233)는 단계(234)에서 키 회복 에이젼트에게 이용가능하게 된다. 이들 단계는 AI를 키 회복 에이젼트의 공용 키에 의해 암호화한 후 암호화된 AI를 키 회복 에이젼트에게 송신함으로써 성취될 수 있다. 이 단계는 SKR 시스템을 사용하기 전에 수행된다. 나중에, 단계(222)에서 KG(221)는 키 회복 에이젼트의 공용 키에 의해 암호화되어 암호화된 KG(223)를 생성하며, 이것은 단계(224)에서 키 회복 에이젼트에게 이용가능하게 된다. 이 경우, 암호화된 KG(223)는 SKR 블럭 1에 포함됨으로써 "이용가능하게"된다. 각 세션에 대해, 키 도출 단계(225)가 KG(221)로부터 KA(226)를 도출하기 위해 수행된다. 이와 같이 생성된 KA(226) 및 AI(227) 및 있을 수 있는 다른 정보(예를 들면, 유효 키 회복 요구에 응답하여 어느 KK가 복귀되어야 하는지를 지정하는 제어 정보)는 단계(228)에서 결합(예를 들면, 값들을 연관시킴으로써)되며, 이 결합결과는 단계(229)에서 해쉬되어 입증 코드(230)를 생성한다. 그리고 나서, 입증 코드(230)는 SKR 블럭 2내에 포함됨으로써 키 회복 에이젼트에게 "이용가능하게" 된다.
도 5에서 설명된 입증 코드 발생(220) 방법의 결과로서, 사용자의 KK에 대한 요구는 다음과 같이 검증된다. 즉, 사용자는 우선 키 회복 에이젼트가 자신의 저장된 AI의 카피를 검증할 수 있는 정보를 공급함으로써 요구된 키에 대한 자신의 신원 또는 권리를 증명해야 한다. 이를 성취하기 위한 다수의 상이한 방법들은 당분야에 잘 알려져 있으므로, 본 명세서에서는 더 이상의 설명은 생략된다. 검증 단계의 부분은 KA의 계산을 요구한다. 예를 들면, 사용자의 요구가 i번째 KK에 대한 것인 경우, 키 회복 에이젼트는 우선 대응하는 i번째 KA를 계산한다. 다음으로 키 회복 에이젼트는 (AI, KA, T2)로 구성되는 입력 값에 대한 해쉬를 계산하여, 여기서 T2는 사용자에 의해 제공된 세션 회복 정보로부터 획득된다. 계산된 해쉬 값이 공급된 SKR 블럭 1내에 포함된 대응하는 참조-해쉬(hash-of-reference)의 값이 일치하면, 요구는 유효한 것으로 간주되며, 요구된 KK가 계산되어 키 회복 에이젼트에 의해 복귀된다.
ID들 및 명칭공간들(Namespaces): 사용자들 및 에이젼트들에 대한 ID는 X.509 구별 명칭들(Distinguished Names), PGP 아스키 명칭들(ascii names), PGP 키아이디들(keyids), IP 어드레스, DNS 호스트 명칭들, 전자 메일 어드레스 등과 같은 다수의 형태들일 수 있다. SKR에서, 모든 ID는 초안 RFC draft-ietf-ipsec-cdp-00에 따라 표시된 명칭공간내의 명칭공간 식별자 및 아스키 명칭로 구성된 집합으로서 표현될 수 있다. 이 초안은 애플리케이션 전용 사용을 위해 명칭공간 인덱스들(indexes)(250∼255)을 지정한다. SKR은 애플리케이션에 전용인 명칭공간(250)을 다룰수 있으며, 따라서 애플리케이션이 공용 키에 대한 요구, 국가 정보에 대한 요구 등과 같은 이러한 형태의 모든 ID에 대한 모든 질의를 처리할 것으로 기대된다. 국가 ID에 대해 정의된 명칭공간이 없으므로, SKR은 SKR 지정 국가 명칭들에 대해 명칭공간(251)을 사용할 수 있다.
사용자 등록 공용 키들: 공칭 구성에서, KG 값들은 제각기의 에이젼트들의 공용키에 의해 암호화된다. 본 설명은 각각의 에이젼트가 단지 하나의 공용 키를 가짐을 의미한다. SKR 데이터 포맷은 주어진 에이젼트에 대해 사용된 키아이디를 지정하며, 따라서 에이젼트는 임의 수의 키들을 가질 수 있다. 단일 키의 사용이 대응하는 전용 키의 장기간 보안에 대한 염려를 증가시킬 경우 이것은 중요한 기능이다. 에이젼트마다 다수의 키들을 허용함으로써, 에이젼트는 간단히 모든 사용자들에 대한 키들의 세트를 가질 수 있으며, 또는 사용자들(사용자로서 간주될 수도 있는 특정 조직의 사용자들)의 세트에 특정한 키들을 가질 수 있으며, 또는 심지어 각각의 개별적 사용자에 대해 분리된 키를 가질 수도 있다. 사용자들은 또한 키 쌍을 발생하여 이들을 에이젼트에 등록하여, 키들이 성공적으로 작성되었음을 보장하고 이들을 원하는 빈도수로 변화시킬 수 있다.
키 회복 에이젼트들에 사용자-발생 회복 키들을 등록하기 위해 다수의 다른 방법들중 어느 하나가 사용될 수 있다. 한가지 방법으로는, 각 사용자가 하나 이상의 키 회복 에이젼트들에 키 회복 절차에 사용할 그 또는 그녀 자신의 공용 및 전용 키 쌍을 등록한다. 그리고 나서, 각 사용자는 그 또는 그녀가 등록한 키의 전용 부분을 사용하여 키 회복 값들을 암호화한다. 이러한 특성에 의해 사용자들은 전용 회복 키가 어떻게든 손상된 경우의 노출을 제한하기 위해 회복 키 쌍을 주기적으로 변화시킬 수 있는 융통성을 갖는다.
이러한 첫 번째 방법은 키 회복 에이젼트들이 서명을 위한 공용/전용 서명(증명) 키들 및 키들의 암호화 및 분배에 사용된 공용/전용 키들을 가지는 공용 키 내부구조의 존재를 가정한다. 이것은 또한 이들 키를 발생 및 분배하기 위한 수단이 존재하며, 사용자가 이들 키의 공용 부분을 검증하기 위한 수단이 존재함을 가정한다. 이와 같은 내부구조를 설정하기 위한 수단은 당분야에 잘 공지되어 있다.
이러한 첫 번째 방법에서, 사용자들은 회복 키 쌍의 전용 부분을 키 회복 에이젼트의 공용 암호화 키에 의해 암호화함으로써 등록한다. 이것은 키 회복 에이젼트에 의한 회복 키들의 온-라인 등록(on-line registration of recovery keys)을 허용한다. 등록 처리의 일부로서, 키 회복 에이젼트는 공용 및 전용키들이 유효키 쌍임을 검증한다. 이와 같이 하여, 키 회복 에이젼트는 자신이 공용 키에 의해 암호화된 정보를 암호해독할 올바른 전용 키를 가짐을 인식한다.
이러한 첫 번째 방법에서, 키 회복 에이젼트는 선택사양적으로 사용자들에게 이용가능하게 된 서명(증명) 키를 사용한다. 사용자의 등록 키 쌍을 검증한 후, 키 회복 에이젼트는 자신의 서명(증명) 키에 의해 등록된 공용 키를 서명(증명)한다. 이 서명(증명)된 공용 키는 사용자에게 복귀되며, 사용자는 키 회복 에이젼트의 서명(증명) 키의 공용 부분에 의해 서명(증명)을 검증한다. 이와 같이 하여, 사용자는, 키 회복 에이젼트가 키 회복 값들을 암호해독하기 위한 수단을 가지고 있으며, 따라서, 키 회복 절차가 실행될 수 있음을 인식한다.
다수의 개별적인 사용자가 존재하는 경우, 모든 사용자가 그 또는 그의 회복 키들을 키 회복 에이젼트들에 등록하는 것이 용이하게 실시될 수 있음을 이해할 것이다. 따라서, 첫 번째 방법의 여러 가지 변형은 개별적인 사용자 레벨에서라기 보다는 오히려 조직 레벨에서 회복 키들의 입자성(granularity)을 고려한다. 공통 조직에 속하는 사용자 그룹, 예를 들면, 동일한 회사의 고용인들은 동일한 회복 키를 갖게 된다.
이러한 변형예에서, 각각의 조직은 하나 이상의 키 회복 에이젼트들에 해 회복 절차에 사용할 자신의 공용 및 전용키를 등록한다. 예를 들면, 기업은 그 자신의 회복 키 쌍을 발생하며, 이들 키를 하나 이상의 키 회복 에이젼트들에 등록한다. 이 경우, 기업은 첫 번째 키 회복 에이젼트에게 등록할 첫 번째 회복 키 쌍을 발생하고, 두 번째 키 회복 에이젼트에게 등록할 두 번째 회복 키 쌍을 발생한다. 그리고 나서, 기업 고용인들은 기업-발생 회복 키들의 공용 부분을 사용하여 회복 절차에 의해 키 회복 값들을 암호화할 수 있다.
언급된 것을 제외하고, 이러한 변형예는 개별적인 사용자 변형예와 동일하다. 그러나 조직 레벨의 회복 키들의 경우, 등록된(에스크로우된) 회복 키들의 수는 현저히 감소되며, 이것은 이러한 변형예에 의해 키들을 등록할 수 있는 잠재적인 조직의 수가 이러한 첫 번째 방법의 개별적인 사용자 변형예에 의해 키들을 등록할 수 있는 잠재적인 사용자들의 수보다 훨씬 더 작을 것이기 때문이다.
그러나 이러한 첫 번째 방법의 임의의 변형예의 단점은 회복 키의 전용 부분이 키 회복에이젼트에게 속하는 키에 의해 암호화됨으로써 키 회복 에이젼트에게 온라인으로 이용가능하게 된다는 것이다. 따라서 다수의 회복 키들을 갖고 이들 다수의 키들에 걸쳐 노출가능성을 파급시킴으로써 얻어지는 장점이 이들 키의 전용 부분들을 키 회복 에이젼트에게 속하는 단일 키에 의해 암호화함으로써 무효가 된다.
그러므로, 회복 키 등록의 다른 방법에서는 회복 키의 전용 부분이 키 회복 에이젼트에게 속하는 키에 의해 암호화됨으로써 온-라인으로 등록되지 않는다. 대신에, 키 등록은 확실하게 안전하며 감사가능한 방법으로 실현되어 사용자들 및 기업들은 키 회복 에이젼트를 충분히 신뢰하게 된다.
이러한 다른 방법에서, 사용자는 에이젼트에 의해 부정조작이 불가능한 하드웨어 공용 키 토큰(a tamper-proof hardware public key token)(예를 들면, 스마트 카드 또는 PCMCIA 카드)을 등록할 수 있다. 이 토큰은 내부의 하드웨어 임의 수들에 기초하여 자신의 공용 키 쌍을 발생하도록 설계되며, 이 키 쌍의 공용 부분만을 공개한다. 이것은 키의 전용 부분을 결코 공개하지 않고, 대신에 임의의 제시된 회복 요구의 암호해독을 위해서만 전용 부분을 사용한다. (대안적으로, 전용 키는 외부적으로 발생되어 토큰으로 저장될 수 있으며, 또는 회복 키의 공용 부분이 그렇게 하는 것이 바람직하다면 몇몇 다른 방법에 의해 제공될 수 있다. 이와 같이 하여, 사용자는 그들의 전용 키가 결코 손상되지 않으며, 키의 어떤 사용도 감사할 수 있음을 극도로 신뢰할 수 있다.
카드는 키 회복 에이젼트에서 판독기내로 플러그되어 공용키가 검색될 수 있고 검증될 수 있으며, 카드는 새로이 제출된 공용 키와 일치하는 비밀 키를 포함한다. 토큰이 회복 키의 올바른 전용 부분을 포함하고 있는지를 검증하는 처리는 당분야에 잘 공지되어 있다. 이것은 일련의 임의 값들을 토큰으로 송신하고 이 토큰이 비밀 키에 의해 값들을 암호화하도록 요구하는 것으로 구성될 수 있다. 그리고 나서, 공용 키는 출력을 암호해독하여 기지의 입력들과 비교하는데 사용된다. 값들의 비교 결과 동일하면, 토큰상의 전용 키는 유효하다. 그렇지 않으면, 토큰은 거절된다. 일단 검증되면, 토큰은 플러그해제되어 보관실 또는 안전지역에 저장된다. 토큰은 영장 또는 법정 명령에 의해서만 이러한 보관소 또는 안전지역으로부터 검색되어 사용될 수 있으며, 그때에도 토큰은 전용 키를 공개하지 않는다. 토큰은 공급된 암호화된 키 회복 값들을 단지 암호해독한다.
이러한 다른 방법의 경우, 회복 키의 전용 부분이 키 회복 에이젼트에게 속하는 키에 의해 암호화됨으로써 결코 노출되지 않는다는 한가지 장점을 갖는다. 이 경우, 암호화에 사용되는 키는 토큰상에 저장되며, 키 회복 에이젼트조차도 이 회복 키의 전용부분의 값을 결정할 수 없다.
이러한 다른 방법의 경우, 토큰이 감사될 수 있다는 또 한가지의 장점을 갖는다. 이 경우, 회복 키의 전용 부분은 부정조작의 징후에 대해 검사될 수 있는 물리적 장치내에 저장된다. 이것은 마크되거나 태그되어 주기적으로 감사됨으로써 오용되지 않게 보장한다. 이 토큰은 또한 모든 사용 사례들을 기록할 수 있으며, 이 정보는 카드 정보가 토큰의 감사 기록과 부합함을 보장하기 위해 감사중에 "덤프(dump)"될 수 있다.
이러한 다른 방법의 경우, 조직은 키와 토큰이 그의 고용인들중 하나에 의해 조사되는 경우에만 키 회복 에이젼트에 의한 사용으로 호출될 수 있음을 확신한다. 조직의 고용인들에 속하지 않는 법 집행 기관에 의한 다른 키들의 회복은 조직에 의해 공급되는 회복 키들을 포함하는 조직에 의해 공급되는 토큰을 사용할 필요가 없다. 따라서 조직은 회복 키들이 보호됨을 더욱 확신한다.
이러한 각 방법에서는, 키 회복 시스템 소프트웨어 또는 하드웨어가 공용 증명 키들의 리스트를 포함함을 가정한다. 이들 공용 증명 키들은 증명 권한(certification authorities;CAs)은 물론 키 회복 에이젼트들에게 속하는 공용 증명 키들을 포함할 수 있다. 이 경우, 회복 키들의 공용 부분이 증명 키에 의해 서명(증명)되는 2레벨 계층이 존재하며, 회복 키들의 공용 부분을 포함하는 증명서들은 "하드 코딩된(hard coded)" 공용 증명중 하나를 사용하여 회복 시스템 소프트웨어 또는 하드웨어로 동적으로 검증된다.
이러한 형태의 장치가 제공되면, 사용자들은 비용에 대비한 그들의 회복 보안 레벨을 선택할 수 있다. 대부분의 사용자들은 아마도 간단히 자신이 선택한 에이젼트의 증명된 공용 암호화 키를 사용할 것이다. 이들은 부가의 비용으로 그들 자신의 회복 키를 주기적으로 등록하기 위한 온-라인 방법을 사용할 수 있다. 더욱 높은 비용으로, 이들은 그들의 키를 스마트 카드상에 물리적으로 등록할 수 있다. 감사되는 스마트 카드의 물리적 저장장치와 연관된 비용이 상승되면, 특히 고가의 통신에 의해 다수의 기업들 또는 사업가들에 의한 그의 이용을 제한하게 되며, 사용자들은 키 갱신 레벨 및 빈도수를 선택할 수 있다.
제공되는 감사가능한 물리적 보안이 사용자가 회복 에이젼트에 의해 어떤 식으로든 그들의 키가 손상되었음을 주장하기 어렵게 됨에 따라, 회복 에이젼트들은 스마트 카드에 의한 등록을 환영하게 된다.
이들 다른 방법에 의해, 사용자는 더욱 큰 보안을 위해 에이젼트에 의한 몇몇 형식의 이전 등록의 불편을 다루는 보안 스펙트럼으로부터 선택할 수 있다.
해쉬 특성 및 키 발생: SKR은 키 및 솔트 도출을 위해, 회복 검증 해쉬 발생을 위해, 회복 인증 정보 발생을 위해 및 대칭 암호화의 키잉된 셔플러 방법의 일부로서 해쉬를 사용한다. 어떤 암호화에 의해 해쉬도 사용될 수 있지만, 명목상 SKR은 해쉬를 위해 SHA-1을 사용한다. 해쉬는 주로 비-역전가능할 필요가 있으며, 이에 의해 임의 값의 해쉬에 대한 지식이 최초의 값을 결정하는 추적가능한 방법을 제공하지 않게 된다. 또한, 해쉬는 모든 입력 비트들에 의존할 필요가 있으며, 이에 의해, 회복 검증 및 회복 인증시에 해쉬의 사용이 신뢰성있게 된다. 충돌-저항성 해쉬 함수가 이전의 두 요건을 만족시키는 한 사용될 수도 있지만, 해쉬는 충돌 저항성이라고 하는 더욱 강력한 특성을 요구하지 않는다.
본 명세서에서, 해쉬는 형식 H(a, b, c, ···)으로 사용된다. "양호한(good)" 해쉬의 경우, 입력 값들의 순서는 문제가 되지 않으며, 임의의 순서로 지정될 수 있다. 실제 문제로서, 순서는 특히 키잉된 해쉬내의 키를 다룰때에 중용할 수 있다. 본 명세서에 도시된 순서들은 단지 가능한 순서들이며, 본 발명은 SKR 시스템을 설명하는 임의의 해싱 동작들에서 입력의 특정 순서에 제한되지 않는다. 상이한 해쉬 알고리즘에 따라 구현은 적절히 그 순서를 변화시킬 수 있다.
S=K인 변질된 경우: 몇몇 애플리케이션의 경우, S를 교환하는 것 또는 상태 1에서 SKR이 그것을 교환하게 하는 것이 어렵거나 바람직하지 않을 수도 있다. 예를 들면, 애플리케이션이 추가적인 S의 교환을 지원할 수 없고, Bob의 공용 키가 미지이거나 공용 키를 갖지 않는 경우, 임의 S를 Bob에게 전달할 방법이 없다. 이 경우 두가지 가능성이 존재한다. 즉, Alice와 Bob이 그들 자신의 독립적인 S 값들을 생성하고 서로의 패킷을 완전 체크하지 않거나(이들은 부분적 체킹을 행할 수 있으나 암호화된 KG 값들을 검증할 수 없다), S=K로 세트할 수 있다.
S가 간단히 K로 세트된 경우, SKR 블럭은 이전과 동일하게 정의되지만, 이 방법은 몇가지 단점을 갖는다. 첫째, K가 알려져야 하므로, 상태 1 SKR 블럭은 사전계산될 수 없다. (일단 상태 1 SKR 블럭이 K로부터 계산되면 이것은 캐쉬되어 유지될 수 있다.) 둘째, 주어진 S(얼마간의 K와 동일하게 세트됨)가 캐쉬되면, K의 법적 회복이 법 집행 기관에게 S를 공개하게 되어 에이젼트들과 법 집행 기관간에 지식의 분리상태가 깨어지며, 따라서, 이 S에 의해 회복가능한 모든 키들의 회복에 법 집행 기관에 의해 또한 회복될 수 있게 된다. 셋째, 키 K의 의미론적 보안이 상실된다. 즉, K가 추정되면, 누구라도 SKR 블럭을 계산하고 이들을 동일성에 대해 비교함으로써 이 추정치를 테스트할 수 있다.
S=K로 세트하면 보안성이 감소하고 얼마간 성능상의 단점이 부과되므로, 이것은 어떤 대안도 존재하지 않는 경우, 즉, (1) 애플리케이션이 S를 교환할 수 없는 경우, (2) Bob의 공용 키가 알려지지 않았거나 이용가능하지 않은 경우, (3) 통신이 비-역전가능한 경우에만 행해져야 한다. Bob=Alice인 화일 애플리케이션들의 경우 S=K로 세트해서는 안된다.
세부 SKR 프로토콜
이제부터 대화형 또는 비-대화형 통신, 당사자마다 하나 이상의 에이젼트들을 갖는 하나 이상의 통신 당사자들 및 SKR 상태 1 블럭당 하나 이상의 통신들을 포함하는 경우를 허용하는 공칭 SKR 프로토콜 사양을 가능한한 일반화시켜 설명한다. 이러한 프로토콜 사양은 SKR 방법이 주어진 애플리케이션에 대해 맞추어질 수 있는 경우 단 한 예의 사양이다. 예를 들어, 애플리케이션이 국내의 암호화된 데이터 보관소만을 다루는 경우, 애플리케이션은 실질적으로 보다 작고 간단한 프로토콜을 사용할 수 있다.
상태 1
1. 가능한 경우, Alice와 Bob은 임의의 SKR 시드 S를 교환한다.
2. Alice는 Bob에게 다음과 같이 구성된 SKR 상태 1 데이터 블럭(B1)을 송신한다.
M1 (SKR 블럭 1을 표시하기 위한 매직 식별자)
T1 (SKR 상태 1 공용 헤더)
PR1 (통신중인 당사자 1에 대한 당사자 레코드)
···
PRk (통신중인 당사자 k에 대한 당사자 레코드)
RAR1 (에이젼트 1에 대한 회복 에이젼트 레코드)
···
RARn (에이젼트 n에 대한 회복 에이젼트 레코드)
여기서,
1. T1은 다음으로 구성된다.
SKR 버젼 번호
SKR 공용 키 암호화 방법(공칭 RSA)
SKR 비밀 키 암호화 방법(공칭 키잉된 셔플러)
SKR 해쉬 방법(공칭 SHA-1)
SKR이 당사자들에게 S를 전송해야 하는 경우를 표시하는 플래그
당사자의 수
에이젼트의 수
공급된 KG 비트들의 사이즈
KG 정보의 암호문 주기
SKR 블럭 1 시간스탬프
SKR 블럭 1 ID
2. 각각의 PRi 블럭은 다음으로 구성된다.
당사자 id (명칭공간 번호 및 통신중인 사용자의 명칭)
국가 id (명칭공간 번호 및 국가 명칭)
키 id (당사자의 공용 키의 id)
ePUi(S, Ri) (SKR이 S의 교환을 행하고 있는 경우)
3. 각각의 RARi 블럭은 다음으로 구성된다.
세트 번호 (이 에이젼트가 위치되는 에이젼트들의 세트)
에이젼트 번호 (세트내의 이것이 위치되는 에이젼트)
에이젼트의 키 id (에이젼트의 공용 키들중 어느 키가 사용되었는지)
에이젼트의 키 사이즈(비트단위)
ePUx(T1 ∥KGx, saltx)
4. 여기서,
KGx = Hash(키 발생 헤더, 카운터, T1, 에이젼트 x의 ID, S)
saltx = Hash(솔트 발생 헤더, 카운터, T1, 에이젼트 x의 ID, S)
상태 2
1. 가능한 경우, Alice 및 Bob은 임의의 세션 키 K를 교환한다.
2. Alice는 Bob에게 다음과 같이 구성되는 SKR 상태 2 데이터 블럭을 송신한다.
M2 (SKR 블럭 2를 표시하기 위한 매직 식별자)
T2
Hash(B1)
PR1 (당사자 1에 대한 선택사양적 당사자 레코드)
···
PRk (당사자 k에 대한 선택사양적 당사자 레코드)
RAR1 (에이젼트 1에 대한 선택사양적 회복 입증 레코드)
···
RARn (에이젼트 n에 대한 선택사양적 회복 입증 레코드)
KRR1 (에이젼트 1의 세트에 대한 키 회복 레코드)
···
KRRm (에이젼트 m의 세트에 대한 키 회복 레코드)
여기서,
1. T2는 다음으로 구성된다.
T1
PRi 레코드가 K를 교환하는데 사용되었는지를 표시하기 위한 플래그
선택사양적 RAR 레코드가 포함되었는지를 표시하기 위한 플래그
세션 id
세션 시간스탬프
세션 키 형태(즉, 암호화 알고리즘――DES, IDEA,…)
세션 키 사이즈(비트단위)
세션 키 암호문 주기
2. 선택사양적 Ri는 다음으로 구성된다.
당사자 id (명칭공간 번호 및 통신중인 사용자의 명칭)
키 id (당사자의 공용 키의 id)
ePUi(K, Ri) (SKR이 K의 교환을 실행중인 경우)
3. 선택사양적 RARi는 다음으로 구성된다.
세트 번호 s (어느 에이젼트들의 세트)
에이젼트 번호 a (세트내 어느 에이젼트)
Hash(인증 헤더, 카운터, AIsa, KAsa.i, i번째 K에 대한 T2)
4. KRRi는 다음으로 구성된다.
세트 번호 i (어느 에이젼트들의 세트)
비트 단위의 R의 사이즈
fKKi1.1(fKKi2.1(K)) - R
Hi = Hash(유효 헤더, 카운터, fKKi1.1(fKKi2.1(K)), T2, KKi1.1, KKi2.1)
5. Kgx = Hash(G 발생 헤더, 카운터, T1, 에이젼트 x의 ID, S)
6. KHx = Hash(H 발생 헤더, 카운터, T1, 에이젼트 x의 ID, KGx)
7. KIx = Hash(I 발생 헤더, 카운터, T1, 에이젼트 x의 ID, KGx)
8. KKx = Hash(KK 발생 헤더, 카운터, T2, 에이젼트 x의 ID, KHx)
9. KAx = Hash(KA 발생 헤더, 카운터, T2, 에이젼트 x의 ID, KIx)
전역 통신 정책 표(Global Communication Policy Table)
도 8을 참조하면, 본 발명의 키 회복 시스템에 의해 요구되는 정보가 전역 통신 정책 표로 불리우는 표(800)에 저장된다. 실제의 구현시에 데이터는 아마도 별도의 표들에 적절히 저장되며, 하나는 키 회복 에이젼트의 고용 키들을 지정하고 하나는 규칙들을 지정한다. 표(800)는 시스템으로 하여금 상이한 국가에 위치된 특정 알고리즘 및 사용자들에 대한 키들 및 키 회복 값들의 사이즈를 계산할 수 있도록 하는 정보를 포함한다. 이것은 또한 각 국가에 대해 인증된 키 회복 에이젼트들의 공용 키들을 포함할 수 있다. 표(800)내의 번호들은 본 발명의 허용하는 융통성의 종류를 증명하기 위한 단지 실시예들이다. 변형예들은 사실상 제한되지 않는다. 특히, 각 국가는 다수의 키 회복 에이젼트들을 가질 수 있다.
국가간 통신에 대해, 키 회복 시스템은 자신의 공용 키 증명 또는 비교가능한 시스템 구성 정보로부터 수신자의 국가 ID를 결정할 수 있다. 송신자의 발생지 국가 ID 및 수신자의 목적지 국가 ID와 송신자와 수신자에 의해 사용되도록 의도된 암호화 알고리즘의 알고리즘 ID를 사용하여, 키 회복 시스템은, (1) 송신자 및 수신자가 사용할 수 있는 최대 키 길이, (2) 송신자와 수신자에 대해 다를 수 있는 허용되는 R 값들, (3)키 역전 함수에 의해 필요로 되는 요구되는 키 회복 에이젼트 ID를 결정할 수 있다. 그리고 나서, 키 회복 시스템은 이러한 정보를 키 역전 함수로 전달한다. 키 길이는 2개의 키 길이 값들보다 작다. 예를 들어, 국가 X 및 Y에 대해 DES용 키 값들은 64와 128비트이며, 이경우 64는 사용된 값이다.
키잉된 셔플러(Keyed Shuffler)
키잉된 셔플러 함수(이후 셔플러 함수 또는 그냥 셔플러로서 언급됨)는 n비트 입력 X를 "셔플링된(shuffled)" n비트 출력 Y로 변환하는 역전가능한 함수이다. 셔플러 함수는 i≥3(i는 변수)의 셔플링 반복을 수행하며, 이것은 완전한 혼합을 보장한다. 즉, 출력내의 각 비트는 입력내의 각 비트에 의존한다. 본 발명의 예에서, i=3으로 선택된다. 셔플러의 사양은 i에 대해 특정 값을 규정하지 않는다.
도 6은 셔플러 함수의 고급 블럭도를 제공한다. 간략화를 위해, 입력은 2개의 160비트 부분들(XL, XR)로 구성된다고 가정한다. (셔플러 함수의 일반적 사양은 함수가 임의 길이의 입력을 처리할 것을 요구한다.) 해쉬 반복 1에서, XR은 해쉬되어 160비트의 해쉬 값 H(XR)을 생성하며, 이것은 XL과 XOR되어 마스크된 출력 mXL를 생성한다. 해쉬 반복 2에서, mXL은 해쉬되어 160비트의 해쉬 값 H(mXL)을 생성하며, 이것은 XR과 XOR되어 마스크된 출력 mXR을 생성한다. 해쉬 반복 3에서, mXR은 해쉬되어 160비트의 해쉬 값 H(mXR)을 생성하며, 이것은 mXL과 XOR되어 마스크된 출력 mmXL을 생성한다.
도 7은 최초의 입력 XL∥XR을 회복하기 위해 셔플러 함수에 의해 mmXL∥mXR을 "언셔플링(unshuffling)"하는 처리를 예시한다. 해쉬 반복 3에서, mXR은 해쉬되어 160비트의 해쉬 값 H(mXR)을 생성하며, 이것은 mmXL과 XOR되어 mXL을 회복한다. 해쉬 반복 2에서, mXL은 해쉬되어 160비트의 해쉬 값 H(mXL)을 생성하며, 이것은 mXR과 XOR되어 최초의 입력 XR을 회복한다. 해쉬 반복 1에서, XR은 해쉬되어 160비트의 해쉬 값 H(XR)을 생성하며, 이것은 mXL과 XOR되어 최초의 입력 XL을 회복한다.
셔플러 함수의 일반적 정의: n비트의 입력 X는 셔플러 함수에 의해 다음과 같이 처리된다. 즉,
1. X는 좌측 부분(XL)과 우측 부분(XR)으로 나뉘어지며, 여기서 XL과 XR의 길이는 다음과 같이 정의된다. 즉, a) n이 짝수일 경우, XL과 XR은 각기 n/2비트를 포함하며, b) n이 홀수일 경우, XL은 (n-1)/2 비트를 포함하고, XR은 (n+1)/2 비트를 포함한다.
2. XR은 XL을 마스크하는데 사용된다. 그리고 나서, 마스크된 XL은 XR을 마스크하는데 사용된다. 그리고 최종적으로, 마스크된 XR은 또한 마스크된 XL을 마스크하는데 사용된다. 이 마스킹 동작은 다음과 같이 분리되어 정의된다.
XL의 마스킹: XL은 XR을 사용하여 마스킹된다.
XL은 우선 k비트의 블럭으로 나뉘어진다. XL의 길이가 k의 배수인 경우, 각 블럭은 k비트를 포함한다. XL의 길이가 k의 배수가 아닌 경우, XL은 하나의 짧은 블럭(<k비트)과 선택사양적으로 하나 이상의 k비트 블럭으로 구성된다. 짧은 블럭이 존재하는 경우, 이것은 XL의 최대 유효 비트들로부터 구성된다.
k는 해쉬 알고리즘의 블럭 사이즈로서 정의된다. 예를 들어, SHA-1이 해쉬 알고리즘인 경우, k=160이다. MD5가 해쉬 알고리즘인 경우, k=128이다. 이 스펙에 다른 것으로 기재되지 않는 한, SHA-1이 셔플러 함수에 의해 이용된 해쉬 알고리즘이 된다.
XL내의 블럭은 다음과 같이 나뉘어진다.
XL = ≤K 비트 K 비트 K 비트 K 비트
블럭 i .... 블럭 3 블럭 2 블럭 1
해쉬되어야 할 입력은 다음과 같이 정의된다.
입력 = XR∥공용 헤더
여기서, 공용 헤더는 다음과 같은 10바이트의 엔코딩된 구조이다.
1바이트 식별자 : "셔플러" id
4비트 반복 : 1=제 1 반복
4비트 알고리즘 : 해쉬 알고리즘의 ID
4바이트의 카운터 : 1, 2, 등. 카운터는 마스크될 XL내의 블럭 수와 일치한다.
4바이트 길이 : 셔플링될 데이터 길이(비트 단위)
마스킹 동작은 다음 단계로 구성된다.
1. 카운터=1로 세트한다. 입력(공용 헤더∥키∥XR)을 해쉬 알고리즘에 의해 해쉬하여 k비트의 해쉬 H1을 생성하며, 여기서 "키"는 키잉-셔플러 함수에 지정된 비밀 키이다. H1을 XL로부터의 블럭 1으로 XOR하여 마스크된 블럭 1(이후 mblock 1으로 표시됨)을 생성한다.
2. 카운터=2로 세트한다. 입력(공용 헤더∥키∥XR)을 해쉬 알고리즘으로 해쉬하여 k비트의 해쉬 H2를 생성하며, 여기서 "키"는 키잉-셔플러 함수에 지정된 비밀 키이다. H2를 XL로부터의 블럭 2와 XOR하여 마스크된 블럭 2(이후 mblock 2로 표시됨)를 생성한다.
3. 이 동작은 마지막 블럭(블럭 i)이 마스크완료될 때까지 계속된다. 마지막 블럭이 j비트를 포함하는 짧은 블럭(j<k)이면, 이때 블럭 i는 Hi의 최소 유효 j비트를 블럭 i와 XOR함으로써 마스크되어 마스크된 블럭 i(이후 mblock i로 표시됨)을 생성한다.
마스크된 XL은 mXL로 표시된다.
XR의 마스킹: XR은 마스킹된 XL(이후 mXL로 표시됨)을 사용하여 마스킹된다.
XR내의 블럭은 XL내의 블럭이 나뉘어졌던 것과 동일한 방법으로 다음과 같이 나뉘어진다. 즉,
XR = ≤ K 비트 K 비트 K 비트 K 비트
블럭 i .... 블럭 3 블럭 2 블럭 1
XR은, 공용 헤드내의 반복 회수가 2로 세트("두번째 반복"을 표시)된 것을 제외하고는, XL이 XR로 마스킹되었던 것과 동일한 방법으로 mXL에 의해 마스킹된다. 이 경우에, 공용 헤더는 mXL에 사전고정(post-fixed)된다.
해쉬될 입력은 공용 헤더내의 반복 회수가 2로 세트되어 "두번째 반복"을 표시하는 것을 제외하고는, 입력 = 공용 헤더∥키∥mXL이다. 카운터는 리셋되며, 전처럼 1, 2, 등을 증분한다. 이러한 마스킹 동작은 입력을 해쉬하고 이 생성된 해쉬 값들을 XR내의 블럭들로 XOR하는 것으로 구성된다.
마스킹된 XR은 mXR로 표시된다.
mXL의 마스킹: mXL은, 공용 헤더내의 반복 회수가 3으로 세트("세번째 반복"을 표시)된 것을 제외하고는 XL이 XR로 마스킹되었던 방법과 동일한 방법으로 mXR에 의해 마스킹된다. 마스킹된 mXL은 mmXL로 표시된다.
셔플러의 출력은 mmXL∥mXR이다.
셔플러에 지정된 키: 본 발명은 셔플러를 "키잉"하는 다양한 방법이 있을 수 있음을 고려한다. 한가지 방법은 키와 해쉬될 입력의 나머지를 결합, 즉, 입력=(공용 헤더∥키∥데이터)로 결합하는 것으로, 여기서 데이터는 XL, XR, mXL, mXR 등일 수 있다. 예를 들어, 키는 (입력의 앞에) 프리펜드되거나 (입력의 뒤에) 부가될 수 있다. 그러나 단지 키를 프리펜딩 또는 부가하는 것은 식별자들을 구성하는 것이 가능한 만큼 충분히 필수적이지는 않다(즉, 함수가 임의로서 동작하지 않음을 검출하는 통계적 테스트). 그러나 키의 일부를 데이터에 부가 및 프리펜딩하는 것은 이러한 문제점을 제거하게 된다. M. Luby, C. Rackoff, "How to construct pseudorandom permutations from pseudorandom functions", SIAM Jounal of Computing, vol. 17, pp. 373-386, 1988 참조. 이 논문은, 내부에서 사용된 함수가 의사 무작위 추출 함수인 경우 셔플러와 같은 구조는 의사 무작위 추출 순열임을 보여준다. 또한, M. Bellare, R. Canetti, and H. Krawczyk, "pseudo-random functions revisited, the cascade construction," to appear in FOCS 96 참조. 이 논문은, 해쉬 알고리즘 H의 충돌 함수가 의사-무작위인 경우 키 부분을 데이터에 부가 및 프리펜딩하는 것은 의사-무작위 함수임을 보여준다.
따라서, 본 발명은 키를 나누어 한 부분을 프리펜딩하고 다른 부분을 어펜딩하는 것이 바람직함을 고려한다. 그러나 본 발명은 셔플러내에서 해쉬될 데이터와 키를 결합하는 이러한 방법에 제한되지 않는다. 또한 본 발명은 키를 더욱 작은 부분으로 나누어 이들 부분을 중간에 삽입하거나 또는 키를 해쉬 동작이 수행되기 전에 간단한 함수 또는 복잡한 함수일 수 있는 몇몇 다른 결합 함수를 사용하여 데이터와 결합할 수도 있다.
본 발명은 키 회복을 처리하는 시스템을 제공하기 위한 것으로, 키 회복 정보의 부분이 한번 발생되도록 한 후 다수의 암호화된 데이터 통신 세션들 및 암호화된 화일 응용에 사용되도록 함으로써 앞서 설명된 죤슨 등의 출원에 개시된 시스템을 향상시킨다. 보다 구체적으로, 단 한번 발생된 언급된 키 회복 정보의 부분은 공용 키 암호화 동작을 요구하는 부분이다. 그러므로 본 발명은 죤슨 등의 출원에서 요구되는 고가의 공용 키 암호화 동작을 감소시키는 방법을 제공한다.
선행 기술과 달리, 본 발명은 키 회복 에이젼트의 공용 키하에서 키(즉, 키 회복 프로토콜에 의해 보호되고 회복되어야 할 키)를 암호화하지도 않으며, 키 회복 에이젼드들의 공용 키들하에서 키를 부분들 또는 조각들 또는 지분들로 나누거나 보안 키의 이들 부분들 또는 조각들 또는 지분들을 암호화하지도 않는다.
본 발명에서, 키 회복 에이젼트들의 공용 키들하에서 암호화된 정보는 요구하는 통신 당사자가 키 회복 단계를 실행하기 위해 키 회복 에이젼트에게 궁극적으로 제공하게 되는 정보로서, 한 세트의 무작위로 발생된 키들(소위 키-생성 키들(key-generating keys)이라 함)로 구성된다. 이들 키는 키 회복 프로토콜을 사용하여 보호 및 회복되도록 의도된 키들과 독립적이며 그에 관련되지 않는다. 사실, 발생된 키-생성 키들은 키 회복 프로토콜하에서 보호되어야 할 키 또는 키들의 값을 알기 전에 키 회복 에이젼트들의 공용 키를 사용하여 암호화될 수 있다. 따라서, 본 발명은 잠재적으로 장치 또는 시스템의 처리 부하가 낮은 시간동안에 고가의 공용 키 동작이 실행되도록 하거나 또는 이들 동작이 보호-대상-키(key-to-be-protected)가 키 회복 시스템에 의해 처리되는 시간에 수행되어야 할 경우 기대되는 시간보다 잠재적으로 더 긴 시간에 걸쳐 요구되는 처리를 분산시키도록 한다. 그리고 본 발명은 고가의 공용 키 동작이 한 번 수행되도록 한 후 잠재적으로 긴 시간에 걸쳐 다수의 키들의 회복을 인에이블시키기 위한 키 회복 처리에 사용되도록 한다.

Claims (54)

  1. 키 회복 에이젼트(a key recovery agent)를 이용하여 비밀 값(a secret value)을 회복하기 위한 방법에 있어서,
    ① 상기 키 회복 에이젼트를 위한 발생기 값(a generator value)을 생성하는 단계와,
    ② 상기 발생기 값들을 상기 키 회복 에이젼트에게 이용가능하게 하는 단계와,
    ③ 상기 발생기 값의 1-방향 함수(a one-way function)로서 암호화 키(an encryption key)를 발생하는 단계와,
    ④ 암호화된 비밀 값(an encrypted secret value)를 발생하기 위해 상기 암호화 키에 의해 상기 비밀 값을 암호화하는 단계―상기 비밀 값은, 상기 키 회복 에이젼트가 상기 발생기 값의 상기 1-방향 함수로서 상기 암호화 키를 발생하게 하고 상기 암호화 키에 의해 상기 암호화된 비밀 값을 암호해독(decrypting)함으로써 상기 암호화된 비밀 값으로부터 회복가능함―
    를 포함하는 키 회복 에이젼트를 이용한 비밀 값 회복 방법.
  2. 제 1 항에 있어서,
    상기 발생기 값을 상기 키 회복 에이젼트에게 이용가능하게 하는 상기 단계는 암호화된 발생기 값을 발생하기 위해 상기 키 회복 에이젼트의 공용 키(a public key)에 의해 상기 발생기 값을 암호화하는 단계를 포함하는 비밀 값 회복 방법.
  3. 제 1 항에 있어서,
    상기 발생기 값을 생성하는 상기 단계는
    ㉮ 비밀 값을 설정하는 단계,
    ㉯ 상기 비밀 값의 1-방향 함수로서 상기 발생기 값을 발생하는 단계
    를 포함하는 비밀 값 회복 방법.
  4. 제 1 항에 있어서,
    상기 암호화 키는 제 1 암호화 키(a first encryption key)이고, 상기 비밀 값은 제 2 암호화 키(a second encryption key)인 비밀 값 회복 방법.
  5. 제 1 항에 있어서,
    암호화된 데이터를 발생하기 위해 암호화 키로서 상기 비밀 값을 사용하여 데이터를 암호화하는 단계를 더 포함하는 비밀 값 회복 방법.
  6. 제 5 항에 있어서,
    상기 암호화된 데이터는 송신자로부터 수신자에게 전송되는 비밀 값 회복 방법.
  7. 제 5 항에 있어서,
    상기 암호화된 데이터는 저장 매체상에 저장되는 비밀 값 회복 방법.
  8. 제 5 항에 있어서,
    상기 암호화된 데이터는 회복 필드(a recovery field)와 연관되는 비밀 값 회복 방법.
  9. 제 8 항에 있어서,
    상기 회복 필드는 상기 암호화된 비밀 값을 포함하는 비밀 값 회복 방법.
  10. 제 8 항에 있어서,
    상기 회복 필드는 상기 키 회복 에이젼트의 공용 키에 의해 암호화된 상기 발생기 값을 포함하는 비밀 값 회복 방법.
  11. 제 8 항에 있어서,
    상기 회복 필드는 상기 암호화된 비밀 값 및 상기 키 회복 에이젼트의 공용 키에 의해 암호화된 상기 발생기 값을 포함하는 비밀 값 회복 방법.
  12. 제 1 항에 있어서,
    상기 암호화 키는 상기 발생기 값과 동적 값(a dynamic value)의 1-방향 함수로서 발생되는 비밀 값 회복 방법.
  13. 다수의 키 회복 에이젼트들을 사용하여 비밀 값을 회복하기 위한 방법에 있어서,
    ① 상기 키 회복 에이젼트들의 각각에 대해 발생기 값을 생성하는 단계와,
    ② 상기 에이젼트에 대해 생성된 상기 발생기 값을 상기 각 대응하는 키 회복 에이젼트들에게 이용가능하게 하는 단계와,
    ③ 상기 발생기 값들의 1-방향 함수들로서 제각기의 암호화 키들을 발생하는 단계와,
    ④ 암호화된 비밀 값을 발생하기 위해 상기 암호화 키들에 의해 상기 비밀 값을 암호화하는 단계―상기 비밀 값은, 상기 키 회복 에이젼트가 상기 발생기 값들의 상기 1-방향 함수로서 상기 암호화 키들을 발생하게 하고 상기 암호화 키들을 이용하여 상기 암호화된 비밀 값을 암호해독함으로써 상기 암호화된 비밀 값으로부터 회복가능함―,
    를 포함하는 다수의 키 회복 에이젼트들을 이용한 비밀 키 회복 방법.
  14. 제 13 항에 있어서,
    상기 암호화하는 단계는 상기 암호화된 비밀 값을 발생하기 위해 상기 암호화 키들을 이용하여 상기 비밀 값을 연속적으로 암호화하는 단계를 포함하는 비밀 키 회복 방법.
  15. 제 13 항에 있어서,
    상기 발생기 값들을 발생하는 상기 단계는
    ㉮ 비밀 값을 설정하는 단계,
    ㉯ 상기 비밀 값의 제각기의 1-방향 함수로서 상기 발생기 값들을 발생하는 단계―상기 각 1-방향 함수는 서로 상이함―
    를 포함하는 비밀 키 회복 방법.
  16. 제 15 항에 있어서,
    상기 발생기 값들을 발생하는 상기 단계는
    ㉮ 상기 키 회복 에이젼트들의 각각에 대해 상기 비밀 값들의 함수로서의 중간 값(an intermediate value)과 대응하는 에이젼트에 유일한 값(a value)을 발생하는 단계,
    ㉯ 대응하는 중간 값의 1-방향 함수로서 각 발생기 값을 발생하는 단계
    를 포함하는 비밀 키 회복 방법.
  17. ① 수탁자에게 비밀 값을 제공하는 단계와,
    ② 사전결정된 요구(a predetermined request)에 따라, 상기 수탁자가 적어도 상기 비밀 값으로부터 종속 값(a dependent value)을 계산하고 상기 계산된 종속 값을 요구 당사자(a requesting party)에게 제공하게 하는 단계
    를 포함하는 비밀 키 회복 방법.
  18. 제 17 항에 있어서,
    상기 수탁자는 상기 비밀 값 및 상기 수탁자에게 이용가능한 부가의 정보로부터 상기 종속 값들을 계산하는 비밀 키 회복 방법.
  19. 제 17 항에 있어서,
    상기 수탁자는 상기 비밀 값 및 상기 수탁자에게 제공된 부가의 정보로부터 상기 종속 값을 계산하는 비밀 키 회복 방법.
  20. 제 17 항에 있어서,
    상기 비밀 값은 제 1 비밀 값(a secret value)이고, 상기 계산된 종속 값은 제 2 비밀 값(a second value)인 비밀 키 회복 방법.
  21. 제 17 항에 있어서,
    상기 비밀 값은 암호법 키(a cryptographic key)인 비밀 키 회복 방법.
  22. 제 17 항에 있어서,
    상기 계산된 종속 값은 암호법 키인 비밀 키 회복 방법.
  23. 제 17 항에 있어서,
    상기 계산된 종속 값은 상기 비밀 값에 대해 계산된 해쉬 값(a hash value)으로서 계산되는 비밀 키 회복 방법.
  24. 제 17 항에 있어서,
    상기 계산된 종속 값은 상기 비밀 값에 대해 계산된 해쉬 값과 상기 요구 당사자에 의헤 제공된 비비밀(nonsecret) 데이터로서 계산되는 비밀 키 회복 방법.
  25. 제 24 항에 있어서,
    상기 비비밀 데이터는 특정 키(a particular)에 유일한 키 회복 정보를 포함하는 비밀 키 회복 방법.
  26. 제 17 항에 있어서,
    상기 비밀 값은 상기 수탁자의 공용 키에 의해 암호화되는 비밀 키 회복 방법.
  27. 제 17 항에 있어서,
    상기 비밀 값은 상기 수탁자에게 위임된 키에 의해 암호화되는 비밀 키 회복 방법.
  28. 제 17 항에 있어서,
    상기 수탁자에게 제공된 상기 비밀 값은 다수의 종속 값들을 계산하는데 사용되는 비밀 키 회복 방법.
  29. 제 28 항에 있어서,
    상기 종속 값들은 상이한 요구 당사자들에 대해 계산되는 비밀 키 회복 방법.
  30. 제 28 항에 있어서,
    상기 종속 값들은 상이한 시간들에서 계산되는 비밀 키 회복 방법.
  31. 암호화 키를 사용하여 평문 블럭(a plaintext block)을 암호화하는 방법에 있어서,
    ① 상기 평문 블럭을 제 1 및 제 2 부분(a first and second parts)들로 분할하는 단계와,
    ② 상기 평문 블럭을, 상기 제 1 및 제 2 부분들이 입력 부분들(input parts)로서 처리되어 제 1 및 제 2 출력 부분들을 생성하게 되는 다수의 반복수행(a plurality of iterations)에 처하는 단계―상기 각 반복수행은
    ㉮ 복합 부분(a composite part)을 생성하기 위해 상기 키와 상기 입력 부분들중 하나를 결합하는 단계,
    ㉯ 상기 복합 부분의 해쉬를 발생하는 단계,
    ㉰ 상기 출력 부분들중 하나를 생성하기 위해 상기 복합 부분의 상기 해쉬를 상기 입력 부분들의 나머지와 결합하는 단계,
    ㉱ 상기 입력 부분들의 나머지로부터 상기 출력 부분들의 나머지를 생성하는 단계
    를 포함함―와,
    ③ 암호화된 평문 블럭을 생성하기 위해 상기 다수의 반복수행중 마지막 수행에 의해 생성된 출력 부분들을 결합하는 단계
    를 포함하는 암호화 키를 사용한 평문 블럭 암호화 방법.
  32. 제 31 항에 있어서,
    상기 입력 부분들중 하나는 상기 키와 연쇄됨으로써 상기 키와 결합되는 평문 블럭 암호화 방법.
  33. 제 31 항에 있어서,
    상기 입력 부분들중 하나는 상기 키 및 공용 헤더(a public header)와 연쇄됨으로써 상기 키와 결합되는 평문 블럭 암호화 방법.
  34. 제 31 항에 있어서,
    상기 입력 부분들중 하나는, 상기 키를 상기 입력 부분들중 하나에 프리펜딩(prepending)함으로써 상기 키와 결합되는 평문 블럭 암호화 방법.
  35. 제 31 항에 있어서,
    상기 입력 부분들중 하나는 상기 키를 상기 입력 부분들중 하나에 부가함으로써 상기 키와 결합되는 평문 블럭 암호화 방법.
  36. 제 31 항에 있어서,
    상기 입력 부분들중 하나는 상기 키의 제 1 부분을 상기 입력 부분들중 하나에 프리펜딩하고 상기 키의 제 2 부분을 상기 입력 부분들중 하나에 부가함으로써 상기 키와 결합되는 평문 블럭 암호화 방법.
  37. 제 31 항에 있어서,
    상기 복합 부분의 상기 해쉬는 나머지 가산법(modulo addition)에 의해 상기 입력 부분들중 나머지와 결합되는 평문 블럭 암호화 방법.
  38. 제 31 항에 있어서,
    상기 평문 블럭은 적어도 3회의 상기 반복수행에 처해지는 평문 블럭 암호화 방법.
  39. 사용자가 공용 회복 키(a public recovery key)를 사용하여 회복 값을 암호화한 후 상기 암호화된 회복 값을 회복 에이젼트에게 제공하는 암호법의 회복 시스템―상기 회복 에이젼트는 상기 공용 회복 키에 대응하는 전용 회복 키(a private recovery key)를 사용하여 상기 암호화된 회복 값으로부터 상기 회복 값을 회복할 수 있음―에서, 상기 사용자 및 상기 회복 에이젼트에 대해 상기 공용 회복 키 및 전용 회복 키를 설정하는 방법에 있어서,
    ① 상기 사용자에 대해, 공용 회복 키 및 대응하는 전용 회복 키를 포함하는 회복 키 쌍(a recovery key pair)을 발생하는 단계와,
    ② 상기 회복 키 쌍을 상기 사용자로부터 상기 회복 에이젼트에게로 안전한 방식으로 전송하는 단계
    를 포함하는 공용 및 전용 회복 키 쌍 설정 방법.
  40. 제 39 항에 있어서,
    상기 사용자는 개인(an individual)인 공용 및 전용 회복키 쌍 설정 방법.
  41. 제 39 항에 있어서,
    상기 사용자는 조직(an organization)인 공용 및 전용 회복키 쌍 설정 방법.
  42. 제 39 항에 있어서,
    상기 사용자는 다수의 회복 값들이 제각기의 회복 에이젼트들에게 이용가능하게 하며, 상기 단계들은 상기 회복 에이젼트들의 각각에 대해 수행되는 공용 및 전용 회복키 쌍 설정 방법.
  43. 제 39 항에 있어서,
    상기 회복 에이젼트는 상기 회복 키 쌍의 수신시에 상기 공용 및 전용 회복 키들이 유효 키 쌍(a valid key pair)인지를 검증하는 공용 및 전용 회복키 쌍 설정 방법.
  44. 제 43 항에 있어서,
    상기 회복 에이젼트는 상기 공용 및 전용 회복 키들이 유효 키 쌍인지를 검증할 때에 전용 서명 키(a private signature key)를 사용하여 공용 검증 키에 대한 서명(a signature)을 발생한 후 상기 서명과 함께 공용 회복 키를 사용자에게 복귀시키는 공용 및 전용 회복키 쌍 설정 방법.
  45. 제 44 항에 있어서,
    상기 사용자는 상기 서명과 함께 상기 공용 회복 키를 수신하면 상기 서명 키에 대응하는 공용 검증 키를 사용하여 상기 서명을 검증하는 공용 및 전용 회복키 쌍 설정 방법.
  46. 제 39 항에 있어서,
    상기 회복 에이젼트는 공용 암호화 키를 갖고, 상기 전송하는 단계는
    ㉮ 상기 회복 에이젼트의 상기 공용 암호화 키를 사용하여 상기 회복 키 쌍의 상기 전용 키를 암호화하는 단계,
    ㉯ 상기 회복 키 쌍의 상기 공용 키 및 암호화된 전용 키를 상기 회복 에이젼트에게 전송하는 단계
    를 포함하는 공용 및 전용 회복키 쌍 설정 방법.
  47. 제 46 항에 있어서,
    상기 회복 에이젼트는 상기 회복 키 쌍의 수신시에 상기 공용 암호화 키에 대응하는 전용 암호해독 키를 사용하여 상기 회복 키 쌍의 전용 키를 암호해독하는 공용 및 전용 회복키 쌍 설정 방법.
  48. 제 46 항에 있어서,
    상기 전송하는 단계는
    ㉮ 상기 전용 키를 사용하여 값들을 암호화하도록 동작하되 상기 전용 키를 공개하도록 동작하지 않는 장치(a device)내에 상기 회복 키 쌍의 전용 키를 포함시키는 단계,
    ㉯ 상기 회복 키 쌍의 상기 전용 키를 포함하는 장치와 상기 회복 키 쌍의 상기 공용 키를 상기 회복 에이젼트에게 제공하는 단계
    를 포함하는 공용 및 전용 회복키 쌍 설정 방법.
  49. 회복 에이젼트가 지원자(an applicant)에게 비밀 정보를 선택적으로 공개하게 할 수 있도록 암호화 시스템을 동작시키는 방법에 있어서,
    ① 제 1 비밀 값으로부터 제 2 비밀 값을 도출하는 단계와,
    ② 상기 제 2 비밀 값을 인증 정보와 결합하고 상기 결합한 결과에 대한 제 1 해쉬 값을 계산하는 단계와,
    ③ 상기 인증 정보, 상기 제 1 해쉬 값 및 상기 제 1 비밀 값을 상기 비밀 정보 회복시에 사용하기 위해 상기 회복 에이젼트에게 제공하는 단계
    를 포함하는 암호화 시스템 동작 방법.
  50. 제 49 항에 있어서,
    상기 인증 정보는 암호화되어 상기 회복 에이젼트에게 제공되는 암호화 시스템 동작 방법.
  51. 제 49 항에 있어서,
    상기 제 1 비밀 값은 암호화되어 상기 회복 에이젼트에게 제공되는 암호화 시스템 동작 방법.
  52. 제 49 항에 있어서,
    상기 회복 에이젼트는 지원자로부터 회복 요구(a recovery request) 수신시에,
    ㉮ 상기 제 1 비밀 값으로부터 제 2 비밀 값을 도출하는 단계,
    ㉯ 상기 제 2 비밀 값을 상기 인증 정보와 결합하고 그 결합결과에 대한 제 2 해쉬 값을 계산하는 단계,
    ㉰ 상기 제 1 및 제 2 해쉬 값들이 동일한지 비교하는 단계,
    ㉱ 상기 자격증명이 상기 인증 정보와 일치하고 상기 제 1 및 제 2 해쉬 값들이 동일한 경우 상기 비밀 정보를 공개하는 단계
    를 수행하는 암호화 시스템 동작 방법.
  53. 키 회복 에이젼트를 사용하여 비밀 값을 회복하기 위한 장치에 있어서,
    ① 상기 키 회복 에이젼트를 위한 발생기 값을 생성하는 수단과,
    ② 상기 발생기 값이 상기 키 회복 에이젼트에게 이용가능하게 하는 수단과,
    ③ 상기 발생기 값의 1-방향 함수로서 암호화 키를 발생하는 수단과,
    ④ 암호화된 비밀 값을 발생하기 위해 상기 비밀 값을 상기 암호화 키에 의해 암호화하는 수단―상기 비밀 값은, 상기 키 회복 에이젼트가 상기 발생기 값의 상기 1-방향 함수로서 상기 암호화 키를 발생하고 상기 암호화된 비밀 값을 상기 암호화 키에 의해 암호해독함으로써 상기 암호화된 비밀 값으로부터 회복가능함―,
    을 포함하는 키 회복 에이젼트를 이용한 비밀 값 회복 장치.
  54. 키 회복 에이젼트를 사용하여 비밀 값의 회복을 제공하는 방법 단계들을 수행하기 위해 머신(a machine)에 의해 실행가능한 인스트럭션들로 이루어진 프로그램(a program of instructions)을 실질적으로 포함하는, 상기 머신에 의해 판독가능한 프로그램 저장 장치에서, 상기 방법은,
    ① 상기 키 회복 에이젼트에 대해 발생기 값을 생성하는 단계와,
    ② 상기 발생기 값이 상기 키 회복 에이젼트에게 이용가능하게 하는 단계와,
    ③ 상기 발생기 값의 1-방향 함수로서 암호화 키를 발생하는 단계와,
    ④ 암호화된 비밀 값을 발생하기 위해 상기 비밀 값을 상기 암호화 키에 의해 암호화하는 단계―상기 비밀 값은, 상기 키 회복 에이젼트가 상기 발생기 값의 1-방향 함수로서 상기 암호화 키를 발생하고 상기 암호화 키에 의해 상기 암호화된 비밀 값을 암호해독함으로써 상기 암호화된 비밀 값으로부터 회복가능함―,
    를 포함하는 방법.
KR1019970045080A 1996-10-02 1997-08-30 2-상태 암호화 키 회복 시스템 KR100233979B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/725,102 US5937066A (en) 1996-10-02 1996-10-02 Two-phase cryptographic key recovery system
US8/725,102 1996-10-02

Publications (2)

Publication Number Publication Date
KR19980032357A KR19980032357A (ko) 1998-07-25
KR100233979B1 true KR100233979B1 (ko) 1999-12-15

Family

ID=24913165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970045080A KR100233979B1 (ko) 1996-10-02 1997-08-30 2-상태 암호화 키 회복 시스템

Country Status (3)

Country Link
US (1) US5937066A (ko)
JP (1) JP3640331B2 (ko)
KR (1) KR100233979B1 (ko)

Families Citing this family (240)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272632B1 (en) * 1995-02-21 2001-08-07 Network Associates, Inc. System and method for controlling access to a user secret using a key recovery field
US8225089B2 (en) 1996-12-04 2012-07-17 Otomaku Properties Ltd., L.L.C. Electronic transaction systems utilizing a PEAD and a private key
US6249585B1 (en) * 1998-04-08 2001-06-19 Network Associates, Inc Publicly verifiable key recovery
US6289451B1 (en) * 1997-04-18 2001-09-11 Sun Microsystems, Inc. System and method for efficiently implementing an authenticated communications channel that facilitates tamper detection
US6335972B1 (en) * 1997-05-23 2002-01-01 International Business Machines Corporation Framework-based cryptographic key recovery system
US6202150B1 (en) * 1997-05-28 2001-03-13 Adam Lucas Young Auto-escrowable and auto-certifiable cryptosystems
US6389136B1 (en) * 1997-05-28 2002-05-14 Adam Lucas Young Auto-Recoverable and Auto-certifiable cryptosystems with RSA or factoring based keys
DE69724235T2 (de) * 1997-05-28 2004-02-26 Siemens Ag Computersystem und Verfahren zum Schutz von Software
US6314190B1 (en) 1997-06-06 2001-11-06 Networks Associates Technology, Inc. Cryptographic system with methods for user-controlled message recovery
US6185308B1 (en) * 1997-07-07 2001-02-06 Fujitsu Limited Key recovery system
JPH1127253A (ja) * 1997-07-07 1999-01-29 Hitachi Ltd 鍵回復システム、鍵回復装置、鍵回復プログラムを記憶した記憶媒体、および鍵回復方法
US6223285B1 (en) * 1997-10-24 2001-04-24 Sony Corporation Of Japan Method and system for transferring information using an encryption mode indicator
US7107246B2 (en) * 1998-04-27 2006-09-12 Esignx Corporation Methods of exchanging secure messages
US7110984B1 (en) * 1998-08-13 2006-09-19 International Business Machines Corporation Updating usage conditions in lieu of download digital rights management protected content
JP2000165373A (ja) * 1998-11-25 2000-06-16 Toshiba Corp 暗号装置、暗号通信システム及び鍵復元システム並びに記憶媒体
US6396929B1 (en) * 1998-12-31 2002-05-28 International Business Machines Corporation Apparatus, method, and computer program product for high-availability multi-agent cryptographic key recovery
US7092523B2 (en) 1999-01-11 2006-08-15 Certicom Corp. Method and apparatus for minimizing differential power attacks on processors
US7599491B2 (en) 1999-01-11 2009-10-06 Certicom Corp. Method for strengthening the implementation of ECDSA against power analysis
CA2267395C (en) * 1999-03-30 2002-07-09 Ibm Canada Limited-Ibm Canada Limitee Method and system for managing keys for encrypted data
JP3816689B2 (ja) * 1999-03-31 2006-08-30 株式会社東芝 情報配信装置、情報受信装置及び通信方法
US6947560B1 (en) * 1999-04-26 2005-09-20 Telefonaktiebolaget L M Ericsson (Publ) Method and device for effective key length control
JP4362888B2 (ja) * 1999-05-18 2009-11-11 ソニー株式会社 情報処理装置および方法、並びに記録媒体
WO2000074298A1 (en) * 1999-05-26 2000-12-07 Ascom Hasler Mailing Systems, Inc. Technique for split knowledge backup and recovery of a cryptographic key
GB2353682B (en) * 1999-07-15 2004-03-31 Nds Ltd Key management for content protection
IL130963A (en) * 1999-07-15 2006-04-10 Nds Ltd Key management for content protection
DE19935285B4 (de) * 1999-07-27 2012-07-05 Deutsche Telekom Ag Verfahren zur Generierung/Regenerierung eines Chiffrierschlüssels für ein Kryptographieverfahren
DE19935286A1 (de) * 1999-07-27 2001-02-01 Deutsche Telekom Ag Verfahren zur sicheren verteilten Generierung eines Chiffrierschlüssels
US7080259B1 (en) * 1999-08-12 2006-07-18 Matsushita Electric Industrial Co., Ltd. Electronic information backup system
WO2001015162A2 (en) * 1999-08-13 2001-03-01 Microsoft Corporation Methods and systems of protecting digital content
US7065216B1 (en) 1999-08-13 2006-06-20 Microsoft Corporation Methods and systems of protecting digital content
US6886098B1 (en) * 1999-08-13 2005-04-26 Microsoft Corporation Systems and methods for compression of key sets having multiple keys
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
EP1217783B9 (en) * 1999-09-29 2009-07-15 Hitachi, Ltd. Device, program or system for processing secret information
US7461022B1 (en) 1999-10-20 2008-12-02 Yahoo! Inc. Auction redemption system and method
US6931532B1 (en) * 1999-10-21 2005-08-16 International Business Machines Corporation Selective data encryption using style sheet processing
US6941459B1 (en) * 1999-10-21 2005-09-06 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a key recovery agent
US6978367B1 (en) * 1999-10-21 2005-12-20 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a client proxy
US6961849B1 (en) * 1999-10-21 2005-11-01 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a group clerk
TW548940B (en) * 1999-11-29 2003-08-21 Gen Instrument Corp Generation of a mathematically constrained key using a one-way function
US7213005B2 (en) * 1999-12-09 2007-05-01 International Business Machines Corporation Digital content distribution using web broadcasting services
FR2804561B1 (fr) * 2000-01-31 2002-03-01 France Telecom Procede de communication avec sequestre et recuperation de cle de chiffrement
US6865550B1 (en) * 2000-02-03 2005-03-08 Eastman Kodak Company System for secure distribution and playback of digital data
WO2001065762A2 (en) * 2000-03-02 2001-09-07 Tivo, Inc. Conditional access system and method for prevention of replay attacks
US6823070B1 (en) 2000-03-28 2004-11-23 Freescale Semiconductor, Inc. Method for key escrow in a communication system and apparatus therefor
EP1143658A1 (en) * 2000-04-03 2001-10-10 Canal+ Technologies Société Anonyme Authentication of data transmitted in a digital transmission system
US6866586B2 (en) * 2000-04-28 2005-03-15 Igt Cashless transaction clearinghouse
US8602874B2 (en) * 2003-04-02 2013-12-10 Igt Cashless instrument based table game promotional system and methodology
US7419428B2 (en) * 2000-04-28 2008-09-02 Igt Cashless transaction clearinghouse
US20070060274A1 (en) * 2000-04-28 2007-03-15 Igt Player loyalty across a gaming enterprise
US7493486B1 (en) * 2000-06-09 2009-02-17 Verizon Laboratories, Inc. Method and apparatus for supporting cryptographic-related activities in a public key infrastructure
EP1292872B2 (en) * 2000-06-09 2018-12-19 Certicom Corp. A method for the application of implicit signature schemes
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7587368B2 (en) * 2000-07-06 2009-09-08 David Paul Felsher Information record infrastructure, system and method
US20020091935A1 (en) * 2000-08-11 2002-07-11 Sony Corporation, A Corporation Of Japan Storage and retrieval of encrypted content on storage media
WO2002015081A1 (en) * 2000-08-14 2002-02-21 Yahoo! Inc. Offline-online incentive points system and method
US6775668B1 (en) * 2000-09-11 2004-08-10 Novell, Inc. Method and system for enhancing quorum based access control to a database
US20030021417A1 (en) 2000-10-20 2003-01-30 Ognjen Vasic Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7224806B2 (en) * 2000-11-13 2007-05-29 Thomson Licensing Threshold cryptography scheme for conditional access systems
US7281010B2 (en) * 2000-11-15 2007-10-09 Lenovo (Singapore) Pte. Ltd. Trusted computing platform with dual key trees to support multiple public/private key systems
KR100377196B1 (ko) * 2000-12-05 2003-03-26 한국전자통신연구원 다중 에이전트를 이용한 키 복구 시스템 및 그 방법
US20080214300A1 (en) * 2000-12-07 2008-09-04 Igt Methods for electronic data security and program authentication
US7412519B2 (en) * 2000-12-08 2008-08-12 Xerox Corporation Authorized document usage including rendering a protected document
GB2372595A (en) 2001-02-23 2002-08-28 Hewlett Packard Co Method of and apparatus for ascertaining the status of a data processing environment.
GB2372592B (en) * 2001-02-23 2005-03-30 Hewlett Packard Co Information system
US7711122B2 (en) * 2001-03-09 2010-05-04 Arcot Systems, Inc. Method and apparatus for cryptographic key storage wherein key servers are authenticated by possession and secure distribution of stored keys
US7359518B2 (en) * 2001-04-05 2008-04-15 Intel Corporation Distribution of secured information
US20020152261A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US20020152262A1 (en) * 2001-04-17 2002-10-17 Jed Arkin Method and system for preventing the infringement of intellectual property rights
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
GB2378013A (en) * 2001-07-27 2003-01-29 Hewlett Packard Co Trusted computer platform audit system
GB2378856A (en) * 2001-08-17 2003-02-19 Nokia Corp Security in communication networks
US8117450B2 (en) * 2001-10-11 2012-02-14 Hewlett-Packard Development Company, L.P. System and method for secure data transmission
US7333616B1 (en) 2001-11-14 2008-02-19 Omniva Corp. Approach for managing access to messages using encryption key management policies
US7085386B2 (en) * 2001-12-07 2006-08-01 Activcard System and method for secure replacement of high level cryptographic keys in a personal security device
US6996715B2 (en) * 2002-01-03 2006-02-07 Lockheed Martin Corporation Method for identification of a user's unique identifier without storing the identifier at the identification site
US20030221131A1 (en) * 2002-03-08 2003-11-27 Toshifumi Mori Data processing device
AUPS169002A0 (en) 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
US7350081B1 (en) 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
KR100477645B1 (ko) * 2002-05-25 2005-03-23 삼성전자주식회사 일련번호 발생 방법 및 그 장치
WO2004010637A1 (en) * 2002-07-19 2004-01-29 Vadium Technology, Inc. Cryptographic key distribution using key folding
US20040136537A1 (en) * 2002-07-19 2004-07-15 Hammersmith Wolfgang S. Cryptographic key distribution using key unfolding
US7317799B2 (en) * 2002-07-19 2008-01-08 Vadium Technology, Inc. Cryptographic key distribution using key folding
AU2003227325B2 (en) * 2002-08-02 2009-05-28 Scientific Games, Llc Lottery ticket security method
GB0218716D0 (en) * 2002-08-12 2002-09-18 Mitel Knowledge Corp Privacy and security mechanism fo presence systems with tuple spaces
US8083585B2 (en) * 2002-09-10 2011-12-27 Igt Apparatus and method for copying gaming machine configuration settings
US7136489B1 (en) * 2002-09-12 2006-11-14 Novell, Inc. Method and system for enhancing network security using a multilateral authorization mechanism
US7818678B2 (en) * 2002-10-31 2010-10-19 Litera Technology Llc Collaborative document development and review system
EP1475920A4 (en) * 2002-12-03 2005-03-02 Matsushita Electric Ind Co Ltd KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE
CN1692598A (zh) * 2002-12-03 2005-11-02 松下电器产业株式会社 密钥共享系统、共享密钥生成装置及共享密钥复原装置
DE10328328B4 (de) * 2003-06-25 2015-06-03 TÜV Rheinland Holding AG Produktschutz-Portal und Verfahren zur Echtheitsprüfung von Produkten
US8085938B2 (en) * 2004-02-10 2011-12-27 Ntt Communications Corporation Secret information management scheme based on secret sharing scheme
US7379551B2 (en) * 2004-04-02 2008-05-27 Microsoft Corporation Method and system for recovering password protected private data via a communication network without exposing the private data
US7437551B2 (en) * 2004-04-02 2008-10-14 Microsoft Corporation Public key infrastructure scalability certificate revocation status validation
US7644409B2 (en) * 2004-06-04 2010-01-05 Sun Microsystems, Inc. Techniques for accessing a shared resource using an improved synchronization mechanism
US7594234B1 (en) * 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US7681042B2 (en) * 2004-06-17 2010-03-16 Eruces, Inc. System and method for dis-identifying sensitive information and associated records
US7475397B1 (en) 2004-07-28 2009-01-06 Sun Microsystems, Inc. Methods and apparatus for providing a remote serialization guarantee
CN101375284B (zh) 2004-10-25 2012-02-22 安全第一公司 安全数据分析方法和系统
US7454021B2 (en) * 2004-10-29 2008-11-18 Hewlett-Packard Development Company, L.P. Off-loading data re-encryption in encrypted data management systems
WO2006051404A2 (en) * 2004-11-11 2006-05-18 Certicom Corp. Secure interface for versatile key derivation function support
US7536016B2 (en) * 2004-12-17 2009-05-19 Microsoft Corporation Encrypted content data structure package and generation thereof
US8467535B2 (en) * 2005-01-18 2013-06-18 Certicom Corp. Accelerated verification of digital signatures and public keys
CA2592875C (en) 2005-01-18 2016-09-06 Certicom Corp. Accelerated verification of digital signatures and public keys
JP4714482B2 (ja) * 2005-02-28 2011-06-29 株式会社日立製作所 暗号通信システムおよび方法
US8062121B2 (en) 2005-03-09 2011-11-22 Igt Printer interpreter for a gaming machine
US7430607B2 (en) * 2005-05-25 2008-09-30 Microsoft Corporation Source throttling using CPU stamping
EP1742475A1 (fr) * 2005-07-07 2007-01-10 Nagravision S.A. Méthode de contrôle d'accès à des données chiffrées
US7730309B2 (en) * 2005-07-27 2010-06-01 Zimmermann Philip R Method and system for key management in voice over internet protocol
EP1920324A1 (en) * 2005-08-19 2008-05-14 Nxp B.V. Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
CN105978683A (zh) 2005-11-18 2016-09-28 安全第公司 安全数据解析方法和系统
US20070143216A1 (en) * 2005-12-16 2007-06-21 Benaloh Josh D Data Signal with a Database and a Compressed Key
US20070168656A1 (en) * 2005-12-29 2007-07-19 Paganetti Robert J Method for enabling a user to initiate a password protected backup of the user's credentials
US8296827B2 (en) * 2005-12-29 2012-10-23 International Business Machines Corporation Method for enabling an administrator to configure a recovery password
US7499552B2 (en) * 2006-01-11 2009-03-03 International Business Machines Corporation Cipher method and system for verifying a decryption of an encrypted user data key
US7818660B2 (en) * 2006-01-29 2010-10-19 Litera Technology Llc Method of compound document comparison
DE102006004237A1 (de) * 2006-01-30 2007-08-16 Siemens Ag Verfahren und Vorrichtung zur Vereinbarung eines gemeinsamen Schlüssels zwischen einem ersten Kommunikationsgerät und einem zweiten Kommunikationsgerät
US8668146B1 (en) 2006-05-25 2014-03-11 Sean I. Mcghie Rewards program with payment artifact permitting conversion/transfer of non-negotiable credits to entity independent funds
US7703673B2 (en) 2006-05-25 2010-04-27 Buchheit Brian K Web based conversion of non-negotiable credits associated with an entity to entity independent negotiable funds
US10062062B1 (en) 2006-05-25 2018-08-28 Jbshbm, Llc Automated teller machine (ATM) providing money for loyalty points
US9704174B1 (en) 2006-05-25 2017-07-11 Sean I. Mcghie Conversion of loyalty program points to commerce partner points per terms of a mutual agreement
US8684265B1 (en) 2006-05-25 2014-04-01 Sean I. Mcghie Rewards program website permitting conversion/transfer of non-negotiable credits to entity independent funds
US7818255B2 (en) * 2006-06-02 2010-10-19 Microsoft Corporation Logon and machine unlock integration
US8098829B2 (en) * 2006-06-06 2012-01-17 Red Hat, Inc. Methods and systems for secure key delivery
US8180741B2 (en) 2006-06-06 2012-05-15 Red Hat, Inc. Methods and systems for providing data objects on a token
US8332637B2 (en) 2006-06-06 2012-12-11 Red Hat, Inc. Methods and systems for nonce generation in a token
US8495380B2 (en) 2006-06-06 2013-07-23 Red Hat, Inc. Methods and systems for server-side key generation
US8364952B2 (en) 2006-06-06 2013-01-29 Red Hat, Inc. Methods and system for a key recovery plan
US7822209B2 (en) 2006-06-06 2010-10-26 Red Hat, Inc. Methods and systems for key recovery for a token
US8707024B2 (en) 2006-06-07 2014-04-22 Red Hat, Inc. Methods and systems for managing identity management security domains
US9769158B2 (en) 2006-06-07 2017-09-19 Red Hat, Inc. Guided enrollment and login for token users
US8099765B2 (en) 2006-06-07 2012-01-17 Red Hat, Inc. Methods and systems for remote password reset using an authentication credential managed by a third party
US8412927B2 (en) 2006-06-07 2013-04-02 Red Hat, Inc. Profile framework for token processing system
US8589695B2 (en) 2006-06-07 2013-11-19 Red Hat, Inc. Methods and systems for entropy collection for server-side key generation
US20070300080A1 (en) * 2006-06-22 2007-12-27 Research In Motion Limited Two-Factor Content Protection
US20080126808A1 (en) * 2006-07-05 2008-05-29 Cms Products, Inc. Encrypted dataset access by custodians
US8787566B2 (en) * 2006-08-23 2014-07-22 Red Hat, Inc. Strong encryption
US7865741B1 (en) * 2006-08-23 2011-01-04 Netapp, Inc. System and method for securely replicating a configuration database of a security appliance
US8806219B2 (en) 2006-08-23 2014-08-12 Red Hat, Inc. Time-based function back-off
US8977844B2 (en) 2006-08-31 2015-03-10 Red Hat, Inc. Smartcard formation with authentication keys
US8356342B2 (en) 2006-08-31 2013-01-15 Red Hat, Inc. Method and system for issuing a kill sequence for a token
US9038154B2 (en) 2006-08-31 2015-05-19 Red Hat, Inc. Token Registration
US8074265B2 (en) 2006-08-31 2011-12-06 Red Hat, Inc. Methods and systems for verifying a location factor associated with a token
US8116455B1 (en) 2006-09-29 2012-02-14 Netapp, Inc. System and method for securely initializing and booting a security appliance
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US7925890B2 (en) * 2006-10-23 2011-04-12 Harris Corporation Network centered recovery process for cryptographic processing modules
US8693690B2 (en) 2006-12-04 2014-04-08 Red Hat, Inc. Organizing an extensible table for storing cryptographic objects
EP2482218A3 (en) * 2006-12-05 2012-10-31 Security First Corporation Improved storage backup method using a secure data parser
US8607070B2 (en) * 2006-12-20 2013-12-10 Kingston Technology Corporation Secure storage system and method of use
US7822207B2 (en) * 2006-12-22 2010-10-26 Atmel Rousset S.A.S. Key protection mechanism
EP2122900A4 (en) * 2007-01-22 2014-07-23 Spyrus Inc PORTABLE DATA ENCRYPTION DEVICE WITH CONFIGURABLE SAFETY FUNCTIONS AND METHOD FOR FILING ENCRYPTION
US7895276B2 (en) 2007-01-29 2011-02-22 Litera Technology Llc Method of managing metadata in attachments to e-mails in a network environment
US8813243B2 (en) 2007-02-02 2014-08-19 Red Hat, Inc. Reducing a size of a security-related data object stored on a token
US8832453B2 (en) 2007-02-28 2014-09-09 Red Hat, Inc. Token recycling
US8639940B2 (en) 2007-02-28 2014-01-28 Red Hat, Inc. Methods and systems for assigning roles on a token
US9081948B2 (en) 2007-03-13 2015-07-14 Red Hat, Inc. Configurable smartcard
US7779220B1 (en) * 2007-03-15 2010-08-17 Quantum Corporation Password-based media cartridge authentication
KR20080084480A (ko) * 2007-03-16 2008-09-19 삼성전자주식회사 매개 모듈을 이용한 디바이스간의 상호 인증 방법 및 그시스템
US8744076B2 (en) * 2007-04-04 2014-06-03 Oracle International Corporation Method and apparatus for encrypting data to facilitate resource savings and tamper detection
US8010768B2 (en) * 2007-05-09 2011-08-30 Kingston Technology Corporation Secure and scalable solid state disk system
US8499168B2 (en) * 2007-05-09 2013-07-30 Kingston Technology Corporation Secure and scalable solid state disk system
US8527781B2 (en) * 2007-05-09 2013-09-03 Kingston Technology Corporation Secure and scalable solid state disk system
JP5138775B2 (ja) * 2007-07-17 2013-02-06 サーティコム コーポレーション Idベース暗号化(ibe)に対して暗黙の証明証およびアプリケーションを生成する方法およびシステム
US8681996B2 (en) * 2007-07-31 2014-03-25 Lsi Corporation Asymmetric key wrapping using a symmetric cipher
EP2651100A1 (en) 2008-02-22 2013-10-16 Security First Corporation Systems and methods for secure workgroup management and communication
US20100146294A1 (en) * 2008-03-17 2010-06-10 Anthony Sneed BEST2000C: platform-independent, acrostic database encryption of biometrically-inert transgression-ciphers for up to 90% reduction of the $50 billion annual fictitious-identity transgressions
US8989388B2 (en) 2008-04-02 2015-03-24 Cisco Technology, Inc. Distribution of storage area network encryption keys across data centers
US8565436B2 (en) * 2008-12-15 2013-10-22 Ebay Inc. Secure self managed data (SSMD)
US10685177B2 (en) * 2009-01-07 2020-06-16 Litera Corporation System and method for comparing digital data in spreadsheets or database tables
US8136031B2 (en) 2009-03-17 2012-03-13 Litera Technologies, LLC Comparing the content of tables containing merged or split cells
BRPI1013062A2 (pt) 2009-05-19 2016-04-05 Security First Corp sistemas e métodos para proteger dados na nuvem
AU2010326248B2 (en) 2009-11-25 2015-08-27 Security First Corp. Systems and methods for securing data in motion
US8621220B2 (en) * 2010-03-11 2013-12-31 Ebay Inc. Systems and methods for identity encapsulated cryptography
EP2553904A2 (en) 2010-03-31 2013-02-06 Rick L. Orsini Systems and methods for securing data in motion
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
EP2651072A3 (en) 2010-09-20 2013-10-23 Security First Corp. Systems and methods for secure data sharing
US8769288B2 (en) * 2011-04-22 2014-07-01 Alcatel Lucent Discovery of security associations
US8615081B2 (en) * 2011-06-01 2013-12-24 International Business Machines Corporation Secure key creation
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US9348802B2 (en) 2012-03-19 2016-05-24 Litéra Corporation System and method for synchronizing bi-directional document management
US9054863B2 (en) 2012-09-04 2015-06-09 Rockwell Automation Asia Pacific Business Center Pte. Ltd. Industrial protocol system authentication and firewall
US9087459B2 (en) 2012-11-30 2015-07-21 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxilary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data
US9990478B2 (en) 2012-11-30 2018-06-05 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxiliary data into relational database keys and methods, apparatus, and articles of manufacture to obtain encoded data from relational database keys
US9042554B2 (en) 2012-11-30 2015-05-26 The Nielsen Company (Us), Llc Methods, apparatus, and articles of manufacture to encode auxilary data into text data and methods, apparatus, and articles of manufacture to obtain encoded data from text data
WO2014127147A1 (en) 2013-02-13 2014-08-21 Security First Corp. Systems and methods for a cryptographic file system layer
US9483451B2 (en) 2013-03-14 2016-11-01 Scribestar Ltd. System and method for handling user editing history based on spawning, merging data structures of directed acyclic graph
US9305172B2 (en) * 2013-03-15 2016-04-05 Mcafee, Inc. Multi-ring encryption approach to securing a payload using hardware modules
EP2989742B1 (en) * 2013-04-24 2018-08-29 NEC Corporation Method and system for enforcing access control policies on data
US10025782B2 (en) 2013-06-18 2018-07-17 Litera Corporation Systems and methods for multiple document version collaboration and management
US9639710B2 (en) 2013-12-23 2017-05-02 Symantec Corporation Device-based PIN authentication process to protect encrypted data
JP6313074B2 (ja) * 2014-03-07 2018-04-18 株式会社東芝 データ管理装置、システム、データ共有装置及びプログラム
US9756002B2 (en) 2014-03-21 2017-09-05 Litera Technologies, LLC Systems and methods for email attachments management
EP3140952B1 (en) * 2014-05-06 2019-02-27 Okta, Inc. Facilitating single sign-on to software applications
US9703979B1 (en) * 2014-06-13 2017-07-11 BicDroid Inc. Methods and computer program products for encryption key generation and management
EP3451575B8 (en) * 2014-06-13 2021-03-17 BicDroid Inc. Methods, systems and computer program product for providing encryption on a plurality of devices
US10225087B2 (en) * 2014-09-12 2019-03-05 Tata Consultancy Services Limited Methods and systems for randomized message generation for cryptographic hash functions
US10061914B2 (en) 2014-11-14 2018-08-28 Mcafee, Llc Account recovery protocol
US10031679B2 (en) 2014-11-21 2018-07-24 Security First Corp. Gateway for cloud-based secure storage
US9413754B2 (en) * 2014-12-23 2016-08-09 Airwatch Llc Authenticator device facilitating file security
US10237073B2 (en) 2015-01-19 2019-03-19 InAuth, Inc. Systems and methods for trusted path secure communication
US10360558B2 (en) * 2015-03-17 2019-07-23 Ca, Inc. Simplified two factor authentication for mobile payments
US10536408B2 (en) 2015-09-16 2020-01-14 Litéra Corporation Systems and methods for detecting, reporting and cleaning metadata from inbound attachments
US10511581B2 (en) * 2015-11-17 2019-12-17 International Business Machines Corporation Parallelizable encryption using keyless random permutations and authentication using same
US10355854B2 (en) * 2015-12-17 2019-07-16 Intel Corporation Privacy preserving group formation with distributed content key generation
WO2017142563A1 (en) 2016-02-19 2017-08-24 Entit Software Llc Encryption methods
CN116843334A (zh) * 2016-02-23 2023-10-03 区块链控股有限公司 基于区块链的合并式数据传输控制方法和系统
US10476672B2 (en) 2016-03-14 2019-11-12 Callware Technologies, Inc Fragmented encryption of a secret
DE112016007301T5 (de) * 2016-09-30 2019-06-19 Intel Corporation Technologien zur authentifizierung mehrerer vorrichtungen in einem heterogenen netzwerk
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US11405201B2 (en) * 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US11398906B2 (en) * 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US10841337B2 (en) 2016-11-28 2020-11-17 Secureworks Corp. Computer implemented system and method, and computer program product for reversibly remediating a security risk
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
US10447671B1 (en) * 2017-03-29 2019-10-15 Symantec Corporation Systems and methods for recovering encrypted information
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
US10470040B2 (en) 2017-08-27 2019-11-05 Okta, Inc. Secure single sign-on to software applications
US10735470B2 (en) 2017-11-06 2020-08-04 Secureworks Corp. Systems and methods for sharing, distributing, or accessing security data and/or security applications, models, or analytics
US10594713B2 (en) * 2017-11-10 2020-03-17 Secureworks Corp. Systems and methods for secure propagation of statistical models within threat intelligence communities
US10819515B1 (en) 2018-03-09 2020-10-27 Wells Fargo Bank, N.A. Derived unique recovery keys per session
US10785238B2 (en) 2018-06-12 2020-09-22 Secureworks Corp. Systems and methods for threat discovery across distinct organizations
US11003718B2 (en) 2018-06-12 2021-05-11 Secureworks Corp. Systems and methods for enabling a global aggregated search, while allowing configurable client anonymity
US11138308B2 (en) 2018-09-19 2021-10-05 International Business Machines Corporation System for preventing single point of failure in accessing encrypted data
US11822489B2 (en) * 2018-12-21 2023-11-21 Micron Technology, Inc. Data integrity protection for relocating data in a memory system
WO2020133543A1 (zh) 2018-12-29 2020-07-02 华为技术有限公司 通信方法和相关产品
US11205194B2 (en) 2019-04-30 2021-12-21 Advanced New Technologies Co., Ltd. Reliable user service system and method
US11310268B2 (en) 2019-05-06 2022-04-19 Secureworks Corp. Systems and methods using computer vision and machine learning for detection of malicious actions
US11418524B2 (en) 2019-05-07 2022-08-16 SecureworksCorp. Systems and methods of hierarchical behavior activity modeling and detection for systems-level security
CN110430042B (zh) * 2019-06-28 2022-11-22 中国人民解放军战略支援部队信息工程大学 一种在异构冗余系统中存储秘钥的装置及方法
US11381589B2 (en) 2019-10-11 2022-07-05 Secureworks Corp. Systems and methods for distributed extended common vulnerabilities and exposures data management
CN111008855B (zh) * 2019-12-10 2024-02-13 上海信联信息发展股份有限公司 一种基于改进代理重加密的追溯数据访问控制方法
US11522877B2 (en) 2019-12-16 2022-12-06 Secureworks Corp. Systems and methods for identifying malicious actors or activities
FR3107414A1 (fr) * 2020-02-19 2021-08-20 Orange Procédé de calcul d’une clé de session, procédé de récupération d’une telle clé de session
US11588834B2 (en) 2020-09-03 2023-02-21 Secureworks Corp. Systems and methods for identifying attack patterns or suspicious activity in client networks
US11664988B2 (en) * 2020-11-30 2023-05-30 EMC IP Holding Company LLC Method and system for encrypting and decrypting secrets using escrow agents
US11528294B2 (en) 2021-02-18 2022-12-13 SecureworksCorp. Systems and methods for automated threat detection
US12034751B2 (en) 2021-10-01 2024-07-09 Secureworks Corp. Systems and methods for detecting malicious hands-on-keyboard activity via machine learning
US12034718B2 (en) 2022-02-23 2024-07-09 Bank Of America Corporation Secure user authentication leveraging quantum key and steganography
US12015623B2 (en) 2022-06-24 2024-06-18 Secureworks Corp. Systems and methods for consensus driven threat intelligence
US11991400B2 (en) 2022-07-15 2024-05-21 Bank Of America Corporation Device for executing audio cryptology in real-time for audio misappropriation prevention
CN117353919B (zh) * 2023-12-01 2024-03-26 卓望数码技术(深圳)有限公司 基于秘钥分享算法的数据安全存储方法、系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276737B1 (en) * 1992-04-20 1995-09-12 Silvio Micali Fair cryptosystems and methods of use
US5315658B1 (en) * 1992-04-20 1995-09-12 Silvio Micali Fair cryptosystems and methods of use
US5436972A (en) * 1993-10-04 1995-07-25 Fischer; Addison M. Method for preventing inadvertent betrayal by a trustee of escrowed digital secrets
US5557765A (en) * 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for data recovery
US5557346A (en) * 1994-08-11 1996-09-17 Trusted Information Systems, Inc. System and method for key escrow encryption
US5815573A (en) * 1996-04-10 1998-09-29 International Business Machines Corporation Cryptographic key recovery system
US5796830A (en) * 1996-07-29 1998-08-18 International Business Machines Corporation Interoperable cryptographic key recovery system

Also Published As

Publication number Publication date
JP3640331B2 (ja) 2005-04-20
KR19980032357A (ko) 1998-07-25
US5937066A (en) 1999-08-10
JPH10126404A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
KR100233979B1 (ko) 2-상태 암호화 키 회복 시스템
JP3872107B2 (ja) 暗号キー回復システム
US5815573A (en) Cryptographic key recovery system
US5481613A (en) Computer network cryptographic key distribution system
US5907618A (en) Method and apparatus for verifiably providing key recovery information in a cryptographic system
US6535607B1 (en) Method and apparatus for providing interoperability between key recovery and non-key recovery systems
US20030012386A1 (en) Forward-secure commercial key escrow systems and escrowing methods thereof
Kroll et al. Secure protocols for accountable warrant execution
Gennaro et al. Two-phase cryptographic key recovery system
Davis et al. Time-scoped searching of encrypted audit logs
CN114866244A (zh) 基于密文分组链接加密的可控匿名认证方法、系统及装置
Gennaro et al. Secure key recovery
Mutabaruka Enhancing Data Security by Using Hybrid Encryption Technique (Advanced Encryption Standard and Rivest Shamir Adleman)
Mezher et al. Secure Health Information Exchange (S-HIE) Protocol with Reduced Round-Trip Count
Fumy Key management techniques
Sarkar 1 Overview of Cryptographic Primitives for Secure Communication
Rath et al. Cryptography and network security lecture notes
Kumar et al. Third Party Auditing In Cloud Storage
Wilbur Distributed Systems Security
Lakshmiraghavan et al. Encryption and Signing
Ho Hybrid cryptosystem using symmetric algorithms and public-key algorithms
Mitchell Developments in security mechanism standards
Lloyd XEP-0031: A Framework For Securing Jabber Conversations
Eliot 6.1 Cryptographic Methods
Ramanujam et al. Identity-based Secure Data Storage by using Third Party Auditing and KGC algorithm

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