KR20050023447A - 데이터 처리 시스템을 위한 효율적인 암호화 및 인증 - Google Patents

데이터 처리 시스템을 위한 효율적인 암호화 및 인증 Download PDF

Info

Publication number
KR20050023447A
KR20050023447A KR10-2005-7001109A KR20057001109A KR20050023447A KR 20050023447 A KR20050023447 A KR 20050023447A KR 20057001109 A KR20057001109 A KR 20057001109A KR 20050023447 A KR20050023447 A KR 20050023447A
Authority
KR
South Korea
Prior art keywords
block
blocks
authentication
ciphertext
plaintext
Prior art date
Application number
KR10-2005-7001109A
Other languages
English (en)
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 퀄컴 인코포레이티드
Priority to KR10-2005-7001109A priority Critical patent/KR20050023447A/ko
Publication of KR20050023447A publication Critical patent/KR20050023447A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

일부 데이터가 암호화 상태로 전송되고, 일부 데이터가 비암호화 상태로 전송되지만, 전체 데이터는 인증되는, 암호화 및 인증 방법과 장치가 제공된다. 데이터 블록이 평문 위치 (442A, 442B, 및 442C) 또는 암호문 위치 (444A, 444B, 444C, 및 444D) 를 차지하는지 여부에 따라, 암호화 블록들의 상이한 공식화 과정들이 이용된다. 그 후, 인증 블록들은, 인증 태그를 형성하기 위해 암호화되는 검사 합 값을 형성하기 위해 결합된다.

Description

데이터 처리 시스템을 위한 효율적인 암호화 및 인증{EFFICIENT ENCRYPTION AND AUTHENTICATION FOR DATA PROCESSING SYSTEMS}
배경 기술
기술 분야
본 발명은 데이터 처리 시스템 분야에 관한 것이다. 상세하게는 데이터 처리 시스템의 보안성 (security) 을 증진시키는 것에 관한 것이다.
배경 기술
예를 들어, 전자 상거래, 통신, 및 방송과 같은 다수의 다른 분야에서 보안성은 주요한 관심사이다. 보안성 측정은 데이터 처리 시스템 및 정보 시스템에서 요구되는 가측성, 공정성, 정확성, 비밀성, 동작성, 및 이 분야에서 이용되는 기타 기준들에 기여한다. 이러한 보안성을 제공하는 암호화 방법들은 일반적으로 두 가지 목적인 암호화 및 인증에 따라 분류될 수 있다. 암호화는 권한이 부여되지 아니한 자에 의해 해독할 수 없는 데이터를 제공하는 기술이다. 인증은 데이터의 무결성을 검증하는 기술이다. 데이터의 무결성을 검증하는 것은 데이터의 제작자 아이덴티티 (author identity) 를 검증하는 것, 및/또는 데이터가 변경되었는지 여부를 검증하는 것을 포함한다.
암호화 시스템은 종종 크립토시스템 (cryptosystems) 이라고 불리며, 대칭적 또는 비대칭적인 특성을 가진다. 대칭 암호화 시스템은 정보를 암호화하기 위해서 비밀 키를 이용하고 그 암호화된 정보를 복호화하기 위해서 동일한 비밀 키를 이용한다. 공개 키 크립토시스템과 같은 비대칭 암호화 시스템은 정보를 암호화하기 위해서 제 1 키를 사용하고 암호화된 정보를 복호화하기 위해서 상이한 키를 이용한다.
다수의 대칭 크립토시스템에서, 1 개의 키는 암호화 기능에 이용되며, 별도의 키는 인증 기능에 이용된다. 따라서, 대칭 크립토시스템을 이용하는 데이터 처리 시스템에서, 암호화 및 인증은 두 개의 별도의 엔티티 (entity) 로 수행된다. 인증은 대략적으로 암호화에 필요한 만큼 많은 프로세싱 능력을 필요로 하기 때문에 전체 프로세싱 양은 데이터를 암호화하기 위해 필요한 프로세싱 양의 두 배에 상당한다. 예를 들어, 셀룰러 전화, 개인용 디지털 보조기 (personal digital assistant), 또는 다른 휴대용 통신 장치와 같이 능력이 제한되거나 하드웨어가 제한된 환경에서 동작하는 데이터 처리 시스템에서, 장치에 대한 계산의 부하를 감소시키기 위해서 암호화 및 인증을 단일 엔티티로 수행하는 크립토시스템을 갖는 것이 바람직하다.
스프링거 베를라그 출판사에서 2001 년에 출판된, LNCS 의 제 2045 권에 실린, 유로크립트 2001 의 '암호학의 발전' 논문집 중 차란지트 쥬틀라의 논문 "올모스트 프리 메시지 무결성을 갖는 암호화 모드" (Encryption Modes with Almost Free Message Integrity", written by Charanjit Jutla, Advances in Cryptology, EUROCRYPT 2001, Lecture notes in Computer Science, vol. 2045, Springer-Verlag, 2001) 에서, 암호화만 할 때에 비하여 거의 차이가 없는 정도의 프로세싱을 요구하는 방식으로 메시지를 암호화하고 암호화된 메시지를 인증할 수 있는 크립토시스템이 제공된다. 즉, 암호화 및 인증이 단일 엔티티를 이용하여 수행될 수 있다. 따라서, 보안성을 제공하기 위해 필요한 프로세싱 자원의 양이 감소된다.
쥬틀라 크립토시스템은 전송될 모든 데이터를 암호화하도록 설계된다. 그러나, 메시지의 모든 데이터가 암호화되어야 한다는 요구 조건은 특정 어플리케이션에서는 바람직하지 않다. 예를 들어, 아이피세크 (IPSec) 와 같은 통신 프로토콜에서, 모든 데이터를 암호화하는 것은 효율적이지 않다. 데이터의 헤더 부분은 어드레싱 목적을 위해서 비암호화 상태로 송신되어야 한다. IPSec 의 기반은 그 명칭이 "인터넷 프로토콜을 위한 보안성 구조 (Security Architecture for the Internet Protocol)" 인 RFC 1825, 그 명칭이 "아이피 인증 헤더 (IP Authentication Header)" 인 RFC 1826, 및 그 명칭이 "아이피 이에스피 (IP Encapsulating Security Payload (ESP))" 인 RFC 1827 에 기재되어 있으며, 모두 1995 년 8 월에 알.앳트킨슨 (R.Atkinson) 에 의해 제출된 것이다.
따라서, 현재 메시지의 모든 데이터 비트들이 암호화될 필요가 없는 데이터의 암호화 및 인증을 위한, 보안성 있고 효율적인 시스템이 요구되고 있다.
개요
이하, 전술한 요구를 해결하기 위한 방법 및 장치가 제공된다. 상세하게는, 데이터 메시지의 일부분이 평문 (plaintext) 으로 전송되고, 데이터 메시지의 일 부분이 암호문 (ciphertext) 으로 전송되는 것을 허용하며, 데이터 메시지의 평문 부분 및 암호문 부분 모두를 검증하기 위한 단일 인증 태그 (tag) 를 이용하는 방법 및 장치가 제공된다.
일 양태에서, 단일 엔티티로 데이터를 암호화 및 인증하는 일 방법은, 암호 블록 크기에 따라 크기가 각각 설정된 복수의 평문 블록으로, 데이터를 정렬시키는 단계; 적어도 하나의 암호문 블록이 대응되는 평문 블록과 동일하도록, 적어도 하나의 클리어텍스트 위치를 특정하는 단계; 넌스 값 (nonce value) 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계; 복수의 중간 암호문 블록을 결정하는 단계로서, 제 1 중간 암호문 블록은 상기 넌스 값의 암호화에 대응되고, 나머지 중간 암호문들은, 클리어텍스트 위치에 의해 특정되는 상기 복수의 평문 블록 각각에 대해서는, 상기 평문 블록을 대응되는 잡음 블록과 결합하는 단계, 및 클리어텍스트 위치에 의해 특정되지 않은 상기 복수의 평문 블록 각각에 대해서는, 평문 블록 및 선행의 중간 암호문 블록을 이용하여 중간 평문 블록들을 형성한 다음 제 2 키를 이용하여 중간 평문 블록을 암호화하는 단계에 의해 결정되는, 단계; 복수의 암호문 블록을 결정하는 단계로서, 상기 복수의 암호문 블록은, 상기 제 1 암호문 블록을 상기 제 1 중간 암호문 블록과 동일하게 설정하는 단계, 클리어텍스트 위치에 의해 특정된 상기 암호문 블록들 각각을 대응되는 평문 블록과 동일하게 설정하는 단계, 및 대응되는 중간 암호문 블록을 대응되는 잡음 블록과 결합하여 나머지 암호문 블록들 각각을 결정하는 단계에 의하여, 결정되는, 단계; 복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록은, 만약 인증 블록이 클리어텍스트 위치에 의해 특정되지 않은 평문 블록과 연관되면, 상기 인증 블록을 상기 평문 블록과 동일하게 설정하는 단계, 및 만약 인증 블록이 클리어텍스트 위치에 의해 특정된 평문 블록과 연관되면, 연관된 중간 암호문 블록을 복호화하고 상기 복호화된 연관된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합하여 상기 인증 블록을 결정하는 단계에 의해 결정되는, 단계; 상기 복수의 인증 블록 모두를 잡음 블록과 결합하고 그 결합된 결과를 암호화함으로써 인증 태그를 계산하는 단계; 및 상기 인증 태그를 상기 복수의 암호문 블록들에 부가하는 단계를 포함한다.
다른 양태에서, 인증 태그를 동반하는 복수의 전송 블록을 복호화 및 검증하는 일 방법은, 넌스 값 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계; 상기 복수의 전송 블록들 각각을 대응되는 잡음 블록과 결합하여 복수의 중간 암호문 블록을 결정하는 단계; 복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록들 각각은 대응되는 중간 암호문 블록을 복호화하고 그 후 상기 복호화된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시킴으로써 형성되는, 단계; 소정의 어떤 클리어텍스트 위치와도 연관되지 않은 상기 복수의 인증 블록들 각각을 평문 블록으로서 설정하는 단계; 소정의 어떤 클리어텍스트와 연관된 상기 복수의 전송 블록들 각각을 평문 블록으로서 설정하는 단계; 및 최종 인증 블록이 다른 모든 인증 블록들의 결합과 동일한지 여부를 결정함으로써 인증 태그를 검증하는 단계를 포함한다.
다른 양태에서, 데이터 전송의 제 1 부분은 평문으로 전송되고, 상기 데이터 전송의 제 2 부분은 암호문으로 전송되며, 상기 모든 데이터 전송이 인증되는, 보안성 있는 데이터 전송을 위한 일 방법은, 클리어텍스트 위치들의 세트를 생성시키는 단계; 상기 데이터 전송의 상기 제 1 부분은 상기 클리어텍스트 위치들 세트에 의해 특정되고, 상기 데이터 전송의 상기 제 2 부분은 상기 클리어텍스트 위치들 세트 중 어느 하나와도 연관되지 않은, 상기 데이터 전송의 상기 제 1 부분 및 상기 데이터 전송의 상기 제 2 부분을 암호문으로 암호화하는 단계; 반복하는 절차를 통해 복수의 중간 암호문 블록을 결정하는 단계; 복수의 인증 블록을 생성시키는 단계로서, 상기 복수의 인증 블록의 제 1 부분 각각은 상기 데이터 전송의 상기 제 1 부분의 대응되는 멤버와 동일하도록 설정되며, 상기 복수의 인증 블록의 제 2 부분 각각은 대응되는 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시키는 것으로부터 유도되는, 단계; 상기 복수의 인증 블록 각각을 잡음 블록과 결합하고 상기 결합된 결과를 암호화함으로써 인증 태그를 생성시키는 단계; 및 상기 평문, 상기 암호문, 및 상기 인증 태그를 전송하는 단계로서, 상기 평문은 클리어텍스트 위치들 세트에 의해 특정되는 상기 데이터 전송의 상기 제 1 부분인, 단계를 포함한다.
다른 양태에서, 데이터 전송의 제 1 부분은 평문으로 전송되고, 상기 데이터 전송의 제 2 부분은 암호문으로 전송되며, 상기 모든 데이터 전송이 인증되는, 보안성 있는 데이터 전송을 위한 일 장치는, 클리어텍스트 위치들의 세트를 생성시키는 수단; 상기 데이터 전송의 상기 제 1 부분은 상기 클리어텍스트 위치들 세트에 의해 특정되고, 상기 데이터 전송의 상기 제 2 부분은 상기 클리어텍스트 위치들 세트 중 어느 하나와도 연관되지 않은 데이터 전송의 상기 제 1 부분 및 상기 데이터 전송의 상기 제 2 부분을 암호문으로 암호화하는 수단; 및 반복하는 절차를 통해 복수의 중간 암호문 블록을 결정하는 수단을 구비한다.
도면의 간단한 설명
도 1A, 1B, 및 1C 는 기본적인 크립토시스템, 대칭적인 암호화 시스템, 및 비대칭적인 암호화 시스템의 블록도이다.
도 2A, 및 2B 는 대칭적인 인증 시스템 및 비대칭적인 인증 시스템의 블록도이다.
도 3 은 무결성 어웨어 씨비씨 모드 (Integrity Aware Cipher-Block Chaining Mode) 의 블록도이다.
도 4A 는 CBC-A 모드의 블록도이다.
도 4B 는 CBC-A 모드를 수행하도록 구성된 하드웨어의 블록도이다.
도 5 는 CBC-A 모드에 의해 암호화 및 인증된 메시지를 복호화 및 검증하는 블록도이다.
도 6A, 6B, 6C, 및 6D 는 인증 태그의 검증을 수행하기 위한 상이한 하드웨어 구성들이다.
상세한 설명
암호화는 권한이 부여되지 아니한 자에 의해 해독될 수 없는 데이터를 제공한다. 본래의 데이터 메시지는 평문 메시지 또는 평문이라 칭한다. 암호화된 메시지는 암호문 (ciphertext) 이라고 불리는데, 암호화는 예를 들어, 블록 암호, 해시 함수, 또는 기타 다른 암호화 함수와 같이 평문을 암호문으로 변환하는 임의의 수단을 포함한다. 복호화는 암호문을 평문으로 변환하는, 즉 본래의 메시지를 복구하기 위한 임의의 수단을 포함한다. 도 1A 는 암호화를 위해 설계된 기본적인 크립토시스템 (10) 을 예시적으로 도시한다. 평문 메시지 (11) 는 암호문 (13) 을 형성하기 위해서 암호화 방식 (12; encryption scheme) 에 의해 작동된다. 그 후, 암호문 (13) 은 통신 채널 (미도시) 을 통해서 전송되고 평문 (15) 을 복구하기 위해서 다른 싸이트 (미도시) 의 복호화 방식 (14) 을 지난다. 평문 및 암호문은 디지털 형태로 제공된 오디오 및 비디오 데이터를 포함하며, 어떤 데이터도 참조할 수 있다.
암호 해독 (cryptanalysis) 은 크립토시스템 보안성을 회피하는 기술이다. 암호 해독을 수행하는 엔티티는 당해 기술분야에서 적 (adversary) 또는 공격자 (attacker) 로 알려져 있다. 암호화 방식의 암호 해독은 권한이 부여되지 않은 메시지를 복호화하도록 지시된다. 인증 방식의 암호 해독은 다른 자로부터 전송되면서 검증될 수 있는, 메시지를 합성하도록 지시된다.
크립토시스템은 비밀에 기초한다. 엔티티들의 그룹은 그룹 외부의 엔티티가 상당히 많은 양의 자원을 소비함이 없이 비밀을 보유할 수 없다면, 비밀을 공유하게 된다. 이 비밀은 엔티티들의 그룹 내의 보안성을 제휴하는데 기여한다고 언급된다.
통상적으로, 비밀은 키 또는 키들의 세트를 포함하는데, 이는 비트 단위로 측정된다. 키가 더 길수록, 키는 더욱 암호 사용하기에 보안적이다. 대칭적인 크립토시스템은 메시지를 암호화 및 메시지를 복호화하기 위해 동일한 키를 사용한다. 대칭적인 암호화 시스템 (20) 은 도 1B 에 예시적으로 도시되어 있는데, 암호화와 복호화는 동일한 개인 키를 이용한다. 평문 (21) 은 암호와 방식 (22) 에 의해 작동된다. 비밀 키 (23) 는 암호화 방식 (22) 에서 암호문 (24) 을 형성하기 위해서 사용된다. 암호문 (24) 은 통신 채널 (미도시) 을 통하여, 복호화 방식 (25) 이 평문 (26) 을 형성하기 위해 동일한 비밀 키 (23) 를 이용하는 다른 사이트로 전송된다.
대조적으로, 비대칭적인 크립토시스템은 메시지를 암호화하기 위해 제 1 키를 사용하고 그것을 복호화하기 위해서 상이한 키를 사용한다. 도 1C 는 공개 키 크립토시스템 (30) 으로 알려진 비대칭적인 암호화 시스템을 예시적으로 도시하고 있는데, 공개 키는 암호화하는데 제공되며 개인 키는 복호화하는데 제공된다. 공개 키는 임의의 메시지를 암호화하기 위해 어떤 자라도 공개 키를 사용할 수 있도록 공표되어 있다. 그러나, 개인에게만 속해있고, 공표되지 아니한 키가, 공개 키로 암호화된 메시지를 복호화하는데 이용 될 수도 있다. 평문 (31) 은, 지정된 자와 연관되고 공표된 것으로부터 얻어진 공개 키 (33) 를 이용하는 암호화 방식 (32) 의 입력이다. 결과로서 생기는 암호문 (34) 은 통신 채널 (미도시) 을 통해서 지정된 자에게 전송된다. 지정된 자는 암호문 (34) 을 평문 (37) 으로 변환하기 위해서 복호화 방식 (35) 의 개인 키 (36) 를 이용한다.
일반적으로, 대칭적인 암호화는 비대칭적인 암호화보다 대단히 빠르다. 그러나, 송신자로부터 수신자로의 비밀 키의 이동은 적에 의한 인터셉트 가능성이 있어 문제가 된다. 한가지 해결 방법은 키들을 보유하기 위해, 오직 권한이 부여된 자와만 키를 공유하는, 신뢰하는 제 3 자를 이용하는 것이다. 이하 소개된 실시형태들은 이 문제점을 언급하지 아니하며, 송신자 및 수신자가 비밀 키를 공유한다고 가정한다.
상기 크립토시스템에 의해 생성되는 암호문의 무결성은 통상적으로 어떤 인증 데이터 (authenticating data) 를 전송된 암호문에 부가함으로써 제공된다. 통상적으로, 인증 데이터는 메시지 컨텐트 및 비밀 무결성 키의 함수로 계산된다.
대칭적인 인증 시스템에서, 인증 데이터는 메시지 인증 코드 (MAC) 로 알려진다. MAC 은 메시지 컨텐트 및 비밀 무결성 키 양자의 함수로 계산되는데, 송신자 및 지정된 목표 양자가 그 비밀 무결성 키를 공유한다. 송신자는 메시지를 전송하고 MAC 을 부가한다. 메시지는 평문 또는 암호문 중 어느 하나가 될 수 있다. 수신자는 메시지로부터 MAC 을 다시 계산하고, 다시 계산된 MAC 이 전송된 MAC 과 일치하는 경우에만 메시지의 무결성을 인정한다. 이론상으로는, 메시지의 송신자만이 그 메시지에 대해 유효한 서명을 생성시킬 수 있으며, 이에 따라 수신자를 위한 메시지를 인증할 수 있다.
대칭적인 인증 시스템 (40) 은 도 2A 에 예시적으로 도시되어 있으며, 승인 (signing) 및 검증 양자는 동일한 개인 키를 이용한다. 메시지 (41) 는, 인증 데이터 (44) 를 형성하기 위해 키 (43) 를 이용하는 인증 방식 (42) 에 의해 작동된다. 그 후, 인증 데이터 (44) 및 메시지 (41) 는 통신 채널 (미도시) 을 통해서 다른 자 (미도시) 에게 전송된다. 메시지 (41) 는, 인증 데이터 (46) 를 결정하기 위해 같은 키 (43) 를 이용하는 검증 방식 (45) 에 의해 작동된다. 수신자에 의해 생성되는 인증 데이터 (46) 는 통신 채널을 통하여 수신되는 인증 데이터 (44) 와 비교된다.
비대칭적인 인증 시스템에서, 인증 데이터는 디지털 서명으로 알려져 있다. 디지털 서명은 메시지 컨텐트 및 송신자의 비밀 무결성 키의 함수로 계산된다. 송신자는 디지털 서명을 수신자에게 전송하고, 수신자는 그 후 송신자의 공개 키를 이용하는 디지털 서명에 대한 검증을 수행한다. 비대칭적인 인증 시스템 (50) 은 도 2B 에서 예시적으로 도시되는데, 승인은 개인 키를 사용하고 검증은 대응되는 공개 키를 사용한다.
어떤 방식에서는, MAC 또는 디지털 서명은 비밀 메시지의 고유의 수학적 설명을 포함하는 '메시지 요약 (message digest)' 으로부터 계산된다. 메시지 요약은 본래의 메시지보다 길이 면에서 짧아서, 메시지 요약의 계산들이 더 쉽게 수행된다. MAC 또는 디지털 서명의 비밀 메시지 또는 메시지 요약에 대한 의존성은, 비밀 메시지 또는 메시지 요약이 일정하게 유지되지 않기 때문에, 인증 데이터가 일정하게 유지되지 않도록 보장한다. 인증 데이터가 다중의 메시지에 걸쳐서 일정하게 유지된다면, 적은, 부정하게, 인증 데이터를 쉽게 전유할 수 있다.
메시지 요약은 종종 암호화 해시 함수를 이용하여 계산된다. 암호화 해시 함수는, 입력의 길이에 상관없이, 임의의 입력으로부터 값 (고정된 비트수를 포함함) 을 계산한다. 암호화 해시 함수의 한 가지 특성은 출력 값이 주어진 경우에, 그 출력 값을 초래하는 입력 값을 결정하는 것이 계산적으로 어렵다는 점이다. 암호화 해시 함수의 예시는, 연방 정보 처리 표준 (Federal Information Processing Standards Publications (FIPS PUBS)) 에서 공표하고, 미국 국립 표준ㆍ기술 연구소 (National Institute of Standards and Technology (NIST)) 에서 발행하는, FIPS PUB 180-1 의 "보안 해시 표준 (Secure Hash Standard)" 에서 설명되는 SHA-1 이다.
블록 암호는 방식에 대한 입력이 항상 고정된 비트 길이가 되도록 하는 대칭적인 암호화 방식이다. 그 길이는 블록 암호의 블록 크기로 알려진다. 블록 암호의 예시는, FIPS PUBS 에서 공표하고, NIST 에서 발행하는, FIPS PUB 46-1 의 "데이터 암호화 기준 (Data Encryption Standard)" 에서 설명되는 DES (Data Encryption Standard) 이다. DES 는 64 비트 블록 크기를 가진다. 블록 암호의 다른 예시는, FIPS PUBS 에서 공표하고, NIST 에서 발행하는, FIPS PUB 197 의 "발전된 암호화 기준 (Advanced Encryption Standard)" 에서 설명되는 AES (Advanced Encryption Standard) 이다. AES 는 128 비트의 블록 크기를 가진다.
블록 암호의 키 길이 (key length) 는 비트 단위의 키의 길이이다. 그러나, 키의 엔트로피는, 가능한 키 값들의 수의 로그 값 (밑수 2) 이다. 또한, 엔트로피 비트 형태로 기록된다. 예를 들어, DES 는 64 비트 키를 가지고 있는데, 이 비트 중 8 개가 키 전송 시에 에러를 검출하기 위한 검사 합 (checksums) 으로서 이용된다. 결과적으로, DES 의 키 엔트로피는 (64-8) = 56 비트이다.
몇몇의 입력 및 대응되는 블록 암호의 출력 쌍들이 주어질 때, 블록 암호 키는, 어떤 입력이 올바른 출력을 초래하는지 결정하기 위해 모든 가능한 키 값들을 시험하는 적에 의해서 유도될 수 있다. 이러한 공격 형태는 철저한 키 검색 (exhaustive key search) 으로 알려져 있다. 이 공격의 계산의 복잡성은 공격에 요구되는 암호화 동작들의 수이다. 따라서, K 비트 키를 추출하려는 공격은 철저한 키 검색에서 블록 암호를 추출하기 위해 대략 2K 의 암호화 연산을 요구한다.
블록 암호는 다른 암호화 엔티티를 만드는데 유용하다. 블록 암호가 이용되는 방식은 연산 모드라 불린다. DES 의 연산 모드 4 개가 표준화되었으며 이는 FIPS PUBS 에 의해 공표하고, NIST 에 의해 발행하는, FIPS PUB 81 의 "DES 모드 연산 (DES Modes of Operation)" 에서 설명된다. 이 4 개의 모드는 ECB (Electronic Codebook), CBC (Cipher Block Chaining), OFB (Output Feedback), 및 CFB (Cipher Feedback) 이다. 설명의 목적에서, 평문 블록 P1,..., Pm 의 시퀀스를 암호화하기 위한 ECB 및 CBC 만이 이하 논의된다.
ECB 모드에서, 블록 암호는 다음의 관계에 따라 평문 블록 각각을 암호문 블록으로 암호화하는데 이용된다.
EK(Pi) 는 키 K 를 이용하는 블록 Pi 의 암호화를 나타낸다. 이하 사용되는 경우, DK(Pi) 는 키 K 를 이용하는 블록 Pi 의 복호화를 나타낸다.
CBC 모드에서, 제 1 평문 블록은, 이 후에 암호화되는 결과를 형성하기 위한 비밀 초기 값 (initial value (IV)) 으로 XOR 연산된다. 이 과정의 수학적인 설명은 다음의 관계에 따라 기록된다.
그 후, 평문 블록 각각은 암호화 전에 다음과 같이 선행의 암호문과 XOR 연산된다.
효율적인 암호화 및 인증은 대칭적인 크립토시스템에서 문제가 될 수 있다. 최근까지, 이러한 요구를 만족시키는 유일한 해결책은, 2 개의 별개의 기능으로서 암호화 및 인증을 제공하는 고지식한 접근을 이용하는 것이었다. 이 2 개의 기능은 대략적으로 동등한 양의 계산을 요구하며, 따라서 2 개의 기능 모두를 이용하는 것은 단지 하나 또는 다른 하나를 이용할 때의 2 배만큼 비용이 든다.
논문 "올모스트 프리 메시지 무결성을 갖는 암호화 모드 (Encryption Modes with Almost Free Message Integrity)" 에서, 쥬틀라는 암호화 또는 인증 단독인 경우보다 단지 약간의 계산만을 더 요구하는, 암호화 및 인증을 제공하는 2 개의 방법을 제안하였다. 이들 방법은 일반적인 형태이며 블록 암호를 암호화 핵심부 (kernel) 로서 채택 (employ) 한다. 암호화 집단에서, 그러한 방법은 "연산 모드 (mode of operation)" 라고도 불린다. IAPM (Integrity Aware Parallelizable mode) 모드로 알려진, 쥬틀라의 연산 모드 중 하나는, 이번 문서에서 논의되지 않는다. IACBC (Integrity Aware Cipher-Block Chaining) 모드로 알려진, 쥬틀라의 또 다른 연산 모드는 도 3 에 도시된다. IACBC 는 K0 및 K1 의 2 개의 키를 사용한다. 송신자가 P1 내지 Pm-1 까지, (m-1) 개의 메시지 블록으로 구성된 메시지를 암호화 및 인증하기를 바란다고 가정한다. 송신자는 (m+1) 의 로그 값 (밑수 2) 보다 큰 그 다음 정수와 동일하도록 t 를 설정한다. 송신자는 암호문 블록 C0 를 형성하기 위해 암호화되는 랜덤 값 (random value) r 을 선택한다. (r+1) 내지 (r+t) 까지 값들은 암호화에 키 K0 를 이용하는, W0 내지 Wt-1 의 값들을 형성하기 위해 암호화된다. W0 내지 Wt-1 의 값들은 그 후 상호 독립적인 (pair-wise independent), S0 내지 Sm 의 값들을 유도하는데 이용된다. Si 값들은 이하 잡음 블록으로 언급된다. S0,..., Sm 이, 이고, 모든 n 비트 상수가 c1 및 c2 인, 모든 Si 및 Sj 에 대하여, Si = c1 및 S j = c2 가 성립하는 확률이 이 되는 특성을 갖는, 균등 분포된 (uniformly distributed) n 비트 난수라면, S0,..., Sm 값들은 상호 독립적이다. S0 내지 Sm 의 실제 계산은 IACBC 의 이해와 관계가 없으며, 이하 설명되지 않는다. C1 내지 Cm-1 의 암호문 블록의 값들은 에 대하여, 다음의 관계에 따라 반복적으로 유도된다.
키 K1 은 암호문 블록 각각에 이용되며, 초기 값 N0 는 C0 로 설정된다. Mi 값은 중간 평문 블록 (intermediate plaintext blocks) 이라 불리고 Ni 값은 중간 암호문 블록 (intermediate ciphertext blocks) 이라 불린다. 그 후, 송신자는 다음으로 정의되는 검사 합 값 Pm 을 계산한다.
MAC 태그 Cm 은 Pm 으로부터 키 K1 을 이용하여 를 암호화하고 암호화된 결과를 S0 와 XOR 연산함으로써 계산된다. 이러한 동작은 수학적으로 다음의 관계로 표현된다.
송신자는 C0,...,Cm 을 전송한다.
수신자는 C'0,...,C'm 을 수신한다고 가정한다. 수신자는 r' 를 형성하기 위해 먼저 C'0 를 복호화함으로써 복호화 과정을 시작하며, 상기 복호화는 키 K1 을 이용한다. (r'+1) 내지 (r'+t) 의 값들은 W'0 내지 W't-1 의 값들을 형성하기 위해 암호화하며, 상기 암호화는 키 K0 을 이용한다. 그 후, 수신자는 S'0 내지 S'm 의 값들을 계산한다. P1 내지 Pm-1 의 암호화 블록의 값들은 에 대하여 다음의 관계를 따라 반복적으로 유도된다.
키 K1 은 평문 블록 각각에 이용되며, 초기 값 N'0 는 C'0 와 동일하도록 설정된다. 그 후, 수신자는 다음과 같이 정의되는 검사 합 값 P'm 을 계산한다.
X 값은 키 K1 을 이용하여 P'm 을 N'm-1 과 XOR 연산한 것을 암호화하고, 그 후 암호화된 결과를 S'0 와 XOR 연산함으로써 계산된다. 수학적으로, 이 과정은 다음과 같이 설명될 수 있다.
X 와 C'm 이 동일하다면, 수신자는 암호화된 메시지의 무결성을 확신할 수 있다.
글리고르 (Gligor) 및 도네스쿠 (Donescu) 는 논문 "신속한 암호화 및 인증: XCBC 암호화 모드 및 XECB 인증 모드 (Fast Encryption and Authentication: XCBC Encryption and XECB Authentication Modes)" 에서, 유사한 양의 계산을 이용하여 암호화 및 인증을 제공하는 XCBC 모드 (eXtended Ciphertext Block Chaining mode) 라고 불리는 유사한 모드를 제안한다. XCBC 와 IACBC 의 주요한 차이는 S0 내지 Sm 의 잡음 블록의 공식화 (formulation) 과정에서 존재하는데, 그 공식화 과정은 이 문서와는 관계되지 않는다.
IACBC 및 XCBC 연산 모드는 어느 정도의 바람직하지 못한 특성을 갖는다. 제 1 의 바람직하지 못한 특성은 이 모드들이 전송되는 모든 데이터가 암호화되기를 요구한다는 것이다. 아이피세크와 같은 인터넷 프로토콜에서, 모든 데이터가 암호화된 메시지를 전송하는 것은 바람직하지 않다. 특히, 어드레싱 정보를 포함하는 헤더는 비암호화 상태로 전송되어야 한다. 이하 설명되는 실시형태들은, 단지 적은 양의 프로세싱을 부가하면서 데이터 블록들이 평문으로서 전송되도록 하는 IACBC 및 XCBC 모드의 변형을 제안한다. 그 변형은 이하 CBC-A 모드로 언급된다.
데이터 또는 통신 시스템의 하드웨어 또는 소프트웨어 중 어느 쪽이든지 CBC-A 모드의 상이한 실시형태를 수행하도록 구성될 수 있다. 하드웨어는 이하 설명되는 암호화, 인증, 복호화, 및 검증 과정을 수행하기 위해, 예를 들어, 메모리와 같이, 컴퓨터로 판독할 수 있는 매체에 저장되는 명령어 세트를 구현하는 프로세싱 구성요소들을 포함할 수 있으나, 이에 제한 되는 것은 아니다. 또한, 다양한 단계의 결합은 비트 단위의 배타적 논리합 연산자 (bit-wise, logical exclusive-or operator) 를 이용하여 설명된다. 실시형태의 다른 구현은, 2 개의 입력이 이진법 정수 표현으로 취급되고, 중간 값 (intermediate value) 은 상기 정수의 합의 이진법 표현으로 형성되며, 출력은 상기 중간 값을 암호 블록 크기로 자르는 (truncating) 모듈러 정수 덧셈 연산 (modular integer addition operation) 을 이용하여 수행될 수 있다. 또한, 다른 그룹 연산자도 다양한 결합 단계를 위해 대치할 수 있지만, 설명의 편의상, 이하 오직 XOR 연산자를 이용하는 실시형태만 설명된다.
CBC-A 모드의 실시형태는 도 4A 에 예시적으로 도시된다. CBC-A 연산 모드는 2 개의 키, K0 및 K1 을 이용한다. 송신자가 P1 내지 Pm-1 의 (m-1) 개의 메시지 블록으로 구성되는 메시지를 암호화 및 인증하기를 바란다고 가정한다. 송신자 및 수신자는 비암호화 형태로 전송되는 평문 블록들 세트를 승인 (agree) 한다. U 는, U 의 구성요소가 클리어텍스트 위치로서 언급된, 비암호화 형태로 전송되는 인덱스들의 세트를 표시한다고 가정한다. 단계 400 에서, 송신자는 r 을 선택하고 S0 내지 Sm 의 잡음 블록을 계산하는 IACBC 및 XCBC 모드를 따른다. 단계 402 에서, 송신자는 N0 = C0 = EK1(r) 을 계산한다. 단계 404 에서, 반복적인 과정은 에 대하여, 여부에 대한 결정으로 시작한다. 라면, 프로그램 흐름은 단계 410 로 진행한다. 만약 라면, 프로그램 흐름은 단계 420 로 진행한다.
라면, 단계 410 에서, Ci = Pi 로 설정한다. 단계 415 에서, 다음을 계산한다.
프로그램 흐름은 단계 417 로 진행한다.
라면, 단계 420 에서, Yi = Pi 로 설정한다. 단계 425 에서, 다음을 계산한다.
프로그램 흐름은 단계 417 로 진행한다. 단계 417 에서, 인덱스 i 는 증가되는데, 즉, 그 다음 블록이 처리된다. 처리될 또 다른 블록이 존재한다면, 프로그램 흐름은 단계 404 로 돌아간다. 더 이상의 처리될 블록이 존재하지 않는다면, 프로그램 흐름은 단계 430 로 진행한다. 전술한 과정은 암호문 C0 내지 Cm-1, 및 인증 블록 Y1 내지 Ym-1 을 얻기 위한 것이다. 값 N0 내지 Nm-1 은 중간 암호문 블록이라 한다. 단계 430 에서, 송신자는 검사 합 값 Pm 을 다음과 같이 계산한다.
단계 432 에서, MAC 태그 Cm 은, Pm 을 Nm-1 과 XOR 연산함으로써 형성되는 Mm 을 암호화함으로써 계산된다. Mm 은 키 K1 을 이용하여 암호화된다. 이 과정은 수학적으로 다음과 같이 설명된다.
단계 434 에서, 송신자는 MAC 태그 Cm 을 메시지에 부가한다. 단계 436 에서, 송신자는 C0,..., Cm 을 전송한다.
도 4B 는 전술한 CBC-A 모드를 수행하도록 구성된 하드웨어의 블록도이다. 도 4B 는, 프로세서 및 메모리가 상기 CBC-A 모드를 수행하는 명령어들 세트를 실행하도록 구성된, 소프트웨어 구현에 대한 대안이 될 수 있는 구현을 예시적으로 도시한다. 메모리 구성요소 (440) 은, 일부가 암호화되고 전체가 인증되는 평문 블록 Pi 를 저장한다. 암호화 구성요소 (450A, 450B, 450C, 450D, 및 450E) 는, 키 교섭 과정에서 송신자와 수신자 사이에 승인된 키 K1 을 이용하여 암호화 기능을 수행하도록 구성되는데, 상세한 것은 여기에서 논의되지는 않는다. 단지 설명을 위해, 평문 블록을 암호화하는 5 개의 암호화 구성요소만 도 4B 에 도시되지만, 당업자는 실시형태의 범위에 영향을 주지 않고, 더 많거나 더 적은 암호화 구성요소가 구현될 수 있다는 것을 알고 있다. 제 1 암호화 구성요소 (450A) 의 입력은, 잡음 블록 S0, S1..., Sm-1 을 결정하는데 이용되는 넌스 값 (nonce value) r 이다. 잡음 블록을 생성시키는 하드웨어 구성은 여기 도시되지는 않는다. 제 1 암호화 구성요소 (450A) 의 출력은, 제 1 중간 암호문 블록 N0 와 동일하도록 설정된, 제 1 암호문 블록 C0 이다.
다른 암호화 구성요소 (450B, 450C, 450D, 및 450E) 에 대한 입력은 개별적으로, 암호화 구성요소 각각에 대하여, 중간 평문 블록 M1,..., Mm 이다. 중간 평문 블록 M1,..., Mm 은 결합 구성요소 (444A, 444B, 444C, 및 444D) 의 출력이다. 결합 구성요소 (444A, 444B, 444C, 및 444D) 각각에 대한 입력은 에 대한 평문 블록 Pi 및 중간 암호문 블록 Ni-1 이다. 일 양태에서, 결합 구성요소는 이하 XOR 게이트로 설명한다. 다른 양태에서, 결합 구성요소는 그룹 연산자이다.
암호화 구성요소 (450B, 450C, 450D, 및 450E) 에 대한 출력은 에 대한 중간 암호문 블록 Ni 이다. 에 대한 중간 암호문 블록 Ni 은, 에 대한 암호문 블록 Ci 를 형성하기 위해, 결합 구성요소 (462A, 462B, 462C, 또는 462D) 에서, 대응되는 잡음 블록 Si 와 각각 결합된다. 에 대한 중간 암호문 블록 Ni 도 추후 논의되는 스위치 구성요소 (470A, 470B, 470C, 또는 470D) 중 하나에 대한 입력이다.
복호화 구성요소 (455A, 455B, 및 455C) 는 암호화 구성요소 (450A, 450B, 450C, 450D, 및 450E) 에 이용되는 기능과 상반되는 복호화 기능을 수행하도록 구성된다. 복호화 구성요소 (455A, 455B, 및 455C) 에 대한 입력은 에 대한 중간 암호문 블록 Ni 이다. 에 대한 중간 암호문 블록 Ni 는 결합 구성요소 (442A, 442B, 또는 442C) 의 출력이다. 결합 구성요소 (442A, 442B, 또는 442C) 각각에 대한 입력은 평문 블록 Pi 및 잡음 블록 Si 이다. 복호화 구성요소 (455A, 455B, 및 455C) 에 대한 출력 은 에 대한 중간 평문 블록 Mi 이다. 에 대한 중간 평문 블록 Mi 는, 인증 블록 Ym-1 을 형성하기 위해, 결합 구성요소 (460A, 460B, 및 460C) 각각에서, 개별적으로, 이전의 중간 암호문 블록 Ni-1 과 결합된다.
각각의 단계에서, 에 대한 중간 암호문 블록 Ni 에 대한 중간 암호문 블록 Ni 는 스위치 구성요소 (470A, 470B, 470C, 또는 470D) 에 대한 입력이다. 프로세싱 구성요소에서의 제어선 (미도시) 은 다음 단계의 계산을 위해 둘 중 어느 중간 암호문 블록이든지 이용하는 결정을 제어한다.
최종 단계에서, 인증 태그 Cm 은 제 1 잡음 블록 S0 를 가지고 최종 중간 암호문 블록 Nm 을 결합시킴으로써 형성된다.
도 5 는 CBC-A 에 의해 암호화 및 인증되는 메시지의 복호화 및 검증의 블록도이다. 수신자가 단계 500 에서 전송 블록 C'0,..., C'm 을 수신한다고 가정한다. 에 대한 C'i 는 비암호화 상태로 전송된다. 단계 502 에서, 수신자는 r' 를 얻기 위해 C'0 를 복호화하고 따라서 S'0 내지 S'm 의 값을 유도한다. 다른 실시형태에서, 넌스 값 r 은 미리 교섭되거나 소정의 값이 될 수 있다.
단계 510 에서, 에 대하여, 수신자는 다음의 관계에 따라 중간 암호문 블록 N'i 를 형성하기 위해 C'i 를 S'i 와 XOR 연산한다.
단계 520 에서, 수신자는 를 형성하는데, 수신자는 N'0 = C'0 로 설정한다. 단계 530 에서, 수신자는 CBC 모드의 복호화를 이용하여, 인증 블록 Y'1,..., Y'm 을 형성하는 중간 암호문 N'0,..., N'm 의 시퀀스를 복호화한다. 이는 반복적으로 진행되며 다음과 같은 수학적 표현으로 나타난다.
단계 540 에서 반복적인 과정은 P'i 값을 결정하기 위해서 시작된다. 에 대하여, 프로그램 흐름은 수신자가 P'i = C'i 로 설정하는 단계 542 로 진행한다. 프로그램 흐름은 단계 544 로 진행한다. 에 대하여, 프로그램 흐름은 평문 블록이 인증 블록과 동일하도록 설정되는, 즉, 수신자가 P'i = Y'i 로 설정하는 단계 546 으로 진행한다. 프로그램 흐름은 단계 544 로 진행한다. 단계 544 에서, 수신자는 다른 블록이 처리될지 여부를 결정한다. 만약 그렇다면, 프로그램 흐름은 단계 540 으로 돌아간다. 만약 그렇지 않다면, 프로그램 흐름은 단계 550 으로 진행한다. 현재 수신자는 암호문을 데이터 블록 P'1,..., P'm 으로 복호화했지만, 수신자는 무결성을 검증할 필요가 있다.
단계 550 에서, 인증 태그를 검증하기 위해 수신자는 Y'm 값과 동일한지 확인한다. 인증 태그가 검증되면, 메시지는 P'1,..., P'm-1 이다.
프로세싱 시간을 감소시키는 다른 일 실시형태에서, 단계 550 에서 인증 태그의 검증은 단계 530 직후에, 단계 540 전이거나 또는 단계 540 과 병행하여 수행될 수 있다. 따라서, 수신자는 메시지의 원문 (text) 을 결정하기 전에 수신된 메시지를 인증할 수 있다. 수신된 메시지가 인증되지 않는다면, 수신자는 평문 블록 P'i 를 결정하는 단계들을 생략함으로써 프로세싱 자원을 보존 (conserve) 할 수 있다. 대조적으로, 쥬틀라에 의해 제안된 IACBC 모드는 시험 인증 태그를 계산하기 위해, 평문 블록 P'i 의 결정 및 그것의 결과 형태를 암호화할 것을 요구한다.
또 다른 실시형태들에서, 인증 태그의 검증은 값을, Y'm 이 아닌, 다른 수 (quantity) 와 비교함으로써 수행될 수 있다. 도 6A 는 다른 일 하드웨어 구현을 도시한다. 검사 합 값 CHK 는 값과 동일하도록 설정된다. CHK 값은 결합 구성요소 (600) 에 의해 중간 암호문 블록 N'm-1 과 결합된다. 그 후, 결합 구성요소 (600) 의 출력은 암호화 구성요소 (602) 에 의해 암호화된다. 그 후, 암호화 구성요소 (602) 의 출력은 결합 구성요소 (604) 에서 제 1 잡음 블록 S'0 와 결합된다. 그 후, 결합 구성요소 (604) 의 출력은 비교 구성요소 (606) 에서 최종 암호문 블록 C'm 과 비교되는데, 일치는 인증 태그가 검증되었다는 것을 나타낸다.
도 6B 는 수신된 메시지의 확실성을 검증하는 또 다른 하드웨어 실시형태이다. CHK 값은 결합 구성요소 (610) 에 의해 중간 암호문 블록 N'm-1 과 결합된다. 그 후, 결합 구성요소 (610) 의 출력은 암호화 구성요소 (612) 에 의해 암호화된다. 최종 암호문 블록 C'm 은 결합 구성요소 (614) 에 의해 제 1 잡음 블록 S'0 와 결합된다. 비교 구성요소 (616) 에서 암호화 구성요소 (612) 의 출력이 결합 구성요소 (614) 와 일치한다면, 수신된 메시지는 검증된다.
도 6C 는 수신된 메시지의 확실성을 검증하는 또 다른 하드웨어의 실시형태이다. CHK 값은 결합 구성요소 (620) 에 의해 중간 암호문 블록 N'm-1 과 결합된다. 최종 암호문 블록 C'm 은 결합 구성요소 (622) 에 의해 제 1 잡음 블록 S'0 와 결합된다. 그 후, 결합 구성요소 (622) 의 출력은 복호화 구성요소 (624) 에 의해 복호화된다. 비교 구성요소 (626) 에서 암호화 구성요소 (624) 의 출력이 결합 구성요소 (620) 과 일치한다면, 수신된 메시지는 검증된다.
도 6D 는 수신된 메시지의 확실성을 검증하는 또 다른 하드웨어의 실시형태이다. 최종 암호문 블록 C'm 은 결합 구성요소 (630) 에 의해 제 1 잡음 블록 S'0 와 결합된다. 그 후, 결합 구성요소 (630) 의 출력은 복호화 구성요소 (632) 에 의해 복호화된다. 그 후, 복호화 구성요소 (632) 의 출력은 결합 구성요소 (634) 에서 중간 암호문 블록과 결합된다. 비교 구성요소 (636) 에서 결합 구성요소 (634) 의 출력이 CHK 값과 일치한다면, 수신된 메시지는 검증된다.
주어진 암호문 C'0,..., C'm-1 에 대하여, 인증 태그 Cm 은 모든 클리어텍스트 위치의 세트들 U 에 대해 동일하며, 인증 태그를 검증하는 과정은 클리어텍스트 위치의 세트와 독립적이다. 인증 태그의 검증은 단지 송신자가 암호문 C'0,..., C'm 을 송신한다는 것을 검증하며, 어떤 위치가 클리어텍스트의 위치인지 및 어떤 위치가 클리어텍스트의 위치가 아닌지는 검증하지 않는다. 이는, 공격자가 수신자로 하여금 메시지를 복호화할 때 잘못된 클리어텍스트 위치의 세트를 이용하도록 유도할 수도 있다. 이러한 공격을 방지하기 위해서, 송신자 및 수신자는 특정 암호문 메시지에 적합한 클리어텍스트 위치를 검증하는 어떤 다른 방법을 이용해야 한다. 이 문제에는 간단한 해결책들이 있다. 일 해결책은 어떤 위치가 클리어텍스트 위치인지에 대한 표준 협정을 가지는 것이다. 다른 해결책은, 암호문의 검증이 클리어텍스트 위치의 세트의 검증을 포함하도록, 데이터 블록에 클리어텍스트 위치의 세트 U 의 표현을 포함하는 것이다.
CBC-A 모드에서, 만약 기본되는 블록 암호가 보안적이라면, 암호화 및 인증 기능은 보안적이다. 당업계에서 이른바 관용구 "암호화 및 인증 기능은 보안적이다." 를 의미하는 의례적인 표현들이 있는데, 이 의례적인 표현들은 본 발명의 주제와는 관계되지 않으며, 이하 논의되지는 않는다. 당업자는 관용구 "암호화 및 인증 기능은 보안적이다." 가 의미하는 바와 친숙할 것이다.
보안성 증거들이 포함되지는 않지만, 보안성에 관한 일부 관찰들이 여기에서 제공된다. CBC-A 모드의 암호화 기능의 보안성 증거는 IACBC 및 XCBC 에 대해서도 동일하다. CBC-A 모드의 인증 태그의 생성은 IACBC 및 XCBC 모드의 인증 태그의 생성과 상이하다. 그러나, CBC-A 는 IACBC 및 XCBC 모드와 동일한 단계들을 이용하여 인증 태그를 검증한다. 따라서, 공격자는 만약 공격자가 IACBC 및 XCBC 인증 기능을 손상 (compromise) 시킬 수 있을 때에만, CBC-A 인증 기능을 손상 (즉, 일치한다고 검증되는 CBC-A 인증 태그를 생성) 시킬 수 있다 . IACBC 및 XCBC 모드의 설계자는 공격자가 이미 IACBC 및 XCBC 인증 기능을 손상시킬 수 없다는 것을 보여주었기 때문에, 공격자가 CBC-A 인증 기능을 손상시킬 수 없다는 결론에 이른다. 따라서, CBC-A 인증 기능은 보안적이다.
송신자가 Pi 또는 Ci 중 어느 하나를 전송하는 것을 선택할 수 있으며, 인증은 손상되지 않는다. 여기 설명되는 실시형태들은 인증 방식의 보안성을 손상시킴없이 자가 암호화 및 비암호화된 블록들을 전송하도록 허용한다. Pi 가 평문으로 전송된다면, Pi 의 암호화된 버전은 여전히 비밀이며 예측 불가능하므로, Pi 는 보안성 있는 인증에 이용될 수 있다.
인증 모드 이용할 때 MAC 은 오직 최종 블록의 일 부분만으로 한정하는 것이 통상적인 실시형태이다. 또한, 제공되는 실시형태들은, 최종 블록의 일부분만이 MAC 로 전송된다는 것과 같이 변경될 수도 있다.
당업자들은 정보와 신호가 임의의 복수의 다른 기술 및 기법을 이용하여 표현될 수 있다는 것을 안다. 예를 들어, 전술한 설명을 통해 참조되는 데이터들, 명령어들, 명령들 (commands), 정보들, 신호들, 비트, 기호들 (symbols), 및 칩은 전압, 전류, 전자기파, 자기장 또는 자기 입자, 광학 또는 광자, 또는 상기의 어떤 조합으로 표현될 수 있다.
당업자들은 더 나아가 여기 개시되는 실시형태와 연관하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 조합으로 구현될 수 있다는 것을 이해한다. 이 하드웨어와 소프트웨어의 상호변경 가능성을 명확하게 설명하기 위해서 다양한 예시적인 컴포넌트 (components), 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능의 관점에서 개괄적으로 설명되었다. 그러한 기능이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지는 특정 어플리케이션 및 전반적인 시스템에 부과된 설계 제약들에 의존한다. 당업자들은 각각의 특정 어플리케이션에 따라 변화하는 방식으로 설명된 기능을 구현할 수 있으나, 그러한 구현의 결정은 본 발명 범위로부터의 일탈을 유도하는 것으로 해석되어서는 안된다.
여기에 개시되어 있는 실시형태와 연관하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 기타 프로그래머블 논리 장치, 이산 (discrete) 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 여기서 설명된 기능을 수행하도록 설계되는 이들의 조합으로 구현 또는 실행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 기계일 수도 있다. 또한, 프로세서는 계산 장치들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 기타의 구성물로 구현될 수 있다.
여기 개시되어 있는 실시형태와 연관하여 설명된 방법 또는 알고리즘의 단계들은 프로세서에 의해 실행되는 하드웨어 및 소프트웨어 모듈, 또는 이 둘의 조합으로 실시될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크 (removable disk), CD-ROM, 또는 당업계에 공지된 또 다른 저장 매체의 형태로 존재할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 읽고, 정보를 쓸 수 있도록 프로세서와 커플링된다. 다른 방법으로는, 저장 매체는 프로세서에 일체형일 수 있다. 프로세서 및 저장 매체는 ASIC 내에 존재 할 수 있다. ASIC 은 사용자 단말기에 존재할 수도 있다. 다른 방법으로는, 프로세서 및 저장 매체는 이산 컴포넌트들로서 사용자 단말기에 존재할 수 있다.
개시되어 있는 실시형태들의 상기 설명은 당업자로 하여금 본 발명을 실시 또는 이용할 수 있도록 제공될 수 있다. 이 실시형태들의 다양한 변형들은 당업자에게 명백할 것이며, 여기 정의된 포괄적인 원리들은 본 발명의 사상 또는 범위를 일탈함이 없이 다른 실시형태에 적용될 수 있다. 따라서, 본 발명은 여기에서 나타나는 실시형태들에 한하는 것이 아니라, 여기에 개시되어 있는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 조화시키려는 것이다.

Claims (15)

  1. 단일 엔티티로 데이터를 암호화 및 인증하는 방법으로서,
    암호 블록 크기에 따라 크기가 각각 설정된 복수의 평문 블록으로, 데이터를 정렬시키는 단계;
    적어도 하나의 암호문 블록이 대응되는 평문 블록과 동일하도록, 적어도 하나의 클리어텍스트 위치를 특정하는 단계;
    넌스 값 (nonce value) 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계;
    복수의 중간 암호문 블록을 결정하는 단계로서, 제 1 중간 암호문 블록은 상기 넌스 값의 암호화에 대응되고, 나머지 중간 암호문들은, 클리어텍스트 위치에 의해 특정되는 상기 복수의 평문 블록 각각에 대해서는, 상기 평문 블록을 대응되는 잡음 블록과 결합하는 단계, 및 클리어텍스트 위치에 의해 특정되지 않은 상기 복수의 평문 블록 각각에 대해서는, 평문 블록 및 선행의 중간 암호문 블록을 이용하여 중간 평문 블록들을 형성한 다음 제 2 키를 이용하여 중간 평문 블록을 암호화하는 단계에 의해 결정되는, 단계;
    복수의 암호문 블록을 결정하는 단계로서, 상기 복수의 암호문 블록은, 상기 제 1 암호문 블록을 상기 제 1 중간 암호문 블록과 동일하게 설정하는 단계, 클리어텍스트 위치에 의해 특정된 상기 암호문 블록들 각각을 대응되는 평문 블록과 동일하게 설정하는 단계, 및 대응되는 중간 암호문 블록을 대응되는 잡음 블록과 결합하여 나머지 암호문 블록들 각각을 결정하는 단계에 의하여, 결정되는, 단계;
    복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록은, 만약 인증 블록이 클리어텍스트 위치에 의해 특정되지 않은 평문 블록과 연관되면, 상기 인증 블록을 상기 평문 블록과 동일하게 설정하는 단계, 및 만약 인증 블록이 클리어텍스트 위치에 의해 특정된 평문 블록과 연관되면, 연관된 중간 암호문 블록을 복호화하고 상기 복호화된 연관된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합하여 상기 인증 블록을 결정하는 단계에 의해 결정되는, 단계;
    상기 복수의 인증 블록 모두를 잡음 블록과 결합하고 그 결합된 결과를 암호화함으로써 인증 태그를 계산하는 단계; 및
    상기 인증 태그를 상기 복수의 암호문 블록들에 부가하는 단계를 포함하는, 암호화 및 인증 방법.
  2. 제 1 항에 있어서,
    상기 암호화는 블록 암호 암호화 (block cipher encryption) 를 이용하는, 암호화 및 인증 방법.
  3. 제 1 항에 있어서,
    상기 암호화 및 복호화는,
    블록 암호 암호화 또는 블록 암호 복호화를 적용하도록 선택하는 단계;
    사용할 키 및 블록 암호를 소정의 선택 규칙들의 세트에 따라 선택하는 단계; 및
    복수의 입력 블록에 대하여 상기 블록 암호와 함께 상기 키를 이용하여 복수의 출력 블록을 획득하는 단계를 포함하는, 암호화 및 인증 방법.
  4. 제 1 항에 있어서,
    상기 결합 단계는 비트 단위의 배타적 논리합 연산을 이용하여 수행되는, 암호화 및 인증 방법.
  5. 제 1 항에 있어서,
    상기 결합 단계는 그룹 연산자를 이용하여 수행되는, 암호화 및 인증 방법.
  6. 제 5 항에 있어서,
    상기 그룹 연산자는 모듈러 정수 덧셈 연산자인, 암호화 및 인증 방법.
  7. 인증 태그를 동반하는 복수의 전송 블록을 복호화 및 검증하는 방법으로서,
    넌스 값 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계;
    상기 복수의 전송 블록들 각각을 대응되는 잡음 블록과 결합하여 복수의 중간 암호문 블록을 결정하는 단계;
    복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록들 각각은 대응되는 중간 암호문 블록을 복호화하고 그 후 상기 복호화된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시킴으로써 형성되는, 단계;
    소정의 어떤 클리어텍스트 위치와도 연관되지 않은 상기 복수의 인증 블록들 각각을 평문 블록으로서 설정하는 단계;
    소정의 어떤 클리어텍스트와 연관된 상기 복수의 전송 블록들 각각을 평문 블록으로서 설정하는 단계; 및
    최종 인증 블록이 다른 모든 인증 블록들의 결합과 동일한지 여부를 결정함으로써 인증 태그를 검증하는 단계를 포함하는, 복호화 및 검증 방법.
  8. 제 6 항에 있어서,
    상기 넌스 값은 상기 복수의 전송 블록의 수신자와 상기 복수의 전송 블록의 송신자 사이에 미리 교섭되는 값인, 복호화 및 검증 방법.
  9. 제 6 항에 있어서,
    상기 넌스 값은 제 1 전송 블록으로부터 유도되는, 복호화 및 검증 방법.
  10. 단일 엔티티로 데이터를 암호화 및 인증하는 장치에서,
    적어도 하나의 메모리 구성요소; 및
    적어도 하나의 메모리 구성요소에 저장되는 명령어 세트를 실행하도록 구성되는 적어도 하나의 프로세싱 구성요소를 포함하며,
    상기 명령어 세트는,
    암호 블록 크기에 따라 크기가 각각 설정된 복수의 평문 블록으로, 데이터를 정렬시키는 단계;
    적어도 하나의 암호문 블록이 대응되는 평문 블록과 동일하도록, 적어도 하나의 클리어텍스트 위치를 특정하는 단계;
    넌스 값 (nonce value) 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계;
    복수의 중간 암호문 블록을 결정하는 단계로서, 제 1 중간 암호문 블록은 상기 넌스 값의 암호화에 대응되고, 나머지 중간 암호문들은, 클리어텍스트 위치에 의해 특정되는 상기 복수의 평문 블록 각각에 대해서는, 상기 평문 블록을 대응되는 잡음 블록과 결합하는 단계, 및 클리어텍스트 위치에 의해 특정되지 않은 상기 복수의 평문 블록 각각에 대해서는, 평문 블록 및 선행의 중간 암호문 블록을 이용하여 중간 평문 블록들을 형성한 다음 제 2 키를 이용하여 중간 평문 블록을 암호화하는 단계에 의해 결정되는, 단계;
    복수의 암호문 블록을 결정하는 단계로서, 상기 복수의 암호문 블록은, 상기 제 1 암호문 블록을 상기 제 1 중간 암호문 블록과 동일하게 설정하는 단계, 클리어텍스트 위치에 의해 특정된 상기 암호문 블록들 각각을 대응되는 평문 블록과 동일하게 설정하는 단계, 및 대응되는 중간 암호문 블록을 대응되는 잡음 블록과 결합하여 나머지 암호문 블록들 각각을 결정하는 단계에 의하여, 결정되는, 단계;
    복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록은, 만약 인증 블록이 클리어텍스트 위치에 의해 특정되지 않은 평문 블록과 연관되면, 상기 인증 블록을 상기 평문 블록과 동일하게 설정하는 단계, 및 만약 인증 블록이 클리어텍스트 위치에 의해 특정된 평문 블록과 연관되면, 연관된 중간 암호문 블록을 복호화하고 상기 복호화된 연관된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합하여 상기 인증 블록을 결정하는 단계에 의해 결정되는, 단계;
    상기 복수의 인증 블록 모두를 잡음 블록과 결합하고 그 결합된 결과를 암호화함으로써 인증 태그를 계산하는 단계; 및
    상기 인증 태그를 상기 복수의 암호문 블록들에 부가하는 단계를 포함하는, 암호화 및 인증 장치.
  11. 인증 태그를 동반하는 복수의 전송 블록을 복호화 및 검증하는 장치로서,
    적어도 하나의 메모리 구성요소; 및
    적어도 하나의 메모리 구성요소에 저장되는 명령어 세트를 실행하도록 구성된 적어도 하나의 프로세싱 구성요소를 포함하며,
    상기 명령어 세트는,
    넌스 값 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 단계;
    상기 복수의 전송 블록들 각각을 대응되는 잡음 블록과 결합하여 복수의 중간 암호문 블록을 결정하는 단계;
    복수의 인증 블록을 결정하는 단계로서, 상기 복수의 인증 블록들 각각은 대응되는 중간 암호문 블록을 복호화하고 그 후 상기 복호화된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시킴으로써 형성되는, 단계;
    소정의 어떤 클리어텍스트 위치와도 연관되지 않은 상기 복수의 인증 블록들 각각을 평문 블록으로서 설정하는 단계;
    소정의 어떤 클리어텍스트와 연관된 상기 복수의 전송 블록들 각각을 평문 블록으로서 설정하는 단계; 및
    최종 인증 블록이 다른 모든 인증 블록들의 결합과 동일한지 여부를 결정함으로써 인증 태그를 검증하는 단계를 포함하는, 복호화 및 검증 장치.
  12. 단일 엔티티로 데이터를 암호화 및 인증하는 장치로서,
    암호 블록 크기에 따라 크기가 각각 설정된 복수의 평문 블록으로, 데이터를 정렬시키는 수단;
    적어도 하나의 암호문 블록이 대응되는 평문 블록과 동일하도록, 적어도 하나의 클리어텍스트 위치를 특정하는 수단;
    넌스 값 (nonce value) 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 수단;
    복수의 중간 암호문 블록을 결정하는 수단으로서, 제 1 중간 암호문 블록은 상기 넌스 값의 암호화에 대응되고, 나머지 중간 암호문들은, 클리어텍스트 위치에 의해 특정되는 상기 복수의 평문 블록 각각에 대해서는, 상기 평문 블록을 대응되는 잡음 블록과 결합하고, 클리어텍스트 위치에 의해 특정되지 않은 상기 복수의 평문 블록 각각에 대해서는, 평문 블록 및 선행의 중간 암호문 블록을 이용하여 중간 평문 블록들을 형성한 다음 제 2 키를 이용하여 중간 평문 블록을 암호화함으로써 결정되는, 수단;
    복수의 암호문 블록을 결정하는 수단으로서, 상기 복수의 암호문 블록은, 상기 제 1 암호문 블록을 상기 제 1 중간 암호문 블록과 동일하게 설정하고, 클리어텍스트 위치에 의해 특정된 상기 암호문 블록들 각각을 대응되는 평문 블록과 동일하게 설정하며, 대응되는 중간 암호문 블록을 대응되는 잡음 블록과 결합하여 나머지 암호문 블록들 각각을 결정함으로써 결정되는, 수단;
    복수의 인증 블록을 결정하는 수단으로서, 상기 복수의 인증 블록은, 만약 인증 블록이 클리어텍스트 위치에 의해 특정되지 않은 평문 블록과 연관되면, 상기 인증 블록을 상기 평문 블록과 동일하게 설정하며, 만약 인증 블록이 클리어텍스트 위치에 의해 특정된 평문 블록과 연관되면, 연관된 중간 암호문 블록을 복호화하고 상기 복호화된 연관된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합하여 상기 인증 블록을 결정함으로써 결정되는, 수단;
    상기 복수의 인증 블록 모두를 잡음 블록과 결합하고 그 결합된 결과를 암호화함으로써 인증 태그를 계산하는 수단; 및
    상기 인증 태그를 상기 복수의 암호문 블록들에 부가하는 수단을 구비하는, 암호화 및 인증 장치.
  13. 인증 태그를 동반하는 복수의 전송 블록을 복호화 및 검증하는 장치로서,
    넌스 값 및 제 1 키를 이용하여 복수의 잡음 블록을 결정하는 수단;
    상기 복수의 전송 블록들 각각을 대응되는 잡음 블록과 결합하여 복수의 중간 암호문 블록을 결정하는 수단;
    복수의 인증 블록을 결정하는 수단으로서, 상기 복수의 인증 블록들 각각은 대응되는 중간 암호문 블록을 복호화하고 그 후 상기 복호화된 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시킴으로써 형성되는, 수단;
    소정의 어떤 클리어텍스트 위치와도 연관되지 않은 상기 복수의 인증 블록들 각각을 평문 블록으로서 설정하는 수단;
    소정의 클리어텍스트와 연관된 상기 복수의 전송 블록들 각각을 평문 블록으로서 설정하는 수단; 및
    최종 인증 블록이 다른 모든 인증 블록들의 결합과 동일한지 여부를 결정함으로써 인증 태그를 검증하는 수단을 구비하는, 복호화 및 검증 장치.
  14. 데이터 전송의 제 1 부분은 평문으로 전송되고, 상기 데이터 전송의 제 2 부분은 암호문으로 전송되며, 상기 모든 데이터 전송이 인증되는, 보안성 있는 데이터 전송을 위한 방법으로서,
    클리어텍스트 위치들의 세트를 생성시키는 단계;
    상기 데이터 전송의 상기 제 1 부분은 상기 클리어텍스트 위치들 세트에 의해 특정되고, 상기 데이터 전송의 상기 제 2 부분은 상기 클리어텍스트 위치들 세트 중 어느 하나와도 연관되지 않은, 상기 데이터 전송의 상기 제 1 부분 및 상기 데이터 전송의 상기 제 2 부분을 암호문으로 암호화하는 단계;
    반복하는 절차를 통해 복수의 중간 암호문 블록을 결정하는 단계;
    복수의 인증 블록을 생성시키는 단계로서, 상기 복수의 인증 블록의 제 1 부분 각각은 상기 데이터 전송의 상기 제 1 부분의 대응되는 멤버와 동일하도록 설정되며, 상기 복수의 인증 블록의 제 2 부분 각각은 대응되는 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시키는 것으로부터 유도되는, 단계;
    상기 복수의 인증 블록 각각을 잡음 블록과 결합하고 상기 결합된 결과를 암호화함으로써 인증 태그를 생성시키는 단계; 및
    상기 평문, 상기 암호문, 및 상기 인증 태그를 전송하는 단계로서, 상기 평문은 클리어텍스트 위치들 세트에 의해 특정되는 상기 데이터 전송의 상기 제 1 부분인, 단계를 포함하는, 보안성 있는 데이터 전송 방법.
  15. 데이터 전송의 제 1 부분은 평문으로 전송되고, 상기 데이터 전송의 제 2 부분은 암호문으로 전송되며, 상기 모든 데이터 전송이 인증되는, 보안성 있는 데이터 전송을 위한 장치로서,
    클리어텍스트 위치들의 세트를 생성시키는 수단;
    상기 데이터 전송의 상기 제 1 부분은 상기 클리어텍스트 위치들 세트에 의해 특정되고, 상기 데이터 전송의 상기 제 2 부분은 상기 클리어텍스트 위치들 세트 중 어느 하나와도 연관되지 않은 데이터 전송의 상기 제 1 부분 및 상기 데이터 전송의 상기 제 2 부분을 암호문으로 암호화하는 수단;
    반복하는 절차를 통해 복수의 중간 암호문 블록을 결정하는 수단;
    복수의 인증 블록을 생성시키는 수단으로서, 상기 복수의 인증 블록의 제 1 부분 각각은 상기 데이터 전송의 상기 제 1 부분의 대응되는 멤버와 동일하도록 설정되며, 상기 복수의 인증 블록의 제 2 부분 각각은 대응되는 중간 암호문 블록을 선행의 중간 암호문 블록과 결합시키는 것으로부터 유도되는, 수단;
    상기 복수의 인증 블록 각각을 잡음 블록과 결합하고 상기 결합된 결과를 암호화함으로써 인증 태그를 생성시키는 수단; 및
    상기 평문, 상기 암호문, 및 상기 인증 태그를 전송하는 수단으로서, 상기 평문은 클리어텍스트 위치들 세트에 의해 특정되는 상기 데이터 전송의 상기 제 1 부분인, 수단을 구비하는, 보안성 있는 데이터 전송 장치.
KR10-2005-7001109A 2002-07-24 2003-07-24 데이터 처리 시스템을 위한 효율적인 암호화 및 인증 KR20050023447A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2005-7001109A KR20050023447A (ko) 2002-07-24 2003-07-24 데이터 처리 시스템을 위한 효율적인 암호화 및 인증

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/205,114 2002-07-24
KR10-2005-7001109A KR20050023447A (ko) 2002-07-24 2003-07-24 데이터 처리 시스템을 위한 효율적인 암호화 및 인증

Publications (1)

Publication Number Publication Date
KR20050023447A true KR20050023447A (ko) 2005-03-09

Family

ID=41784605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2005-7001109A KR20050023447A (ko) 2002-07-24 2003-07-24 데이터 처리 시스템을 위한 효율적인 암호화 및 인증

Country Status (1)

Country Link
KR (1) KR20050023447A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100856007B1 (ko) * 2006-09-06 2008-09-02 성균관대학교산학협력단 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템
KR20200129306A (ko) * 2019-05-08 2020-11-18 삼성에스디에스 주식회사 데이터 공유 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100856007B1 (ko) * 2006-09-06 2008-09-02 성균관대학교산학협력단 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템
KR20200129306A (ko) * 2019-05-08 2020-11-18 삼성에스디에스 주식회사 데이터 공유 장치 및 방법

Similar Documents

Publication Publication Date Title
AU2003296887B2 (en) Efficient encryption and authentication for data processing systems
US6950517B2 (en) Efficient encryption and authentication for data processing systems
US7305084B2 (en) Fast encryption and authentication for data processing systems
US8126139B2 (en) Partial encryption and full authentication of message blocks
US8090098B2 (en) Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US7254233B2 (en) Fast encryption and authentication for data processing systems
US20020048364A1 (en) Parallel block encryption method and modes for data confidentiality and integrity protection
US20060056623A1 (en) Block encryption method and schemes for data confidentiality and integrity protection
Saarinen Ring-LWE ciphertext compression and error correction: Tools for lightweight post-quantum cryptography
KR20050023447A (ko) 데이터 처리 시스템을 위한 효율적인 암호화 및 인증
Díaz et al. Chor-rivest knapsack cryptosystem in a post-quantum world
Gohel Introduction to Network & Cybersecurity
Mutabaruka Enhancing Data Security by Using Hybrid Encryption Technique (Advanced Encryption Standard and Rivest Shamir Adleman)
Hwang et al. PFX: an essence of authencryption for block‐cipher security
JP4000900B2 (ja) 認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体
Bhatia Cryptography-The Hidden Message
Niture Cryptographic Algorithm Analysis and Implementation
Lei et al. The FCM Scheme for Authenticated Encryption
Oszywa et al. Combining message encryption and authentication
McGrew et al. Arbitrary block length (ABL) mode: security without data expansion
Gupta et al. A fail-fast mechanism for authenticated encryption schemes
JP2000148011A (ja) ランダム関数利用公開鍵暗号の暗号装置、復号装置、及びプログラム記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee