KR19990066846A - 특별한 암호화 기능들을 사용하여 데이터의 강력한 암호화 또는해독화를 수행하는 방법 및 장치 - Google Patents

특별한 암호화 기능들을 사용하여 데이터의 강력한 암호화 또는해독화를 수행하는 방법 및 장치 Download PDF

Info

Publication number
KR19990066846A
KR19990066846A KR1019980055014A KR19980055014A KR19990066846A KR 19990066846 A KR19990066846 A KR 19990066846A KR 1019980055014 A KR1019980055014 A KR 1019980055014A KR 19980055014 A KR19980055014 A KR 19980055014A KR 19990066846 A KR19990066846 A KR 19990066846A
Authority
KR
South Korea
Prior art keywords
key
encryption
under
block
encrypted
Prior art date
Application number
KR1019980055014A
Other languages
English (en)
Other versions
KR100308322B1 (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 KR19990066846A publication Critical patent/KR19990066846A/ko
Application granted granted Critical
Publication of KR100308322B1 publication Critical patent/KR100308322B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

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

Abstract

본 발명은 데이터 블록들을 변환하기 위한 암호 기능을 제공하는 암호 설비를 갖는 암호 시스템에서의 소정 키로 암호화된 입력 블록을 해독하는 방법 및 장치에 관한 것이다. 암호 기능은 소정 키로 블록을 암호화하는 암호화 기능과 제1 키로 암호화된 블록을 제2 키로 암호화된 동일한 블록으로 변환하는 변환 기능을 포함한다. 암호 기능들은 키 쌍들 하에 블록의 연속적인 암호화가 명확한 형태로 블록을 다시 발생하도록 하는 성질을 갖는 적어도 한 쌍의 키들을 포함한다. 입력 블록은 먼저 변환 기능을 사용하여 키 쌍중 하나의 키 하에 암호화된 중간 블록으로 변환된다. 그런 다음 중간 블록은 당해 키 쌍 하에 연속적으로 암호화된 출력 블록을 발생하기 위하여 암호화 기능을 사용하여 당해 키 쌍중 다른 하나의 키 하에 다시 암호화되어, 그에 따라 명확한 형태로 입력 블록을 재발생할 수 있도록 한다. 본 발명은 수출 규제(export control) 또는 그 밖의 이유로 변환 및 암호화 기능들에 의해 에뮬레이트되는 해독 기능을 이용할 수 없는 암호 시스템에서 유용하다.

Description

특별한 암호화 기능들을 사용하여 데이터의 강력한 암호화 또는 해독화를 수행하는 방법 및 장치
발명의 분야
본 발명은 암호 설비의 특별한 암호화 기능을 사용하여 데이터의 강력한 암호화 또는 해독화를 수행하는 방법 및 장치에 관한 것이다. 보다 구체적으로, 본 발명은 데이터 암호화 및 해독화 기능들이 수출 제한(export limitations)에 맞추기 위하여 감퇴되었던(degraded) 암호 설비를 사용하여 재정 프로세싱(financial processing) 또는 그 밖의 목적을 위한 데이터의 56-비트 DES 암호화를 수행하는 방법 및 장치에 관한 것이다.
관련 분야의 설명
SET(Secure Electronic Transaction)은 오픈 네트워크를 통해서 이루어지는 지불 카드 구매를 보호하기 위한 VISA 인터내셔널, 마스터카드 및 다른 회사들에 의해 공동으로 개발된 프로토콜이다. SET 프로토콜은 구매 정보 및 지불 카드 정보의 보호를 위한 8-바이트 DES 암호화 키를 사용하여 DES(Data Encryption Standard) 암호화 및 해독화의 사용을 특정한다. 8 바이트보다 짧은 키의 길이는 허여되지 않는다.
미국 정부는 범용의 강력한 암호화를 제공하는 제품들의 수출을 규제한다. 데이터 암호화/해독화를 위해 40 비트보다 긴 암호화 키들을 갖는 DES의 사용은 미국 밖으로 선적되는 대부분의 머신들 상에서 허여되지 않는다. 그러한 머신들은 제조 단계(manufacturing environment)에서 하드웨어-구현 DES 암호화 또는 해독화가 소프트웨어에 의한 호출(invocation)에 대해 인에이블되지 않도록 구성된다. SET 자체는 수출할 수 있다. SET 프로토콜을 구현하는 제품들은 현재 소프트웨어 구현을 통해서 그렇게 하고 있다. 이러한 구현은 주 저장공간에 명확하게 암호 키들이 나타나기 때문에 하드웨어-기반 구현만큼 안전하지 않다.
따라서, 본 발명에서 해결하고자 하는 문제는 소프트웨어 사용을 위해 인에이블된 56-비트 DES를 갖지 않는 머신 상에서 안전한 방법으로 (즉, 명확한 형태로 키들을 개시하지 않고서) 8-바이트 DES 암호화 키를 가진 DES 암호화/해독화의 사용이 요구되는 SET 프로토콜 표준안(protocol standards)을 맞추기 위한 방법이다.
도 1은 본 발명을 합체하는 암호 시스템(100)을 나타내는 도면.
도 2는 삼중 암호화 모드(triple encryption mode)를 나타내는 도면.
도 3은 본 발명의 사이퍼 블록 체인(CBC: cipher block chaining) 암호화 모드를 나타내는 도면.
도 4는 본 발명의 사이퍼 블록 체인 해독화 모드를 나타내는 도면.
도 5a는 제어 벡터를 사용하여 단일-길이 키의 암호화를 나타내는 도면.
도 5b는 제어 벡터를 사용하여 더블-길이 키의 암호화를 나타내는 도면.
도 6은 본 발명의 일 실시예에 따른 전체적인 암호화 절차를 나타내는 도면.
도 7은 도 6에 나타낸 암호화 절차에서 특별한 사이퍼텍스트 데이터 블록을 암호화하는 절차를 나타내는 도면.
도 8은 CUCV(Convert Using Control Vector) 명령어에 의해 수행되는 데이터 변환들을 나타내는 도면.
도 9는 GMAC(Generate MAC) 명령어에 의해 수행되는 일반적인 데이터 변환들을 나타내는 도면.
도 10은 본 발명에서 사용된 바와 같이 GMAC 명령어에 의해 수행되는 특별한 데이터 변환들을 나타내는 도면.
도 11은 본 발명의 일 실시예에 따른 전체적인 해독화 절차를 나타내는 도면.
도 12는 도 11에 나타낸 해독화 절차에서 특별한 사이퍼텍스트 데이터 블록을 해독화하는 절차를 나타내는 도면.
도 13은 도 11에 나타낸 절차에서 데이터 암호화 키를 수입자 키(importer key)로 변환하는 것을 나타내는 도면.
도 14는 도 11에 나타낸 절차에서 허약 암호화 키를 수출자 키(exporter key)로 변환하는 것을 나타내는 도면.
도 15는 도 11에 나타낸 절차에서 수행되는 데이터 블록의 변환들을 나타내는 도면.
도 16은 도 11에 나타낸 해독화 절차의 하나의 수정예에서 수행되는 데이터 블록의 변환들을 나타내는 도면.
도 17은 도 11에 나타낸 절차의 또 다른 수정예에서 수행되는 데이터 블록의 변환들을 나타내는 도면.
도 18은 도 17에 나타낸 수정 절차에서 데이터 암호화 키를 PIN 입력 키로 변환하는 것을 나타내는 도면.
도 19는 도 17에 나타낸 수정 절차에서 허약 암호화 키를 PIN 출력 키로 변환하는 것을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
110…애플리케이션
102…암호 설비(CF)
106…암호 설비 액세스 프로그램(CFAP)
108…암호 애플리케이션 프로그래밍 인터페이스(API)
수출 가능한 머신 상에서 SET 데이터를 위한 하드웨어 DES 암호화 및 해독화를 제공하기 위하여, 암호화 및 해독화 프로세스는 모두 강력한 암호화가 인에이블될 것을 요구하지 않는 하드웨어 암호 원시적 동작들(hardware cryptographic primitive operations)을 사용한다.
이어서, 첨부한 도면들을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명하기로 한다.
도 1은 본 발명을 합체하고 있는 암호 시스템(100)을 나타낸다. 시스템(100)은 인터페이스(104)를 통해서 암호 설비 액세스 프로그램(CFAP)(106)에 의해 액세스되는 암호 설비(CF)(102)를 포함한다. CFAP(106)는 차례로 암호 애플리케이션 프로그래밍 인터페이스(API)(108)를 통해서 애플리케이션 프로그램 (또는 간단히 애플리케이션)에 의해 액세스된다. 바람직한 실시예에서, CFAP(106)은 애플리케이션(110)과 함께 범용 프로세서(도시하지 않음) 상에서 실행되는 프로그램 저장 장치(도시하지 않음) 상에 상주하는 프로그램을 포함하지만, CF(102)는 특수-목적 암호 프로세서를 포함한다. 보다 구체적으로, 본 발명은 특수한 플랫폼에 제한되지는 않지만, IBM S/390 환경에서 CF(102)는 IBM 패러랠 엔터프라이즈 서버(Parallel Enterprise Server) G3 또는 G4 프로세서의 암호 코프로세서(cryptographic coprocessor)를 포함할 수 있고 CFAP(106)은 , OS/390 운용 시스템의 콤포넌트인, ICSF(Integrated Cryptographic Service Facility)를 포함할 수 있다. CFAP(106)는 IBM 간행물인 "Application Programmer's Guide: ICSF Version 2 Release 1 with APAR OW29794", SC23-3976-01, 1997년 12월에 기재되어 있으며, 이를 여기서 참조한다.
애플리케이션(110)은 암호화, 해독화, 메시지 인증 코드(MAC: message authentication code) 발생 또는 입증(verification) 등과 같은, 특정의 암호 서비스를 수행하고자 할 때마다 인터페이스(108)를 통해서 CFAP(106)으로 요구(request)를 한다. 그러한 요구를 애플리케이션(110)으로부터 수신하자마자, CFAP(106)는 서비스 그 자체를 수행하거나 또는 인터페이스(104)를 통해서 CF(102)로 하나 이상의 호출을 하여 후자로 하여금 그를 대신하여 요구된 동작들의 전부 또는 일부를 수행하게 한다. CFAP(106)가 (그 자신이 스스로 또는 CF(102)의 도움으로) 요구된 서비스를 완료하면, 인터페이스(108)를 통해서 요구중인 애플리케이션으로 응답을 되돌려 보낸다.
본 발명은 다른 애플리케이션들에서 사용될 수도 있으나, 애플리케이션(110)은, 예를 들어 온라인으로 http://www.visa.com에서 얻을 수 있고 여기서 참조되는 "SET Secure Electronic Transaction Specification", Version 1.0, 1977년 5월 31일자 간행물의 다양한 책들에, 기재되어 있는 SET(Secure Electronic Transaction Specification) 프로토콜을 구현하는 애플리케이션을 포함한다.
데이터 암호화 표준(DES)
본 발명의 암호화 및 해독화 방법은 데이터 암호화 표준(DES)을 참조하여 설명하기로 한다. DES 암호화는 이 분야에 잘 알려져 있으며, 여기서 참조되는 연방 정보 프로세싱 표준(FIPS: Federal Information Processing Standards) 간행물 46, 1997년의 "Data Encryption Standard"라는 간행물에 설명되어 있다. 필수적으로, DES는 길이가 8바이트(64비트)인 사이퍼텍스트 블록(Y)을 산출하기 위하여, 8 바이트(64비트)의 평문(plaintext 또는 cleartext) 블록(X)상에서 동작하며 64-비트 키(K)(이중에서 56비트는 독립적이고 8비트는 패리티 비트임)를 사용하여 이를 암호화하는 블록 암호화 시스템이다. 이는 다음 식으로 표시될 수 있다.
Y=eK(X)
단, Y는 사이퍼텍스트 블록이고, X는 평문 블록이고, eK는 키(K)에 의한 DES 암호화를 나타낸다.
평문 블록은 다음 식에 나타낸 바와 같이, 동일한 키를 사용하여 상응하는 해독화 동작에 의하여 사이퍼텍스트 블록으로부터 복구된다.
X=dK(Y)
단, X 및 Y는 위와 같이 정의되며 dK는 키(K)에 의한 DES 해독화를 나타낸다. 동일한 키가 암호화 및 해독화 모두에 사용되므로, 암호화 및 해독화 키들이 서로 다른 비대칭(또는 공중키) 절차와 구별되도록, DES 절차는 종종 대칭 암호화 절차로 언급된다.
기본적인 형태에서, DES 절차는 56개의 독립적인 키 비트를 가지며, 그 결과 가능한 키들의 공간에 대한 소모적인 공격이 평균 약 255회 정도의 시도되어야 하기 때문에, 매우 높은 암호 능력을 가지게 된다. 이러한 강력함은 동일한 평문 블록을 여러 번 암호화함으로써 더욱 증가될 수 있다. 따라서, 도 2에 나타낸, 복수의 DES 암호화의 하나의 일반적인 모드에서, 다음 식과 같이, 평문 블록(X)은 먼저 제1 키(K1) 하에 암호화된 다음, 제2 키(K2) 하에 해독화되고, 그런 다음 다시 제3 키(K3) 하에 다시 암호화된다.
Y=eK3(dK2(eK1(X)))
이 설명에서, (K1∥K2로 표시되는) K1과 K2의 연결(concatenation)이 단일 논리적 128-비트 키(이중에서 112비트가 독립적임)로 간주될 수 있도록, K3=K1이라고 가정하자. 만일 K2=K1이면, 이 삼중 암호화 모드(triple encryption mode)는 K1에 의한 단일 암호화와 동등하게 됨을 주목하여야 한다.
이제까지 설명한 암호화는, 각 평문 블록(X)이 메시지 내의 다른 블록(X)과는 독립적으로 암호화되는, 소위 전자 코드북(ECB) 모드이다. 한편, CBC(cipherblock chaining) 모드에서, 하나의 입력 블록 Xi에 대한 암호화 결과들은 다음 입력 블록 Xi+1을 위해 사용된다. 그리하여, 도 3을 참조하면, 암호화의 CBC 모드에서, 배타적 OR(XOR) 가산을 사용하여, 제1 평문 블록 X1은 64-비트 초기 체이닝 벡터(ICV : initial chaining vector)와 결합되고, 그 결과는 제1 사이퍼텍스트 블록 Y1을 생성하기 위하여 다시 암호화된다. Y1은 그 때 암호화되기 전에 그 블록과 함께 그것을 XOR함으로써 다음 블록 X2를 위한 체이닝 벡터로서 사용된다. 모든 블록 X1-Xn이 암호화될 때까지, 체이닝 벡터로서 이전 암호화 결과 Yi-1을 사용하여, 각각의 추가적인 입력 Xi에 대해 유사한 방식으로 암호화가 진행된다.
도 4는 동작들의 순서를 제외하고는 CBC 암호화 절차와 유사한, 상응하는 CBC 해독 절차를 나타낸다. 그리하여, 도 4를 참조하면, 제1 사이퍼텍스트 블록 Y1이 먼저 K를 사용하여 해독된 다음, 제1 평문 블록 X1을 생성하기 위하여 사용된 것과 동일한 ICV로 배타적 논리합(XOR)된다. 이어지는 각각의 블록 Yi에 대해서, 블록 Yi-1(암호화에서의 출력이라기 보다는 입력임)이 체이닝 벡터로서 사용된다.
DES 절차는, 키를 가지고 평문 블록을 두 번 암호화하면 동일한 평문이 다시 발생된다는 특성을 갖는, 허약 키들로서 알려진 것을 가진다. 따라서, 허약키 W에 대해서, 임의의 X에 대해 다음이 성립한다.
eW(eW(X))=X
4개의 그러한 허약 DES 키들이 있다. 그들은 16진수표현으로 다음과 같다.
또한, 키들의 쌍(W, W')에 대해서 제1 키로 암호화를 하고 이어서 제2 키로 암호화를 하면(또는 그 역순으로 암호화를 하면) 동일한 평문 블록이 다시 발생되는 특성이 키들의 쌍에서 발생되는 준허약 키들이 있다. 따라서, 허약 키들의 쌍(W, W')에 대해서 임의의 X에 대해서 다음 식이 성립한다.
eW(eW′(X))=eW′(eW(X))=X
DES에서, 다음과 같이 6개의 쌍을 이루는 12개의 그러한 준허약 키들이 있다.
DES 암호화 절차가 가지고 있는 허약 및 준허약 키들의 이러한 성질들은 후술하는 바와 같이 본 발명의 해독화 절차에서 이용된다.
암호 설비
상기한 바와 같이, CF(102)는 데이터의 암호화 또는 해독화, 메시지 인증 코드들(MAC들)의 발생, 다양한 키 관리 동작들을 포함하여, CFAP(106)로부터의 요구들에 응답하여 다양한 암호 동작들을 수행한다. 후자의 동작들이 이어지는 설명에서 두드러지게 나타나므로, 간단히 설명하기로 한다.
CF(102)는 마스터 키(MK), 키-암호화 키들(KEK들), 데이터-암호화 키들(DEK들)을 포함하는 키 관리 계층구조를 구현한다. 마스터 키(MK)는 다른 키들을 암호화하는 데만 사용되는 이중-길이(128-비트) 키이다. 마스터 키(MK)는 항상 CF(102) 내의 안전 영역에 남는다. KEK들(즉 운송 키들)은 하나의 시스템에서 다른 시스템으로 분배되는 키들을 보호하기 위하여 사용되는 이중-길이 키들이다. 데이터-암호화 키들은 데이터를 암호화, 해독화 또는 인증하기 위하여 사용되는 단일-길이(64-비트) 키들이다.
여기서 주된 관심이 있는 2개의 KEK들은 수입자 키들이고 수출자 키들이다. 수입자 키들은 (수출자 키로서 동일한 키를 가지고 있는) 다른 시스템에서 로컬 시스템으로 보내지거나 로컬 시스템으로 나중에 수입되기 위한 파일 내에 외부적으로 저장되는 키들을 보호한다. 한편, 수출자 키들은 로컬 시스템으로부터 (수입자 키로서 동일한 키를 가지고 있는) 다른 시스템으로 보내지는 임의의 형태의 키들을 보호한다.
키-암호화 키들과 데이터-암호화 키들은 CF(102)의 안전 경계(secure boundary)의 외부에, 그러나 마스터 키(MK)의 변형체(variant) 하에 암호화된, 암호화 형태로만 저장된다. 보다 구체적으로, 특정 키 형태의 마스터 키 변형체가 그 형태를 위한 제어 벡터(CV)와 마스터 키(MK)를 결합함으로써 발생된다. 바람직한 구현예에서, 제어 벡터는 마스터 키 변형체 하에 암호화된 키의 사용을 제어하는데 사용되는 양(quantity)이다. 그러한 제어 벡터들의 사용은 미국 특허 제4,918,728호, 제4,924,515호, 제4,941,176호, 제4,993,069호, 제5,007,089호, 제5,103,478호, 제5,432,879호와 같은 간행물들에 기재되어 있다.
도 5a는 (왼쪽 반의 KEKL과 오른쪽 반의 KEKR로 구성된) 이중-길이 키-암호화 키(KEK)가 단일-길이 키(K)를 암호화하기 위하여 제어 벡터(CV)와 결합되는 방식을 나타낸다. 이 절차는, 제1 및 제3 (암호화) 단계를 위한 키(K1)를 유도하기 위하여 KEKL이 CV와 XOR되고 제2 (해독화) 단계를 위한 키(K2)를 유도하기 위하여 KEKR이 CV와 XOR되는, 기본적으로 도 2에 나타낸 삼중 암호화 절차의 변형예이다. 실제로, KEK는 도 2의 암호화 절차에서 사용되기 전에 연쇄 벡터(CV∥CV)와 XOR된다. 본 명세서에서, 이 방식으로 제어 벡터(CV)를 사용하여 키-암호화 키(KEK) 하에 키(K)를 암호화하는 것은 eKEK.CV(K)로 표시하기로 하되, e는 이중-길이 키 하에 삼중-암호화를 의미하고 KEK.CV(=KEK XOR CV∥CV)는 암호화를 위해 사용되는 KEK의 지정된 변형체이다. 상응하는 역동작인 해독화가 유사한 방식으로 수행되며 이를 dKEK.CV(K)로 표시하기로 한다.
만일 암호화되어 있는 키가 이중-길이 키(예를 들어, 수입자 또는 수출자 키)이면, 개별적으로 유도된 암호화 키(마스터 키 또는 운송 키)의 변형체들을 사용하여, 2개의 반쪽들에 대해서 별개로 암호화가 수행된다. 따라서, 도 5b는 왼쪽 반 제어 벡터(CVL)와 오른쪽 반 제어 벡터(CVR)를 사용하여 마스터 키(MK) 하에 이중-길이 K(왼쪽 반 KL과 오른쪽 반 KR로 구성됨)의 암호화를 나타낸다. K를 암호화하기 위하여, 각각의 반쪽 입력인 KR과 KL에 대해서 KL을 위한 CVL과 KR을 위한 CVR을 사용하여, 도 5a의 절차가 별개로 수행되어, 암호화물들(eMK.CVL(KL)과 eMK.CVR(KR))을 발생한다. 2개의 반쪽 입력들에 대해서 별개의 암호화가 수행되지만, 이 절차는 종종 간단히 eMK.CV(K)-여기서, CV는 KL에 대해서는 CVL을 의미하고 KR에 대해서는 CVR을 의미하는 것으로 인정됨-로 편리하게 표시될 것이다. 여기에서 설명하는 마스터 키 변형체들을 위한 특정 표시들은 수입자 키를 암호화하는데 사용되는 변형체를 위한 MK.imp와 수출자 키를 암호화하는데 사용되는 변형체를 위한 MK.exp를 포함한다(여기서 MK.imp와 MK.exp는 왼쪽 반 키 및 오른쪽 반 키에 대해 서로 다른 제어 벡터들을 의미하는 것으로 이해됨).
따라서, 수입자 키(K)는 eMK.imp(K)의 암호화된 형태로 저장된다-여기서, K는 명백히 수입자 키의 값이고 MK.imp는 마스터 키(MK)의 수입자 변형체임-. 마찬가지로, 수출자 키(K)는 eMK.exp(K)의 암호화된 형태로 저장된다-여기서, K는 명백한 키 값이고, MK.exp는 수입자 마스터 키 변형체임. 이 방식에서 마스터 키(MK)의 변형체 하에서 암호화되는 다른 키들은, 마스터 키 변형체들(MK.mac, MK.ipk, MK.opk) 하에 각각 암호화되는, MAC-발생 키들, PIN 입력 키들, PIN 출력 키들을 포함한다. 마스터 키 변형체 하에서 암호화되는 키들은 CF(102)의 안전 경계 내이고 특정 동작을 위해서 필요한 때에만 해독화되고, 그 후 명백한 값이 삭제된다.
어떤 키 관리 기능들은 (적절한 기능 코드를 가진) 암호 키 관리 기능 수행(PCKMF : Perform Cryptographic Key Management Function)을 명령함으로써 CFAP(106)로부터 호출되는 CF(102)를 위해 정의되어왔다. 특히 본 발명에 관련되는 키 관리 기능들은 다음을 포함한다.
제어 벡터를 사용한 변환(CUCV : Convert Using Control Vector) :결과 키 K1 XOR K2를 산출하기 위하여 2개의 64-비트 호환 키들(K1, K2)의 키 값들을 XOR하고 지정된 마스터 키 변형체 MK.V를 사용하여 상기 결과 키를 암호화한다. 입력들은 eMK.S1(V), eMK.S2(K1), eMK.S2(K2)이고, 출력은 eMK.V(K1 XOR K2)이다.
마스터 키 하에서의 암호화(EMK : Encrypt under Master Key) : 지정된 마스터 키 변형체(MK.S)를 사용하여 데이터 호환성 키로서 암호 키(K)의 명확한 값을 암호화한다. 입력들은 K와 S의 명세 사항(specification)이고 출력은 eMK.S(K)이다.
재 암호화 키(RK : Reencipher Key) : 특정 제어 벡터(V)를 사용하여 유도되는 수입자 변형체(KEK1.V)로부터 동일한 제어 벡터(V)를 사용하여 유도되는 수출자 변형체(KEK2.V)로 64-비트 키(K)를 재 암호화한다. 입력들은 V, eMK.imp(KEK1), eKEK1.V(K), eMK.exp(KEK2)이고, 출력은 eKEK2.V(K)이다.
마스터 키로의 재 암호화 (RTMK : Reencipher To Master Key) : 지정된 제어 벡터(S)로부터 유도되는 수입자 변형체(KEK.S)로부터 동일한 제어 벡터(S)를 사용하여 유도되는 마스터 키 변형체(MK.S)로 64-비트 키(K)를 재 암호화한다. 입력들은 eMK.imp(KEK), eKEK.S(K), S의 명세 사항이고 출력은 eMK.S(K)이다.
마스터 키로부터의 재 암호화 (RFMK : Reencipher From Master Key) : 지정된 제어 벡터(S)를 사용하여 유도되는 마스터 키 변형체(MK.S)로부터 동일한 제어 벡터(S)를 사용하여 유도되는 수출자 변형체(KEK.S)로 64-비트 키(K)를 재 암호화한다. 입력들은 eMK.exp(KEK), eMK.S(K), S의 명세 사항이고, 출력은 eKEK.S(K)이다.
또한, 어떤 메시지 인증 코드(MAC) 기능들이, (적절한 기능 코드를 갖춘) 암호 MAC 기능 수행(PCMF : Perform Cryptographic MAC Function)을 명령함으로써 CFAP(106)으로부터 호출되는 CF(102)를 위해 정의되어 왔다. 본 발명에 특히 관련되는 MAC 기능은 다음을 포함한다.
MAC 발생(GMAC : Generate MAC) : 지정된 MAC 키(K)와 초기 체이닝 값 ICV를 사용하여 입력 블록들(X1-Xn)로 구성된 메시지 상에 64-비트 MAC를 발생한다. 입력들은 X1-Xn, ICV, eMK.S(K)이고 출력은 MAC이다.
이들을 본 발명에 관련되어 있으므로 아래에 좀 더 구체적으로 논의하기로 한다.
강력한 DES 암호의 이용상의 제한
미국에서 나오는 데이터 암호화 제품들의 수출 버전을 위해서, 상용 데이터 마스킹 설비(CDMF : Commercial Data Masking Facility)로 불리는 암호화시스템이 개발되어 있다. 미국 특허 제5,323,464호에 기재되어 있으며, 여기서 참조되는, 이 시스템은 DES와 유사하나, 실제로 40개의 독립적인 비트들을 갖는 허약 키를 사용한다. 비록 어떤 최종 사용(예를 들어, 재정 애플리케이션)을 위한 암호화 제품들의 수출 버전들에는 강력한 (56-비트) DES 암호화가 허용되지만, 그러한 수출 버전들에서 데이터 도용 목적을 위한 암호화는 현재 40개의 독립적인 비트로 키 길이로 제한된다. 그리하여, 도 1을 다시 참조하면, 심지어 수출 버전에서도, CFAP(106)가 SET와 같은 재정 애플리케이션들을 위한 강력한 (56-비트) DES 암호화를 수행하기 위하여 허용되지만, CF에서의 일반적인 암호화 기능들이 수출 버전에서 40-비트 키들로 제한되므로, CFAP는 CF(102)로부터의 하드웨어 도움에 의존할 수 없다.
본 발명은, 상기한 바와 같이, 표준 데이터 암호화 및 해독화 기능들이 키 길이가 제한되는 CF의 수출 버전에서도 충분히 암호 길이를 유지하고 40-비트 키들로 제한되지 않는, CF(102)의 특별한 암호화 기능들(즉, 데이터 암호화를 제외한 암호화 기능들)을 사용함으로서 이러한 하드웨어 제한을 극복한다. 바람직한 구현예에서, 본 발명은 애플리케이션에게 투명하고(transparent), CF(102)를 변경하지 않고서, CFAP(106)만을 변경하여 구현된다. 암호화 및 해독화를 위한 절차들을 아래에 따로따로 설명하기로 한다.
암호화 절차
본 발명의 일 실시예에서, CFAP(106)은 CF(102)의 암호 MAC 수행(PCMF : Perform Cryptographic MAC) 명령어의 MAC 발생(GMAC :Generate MAC) 기능을 사용하여 애플리케이션(110)으로부터 데이터의 56-비트 하드웨어 DES 암호화를 수행한다. 본 발명은 단일 데이터 블록(X)으로 구성되는 메시지에 있어서, 발생된 MAC이 동일한 단일 데이터 블록(X)과 체이닝 값(ICV)에 대한 CBC 암호화 절차(도 3 참조)에 의해 발생된 출력 블록(Y)과 동일하다는 사실을 이용한다.
도 6은 본 발명의 일 구현예의 전체적인 암호화 절차를 나타낸다. 이 절차는 DES 암호화를 요구하는 (예를 들어 SET 블록을 작성하기 위하여) 애플리케이션(110)으로부터의 요구를 수신하자마자 CFAP(106)에 의해 수행된다. CFAP(106)은 애플리케이션(110)으로부터 입력 파라미터들로서, (1) 64-비트 평문 블록들(X1-Xn)을 포함하는, 암호화를 요구하는 평문 메시지(M), (2) (적절한 마스터 키 변형체 하에 암호화된) 64-비트 데이터 암호화 키(DEK), (3) 64-비트 초기 체이닝 벡터(ICV)를 수신한다. CFAP(106)은 애플리케이션(110)으로부터 이러한 입력 파라미터들을 수신하고, 도 3에 나타낸 CBC 암호화 절차를 수행하고, 64-비트 블록들(Y1-Yn)을 포함하는 암호화된 사이퍼텍스트 메시지(C)를 리턴한다.
상기한 바와 같이, 데이터 암호화 키(DEK)는 마스터 키 변형체 하에 암호화되고 암호 동작(암호화 또는 해독화)에서 사용되기 위해 해독될 때 CF(102)의 안전 경계 내를 제외하고는 명백히 나타나지 않는다.
(애플리케이션(110)으로부터 암호화 키(DEK)를 수신하는 것 대신에, CFAP(106)은 키를 발생하고 (적절한 마스터 키 변형체 하에서 암호화된) 그 값 자체를 저장하거나 또는 그 값을 애플리케이션으로 리턴할 수도 있다. 또한, 애플리케이션(110)으로부터 ICV를 수신하는 대신에, CFAP(106)이 기정값(예를 들어, "0")을 가정할 수도 있다.)
암호화 절차는 다음과 같다. CFAP(106)이 애플리케이션(110)으로부터 데이터 암호화 키(DEK)를 수신하지 않으면, CFAP(106)은 홀수-패리티 8-바이트 난수로서 키(DEK)를 먼저 발생하고 그것을 적절한 마스터 키 변형체 하에 암호화한다(단계 602).
CFAP(106)는 그런 다음 동일한 명백한 값을 가지나 대신에 MAC 마스터 키 변형체(MK.mac)하에 암호화되는 MAC 키로 데이터 키(DEK)를 변형한다(단계 604). 이 MAC 키는 eMK.mac(DEK)의 형태로 저장된다. 바람직하게는, 이러한 변환은 여기서 참조하는 "Secure Translation of Usage-Control Values for Cryptographic Keys"라는 제목의 미국 특허 제5,177,791호에 기재되어 있는 방법을 사용하여 수행된다.
한편, 암호화된 MAC 키(eMK.mac(DEK))는 CF(102)의 명령어 세트의 일부인 제어 벡터를 사용한 변환(CUCV : Convert Using Control Vector) 명령어로 발생될 수도 있다. 도 8을 참조하면, 상기한 바와 같이 CUCV 명령은 입력 파라미터들로서 (1) eMK.S1(V)로서 마스터 키 변형체(MK.S1) 하에 암호화된 64-비트 제어 벡터(V)와, (2) eMK.S2(K1)로서 마스터 키 변형체(MK.S2) 하에 암호화된 64-비트 키(K1)와, (3) eMK.S2(K2)로서 마스터 키 변형체(MK.S2) 하에 암호화된 64-비트 키(K2)를 취한다. CF(102)는 적절한 마스터 키 변형체들을 사용하여 K1, K2, V를 암호화하고, 새로운 키(K1 XOR K2)를 발생하기 위하여 명백한 값들(K1, K2)을 XOR하고, eMK.V(K1 XOR K2)-이 것은 CFAP(106)으로 리턴됨-를 발생하기 위하여 도 5a에 나타낸 바와 같이 MK.V 하에 K1 XOR K2를 암호화함으로써 CUCV 명령을 실행한다. CUCV 명령은 (모두 적절하게 암호화된 형태로) K1로서 DEK를, K2로서 영의 값을, V로서 MAC키들에 대한 제어 벡터 mac을 공급함으로써 암호화된 MAC 키(eMK.mac(DEK))를 발생하는데 사용된다.
(도 8 및 그 밖의 도면들에서, "E"로 표시된 박스들은, 키 길이에 적절하게, 도 2, 도 5a, 도 5b에 나타낸 바와 같이 단일 DES 암호화 또는 트리플 DES 암호화의 어느 하나를 나타낸다. 마찬가지로, "D"로 표시된 박스들은 키 길이에 적절하게, 단일 DES 암호화 또는 트리플 DES 해독화의 어느 하나를 나타낸다.)
CFAP(106)은 그런 다음, 상응하는 암호화된 데이터 블록들(Yi)-이것은 단계 608에서 애플리케이션(110)으로 리턴됨-을 얻기 위하여, 도 7에 나타낸 절차를 사용하여, 데이터(X1-Xn)-한번에 하나의 64-비트 블록(Xi)씩-을 프로세스한다(단계 606).
도 7은 애플리케이션(110)으로부터 수신한 데이터 블록들(X1-Xn)을 암호화하기 위한 절차를 나타낸다. CFAP는 애플리케이션(110)으로부터 수신한 제1 데이터 블록(X1)에서 시작하여 데이터 블록(Xi)을 선택하고(단계 702), CF(102)로 GMAC 명령을 함으로써 그 데이터 블록을 암호화한다(단계 704).
도 9를 참조하면, 일반적으로 상기한 바와 같이, GMAC 명령은 입력 파라미터들로서 (1) 64-비트 블록들(X1-Xn)로 구성된 입력 메시지와, (2) 암호화된 MAC 키(eKM.mac(K))와, (3) 초기 체이닝 벡터(ICV)를 수신한다. GMAC을 그의 입력 파라미터들과 함께 수신하자마자 CF(102)는 암호화 키로서 K를 사용하고 초기 체이닝 벡터로서 ICV를 사용하여, MAC 키(K)를 해독하고 도 3의 CBC 암호화 절차를 수행한다. 그러나, 각 출력 블록(도 3에서의 Yi)을 유지하는 대신에, CF(102)는 최종 출력 블록(MAC)-이것은 CFAP(106)로 리턴됨-을 제외한 모두를 버린다.
상기 설명에서 명백한 바와 같이, GMAC 명령은 입력 블록들(X1-Xn)의 수에 무관하게 단일 64-비트 MAC(=Yn)을 리턴한다. 도 3에 나타낸 바와 같이 정확히 암호화되는 출력 블록들(Yi)을 발생하기 위하여, 도 10에 나타낸 바와 같이, CFAP(106)는 각 입력 블록(Xi)에 대해서 한번씩 GMAC 명령을 호출한다. 각 호출에 의해, CFAP(106)는 암호화된 MAC 키(즉, K=DEK)로서 eMK.mac(DEK)를 공급한다. 제1 호출에 의해, CFAP는 단일-블록 입력 메시지로서 X1과 애플리케이션(110)으로부터 수신한 ICV 값을 공급하고, CF(102)로부터의 리턴 값은 Y1로서 저장된다. 각각의 후속되는 호출에 의해, CFAP(106)는 단일-블록 입력 메시지로서 상응하는 블록(Xi)과 ICV로서 이전의 출력 값(Yi-1)을 공급하고 Yi로서 출력값을 저장한다.
이렇게 발생된 MAC 값은 암호화된 데이터 스트링(Y1-Yn)의 형성을 시작하기 위하여 이전의 암호화 결과들에 연결되고, 제1 반복에 의해, 이것은 영-길이 스트링이 될 것이다(단계 706). MAC 값은 또한 GMAC으로 공급되는 새로운 체이닝 값(ICV)이 된다(단계 708). 만일 암호화되기 위하여 애플리케이션(110)으로부터 임의의 잔존 64-비트 블록의 데이터(Xi)가 있다면(단계710), 절차는 단계 702로 리턴하여 다음 블록(Xi)을 프로세스할 것이다(단계 712). 그렇지 않으면, 절차는 도 6에서 단계 608로 리턴한다(단계 714).
도 7의 절차는 모든 입력 블록들(X1-Xn)이 프로세스될 때까지 상기한 바를 지속한다.
변경된 마스터 키(MK)에 대한 검사가 PCMF 기능(GMAC)의 각 호출 후에 이루어진다. PCMF 동작으로부터의 상태 코드(3)는 DES 데이터 키를 필요하다면 현재 마스터 키 하에 재 암호화되도록 할 것이며, PCMF는 재시도가 표시된다면 재 시도될 것이다.
해독화 절차
본 발명에 따르면, 애플리케이션(110)으로부터 DES-암호화된 데이터의 하드웨어 해독은, 강력한 암호화가 가능함을 요구하지 않는 하드웨어 암호 프리미티브(primitives)를 사용하여 수행된다.
본 발명은 만일 데이터가 허약 키(또는 준허약키 쌍의 키들)로 2번 암호화된다면, 그 결과가 데이터의 명확한 형태라는 사실에 기초하고 있다. 따라서, 만일 D가 명백한 텍스트의 일부이고 W가 허약 키이면, eW(eW(D))=D가 된다. 마찬가지로, W와 W'가 준허약 키 쌍의 멤버이면, eW(eW'(D))=eW'(eW(D))=D가 된다.
본 발명의 이런 측면에 따르면, CFAP(106)은 애플리케이션(110)으로부터 DES-암호화된 데이터를 얻고, 그것을 허약 키(또는 준허약 키 쌍의 멤버) 하에 암호화되도록 변형한 다음, 그것을 동일한 허약 키(또는 동일한 준허약 키의 다른 멤버) 하에 다시 암호화한다. 그 결과가 데이터의 해독화된(즉, 명백한) 형태이다.
이 프로세싱에 있어서, 수출자 변형체(MK.exp) 하에 암호화된 허약 DES 키가 사용된다. CUCV 명령이 이 수출자 키-암호화 키를 생성하기 위해 사용된다. DES 데이터 키(DEK)는 수입자 키-암호화 키로 변환된다. CUCV 명령은 또한 이 키를 생성하기 위해 사용된다.
도 11은 본 발명의 일 구현예의 전체적인 해독화 절차를 나타낸다. 이 절차는 DES 해독화를 요구하는 애플리케이션(110)으로부터 (예를 들어 SET 블록 분해 서비스 호출과 같은) 요구를 수신하자마자 CFAP(106)에 의해 수행된다. CFAP(106)은 애플리케이션(110)으로부터 입력 파라미터들로서 (1) 64-비트 사이퍼텍스트 블록들(Y1-Yn)을 포함하는, 해독화를 요구하는 사이퍼텍스트 메시지(C)와, (2) (적절한 마스터 키 변형체 하에 암호화된) 64-비트 데이터 암호화 키(DEK)와, (3) (만일 영이 아니면) 64-비트 초기 체이닝 벡터(ICV)를 수신한다. CFAP(106)는 애플리케이션(110)으로부터 이러한 입력 파라미터들을 얻고, 도 4에 나타낸 CBC 해독화 절차를 수행하고, 64-비트 블록들(X1-Xn)을 포함하는, 원래의 평문 메시지(M)를 리턴한다.
해독화 절차는 다음과 같다. CFAP(106)는 먼저 (상기한 바와 같은) 허약 키(W)를, 마스터 키(MK)의 수출자 변형체(MK.exp) 하에 암호화된, 수출자 키(eMK.exp(W∥W))로 변환한다(단계 1102). (상기 표현은 수출자 키가 저장되는 형태를 나타내며, 수출자 키의 명백한 형태는 W∥W 이다.)
eMK.exp(W∥W)를 생성하기 위하여, CFAP(106)는 구축되고 있는 128-비트 수출자 키의 각 반(half)에 대해서 한번씩, CUCV 명령을 2번 호출한다. 첫 번째 호출에 의해, CFAP(106)는, 결과(eMK.V12(W))를 얻기 위하여, 키(K1)로서 W를, 키(K2)로서 영을, 제어 벡터(CV)로서 V12-여기서, V12는 수출자 키의 왼쪽 반에 대한 지정된 제어 벡터(CVL)임(도 5b 참조)-를 모두 명령 포맷에 의해 요구되는 암호화 형태로 공급한다. 두 번째 호출에 의해, CFAP(106)은, 결과(eMK.V14(W))를 얻기 위하여, 키(K1)로서 W를, 키(K2)로서 영을, 제어 벡터(CV)로서 V14-여기서, V14는 수출자 키의 오른쪽 반에 대한 지정된 제어 벡터(CVR)임(도 5b 참조)-를 모두 명령 포맷에 의해 요구되는 암호화 형태로 공급한다. 생성된 128-비트 수출자 키(W∥W)는 간단히 반쪽 키들(W와 W)의 연결(concatenation)이다. 비록 2개의 반쪽 키들(key halves)이 마스터 키의 서로 다른 변형체들(MK.V12와 MK.V14) 하에 별개로 암호화되었으나, 전체적인 암호화는 간편한 단축 표시(eMK.exp(W∥W))로 표시될 수 있다. 도 14는 이 절차의 전체적인 결과를 나타낸다.
다음에, CFAP(106)은 마스터 키(MK)의 수입자 변형체(MK.imp) 하에 암호화된, 수입자 키(eMK.imp(DEK∥DEK))로 애플리케이션(110)으로부터 수신된 데이터 암호화 키(DEK)를 변환한다(단계 1104). (상기 표현 역시 수입자 키가 저장되는 형태를 나타내며, 수입자 키의 명백한 형태는 DEK∥DEK이다.)
eMK.imp(DEK∥DEK)를 생성하기 위하여, CFAP(106)는 구축되고 있는 128-비트 수입자 키의 각각의 절반에 대해서 한번씩, 두 번의 CUCV 명령을 호출한다. 첫 번째 호출에 의해, CFAP(106)는, 결과(eMK.V13(DEK))를 얻기 위하여, 키(K1)로서 DEK를, 키(K2)로서 영을, 제어 벡터(CV)로서 V13-여기서, V13은 수입자 키의 왼쪽 반에 대한 지정된 제어 벡터(CVL)임(도 5b 참조)-를 모두 명령 포맷에 의해 요구되는 암호화 형태로 공급한다. 두 번째 호출에 의해, CFAP(106)는, 결과(eMK.V15(DEK))를 얻기 위하여, 키(K1)로서 DEK를, 키(K2)로서 영을, 제어 벡터(CV)로서 V15-여기서, V15는 수입자 키의 오른쪽 반에 대한 지정된 제어 벡터(CVR)임(도 5b 참조)-를 모두 명령 포맷에 의해 요구되는 암호화 형태로 공급한다. 생성된 128-비트 수입자 키(DEK∥DEK)는 간단히 반쪽 키들(DEK와 DEK)의 연결(concatenation)이다. 비록 2개의 반쪽 키들(key halves)이 마스터 키의 서로 다른 변형체들(MK.V13과 MK.V15) 하에 따로따로 암호화되었으나, 전체적인 암호화는 간편하게 단축하여 eMK.exp(DEK∥DEK)로 표시될 수 있다. 도 13은 이 절차의 전체적인 결과를 나타낸다.
암호 키 데이터 세트(CKDS)가 초기화될 때 CFAP의 초기 스타트-업(first-time start-up)에서 일단 CFAP에 의해 CUCV 프로세싱을 위해 요구되는 암호화된 제어 벡터들(V12-V15)이 발생된다.
(비록 수입자 및 수출자 키들이 실제로 이중-길이 키들(DEK∥DEK와 W∥W)이더라도, 그들은 종종 그들의 단일-길이 카운터파트들(DEK와 W)로서 여기에서 나타내고 언급된다. 그러한 연결된 이중-길이 키들 하에서의 트리플 암호화는, 도 2로부터 명백한 바와 같이, 상응하는 단일-길이 키 하에서의 단일 암호화와 동등하다.
CFAP(106)는 그런 다음 도 12에 나타낸 절차를 사용하여, 블록(Y1)에서 시작하여 블록(Yn)까지 계속하여, 한번에 하나의 8-바이트 블록(Yi)씩 DES-암호화된 데이터를 프로세스한다(단계 1106). 후술하는 바와 같이, 이 절차는 실제로 데이터를 키인 것처럼 취급하면서, 특정된 키 관리 동작들을 수행한다.
끝으로, 모든 데이터(Y1-Yn)가 해독화되면, CFAP(106)는 애플리케이션(110)으로 해독된 데이터(X1-Xn)를 리턴한다(단계 1108).
도 12 및 도 15는 특별한 사이퍼텍스트 데이터 블록(eDEK(D))-여기서, D=Xi XOR CVi이고, CVi는 블록(i)에 대한 현재 체이닝 벡터임-을 해독화하기 위한 절차를 나타낸다. 도 12는 수행되는 단계들을 나타내며, 도 15는 관련된 데이터 변형을 나타낸다.
CFAP(106)는 입력 데이터 블록으로서 사이퍼텍스트 데이터 블록(eDEK(D))을 먼저 페치(fetch)하는데, 이는 애플리케이션의 DES-암호화된 데이터 블록으로부터 CFAP 저장소로 8 바이트의 암호화된 데이터를 복사함으로써 이루어진다(단계 1202).
다음에, CFAP(106)는 중간 데이터 블록(eW(D))을 발생하기 위하여 데이터 암호화 키(DEK) 하의 암호화로부터 허약 키(W) 하의 암호화로 입력 데이터 블록(eDEK(D))을 변형한다(단계 1204).
도 15에 나타낸 실시예에서, 이것은 CF(102)로 재 암호화 키(RK : Reencipher Key) 명령을 하고, 암호화된 수입자 키(eMK.imp(DEK∥DEK))와, 암호화된 수출자 키(eMK.exp(W∥W))와, 제어 벡터(CV)(=0)와, 암호화된 데이터(eDEK(D))를 입력 파라미터들로 특정함으로써 이루어진다. RK 명령 및 입력 파라미터들을 수신하자마자, CF(102)는 명백한 형태로 키들(DEK와 W)을 발생하기 위하여 수입자 키와 수출자 키를 해독하고, 명백한 형태로 원래 데이터 블록(D)을 발생하기 위하여 입력 데이터 블록(eDEK(D))을 해독하고, 중간 데이터 블록(eW(D))을 발생하기 위하여 허약 키 하의 데이터 블록을 다시 암호화하여 CFAP(106)로 리턴한다. 데이터 블록(D)의 명백한 값이 RK 명령을 실행하는 중간 단계에서 발생하지만, 그 값 및 그 밖의 명백한 값들(DEK, W)은 CF(102)의 외부에서는 이용할 수 없으며, 그들이 사용된 후에는 삭제된다.
다음에 CFAP(106)는 허약 키(W) 하의 두 번 암호화된 출력 블록(eW(eW(D)))을 발생하기 위하여 허약 키(W) 하에 중간 데이터 블록(eW(D))을 또 암호화하는데, 상기한 바와 같은 허약 키들의 특성에 의해, 명백한 형태로 원래 데이터 블록(D)이 다시 발생된다(단계 1206).
도 15에 나타낸 구현예에서, 단계 1206은 두 번 수행된다. CFAP(106)는 먼저 허약 키(W)와 마스터 키(MK) 하에 연속적으로 암호화된 데이터 블록(eMK(eW(D)))을 발생하기 위하여 마스터 키(MK) 하에 중간 데이터 블록(eW(D))을 암호화한다. 이는 CF(102)로 마스터 키 하의 암호화(EMK : Encrypt under Master Key) 명령을 하고, 입력 파라미터들로서 암호화될 중간 데이터 블록(eW(D))을 특정함으로써 이루어진다. (마스터 키(MK)는 이미 CF(102)에 보관되어 있으므로 입력 파라미터로서 공급되지 않는다.) EMK 명령과 입력 파라미터를 수신하자마자, CF(102)는 암호화된 값(eMK(eW(D)))을 발생하기 위하여, 마스터 키(MK) 하에 eW(D)를 암호화하여, CFAP(106)으로 리턴한다.
CFAP는 그런 다음 마스터 키(MK) 하의 암호화로부터 수출자 키(W) 하의 암호화로 데이터 블록(eMK(eW(D)))을 변형한다. 이는 마스터 키로부터의 재 암호화(RFMK : Reencipher From Master Key) 명령을 CF(102)로 하고, 입력 파라미터들로서 암호화된 수출자 키(eMK.exp(W∥W))와 암호화된 데이터(eMK(eW(D))를 특정함으로써 이루어진다. 이 명령과 입력 파라미터들을 수신하자마자, CF(102)는 명백한 형태로 키(W)를 발생하기 위하여 수출자 키(W)를 해독하고, 값(eW(D))을 다시 발생하기 위하여 마스터 키(MK)를 사용하여 eMK(eW(D))를 해독하고, 두 번 암호화된 값(eW(eW(D))=D)을 발생하기 위하여 수출자 키(W) 하에 값(eW(D))을 재 암호화하여, CFAP(106)으로 리턴한다.
단계 1206에서 명백한 값(D)을 얻으면, CFAP(106)는 그 결과(D)를 현재 체이닝 벡터와 XOR하여 해독화된 데이터(Xi)를 유도한다(단계1208). 도 12의 루프를 첫 번째로 통과함에 있어, 체이닝 벡터는 애플리케이션(110)으로부터 수신된 초기 체이닝 벡터(ICV)이다. 후속되는 각각의 통과에 있어, 체이닝 벡터는 이전의 8 바이트의 암호화된 데이터이다.
만일 데이터(Yi)의 남아있는 블록들이 있다면, 절차는 데이터의 각각의 추가적인 블록에 대해 단계 1202로부터, 그러한 모든 블록들이 프로세스될 때까지 반복된다(단계 1210).
각 암호 명령어 후, 상태 코드(3)에 대한 검사가 이루어진다. 명령어로부터의 상태 코드(3)는 필요하다면 DES 데이터 키가 현재 마스터 키(MK) 하에 재 암호화되도록 하며, 재 시도가 지시되면 암호 명령어가 재시도될 것이다.
도 15에 나타낸 구현예에서, 데이터 키(DEK) 하의 암호화를 허약 키(W) 하의 암호화로 입력 값을 변형하기 위하여 단일 CF 명령어, 재 암호화 키(RK)가 사용된다. 이와 달리, 또는 만일 RK 명령어를 이용할 수 없으면, 이러한 재 암호화는 수입자 키(DEK) 하의 값(eDEK(D))을 마스터 키(MK) 하에서 암호화된 값(eMK(D))으로 1차 변형한 다음 마스터 키(MK) 하에서 암호화된 값(eMK(D))을 수출자 키(W) 하의 값(eW(D))으로 변형함으로써 수행될 수도 있다.
도 16을 참조하면, 이는 CFAP(106)가 CF(102)로 마스터 키로의 재 암호화(RTMK : Reencipher To Master Key) 명령을 하고 이어서 마스터 키로부터의 재암화화(RFMK : Reencipher From Master Key) 명령을 함으로써 행해진다. RTMK 명령은 입력 파라미터들로서 암호화된 수입자 키(eMK.imp(DEK∥DEK))와 암호화된 데이터(eDEK(D))를 특정한다. RTMK 명령과 입력 파라미터들을 수신하자마자, CF(102)는 명백한 형태로 키를 발생하기 위하여 수입자 키(DEK)를 해독하고, 명백한 형태로 원래 데이터 블록(D)을 재 발생하기 위하여 입력 데이터 블록(eDEK(D))을 해독하고, 데이터 블록(eMK(D))을 발생하기 위하여 마스터 키(MK) 하에 데이터 블록을 해독화하여, CFAP(106)로 리턴한다. RFMK 명령은 입력 파라미터들로서 CF(102)로 방금 리턴된 재 암호화된 데이터(eMK(D))와 암호화된 수출자 키(eMK.exp(W∥W))를 특정한다. RFMK 명령과 입력 파라미터들을 수신하자마자, CF(102)는 명백한 형태로 키를 발생하기 위하여 수출자 키(W)를 해독하고, 원래 데이터 블록(D)을 명백한 형태로 재 발생하기 위하여 입력 데이터 블록(eMK(D))을 해독하고, 데이터 블록(eW(D))을 발생하기 위하여 수출자 키(W) 하에 데이터 블록을 재 암호화하여, CFAP(106)으로 리턴한다.
상기한 바와 같은 해독 구현예들에서, 암호화된 데이터는 허약 키(W) 하에서 재 암호화되고 그 결과는 다시 동일한 허약 키(W) 하에 암호화된다. 준허약 키의 쌍(W, W')중 하나의 키(W) 하에 암호화된 데이터를 재 암호화한 다음 그 결과를 그 쌍의 나머지 하나의 허약 키 하에 암호화함으로써 유사한 결과를 얻을 수 있음을 이 분야의 숙련자들은 알 수 있을 것이다.
도 15에 나타낸 구현예에서, 허약 키(W) 하의 제2 암호화는 마스터 키(MK) 하에 암호화를 한 다음, 그 암호화를 수출자 키로서 키(W) 하의 암호화로 변형함으로서 수행된다. 한편, W 하의 제2 암호화는 상기한 암호화 섹션에서 설명한 바와 같은 MAC 키로서 W를 사용하여, eW(D) 상에 MAC를 발생시킴으로써 수행될 수도 있다. 역으로, 데이터 암호화는 상기한 바와 같은 MAC 절차를 사용하기보다는, EMK와 RFMK 명령을 연결함으로써 수행될 수도 있다.
데이터 키(DEK) 하의 암호화로부터 허약 키(W) 하의 암호화로의 변형은 또한 재 암호화 핀 블록(RPB : Reencipher Pin Block) 명령을 사용하여 수행될 수도 있는데, 이는 입력 PIN 키 하의 암호화로부터 출력 PIN 키 하에 암호화로 64-비트 개인용 식별 번호(PIN) 블록을 변형한다는 점을 제외하고는 RK 명령과 유사하다. 이 명령은 도 18에 나타낸 바와 같이 DEK∥DEK를 암호화된 입력 PIN 키(eMK.ipk(DEK∥DEK))로 변형하고, W∥W를 도 19에 나타낸 바와 같이 암호화된 출력 PIN 키(eMK.opk(W∥W))로 변형하고, 도 17에 나타낸 바와 같이 재 암호화된 PIN 블록(eW(D))을 얻기 위하여 암호화된 PIN 블록으로서 eDEK(D)과 함께 RPB 명령을 함으로써 사용될 수 있다.
다양한 변형예들이 이 분야의 숙련자들에게 자명할 것이다. 따라서, 상기한 설명들은 DES 암호 및 해독을 가정하고 있으나, 유사한 관련 성질들(예를 들어 허약 또는 준허약 키들의 세트의 파생적인 MAC 기능)을 갖는 다른 암호 시스템이 대신 사용될 수 있다. 마찬가지로, 본 설명에서는 암호 및 해독의 CBC 모드를 가정하였으나, ECB 모드와 같은 다른 모드들이 대신 사용될 수 있을 것이다. 그 밖의 변형예들 및 수정예들이 이 분야의 숙련자들에게는 자명할 것이다.
상기한 바와 같이, 본 발명에 따르면 수출 규제 또는 그 밖의 이유로 변환 및 암호화 기능들에 의해 에뮬레이트되는 해독 기능을 이용할 수 없는 암호 시스템에서 유용하게 사용될 수 있다는 이점을 가진다.

Claims (22)

  1. 데이터의 블록들을 변형하기 위한 암호 기능들을 제공하는 암호 설비를 갖는 암호 시스템에서-여기서, 상기 암호 기능들은 소정 키 하에 블록을 암호화하기 위한 암호화 기능과 제1 키 하에 암호화된 블록을 제2 키 하에 암호화된 상기 블록으로 변형하기 위한 변형 기능을 포함하고, 상기 암호 기능들은 쌍을 이루는 키들 하에서 블록을 연속적으로 암호화하면 명백한 형태로 상기 블록을 재 발생하는 성질을 갖는 적어도 하나의 키 쌍을 가짐-, 소정 키 하에 암호화된 입력 블록을 해독하는 방법에 있어서,
    상기 변형 기능을 사용하여 상기 키 쌍중 하나의 키 하에 암호화된 중간 블록으로 상기 입력 블록을 변형하는 단계와,
    상기 키 쌍의 키들 하에서 연속적으로 암호화된 출력 블록을 발생하기 위하여 상기 암호화 기능을 사용하여 상기 키 쌍의 다른 하나의 키 하에서 상기 중간 블록을 다시 암호화하여, 상기 입력 블록을 명백한 형태로 재 발생하는 단계
    를 포함하는
    암호화된 입력 블록을 해독하는 방법.
  2. 제1항에 있어서,
    상기 키 쌍의 키들은 동일한
    암호화된 입력 블록을 해독하는 방법.
  3. 제1항에 있어서,
    상기 키 쌍들의 키들이 서로 다른
    암호화된 입력 블록을 해독하는 방법.
  4. 제1항에 있어서,
    상기 변형 기능은 제1 키-암호화 키 하에서 암호화된 키를 제2 키-암호화 키 하에 암호화된 상기 키로 변형하고,
    상기 변형하는 단계는,
    상기 제1 키-암호화 키로서 상기 소정 키를 설정하는 단계와,
    상기 제2 키-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 단계와,
    제1 키-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 키-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, 키로서, 상기 입력 블록을 변형하는 단계
    를 포함하는
    암호화된 입력 블록을 해독하는 방법.
  5. 제4항에 있어서,
    상기 제1 키-암호화 키는 수입자 키이고 상기 제2 키-암호화 키는 수출자 키인
    암호화된 입력 블록을 해독하는 방법.
  6. 제1항에 있어서,
    상기 변형 기능은 제1 PIN-암호화 키 하에서 암호화된 PIN 블록을 제2 PIN-암호화 키 하에서 암호화된 상기 PIN 블록으로 변형하고,
    상기 변형하는 단계는
    상기 제1 PIN-암호화 키로서 상기 소정 키를 설정하는 단계와,
    상기 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 단계와,
    제1 PIN-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, PIN 블록으로서, 상기 입력 블록을 변형하는 단계
    를 포함하는
    암호화된 입력 블록을 해독하는 방법.
  7. 제6항에 있어서,
    상기 제1 키-암호화 키는 입력 PIN 키이고 상기 제2 키-암호화 키는 출력 PIN 키인
    암호화된 입력 블록을 해독하는 방법.
  8. 제1항에 있어서,
    상기 변형 기능은 상기 제1 키 하의 암호화로부터 마스터 키 하의 암호화로 상기 블록을 변형하기 위한 제1 변형 기능과 상기 마스터 키 하의 암호화로부터 상기 제2 키 하의 암호화로 상기 블록을 변형하기 위한 제2 변형 기능을 포함하고,
    상기 변형하는 단계는,
    상기 제1 변형 기능을 사용하여 상기 소정 키 하의 암호화로부터 상기 마스터 키 하의 암호화로 상기 블록을 변형하는 단계와,
    상기 제2 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 하나 하의 암호화로 상기 블록을 변형하는 단계
    를 포함하는
    암호화된 입력 블록을 해독하는 방법.
  9. 제1항에 있어서,
    상기 암호화 기능은 마스터 키 하에서 상기 블록을 암호화하기 위한 마스터 키 암호화 기능과 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 블록을 변형하기 위한 마스터 키 변형 기능을 포함하고,
    상기 암호화하는 단계는,
    상기 마스터 키 암호화 기능을 사용하여 상기 마스터 키 하에서 상기 중간 블록을 암호화하는 단계와,
    상기 마스터 키 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 중간 블록을 변형하는 단계
    를 포함하는
    암호화된 입력 블록을 해독하는 방법.
  10. 제1항에 있어서,
    상기 암호화 기능은 메시지 블록 상에 메시지 인증 코드를 발생하기 위한 인증 기능을 포함하고,
    상기 암호화하는 단계는 상기 메시지 인증 기능을 사용하여 상기 입력 블록 상에 메시지 인증 코드를 발생하는
    암호화된 입력 블록을 해독하는 방법.
  11. 데이터의 블록들을 변형하기 위한 암호 기능들을 제공하는 암호 설비를 갖는 암호 시스템에서-여기서, 상기 암호 기능들은 소정 키 하에 블록을 암호화하기 위한 암호화 기능과 제1 키 하에 암호화된 블록을 제2 키 하에 암호화된 상기 블록으로 변형하기 위한 변형 기능을 포함하고, 상기 암호 기능들은 쌍을 이루는 키들 하에서 블록을 연속적으로 암호화하면 명백한 형태로 상기 블록을 재 발생하는 성질을 갖는 적어도 하나의 키 쌍을 가짐-, 소정 키 하에 암호화된 입력 블록을 해독하기 위한 장치에 있어서,
    상기 변형 기능을 사용하여 상기 키 쌍중 하나의 키 하에 암호화된 중간 블록으로 상기 입력 블록을 변형하는 수단과,
    상기 키 쌍의 키들 하에서 연속적으로 암호화된 출력 블록을 발생하기 위하여 상기 암호화 기능을 사용하여 상기 키 쌍의 다른 하나의 키 하에서 상기 중간 블록을 다시 암호화하여, 상기 입력 블록을 명백한 형태로 재 발생하는 수단
    을 포함하는
    암호화된 입력 블록을 해독하는 장치.
  12. 제11항에 있어서,
    상기 변형 기능은 제1 키-암호화 키 하에서 암호화된 키를 제2 키-암호화 키 하에 암호화된 상기 키로 변형하고,
    상기 변형하는 수단은,
    상기 제1 키-암호화 키로서 상기 소정 키를 설정하는 수단과,
    상기 제2 키-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 수단과,
    제1 키-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 키-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, 키로서, 상기 입력 블록을 변형하는 수단
    을 포함하는
    암호화된 입력 블록을 해독하는 장치.
  13. 제11항에 있어서,
    상기 변형 기능은 제1 PIN-암호화 키 하에서 암호화된 PIN 블록을 제2 PIN-암호화 키 하에서 암호화된 상기 PIN 블록으로 변형하고,
    상기 변형하는 수단은,
    상기 제1 PIN-암호화 키로서 상기 소정 키를 설정하는 수단과,
    상기 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 수단과,
    제1 PIN-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, PIN 블록으로서, 상기 입력 블록을 변형하는 수단
    을 포함하는
    암호화된 입력 블록을 해독하는 장치.
  14. 제11항에 있어서,
    상기 변형 기능은 상기 제1 키 하의 암호화로부터 마스터 키 하의 암호화로 상기 블록을 변형하기 위한 제1 변형 기능과 상기 마스터 키 하의 암호화로부터 상기 제2 키 하의 암호화로 상기 블록을 변형하기 위한 제2 변형 기능을 포함하고,
    상기 변형하는 수단은,
    상기 제1 변형 기능을 사용하여 상기 소정 키 하의 암호화로부터 상기 마스터 키 하의 암호화로 상기 블록을 변형하는 수단과,
    상기 제2 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 하나 하의 암호화로 상기 블록을 변형하는 수단
    을 포함하는
    암호화된 입력 블록을 해독하는 장치.
  15. 제11항에 있어서,
    상기 암호화 기능은 마스터 키 하에서 상기 블록을 암호화하기 위한 마스터 키 암호화 기능과 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 블록을 변형하기 위한 마스터 키 변형 기능을 포함하고,
    상기 암호화하는 수단은,
    상기 마스터 키 암호화 기능을 사용하여 상기 마스터 키 하에서 상기 중간 블록을 암호화하는 수단과,
    상기 마스터 키 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 중간 블록을 변형하는 수단
    을 포함하는
    암호화된 입력 블록을 해독하는 장치.
  16. 제11항에 있어서,
    상기 암호화 기능은 메시지 블록 상에 메시지 인증 코드를 발생하기 위한 인증 기능을 포함하고,
    상기 암호화하는 수단은 상기 메시지 인증 기능을 사용하여 상기 입력 블록 상에 메시지 인증 코드를 발생하는 수단을 포함하는
    암호화된 입력 블록을 해독하는 방법.
  17. 데이터의 블록들을 변형하기 위한 암호 기능들을 제공하는 암호 설비를 갖는 암호 시스템에서-여기서, 상기 암호 기능들은 소정 키 하에 블록을 암호화하기 위한 암호화 기능과 제1 키 하에 암호화된 블록을 제2 키 하에 암호화된 상기 블록으로 변형하기 위한 변형 기능을 포함하고, 상기 암호 기능들은 쌍을 이루는 키들 하에서 블록을 연속적으로 암호화하면 명백한 형태로 상기 블록을 재 발생하는 성질을 갖는 적어도 하나의 키 쌍을 가짐-, 소정 키 하에 암호화된 입력 블록을 해독하기 위한 방법을 수행하기 위하여 기계(machine)에 의해서 실행가능한 명령어들의 프로그램을 유형으로 구체화한, 머신에 의해서 판독가능한 프로그램 저장 장치에 있어서, 상기 방법이,
    상기 변형 기능을 사용하여 상기 키 쌍중 하나의 키 하에 암호화된 중간 블록으로 상기 입력 블록을 변형하는 단계와,
    상기 키 쌍의 키들 하에서 연속적으로 암호화된 출력 블록을 발생하기 위하여 상기 암호화 기능을 사용하여 상기 키 쌍의 다른 하나의 키 하에서 상기 중간 블록을 다시 암호화하여, 상기 입력 블록을 명백한 형태로 재 발생하는 단계
    을 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
  18. 제17항에 있어서,
    상기 변형 기능은 제1 키-암호화 키 하에서 암호화된 키를 제2 키-암호화 키 하에 암호화된 상기 키로 변형하고,
    상기 변형하는 단계는,
    상기 제1 키-암호화 키로서 상기 소정 키를 설정하는 단계와,
    상기 제2 키-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 단계와,
    제1 키-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 키-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, 키로서, 상기 입력 블록을 변형하는 단계
    를 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
  19. 제17항에 있어서,
    상기 변형 기능은 제1 PIN-암호화 키 하에서 암호화된 PIN 블록을 제2 PIN-암호화 키 하에서 암호화된 상기 PIN 블록으로 변형하고,
    상기 변형하는 단계는,
    상기 제1 PIN-암호화 키로서 상기 소정 키를 설정하는 단계와,
    상기 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나를 설정하는 단계와,
    제1 PIN-암호화 키로서 상기 소정 키 하의 암호화로부터 제2 PIN-암호화 키로서 상기 키 쌍의 상기 하나 하의 암호화로, PIN 블록으로서, 상기 입력 블록을 변형하는 단계
    를 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
  20. 제17항에 있어서,
    상기 변형 기능은 상기 제1 키 하의 암호화로부터 마스터 키 하의 암호화로 상기 블록을 변형하기 위한 제1 변형 기능과 상기 마스터 키 하의 암호화로부터 상기 제2 키 하의 암호화로 상기 블록을 변형하기 위한 제2 변형 기능을 포함하고,
    상기 변형하는 단계는,
    상기 제1 변형 기능을 사용하여 상기 소정 키 하의 암호화로부터 상기 마스터 키 하의 암호화로 상기 블록을 변형하는 단계와,
    상기 제2 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 하나 하의 암호화로 상기 블록을 변형하는 단계
    를 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
  21. 제17항에 있어서,
    상기 암호화 기능은 마스터 키 하에서 상기 블록을 암호화하기 위한 마스터 키 암호화 기능과 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 블록을 변형하기 위한 마스터 키 변형 기능을 포함하고,
    상기 암호화하는 단계는,
    상기 마스터 키 암호화 기능을 사용하여 상기 마스터 키 하에서 상기 중간 블록을 암호화하는 단계와,
    상기 마스터 키 변형 기능을 사용하여 상기 마스터 키 하의 암호화로부터 상기 키 쌍의 상기 다른 것 하의 암호화로 상기 중간 블록을 변형하는 단계
    를 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
  22. 제17항에 있어서,
    상기 암호화 기능은 메시지 블록 상에 메시지 인증 코드를 발생하기 위한 인증 기능을 포함하고,
    상기 암호화하는 단계는 상기 메시지 인증 기능을 사용하여 상기 입력 블록 상에 메시지 인증 코드를 발생하는 단계를 포함하는
    기계에 의해 판독가능한 프로그램 저장 장치.
KR1019980055014A 1997-12-16 1998-12-15 특별한암호화기능들을사용하여데이터의강력한암호화또는해독화를수행하는방법및장치 KR100308322B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/991,916 US6333983B1 (en) 1997-12-16 1997-12-16 Method and apparatus for performing strong encryption or decryption data using special encryption functions
US08/991,916 1997-12-16
US8/991,916 1997-12-16

Publications (2)

Publication Number Publication Date
KR19990066846A true KR19990066846A (ko) 1999-08-16
KR100308322B1 KR100308322B1 (ko) 2001-11-02

Family

ID=25537724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980055014A KR100308322B1 (ko) 1997-12-16 1998-12-15 특별한암호화기능들을사용하여데이터의강력한암호화또는해독화를수행하는방법및장치

Country Status (2)

Country Link
US (1) US6333983B1 (ko)
KR (1) KR100308322B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100978224B1 (ko) * 2003-08-25 2010-08-27 소니 일렉트로닉스 인코포레이티드 반복적인 암호화 블록을 위한 장치 및 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0984630B1 (en) * 1998-09-01 2006-08-23 Irdeto Access B.V. Data communication system
JP4763866B2 (ja) * 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
US7095540B1 (en) * 1999-01-29 2006-08-22 The University Of Connecticut Optical security system using fourier plane encoding
US7450717B1 (en) * 1999-06-08 2008-11-11 General Instruments Corporation Self authentication ciphertext chaining
US6907127B1 (en) * 1999-06-18 2005-06-14 Digital Video Express, L.P. Hierarchical key management encoding and decoding
WO2001056221A2 (en) * 2000-01-31 2001-08-02 Vdg Inc. Block encryption method and schemes for data confidentiality and integrity protection
US6952477B1 (en) * 2000-07-03 2005-10-04 International Business Machines Corporation Fault intolerant cipher chaining
JP2002202719A (ja) * 2000-11-06 2002-07-19 Sony Corp 暗号化装置及び方法、復号装置及び方法、並びに記憶媒体
US20020106079A1 (en) * 2000-12-19 2002-08-08 Mauro Anthony Patrick Method and apparatus for altering the strength of an encryption system
US7353380B2 (en) * 2001-02-12 2008-04-01 Aventail, Llc, A Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
US7383329B2 (en) 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7360075B2 (en) 2001-02-12 2008-04-15 Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols
JP4690600B2 (ja) * 2001-08-23 2011-06-01 富士通株式会社 データ保護方法
US7376826B2 (en) * 2002-05-31 2008-05-20 Broadcom Corporation Methods and apparatus for performing encryption and authentication
US7660421B2 (en) * 2002-06-28 2010-02-09 Hewlett-Packard Development Company, L.P. Method and system for secure storage, transmission and control of cryptographic keys
JP2004054834A (ja) 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US7500098B2 (en) * 2004-03-19 2009-03-03 Nokia Corporation Secure mode controlled memory
US20060126827A1 (en) * 2004-12-14 2006-06-15 Dan P. Milleville Encryption methods and apparatus
US7925895B2 (en) * 2005-02-22 2011-04-12 Kyocera Mita Corporation Data management apparatus, data management method, and storage medium
WO2008143531A1 (en) * 2007-05-24 2008-11-27 Turner Technologies Limited Messaging system
US8681996B2 (en) * 2007-07-31 2014-03-25 Lsi Corporation Asymmetric key wrapping using a symmetric cipher
EP2196937A1 (en) * 2008-12-15 2010-06-16 Thomson Licensing Methods and devices for instruction level software encryption
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
US8356185B2 (en) * 2009-10-08 2013-01-15 Oracle America, Inc. Apparatus and method for local operand bypassing for cryptographic instructions
JP5601382B2 (ja) * 2011-02-09 2014-10-08 富士通株式会社 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム
US8737604B2 (en) 2011-05-09 2014-05-27 Advanced Micro Devices, Inc. Processor with architecture implementing the advanced encryption standard
US8879731B2 (en) * 2011-12-02 2014-11-04 Adobe Systems Incorporated Binding of protected video content to video player with block cipher hash
US8903088B2 (en) 2011-12-02 2014-12-02 Adobe Systems Incorporated Binding of protected video content to video player with encryption key
US9369274B2 (en) 2012-07-06 2016-06-14 International Business Machines Corporation Cipher text translation
US9064318B2 (en) 2012-10-25 2015-06-23 Adobe Systems Incorporated Image matting and alpha value techniques
US9355649B2 (en) 2012-11-13 2016-05-31 Adobe Systems Incorporated Sound alignment using timing information
US9201580B2 (en) 2012-11-13 2015-12-01 Adobe Systems Incorporated Sound alignment user interface
US10638221B2 (en) 2012-11-13 2020-04-28 Adobe Inc. Time interval sound alignment
US9076205B2 (en) 2012-11-19 2015-07-07 Adobe Systems Incorporated Edge direction and curve based image de-blurring
US8897588B2 (en) 2012-11-20 2014-11-25 Adobe Systems Incorporated Data-driven edge-based image de-blurring
US10249321B2 (en) 2012-11-20 2019-04-02 Adobe Inc. Sound rate modification
US9451304B2 (en) 2012-11-29 2016-09-20 Adobe Systems Incorporated Sound feature priority alignment
US10455219B2 (en) 2012-11-30 2019-10-22 Adobe Inc. Stereo correspondence and depth sensors
US9135710B2 (en) 2012-11-30 2015-09-15 Adobe Systems Incorporated Depth map stereo correspondence techniques
US10249052B2 (en) 2012-12-19 2019-04-02 Adobe Systems Incorporated Stereo correspondence model fitting
US9208547B2 (en) 2012-12-19 2015-12-08 Adobe Systems Incorporated Stereo correspondence smoothness tool
US9214026B2 (en) 2012-12-20 2015-12-15 Adobe Systems Incorporated Belief propagation and affinity measures
KR102154187B1 (ko) * 2014-08-07 2020-09-09 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
SG10201906806XA (en) * 2019-07-23 2021-02-25 Mastercard International Inc Methods and computing devices for auto-submission of user authentication credential
CN112752122B (zh) * 2020-12-30 2022-11-11 厦门市美亚柏科信息股份有限公司 智能摄像头的视频加密传输方法及计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4227253A (en) 1977-12-05 1980-10-07 International Business Machines Corporation Cryptographic communication security for multiple domain networks
US4203166A (en) 1977-12-05 1980-05-13 International Business Machines Corporation Cryptographic file security for multiple domain networks
US4218738A (en) 1978-05-05 1980-08-19 International Business Machines Corporation Method for authenticating the identity of a user of an information system
DE2831191A1 (de) 1978-07-15 1980-01-24 Bbc Brown Boveri & Cie Elektrochemische speicherzelle
US4238859A (en) 1979-06-28 1980-12-16 Majestic Sales, Inc. Spill-over spa
GB2146815A (en) 1983-09-17 1985-04-24 Ibm Electronic fund transfer systems
GB2146814A (en) 1983-09-17 1985-04-24 Ibm Electronic fund transfer systems
US4850017A (en) 1987-05-29 1989-07-18 International Business Machines Corp. Controlled use of cryptographic keys via generating station established control values
US4941176A (en) 1988-08-11 1990-07-10 International Business Machines Corporation Secure management of keys using control vectors
US4924514A (en) 1988-08-26 1990-05-08 International Business Machines Corporation Personal identification number processing using control vectors
US4924515A (en) 1988-08-29 1990-05-08 International Business Machines Coprporation Secure management of keys using extended control vectors
US5103478A (en) 1989-04-27 1992-04-07 International Business Machines Corporation Secure management of keys using control vectors with multi-path checking
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US4993069A (en) 1989-11-29 1991-02-12 International Business Machines Corporation Secure key management using control vector translation
JP3080382B2 (ja) 1990-02-21 2000-08-28 株式会社日立製作所 暗号通信システム
US5007089A (en) 1990-04-09 1991-04-09 International Business Machines Corporation Secure key management using programable control vector checking
JP2689998B2 (ja) 1990-08-22 1997-12-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 暗号動作を行う装置
US5177791A (en) 1991-08-30 1993-01-05 International Business Machines Corp. Secure translation of usage-control values for cryptographic keys
US5200999A (en) 1991-09-27 1993-04-06 International Business Machines Corporation Public key cryptosystem key management based on control vectors
US5323464A (en) * 1992-10-16 1994-06-21 International Business Machines Corporation Commercial data masking

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100978224B1 (ko) * 2003-08-25 2010-08-27 소니 일렉트로닉스 인코포레이티드 반복적인 암호화 블록을 위한 장치 및 방법

Also Published As

Publication number Publication date
US6333983B1 (en) 2001-12-25
KR100308322B1 (ko) 2001-11-02

Similar Documents

Publication Publication Date Title
KR100308322B1 (ko) 특별한암호화기능들을사용하여데이터의강력한암호화또는해독화를수행하는방법및장치
US4924515A (en) Secure management of keys using extended control vectors
US6292896B1 (en) Method and apparatus for entity authentication and session key generation
US5200999A (en) Public key cryptosystem key management based on control vectors
US9461817B2 (en) Method and system for encrypting JavaScript object notation (JSON) messages
US5432849A (en) Secure cryptographic operations using control vectors generated inside a cryptographic facility
US5673319A (en) Block cipher mode of operation for secure, length-preserving encryption
EP0529261B1 (en) A hybrid public key algorithm/data encryption algorithm key distribution method based on control vectors
JP2575558B2 (ja) 公開キー使用制御方法および装置
US20120054491A1 (en) Re-authentication in client-server communications
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
US5764766A (en) System and method for generation of one-time encryption keys for data communications and a computer program product for implementing the same
JP2005505069A (ja) メモリ暗号化
US8644513B2 (en) Database processing on externally encrypted data
JP2002500388A (ja) 保護された通信に適当な初期化ベクトルを導出するシステムおよび方法
JP2002502524A (ja) オブジェクトに署名し、封印する方法とその装置
US20120185699A1 (en) Space-efficient encryption with multi-block binding
CN111010266A (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
CN112947967B (zh) 软件更新方法、区块链应用商店及软件上传终端
WO2014109059A1 (ja) データの暗号化記憶システム及び方法
EP0354770B1 (en) Secure management of keys using extended control vectors
CN112149166A (zh) 非常规密码保护方法及银行智能机器
US6801625B1 (en) Apparatus and method for stripping parity bits from an input stream
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
CN116527236B (zh) 一种加密卡的信息变更验证方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060725

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee