KR20200002891A - 카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들 - Google Patents

카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR20200002891A
KR20200002891A KR1020197032750A KR20197032750A KR20200002891A KR 20200002891 A KR20200002891 A KR 20200002891A KR 1020197032750 A KR1020197032750 A KR 1020197032750A KR 20197032750 A KR20197032750 A KR 20197032750A KR 20200002891 A KR20200002891 A KR 20200002891A
Authority
KR
South Korea
Prior art keywords
blocks
encryption
function
tag
block
Prior art date
Application number
KR1020197032750A
Other languages
English (en)
Other versions
KR102609221B1 (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 KR20200002891A publication Critical patent/KR20200002891A/ko
Application granted granted Critical
Publication of KR102609221B1 publication Critical patent/KR102609221B1/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/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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

카운터 기반의 암호 시스템들에서 인증형 암호화를 개선하기 위한 방법들 및 시스템들이 제시된다. 본 발명의 실시예들은, 인증형 암호화의 진본성 및 프라이버시 목표 양쪽 모두를 달성하기 위한 안전하고 효율적인 수단을 제공하며, 대부분의 블록 암호 동작 모드들, 예를 들어, CBC, CFB 및 CTR와, 대부분의 대칭 키 암호화 함수, 예를 들어, AES, DES 및 RC5와 호환된다. 특히, 데이터 의존적 초기화 벡터들과 함께 블록 암호 암호화를 이용하는 것은, 특히 카운터 기반의 암호 시스템에서 카운터가 리셋되게 초래할 수 있는 시나리오들에서, 프라이버시 목표를 달성하고, 오버-디-에어 전송이 훼손되지 않고 유지될 수 있게 한다.

Description

카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들
본 발명은 통신 시스템들의 분야에 관한 것으로, 특히 안전하고 효율적인 암호화를 요구하는 통신 시스템들의 분야에 관한 것이다.
오버-디-에어(OTA; over-the-air) 트래픽을 전송하는 통신 시스템은, 전형적으로, 전송된 데이터의 프라이버시 및 보안을 보장하기 위해 소정 형태의 암호화를 요구한다. 추가로, 많은 시스템은 여러 가지의 데이터 또는 변경된 버전의 전송된 데이터가 수신기에 의해 처리되는 것을 방지하기 위해 보안 인증을 요구한다.
인증형 암호화 방식(authenticated encryption scheme)은, 암호문이 메시지의 프라이버시 및 진본성 양쪽 모두를 보호하는 목표로 메시지가 암호문 및 인증 코드로 변환되는 메커니즘이다. 지난 수 년간 인식된 암호화 목표로서 인증형 암호화가 등장했으며, 다양한 통신 시스템을 위해 수많은 방법이 개발되었다.
인증형 암호화의 한 형태는, 2-패스 방식(two-pass scheme)을 이용하는데, 여기서 2개의 패스는 평문 데이터를 통해 이루어진다; 첫 번째는 진본성을 제공하는 것을 목표로 하고, 두 번째는 프라이버시를 목표로 한다. 도 1 내지 도 3은 인증형 암호화에 대한 대표적인 종래 기술의 블록도를 도시하며, 이들 각각은 블록 암호를 채용하여 데이터를 암호화하고 메시지 인증 코드(MAC; message authentication code)를 생성한 다음, MAC 및 암호문을 전송하여, 각각 진본성 및 프라이버시를 제공한다. 일반적으로, 블록 암호는, 평문, 초기화 벡터(IV; initialization vector) 및 키가 주어지면 암호문을 생성하는데, 여기서 키는 보안 컴포넌트이고 암호문은 오버-디-에어로 전송된다. 본 명세서에서 고려되는 2-패스 방식은 암호화 및 MAC 생성 기능 양쪽 모두에 대해 동일한 키를 이용한다.
도 1은 "MAC-then-Encrypt" 접근법의 블록도를 도시하는데, 여기서 평문의 해시(hash)는 MAC을 생성하는데 이용되고, 후속해서, 블록 암호를 이용하여 평문 및 MAC의 함수가 암호화되어 암호문을 생성한다. 평문/MAC 입력 외에도, 블록 암호는 초기화 벡터(IV) 및 키에 의존한다. MAC과 암호문은 오버-디-에어로 전송된다.
이 방식의 변형은, "Encrypt-and-MAC" 접근법의 블록도를 도시하는 도 2에 도시되어 있으며, 여기서 평문이 먼저 블록 암호를 이용하여 암호화되어 암호문을 생성하고, 그 다음, 해시 함수를 이용하여 독립적으로 처리되어 MAC을 생성한다. 암호문과 MAC은 오버-디-에어로 전송된다.
도 3은, 전형적으로, 연관된 데이터를 갖는 인증형 암호화라고 지칭되는 또 다른 변형에 대한 EAX 동작 모드를 도시한다. 이 변형은, 평문 메시지의 프라이버시 뿐만 아니라, 평문의 진본성 및 추가 헤더 문자열을 보장한다. 도 3에 도시된 바와 같이, 오버-디-에어로 전송될 암호문은, 블록 암호를 통한 단일 패스를 이용하여 생성되지만, MAC은, IV, OTA 암호문 및 헤더 문자열의 암호화된 표현의 함수로서 생성되고, 이들 각각은 평문을 암호화하는데 이용되는 것과는 상이한 유형의 블록 암호를 이용하여 처리된다.
각각의 종래 기술의 접근법은 블록 암호를 이용하고, 특히, 효율성으로 인해 특별히 중요한 블록 암호 클래스인, 카운터 기반 블록 암호를 채용할 수 있다. 이들 카운터 기반 암호 시스템은, 전송기와 수신기 양쪽 모두에서 알려져 있는, 시간 또는 단순 증가 카운터(또는 그 카운터의 함수)를 이용하여 IV를 생성한다. 일단 이 시스템이 동기화되고 나면, IV는 오버-디-에어로 전송될 필요가 없어, 오버헤드를 감소시킨다. 짧은 메시지 페이로드를 갖는 통신 시스템에서는 오버헤드가 지배적일 수 있고, 그 감소는 제한된 처리량을 갖는 시스템에서는 무엇보다 중요하다.
그러나, 카운터 기반 시스템에서의 카운터는, 상이한 평문 데이터에 관해 (공통 카운터 값으로부터 생성된) 공통 IV를 이용하면 많은 블록 암호 모드들에 대한 보안 침해가 발생할 수 있기 때문에, 반복되지 않는 것이 필수적이다. 도 1 내지 도 3에 도시된 바와 같이, 동일한 카운터 값의 재사용을 피하는 것이 어려울 수 있기 때문에, 종래 기술의 접근법들 중 어느 것도 카운터 기반의 IV가 반복되지 않도록 보장할 수 없다.
실제로, 카운터 값은 복수의 시나리오에서 반복될 수 있으며, 그 결과, 동일한 IV가 하나보다 많은 평문 블록을 암호화하는데 이용된다. 재부팅이나 재초기화 동작에 의해 단순 카운터가 리셋될 수 있다. 연속 서비스가 이용가능하지 않다면, 시간 기반의 카운터는 반복될 수 있다. 예를 들어, 분산형 시간 기준에 대해 GPS 시스템을 이용하는 통신 시스템은, GPS가 이용가능하지 않다면, 대략적인 시간을 갖는 조건 하에서 시작될 수 있고, 나중에 GPS가 이용가능해지면, 시간 기초가 다시 조정될 필요가 있다고 결정할 수 있다. 이러한 상황에서, 시간 기반의 IV는 반복될 것이며, 이로써 오버-디-에어 전송의 보안을 포함하게 된다.
카운터 기반 블록 암호는, 그들의 효율적인 구현과 오버-디-에어 전송의 최소화로 인해 이용이 증가하고 있다. 따라서, 카운터 기반의 암호 시스템에서 반복되지 않는 초기화 벡터를 생성할 필요성이 있다.
본 명세서에 설명된 실시예들은 개선된 인증형 암호화를 위한 시스템 및 방법을 제공하고, 구체적으로는, 카운터 기반의 암호 시스템에서 비반복 IV를 생성한다. 특히, 프라이버시 목표를 달성하는데 이용되는 IV는, 카운터 기반의 IV 및 인증 코드의 함수로서 생성될 수 있다. 즉, IV는 (반복될 수 있는) 카운터와 (데이터에 의존적이라서 반복되지 않는) 인증 태그에 기초하기 때문에, 전술된 바와 같이 다양한 조건하에서 리셋될 수 있는 더욱 효율적인 카운터 기반의 암호 시스템에서 이용될 때에도 IV는 반복되지 않을 것이다.
한 실시예에서, 개선된 인증형 암호화를 위한 시스템은, 제1 암호화 함수, 복수 블록의 평문, 및 키를 이용하여 하나 이상의 블록의 암호화 출력을 생성하고; 하나 이상의 블록의 암호화 출력에 기초하여 제1 태그를 생성하며; 카운터 및 제1 태그에 기초하여 제1 초기화 벡터를 생성하고; 제2 암호화 함수, 복수 블록의 평문, 제1 초기화 벡터, 및 키를 이용하여, 복수 블록의 암호문을 생성하도록 구성된 암호화 및 인증 코드 생성 모듈을 포함한다. 제2 암호화 함수는 블록 암호일 수 있고, 제1 초기화 벡터 및 키는 제2 암호화 함수에 대한 입력일 수 있다. 전송기는 복수 블록의 암호문 및 제1 태그를 전송하도록 구성된다. 수신기는 복수 블록의 암호문 및 제1 태그를 수신하도록 구성된다. 복호화 및 인증 코드 검증 모듈은, 제2 암호화 함수, 복수 블록의 암호문, 제1 초기화 벡터 및 키를 이용하여 복수 블록의 평문을 생성하고; 제1 암호화 함수, 복수 블록의 평문, 및 키를 이용하여 하나 이상의 블록의 암호화 출력을 생성하며; 하나 이상의 블록의 암호화 출력에 기초하여 제2 태그를 생성하고; 제1 태그와 제2 태그를 비교하고; 비교가 동일하면 성공적인 인증을 선언하도록 구성된다.
이들 예시적인 실시예들은, 본 주제를 제한하거나 그 한계를 정의하는 것이 아니라, 이해를 돕기 위한 예를 제공하기 위한 것이다. 예시적인 실시예들이 상세한 설명에서 논의되고, 추가적인 예들이 제공된다. 다양한 실시예들에 의해 제공되는 이점들은, 본 명세서의 검토 및/또는 청구 대상의 하나 이상의 실시예의 실시에 의해 더 이해될 수 있다.
본 명세서에 설명된 실시예들의 이들 및 다른 피쳐들, 양태들, 및 이점들은, 이하의 설명, 청구항들, 및 첨부된 도면들과 관련하여 더 양호하게 이해될 것이다.
도 1은 인증형 암호화에 대한 대표적인 종래 기술의 한 예의 블록도이다;
도 2는 인증형 암호화를 위한 대표적인 종래 기술의 또 다른 예의 블록도이다;
도 3은 인증형 암호화를 위한 대표적인 종래 기술의 역시 또 다른 예의 블록도이다;
도 4는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다;
도 5는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도이다;
도 6은, 본 발명의 또 다른 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다;
도 7은, 본 발명의 또 다른 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도이다;
도 8a, 도 8b, 및 도 8c는, 본 발명의 실시예들에 따른, 데이터 의존적 초기화 벡터를 생성하기 위한 블록도이다;
도 9는, 본 발명의 한 실시예에 따른, 암호 피드백(CFB; cipher feedback) 모드를 이용한 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다;
도 10은, 본 발명의 한 실시예에 따른, 암호 피드백(CFB) 모드를 이용한 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도이다;
도 11은, 본 발명의 또 다른 실시예에 따른, 카운터(CTR) 모드를 이용한 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다;
도 12는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 방법에 대한 플로차트이다;
도 13은, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 방법의 플로차트이다; 및
도 14는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 시스템의 블록도이다.
도면들에서 유사한 라벨은 동일하거나 유사한 컴포넌트를 가리키는데 이용된다.
도 4는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도를 도시한다. 도 4에 도시된 2-패스 개선된 인증형 암호화 방법은, 인증 코드의 생성에 이용되는 제1 블록 암호 암호화 모듈(420), 및 개선된 인증형 암호화 시스템의 암호화 단계에 이용되는 제2 블록 암호 암호화 모듈(450)을 포함한다.
도 4에 도시된 바와 같이, 초기화 벡터(IV)(460) 및 키(440) 외에도, 평문(410)이 제1 블록 암호 암호화 모듈(420)에 입력된다. 제1 블록 암호 암호화 모듈(420)은 암호문(430)을 생성한다. 한 실시예에서, 암호문(430)의 일부는 인증 코드 또는 태그(435)로서 이용된다.
데이터에 의존하는 태그(435)는 IV(460)와 결합되고, 제2 블록 암호 암호화 모듈(450)에 대한 새로운 IV(465)로서 이용된다. 제2 블록 암호 암호화 모듈(450)은 데이터 의존적 IV(465) 및 동일한 키(440)를 이용하여 평문(410)을 암호화하고 암호문(470)을 생성한다. 한 실시예에서, 연결된 암호문(470)과 태그(435)는 전송기(490) 및 안테나(495)를 이용하여 오버-디-에어로 전송된다. 또 다른 실시예에서, 암호문(470) 및 태그(435)는 별개로 전송될 수 있다.
도 5는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도를 도시한다. 이 실시예는 도 4에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다.
도 5에 도시된 복호화 및 인증 코드 검증 시스템은 도 4에 도시된 암호화 및 인증 코드 생성 시스템의 역이다. 한 실시예에서, 수신기(590)는, 암호문(570) 및 태그(535-1)를 포함하는 연결된 오버-디-에어 전송(580)을 안테나(595)를 이용하여 수신한다.
초기화 벡터(560)는 OTA 태그(535-1)와 결합되어, OTA 암호문(570)이 주어질 때 평문(510)을 생성하는 블록 암호 복호화 모듈(550)에 키(540)와 함께 입력되는 데이터 의존적 IV(565)를 생성한다. 복호화된 평문(510)은, 키(540) 및 원본 초기화 벡터(560)를 이용하여, 블록 암호 암호화 모듈(520)에 의해 재암호화되어 암호문(530)을 생성한다. 한 실시예에서, 암호문(530)의 일부는 태그(535-2)로서 추출된다. 이 태그(535-2)는 비교 모듈(585)을 이용하여 OTA 태그(535-1)와 비교되고, 2개의 태그가 동일한 것에 기초하여 인증이 보장될 수 있다.
도 6은, 본 발명의 또 다른 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도를 도시한다.
이 실시예는 도 4 및 도 5에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다.
도 6에 도시된 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 실시예는 도 4에 도시된 것과 유사하지만, 블록 암호 암호화 모듈(420) 대신에 보안 해시 함수(620)로 대체한다. 보안 해시 함수(620)는, SHA-x(Secure Hash Algorithm), MDx(Message Digest), RIPEMD-x(RACE Integrity Primitives Evaluation Message Digest), BLAKE-x, 또는 본 기술분야에 공지된 기타 임의의 해시 함수의 임의의 버전("x"로 표기)일 수 있다. 보안 해시 함수(620)는 평문 입력(610)이 주어진 경우 고정 길이의 해시 값(630)을 생성하고, 태그(635)는 해시 값(630)의 일부이다.
일반적으로, 도 4 및 도 6의 실시예들은, 실시예들이 카운터 기반의 암호 시스템에서 이용되는 특정한 암호화 함수로 제한되지 않다는 것을 보여준다. 즉, 일부 실시예들은, 인증형 암호화의 프라이버시 목표를 위한 암호화 함수가 블록 기반의 암호가 되도록 허용할 수 있다. 반면, 진본성 목표를 달성하는데 이용되는 암호화 함수는 평문을 암호문으로 변환할 수 있는 임의의 함수일 수 있다.
도 7은, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도를 도시한다. 이 실시예는 도 4 내지 도 6에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다. 도 7에 도시된 실시예는 도 5에 도시된 것과 유사하지만, 블록 암호 암호화(520) 대신에 보안 해시 함수(720)로 대체한다. 위에서 논의된 바와 같이, 일부 실시예들의 이점은 도 4 내지 도 7에 도시된 실시예들에서 이용된 블록 암호 모듈의 유형으로 제한되지 않는다. 예를 들어, 도 5의 블록 암호 모듈(520 및 550)과, 도 7의 블록 암호 모듈(750)은, 다음과 같은 대칭 키 블록 암호들 중 임의의 하나일 수 있다 : Propagating Cipher Block Chaining (PCBC), Counter (CTR), Output Feedback (OFB), Cipher Feedback (CFB) 및 Cipher Block Chaining (CBC). 일부 실시예들은 진본성 및 프라이버시 목표를 달성하기 위해 공통 대칭 키 블록 암호를 이용할 수 있는 반면, 다른 실시예들은 개선된 인증형 암호화 시스템 및 방법의 제1 패스 및 제2 패스에 대해 별개의 대칭 키 블록 암호를 이용할 수 있다.
도 8a, 도 8b, 및 도 8c는, 본 발명의 실시예들에 따른, 및 도 4 내지 도 7의 맥락에서 전술된 바와 같이, 데이터 의존적 초기화 벡터들을 생성하기 위한 상이한 실시예들을 도시한다. 도 8a에서, 태그(835)는 암호문(830)의 일부이고, 카운터 기반의 초기화 벡터(860)와 XOR-되기 전에 초기화 벡터(860)의 길이까지 제로 패딩되어(zero-padded) 데이터 의존적 IV(865)를 생성한다. 이 실시예는, 카운터-기반의 IV의 초기 부분이 데이터-의존적 태그에 의해 증강되도록 초래하여, 프라이버시 목표를 달성하는데 이용되는 IV가 반복되지 않도록 보장한다.
도 8b에서, 태그(835)는 암호문(830)의 일부이고, 카운터 기반의 초기화 벡터(860)의 부분적으로 제로 아웃된(zeroed-out) 버전과 XOR되기 전에 초기화 벡터(860)의 길이까지 제로 패딩된다. 즉, 태그(835)의 길이와 동일한 길이를 갖는 카운터 기반의 IV(860)의 초기 부분은 제로 아웃된 다음, 제로 추가된 태그와 XOR됨으로써, 태그(835)와 카운터 기반의 IV(860)의 일부의 연결인 데이터 의존적 IV(865)를 생성한다.
도 8a 및 도 8b에 도시된 실시예에서, 카운터 기반의 IV(860)와 태그(835)의 분할은 카운터 반복 간격과 인증 코드 강도 사이의 절충(trade off)을 허용한다. 한 실시예에서, 이 절충은 도 8c에 도시된 바와 같이 인증 코드 강도를 전적으로 선호할 수도 있으며, 여기서 전체 암호문(830)은 태그(835)로서, 및 그에 따라 결과적으로 데이터 의존적 태그(865)로서 이용된다. 이 실시예에서, 카운터 기반의 IV(860)가 이용되지 않기(또는 균등하게, 태그(835)와 XOR하기 전에 완전히 제로-아웃되기) 때문에, 암호화 및 복호화 프로세스를 위해 카운터를 증가시킬 필요가 없다.
도 9는, 본 발명의 한 실시예에 따른, 암호 피드백(CFB; cipher feedback) 동작 모드를 이용한 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다. 이 실시예는 도 4 내지 도 6에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다.
도 9에 도시된 개선된 인증형 암호화 블록도는 프라이버시 및 인증 목표 양쪽 모두를 달성하기 위해 CFB(cipher feedback) 동작 모드를 이용함으로써 더욱 효율적이고 컴팩트한 하드웨어 및 소프트웨어 구현을 가능케한다. 도 9의 좌측 부분은, 카운터 기반의 IV(960), 및 제1 블록의 평문(910-1)과 XOR되어 가산기(925)를 이용하여 제1 블록의 암호문(930-1)을 생성하는 키(940)에 기초하여 키스트림(명시적으로 도시되지 않음)을 생성하는 블록 암호 암호화 모듈(920)로 시작하는 인증을 위한 CFB 동작 모드를 도시한다.
CFB 기반의 인증 프로세스의 각각의 후속 단계는, 후속 블록의 평문과 XOR되어 후속 블록의 암호문을 생성하는 키스트림을 생성하는 다음 블록 암호 암호화 모듈을 위한 초기화 벡터로서, 이전 단계에서 생성된 암호문을 이용하는 단계를 포함한다. 블록 암호는 고정된 길이의 입력에서 동작할 수 있고, 한 실시예에서, 평문은, 도 9에 도시된 바와 같이, 요구되는 입력 길이의 배수가 되도록 제로 패딩된다.
즉, 평문(910-3)의 마지막 부분은 제로-패딩되고, 블록 암호 암호화 모듈(920)에 의해 생성된 키스트림(미도시)과 XOR되어 끝에서 두번째 블록의 암호문(930-3)을 생성한다. 그 다음, 이 블록의 암호문은, 한 블록의 제로들(910-4)을 암호화하여 최종 블록의 암호문(930-4)을 생성하는 IV로서 이용된다. 최종 블록의 암호문(930-4)의 일부는 인증 코드 또는 태그(935)로서 이용된다.
태그(935)는 카운터 기반의 IV(960)와 결합되어 데이터-의존적 IV(965)를 생성하고, 도 8의 정황에서 설명된 방법들 중 하나를 채용할 수 있다. 새로운 IV(965)의 생성에 후속해서, 이것은 도 9의 우측에 도시된 프로세스의 암호화 부분에서 이용되며, 여기서, 복수 블록의 암호문(970-1, 970-2 및 970-3)이, 각각, 복수 블록의 평문(910-1, 910-2 및 910-3)으로부터 생성된다. 암호문 블록들과 태그(935)는 오버-디-에어로 전송된다.
블록 암호 암호화 모듈(920)은, 블록의 평문과 XOR되는 (도 9에 도시되지 않은) 키스트림을 생성하기 위해 일반적으로 이용되는 많은 대칭 키 암호화 함수들 중 임의의 하나를 채용할 수 있다. 일부 실시예들은, 평문을 암호화하기 위해, DES(Data Encryption Standard), AES(Advanced Encryption Standard), IDEA(International Data Encryption Algorithm), AES128, AES192, AES256, Triple DES, RC5 및 Blowfish 엔진 중 하나를 이용할 수 있다. 예를 들어, 한 실시예는 AES 256 엔진과 함께 CFB 동작 모드를 이용할 수 있는 반면, 다른 실시예는 RC5 엔진과 함께 동작하는 CBC(Cipher Block Chaining) 동작 모드를 채용할 수 있다. 이들 실시예들 각각은, 카운터 기반의 초기화 벡터를 이용할 때 OTA 전송의 보안이 포함되지 않도록 보장한다.
도 10은, 본 발명의 한 실시예에 따른, CFB(cipher feedback) 동작 모드를 이용한 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 블록도이다. 이 실시예는 도 4 내지 도 6 및 도 9에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다.
개선된 인증형 암호화 프로세스를 위한 복호화 및 인증 코드 검증의 도 10의 좌측에 도시된 복호화 부분은, 태그(1035-1) 및 암호문 블록들(1070-1, 1070-2 및 1070-3)의 수신시에 먼저 실행된다. 카운터 기반의 IV(1060)는 국지적으로 생성되고, 태그(1035-1)와 결합되어 데이터 의존적 IV(1065)를 생성한다. 새로운 IV(1065)는 키(1040) 및 제1 블록의 암호문(1070-1)과 연계하여 이용되어 제1 블록의 평문(1010-1)을 생성한다. 구체적으로, 블록 암호 암호화 모듈(1050)에 의해 생성된 (도 10에 도시되지 않은) 키스트림은 제1 블록의 암호문(1070-1)과 XOR되어 제1 블록의 평문(1010-1)을 생성한다. 제1 블록의 암호문(1070-1)은 또한, 제2 블록의 암호문(1070-2)을 복호화하여 제2 블록의 평문(1010-2)을 생성하기 위한 IV로서 이용된다.
그 다음, 도 10의 우측에 도시된 인증 부분이 실행되고, 평문 블록들(1010-1, 1010-2, 1010-3 및 1010-4)을 암호화하여 대응하는 수의 암호문 블록들(1030-1, 1030-2, 1030-3 및 1030-4)을 생성한다. 마지막 블록의 암호문의 일부는 태그(1035-2)로서 추출된다. 메시지를 인증하기 위하여, OTA 태그(1035-1)는 계산된 태그(1035-2)와 정합되어 그들이 동일하다는 것을 보장할 수 있다.
도 9 및 도 10은, CFB 동작 모드가 인증과 암호화 양쪽 모두에 이용되는 본 발명의 실시예를 도시한다. (암호화 프로세스에서) 암호문 블록들의 생성 및 (복호화 프로세스에서) 평문 블록들의 생성이 연속적이기 때문에, 이 구현에서는 단일 블록 암호 암호화 모듈이 이용될 수 있다.
도 11은, 본 발명의 또 다른 실시예에 따른 카운터(CTR) 동작 모드를 이용한 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 블록도이다. 이 실시예는 도 4 내지 도 6, 및 도 9 내지 도 10에 도시되고 전술된 것들과 유사한 일부 피쳐들 및/또는 컴포넌트들을 포함한다. 이들 피쳐들 및/또는 컴포넌트들 중 적어도 일부는 본 절에서 별도로 설명되지 않을 수 있다.
도 9의 연속적인 구현과는 대조적으로, 도 11에 도시된 실시예는, 병렬 계산으로서 구현되는 카운터(CTR) 동작 모드를 이용한다. 즉, 카운터 기반의 초기화 벡터(1160-1)는 도 11에서 1160-2 및 1160-3으로 표기된 후속 초기화 벡터를 생성하기 위해 증가된다. 이들 카운터 기반의 IV들 각각은, 마지막 블록의 평문을 제외한 모든 평문을 암호화하여 마지막 블록의 암호문을 제외한 모든 암호문을 동시에 생성하는데 이용된다.
한 실시예에서, 암호문 블록들(1130-1, 1130-2 및 1130-3) 중 하나 이상은 XOR 함수(1145)에 의해 처리되어 최종 블록의 평문(1110-4)에 대한 IV(1130-4)를 생성할 수 있고, 최종 블록의 평문은 블록 암호 암호화 모듈(1120-4)에 의해 암호화되어 최종 블록의 암호문(1130-5)을 생성한다. 마지막 블록의 암호문의 일부는 인증을 위한 태그(1135)로서 이용될 수 있다.
태그(1135)는 카운터 기반의 IV들(1160-1, 1160-2 및 1160-3) 각각과 조합되어, 평문을 암호화하여 태그(1135)와 함께 오버-디-에어로 전송되는 암호문 블록들(1170-1, 1170-2 및 1170-3)을 생성하는데 이용될 수 있는 한 세트의 데이터 의존적 초기화 벡터(1165-1, 1165-2 및 1165-3)를 생성할 수 있다. 대안적인 실시예에서, 태그(1135)는 제1 카운터 기반의 IV(1160-1)와 결합되어 데이터 의존적 IV(1165-1)를 생성할 수 있다. 그 다음, 제1 데이터 의존적 IV(1165-1)는 후속 태그(1165-2 및 1165-3)를 생성하기 위해 증가될 수 있다. 따라서, 도 11은 낮은 레이턴시 요건을 갖는 고속 통신 응용에 대해 병렬로 효율적으로 실행될 수 있는 개선된 인증형 암호화를 위한 구현을 도시한다.
도 12는, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 방법에 대한 플로차트이다. 일부 실시예들에서, 플로차트(1200)에서 단계들의 순서는 변경될 수 있다. 또한, 플로차트(1200)의 단계들 중 일부는 생략되거나 추가 단계가 더해질 수 있다.
도 4 내지 도 6 및 도 9 내지 도 11을 참조하면, 방법(1200)은 단계 1210에서 시작하고, 여기서, 적어도 복수 블록의 평문 및 키가 제1 암호화 함수에 의해 이용되어 하나 이상의 블록의 암호화 출력을 생성한다. 한 실시예에서, 제1 암호화 함수는, 임의의 개수의 평문 블록들에 대한 고정된 길이 해시 값을 생성할 보안 해시 함수일 수 있다. 또 다른 실시예에서, 제1 암호화 함수는, 각각의 입력 평문 블록에 대한 암호문 블록을 생성하는 블록 암호 함수일 수 있다. 또한, 블록 암호 함수는 입력으로서 초기화 벡터를 추가로 요구하며, 여기서, IV는 고려되는 암호 시스템에 대해 전형적으로 카운터 기반이다.
복수 블록의 평문은 입력/출력(I/O) 인터페이스를 통해 수신될 수 있고, 한 실시예에서는, 음성 또는 비디오 데이터일 수 있다. 대안으로서, 평문은 내부 프로세서에서 생성될 수 있다. 암호화 함수에 의해 이용되는 키(상기에서 설명된 첫 번째 것 및 아래에서 논의될 두 번째 것)는, 프로세서의 일부일 수 있는 로컬 키 생성기를 이용하여 생성될 수 있다. 또 다른 실시예에서, 키는 오버-디-에어 전송을 통해 안전하게 수신될 수 있다.
단계 1220에서, 하나 이상의 블록의 암호화 출력에 기초하여 태그(또는 인증 코드)가 생성된다. 제1 암호화 함수가 보안 해시 함수인 실시예에서, 태그는 해시된 출력(hashed output)의 일부일 수 있다. 제1 암호화 함수가 블록 암호 함수인 다른 실시예에서, 태그는 마지막 블록의 암호문의 일부일 수 있다. 위에서 논의된 바와 같이, 블록 암호 함수는, PCBC, CTR, OFB, CFB 또는 CBC 모드에서 동작할 수 있고, 임의의 기저 암호 엔진을 이용할 수 있다. 제1 암호화 함수를 이용한 태그의 생성은, 2 패스 개선된 인증형 암호화 방식의 제1 패스이고, 방법의 인증 목표를 달성한다.
단계 1230에서, 카운터 기반의 IV 및 단계 1220에서 생성된 태그에 기초하여 초기화 벡터가 생성된다. 제1 암호화 함수가 블록 암호 함수인 실시예에서, 카운터 기반의 IV는 블록 암호 함수에 대한 입력으로서 이용된 것과 동일하다. 이 단계에서 생성된 IV는, 2 패스 개선된 인증형 암호화 방법의 프라이버시 목표를 달성하기 위해 제2 패스에서 이용된다. IV는 제1 암호화 함수에 의해 생성된 태그의 함수이므로, 이 새로운 IV는 데이터 의존적이며, 이것을 카운터 기반의 IV와 결합하는 것은, 카운터 메커니즘이 리셋되는 시나리오에서 새로운 IV가 반복되지 않는 것을 보장한다.
단계 1240에서, 데이터 의존적 IV, 키 및 평문 블록들은, 복수 블록의 암호문을 생성하는 제2 암호화 함수에 대한 입력으로서 이용된다. 일부 실시예들은, 데이터 의존적 IV를 이용하여 평문 블록들을 암호화하기 위해 제2 암호화 함수로서 상기 열거된 블록 암호 함수들 중 임의의 하나를 이용한다. 이것은, 이 단계에서 생성된 복수 블록의 암호문이 오버 디 에어로 전송될 때, 그들의 보안이 훼손되지 않고 유지되는 것을 보장한다.
단계 1250에서, 단계 1240에서 생성된 복수 블록의 암호문 및 단계 1220에서 생성된 태그가 전송된다. 카운터 기반의 암호 시스템에서, 일단 노드가 동기화되고 나면, 카운터 기반의 IV는 요구되는 순서로 생성될 수 있고, 따라서, IV를 오버 디 에어로 전송할 필요가 없다.
도 13은, 본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 방법에 대한 플로차트이다. 일부 실시예들에서, 플로차트(1300)에서 단계들의 순서는 변경될 수 있다. 또한, 플로차트(1300)의 단계들 중 일부는 생략되거나 추가 단계가 더해질 수 있다.
도 4 내지 도 6 및 도 9 내지 도 11을 참조하면, 방법(1300)은 단계 1310에서 시작하고, 여기서, 태그 및 암호문 블록들(1200에서 생성됨)이 수신된다. 한 실시예에서, 암호문 블록들 및 태그는 별개로 수신될 수 있다. 또 다른 실시예에서, 암호문과 태그는, 동일한 블록, 패킷 또는 전송의 일부로서 연결되어 수신될 수 있다.
단계 1320에서, 카운터 기반의 IV 및 단계 1310에서 수신된 태그에 기초하여 초기화 벡터가 생성된다. 블록 암호 함수인 제1 암호화 함수는, 이 데이터 의존적 IV 및 키를 이용하여 수신된 블록들을 암호문으로 복호화하고, 프라이버시 목표를 달성하는 복수 블록의 평문을 생성한다.
단계 1330에서, 평문은 적어도 키를 이용하여 제2 암호화 함수에 의해 재암호화된다. 한 실시예에서, 제2 암호화 함수는, 입력으로서 카운터 기반의 IV를 요구하는 블록 암호 함수일 수 있다. 블록 암호 함수는 평문의 각각의 입력 블록에 대한 암호문 블록을 생성할 것이다. 또 다른 실시예에서, 제2 암호화 함수는 보안 해시 함수일 수 있고, 복수 블록의 평문은 단일 출력 암호문 블록으로 해싱될 수 있다. 역시 또 다른 실시예에서, 보안 해시 함수는 각각의 블록의 평문에 대해 독립적으로 이용될 수 있음으로써, 각각의 입력 블록의 평문에 대한 해시된 출력 블록을 생성할 수 있다.
단계 1340에서, 이전 단계에서 생성된 암호문 블록들로부터 제2 태그가 생성된다. 예를 들어, 제2 암호화 함수가 해시 함수이고 단일 해시된 출력 블록이 생성되었다면, 태그는 그 출력 암호문 블록의 일부일 수 있다. 다른 실시예에서, 제2 암호화 함수가 복수의 출력 암호문 블록을 생성했다면, 태그는 암호문 블록들 중 최종 블록의 암호문으로부터 생성될 수 있다.
단계 1350에서, 단계 1340에서 생성된 제2 태그는 단계 1310에서 수신된 태그와 비교되고, 두 태그가 동일하다는 결정이 인증 목표를 완료한다.
본 발명의 한 실시예에 따른, 개선된 인증형 암호화를 위한 트랜시버(1405)가 도 14에 도시되어 있다. 이 트랜시버는 본 명세서에서 설명된 방법들과 함께 이용될 수 있는 예로서 제공된 것일 뿐이다. 프로세서(1401)는, 인터페이스(1420)를 통해 키 생성기(1430), 암호화 모듈(1410) 및 복호화 모듈(1415)과 인터페이스하는 메모리(1403)에 접속된다. 키 생성기(1430)는 암호화 모듈(1410) 및 복호화 모듈(1415)에 대해 본 명세서에서 설명된 2 패스 개선된 인증형 암호화 방법의 양쪽 패스에 대한 공통 키를 생성하도록 구성될 수 있다. 모듈들 또는 프로세서(1401)는 IV를 생성할 수 있는 반면, 평문은 입력/출력(I/O) 인터페이스(1435)로부터 수신되고, I/O 인터페이스(1435)에 접속된 안테나(1425)는 암호문 및 태그를 전송하는데 이용될 수 있다.
한 실시예에서, 키 생성기(1430), 암호화 모듈(1410) 및 복호화 모듈(1415)은 프로세서(1401)에 내장될 수 있다. 또 다른 실시예에서, 암호화 및 복호화 모듈은 FPGA(Field Programmable Gate Array)로 구현될 수 있고 키 생성기는 소프트웨어로 구현될 수 있다. 역시 또 다른 실시예에서, 암호화 및 복호화 모듈 뿐만 아니라 키 생성기는, ARM 또는 기타의 프로세서에서 소프트웨어로 구현될 수 있다.
도 14에 도시된 프로세서(1401)는 컴포넌트 디지털 프로세서를 포함할 수 있고 메모리(1403)에 저장된 컴퓨터 실행가능한 프로그램 명령어를 실행하도록 구성될 수 있다. 예를 들어, 컴포넌트 디지털 프로세서는, 일부 실시예들에 따라, 랜덤 키스트림을 수신 또는 생성하고, 랜덤 시작 포인트 및 셔플링된 리스트를 생성하고, 랜덤 시작 포인트 및 셔플링된 리스트에 기초하여 베이스 주파수, 대역 주파수 및 지터 값을 생성하고, 생성된 주파수 호핑 시퀀스에 의해 명시된 상이한 주파수들 상에서 통신하기 위한 하나 이상의 컴퓨터 프로그램을 실행할 수 있다.
프로세서(1401)는, 링크 품질 메트릭, 평균 비용 함수 및 레이트 손실 비용 함수, 및 최소화 및 선택 동작의 계산을 위한 다양한 구현 뿐만 아니라, 마이크로프로세서, 디지털 신호 프로세서(DSP), ASIC(application-specific integrated circuit), 하나 이상의 필드 프로그래머블 게이트 어레이(FPGA), 상태 머신 등을 포함할 수 있다. 프로세서(1401)는, 프로그램가능한 로직 제어기(PLC), 프로그램가능한 인터럽트 제어기(PIC), 프로그램가능한 로직 디바이스(PLD), 프로그램가능한 판독 전용 메모리(PROM), 전자적으로 프로그램가능한 판독 전용 메모리(EPROM 또는 EEPROM), 또는 또 다른 유사한 디바이스 등의 프로그램가능한 전자 디바이스를 더 포함할 수 있다.
메모리(1403)는, 프로세서(1401)에 의해 실행될 때, 프로세서(1401)로 하여금 본 명세서에 설명된 것들 등의 다양한 단계를 수행하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체의 예는, 프로세서(1401)에 컴퓨터 판독가능한 명령어를 제공할 수 있는 전자, 광학, 자기 또는 기타의 저장 디바이스 또는 전송 디바이스를 포함하지만 이것으로 제한되는 것은 아니다. 컴퓨터 판독가능한 매체의 다른 예는, 플로피 디스크, CD-ROM, 자기 디스크, 메모리 칩, ROM, RAM, ASIC, 구성된 프로세서, 임의의 광학 매체, 임의의 자기 테이프, 또는 컴퓨터 프로세서가 데이터에 액세스할 수 있는 기타 임의의 매체를 포함하지만, 이것으로 제한되는 것은 아니다. 또한, 다양한 다른 디바이스들은, 라우터, 사설 또는 공공 네트워크, 또는 기타의 전송 디바이스 등의, 컴퓨터 판독가능한 매체를 포함할 수 있다. 설명된 프로세서(1401) 및 처리는 하나 이상의 구조물 내에 있을 수 있고, 하나 이상의 구조물에 걸쳐 분산될 수도 있다.
본 주제가 특정한 실시예에 관하여 상세히 설명되었지만, 본 기술분야의 통상의 기술자라면 상기 내용의 이해를 통해, 이러한 실시예들의 수정, 변형, 및 균등물들을 용이하게 생성할 수 있을 것이라는 것을 인식할 것이다. 예를 들어, 하나 이상의 실시예의 피쳐들은 본 발명의 범위를 벗어나지 않고 다른 실시예의 하나 이상의 피쳐들과 결합될 수 있다. 따라서, 본 개시는 제한이 아닌 예시의 목적을 위해 제시되었고, 본 기술분야의 통상의 기술자에게 용이하게 명백한 바와 같이, 본 주제에 대한 이러한 수정, 변형, 및/또는 추가의 포함을 배제하지 않는다는 것을 이해하여야 한다.

Claims (20)

  1. 개선된 인증형 암호화(improved authenticated encryption)를 위한 시스템으로서,
    제1 암호화 함수, 복수 블록의 평문 및 키를 이용하여 하나 이상의 블록의 암호화 출력을 생성하고;
    상기 하나 이상의 블록의 암호화 출력에 기초하여 제1 태그를 생성하며;
    카운터 및 상기 제1 태그에 기초하여 제1 초기화 벡터를 생성하고;
    제2 암호화 함수, 상기 복수 블록의 평문, 상기 제1 초기화 벡터 및 상기 키를 이용하여 복수 블록의 암호문 ―상기 제2 암호화 함수는 블록 암호(block cipher)이고, 상기 제1 초기화 벡터 및 상기 키는 상기 제2 암호화 함수에 대한 입력들임― 을 생성하도록
    구성된 암호화 및 인증 코드 생성 모듈;
    상기 복수 블록의 암호문 및 상기 제1 태그를 전송하도록 구성된 전송기;
    상기 복수 블록의 암호문 및 상기 제1 태그를 수신하도록 구성된 수신기; 및
    상기 제2 암호화 함수, 상기 복수 블록의 암호문, 상기 제1 초기화 벡터 및 상기 키를 이용하여 상기 복수 블록의 평문을 생성하고;
    상기 제1 암호화 함수, 상기 복수 블록의 평문 및 상기 키를 이용하여 상기 하나 이상의 블록의 암호화 출력을 생성하며;
    상기 하나 이상의 블록의 암호화 출력에 기초하여 제2 태그를 생성하고;
    상기 제1 태그와 상기 제2 태그를 비교하도록
    구성된 복호화 및 인증 코드 검증 모듈
    을 포함하는, 시스템.
  2. 제1항에 있어서, 상기 제1 암호화 함수는 보안 해시 함수(secure hash function)이고, 상기 제2 암호화 함수는 블록 암호 엔진을 포함하며, 상기 블록 암호 엔진은 대칭 키 암호화 함수를 포함하는, 시스템.
  3. 제2항에 있어서, 상기 보안 해시 함수는, SHA-x(Secure Hash Algorithm), MDx(Message Digest), RIPEMD-x(RACE Integrity Primitives Evaluation Message Digest) 및 BLAKE-x로 구성된 그룹으로부터 선택되는, 시스템.
  4. 제1항에 있어서, 상기 제1 암호화 함수는 블록 암호이고, 제2 초기화 벡터 및 상기 키는 상기 제1 암호화 함수에 대한 입력들이며, 상기 제1 초기화 벡터의 길이는 상기 제2 초기화 벡터의 길이와 동일한, 시스템.
  5. 제4항에 있어서, 상기 제1 및 상기 제2 암호화 함수들 각각은, PCBC(Propagating Cipher Block Chaining), CTR(Counter), OFB(Output Feedback), CFB(Cipher Feedback) 및 CBC(Cipher Block Chaining)로 구성된 그룹으로부터 선택되는, 시스템.
  6. 제4항에 있어서, 상기 제1 및 상기 제2 암호화 함수 각각은 블록 암호 엔진을 포함하고, 상기 블록 암호 엔진은 대칭 키 암호화 함수를 포함하는, 시스템.
  7. 제6항에 있어서, 상기 대칭 키 암호화 함수는, DES(Data Encryption Standard), AES(Advanced Encryption Standard), IDEA(International Data Encryption Algorithm), AES128, AES192, AES256, Triple DES, RC5 및 Blowfish로 구성된 그룹으로부터 선택되는, 시스템.
  8. 제4항에 있어서, 상기 제1 초기화 벡터는, 상기 제2 초기화 벡터와 상기 제1 태그의 XOR이고, 상기 제1 태그는 상기 제2 초기화 벡터의 길이까지 제로-패딩되는(zero-padded), 시스템.
  9. 제4항에 있어서, 상기 제1 초기화 벡터는 상기 제2 초기화 벡터의 일부와 상기 제1 태그의 일부의 연결(concatenation)인, 시스템.
  10. 제4항에 있어서, 상기 제2 초기화 벡터는 상기 제1 태그이고, 상기 제1 태그는 상기 제1 초기화 벡터의 길이까지 제로-패딩되는, 시스템.
  11. 제4항에 있어서, 상기 하나 이상의 블록의 암호화 출력의 마지막 블록은 상기 하나 이상의 블록의 암호화 출력의 2개 이상의 이전 블록의 함수이고, 상기 2개 이상의 이전 블록은 병렬로 생성되는, 시스템.
  12. 제1항에 있어서, 상기 카운터는 불규칙 증가(irregular increment)를 포함하는, 시스템.
  13. 제1항에 있어서, 상기 카운터는, GPS 신호로부터의 시간 필드(time field), 채널 번호, 및 슬롯 시작 시간 중 하나 이상에 기초하는, 시스템.
  14. 제1항에 있어서, 상기 제1 태그는 상기 하나 이상의 블록의 암호화 출력의 일부인, 시스템.
  15. 개선된 인증형 암호화를 위한 암호화 및 인증 코드 생성을 위한 방법으로서,
    제1 암호화 함수, 복수 블록의 평문 및 키를 이용하여 하나 이상의 블록의 암호화 출력을 생성하는 단계;
    상기 하나 이상의 블록의 암호화 출력에 기초하여 태그를 생성하는 단계;
    카운터 및 상기 태그에 기초하여 초기화 벡터를 생성하는 단계;
    제2 암호화 함수, 상기 복수 블록의 평문, 상기 초기화 벡터 및 상기 키를 이용하여 복수 블록의 암호문 ―상기 제2 암호화 함수는 블록 암호이고, 상기 초기화 벡터 및 상기 키는 상기 제2 암호화 함수에 대한 입력들임― 을 생성하는 단계; 및
    상기 복수 블록의 암호문 및 상기 태그를 전송하는 단계
    를 포함하는 방법.
  16. 제15항에 있어서, 상기 제1 암호화 함수는 보안 해시 함수이고, 상기 제2 암호화 함수는 블록 암호 엔진을 포함하며, 상기 블록 암호 엔진은 대칭 키 암호화 함수를 포함하는, 방법.
  17. 제15항에 있어서, 상기 제1 암호화 함수는 블록 암호이고, 제2 초기화 벡터 및 상기 키는 상기 제1 암호화 함수에 대한 입력들이며, 상기 제1 초기화 벡터의 길이는 상기 제2 초기화 벡터의 길이와 동일한, 방법.
  18. 개선된 인증형 암호화를 위한 복호화 및 인증 코드 검증을 위한 방법으로서,
    상기 복수 블록의 암호문 및 제1 태그를 수신하는 단계;
    제1 암호화 함수, 상기 복수 블록의 암호문, 초기화 벡터 및 키를 이용하여 복수 블록의 평문을 생성하는 단계 ―상기 초기화 벡터 및 상기 키는 제1 암호화 함수에 대한 입력들이고, 상기 제1 암호화 함수는 블록 암호이며, 상기 초기화 벡터는 카운터 및 상기 제1 태그에 기초함―;
    제2 암호화 함수, 상기 복수 블록의 평문 및 상기 키를 이용하여 하나 이상의 블록의 암호화 출력을 생성하는 단계;
    상기 하나 이상의 블록의 암호화 출력에 기초하여 제2 태그를 생성하는 단계; 및
    상기 제1 태그와 상기 제2 태그를 비교하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서, 상기 제1 암호화 함수는 보안 해시 함수이고, 상기 제2 암호화 함수는 블록 암호 엔진을 포함하며, 상기 블록 암호 엔진은 대칭 키 암호화 함수를 포함하는, 방법.
  20. 제18항에 있어서, 상기 제1 암호화 함수는 블록 암호이고, 제2 초기화 벡터 및 상기 키는 상기 제1 암호화 함수에 대한 입력들이며, 상기 제1 초기화 벡터의 길이는 상기 제2 초기화 벡터의 길이와 동일한, 방법.
KR1020197032750A 2017-04-05 2018-04-04 카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들 KR102609221B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/480,203 US10560269B2 (en) 2017-04-05 2017-04-05 Methods and systems for improved authenticated encryption in counter-based cipher systems
US15/480,203 2017-04-05
PCT/US2018/026100 WO2018187481A1 (en) 2017-04-05 2018-04-04 Methods and systems for improved authenticated encryption in counter-based cipher systems

Publications (2)

Publication Number Publication Date
KR20200002891A true KR20200002891A (ko) 2020-01-08
KR102609221B1 KR102609221B1 (ko) 2023-12-05

Family

ID=63710428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032750A KR102609221B1 (ko) 2017-04-05 2018-04-04 카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들

Country Status (6)

Country Link
US (1) US10560269B2 (ko)
EP (1) EP3607694A4 (ko)
JP (1) JP7008725B2 (ko)
KR (1) KR102609221B1 (ko)
CA (1) CA3059104A1 (ko)
WO (1) WO2018187481A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3661115B1 (en) * 2017-09-01 2024-01-17 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
EP3454502B1 (en) * 2017-09-07 2020-08-05 Nxp B.V. Transceiver system
US10862670B2 (en) * 2018-05-18 2020-12-08 Infineon Technologies Ag Automotive nonce-misuse-resistant authenticated encryption
EP3584991A1 (en) * 2018-06-18 2019-12-25 Koninklijke Philips N.V. Device for data encryption and integrity
EP3697020A1 (de) * 2019-02-15 2020-08-19 Siemens Aktiengesellschaft Verfahren zum betreiben von im zähler-modus betriebenen schlüsselstromgeneratoren zur sicheren datenübertragung, schlüsselstromgenerator mit zähler-modus-betrieb zur sicheren datenübertragung und computer-programm-produkt zur schlüsselstromerzeugung
DE102019003673B3 (de) * 2019-05-24 2020-06-25 Giesecke+Devrient Mobile Security Gmbh Seitenkanalsichere Implementierung
US11429751B2 (en) * 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
US11552782B2 (en) * 2019-07-15 2023-01-10 University Of Florida Research Foundation, Incorporated Securing system-on-chip (SoC) using incremental cryptography
US11347895B2 (en) * 2019-12-03 2022-05-31 Aptiv Technologies Limited Method and system of authenticated encryption and decryption
US20220278826A1 (en) * 2021-02-26 2022-09-01 International Business Machines Corporation Encrypted communication using counter mode encryption and secret keys
US20230171237A1 (en) * 2021-11-28 2023-06-01 Uab 360 It Authentication procedure in a virtual private network
WO2023164167A2 (en) * 2022-02-25 2023-08-31 Cryptography Research, Inc. Techniques and devices for configurable memory encryption and authentication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080240424A1 (en) * 2003-01-24 2008-10-02 Tae Gon Park Cryptographic systems and methods supporting multiple modes
US20080294926A1 (en) * 2007-05-21 2008-11-27 Hamed Eshraghian Globally synchronized timestamp value counter
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US20110238989A1 (en) * 2010-03-24 2011-09-29 Diversinet Corp. Method and system for secure communication using hash-based message authentication codes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
WO2007059558A1 (en) * 2005-11-23 2007-05-31 The University Of Sydney Wireless protocol for privacy and authentication
US20080044012A1 (en) * 2006-08-15 2008-02-21 Nokia Corporation Reducing Security Protocol Overhead In Low Data Rate Applications Over A Wireless Link
WO2010086855A2 (en) * 2009-01-29 2010-08-05 Fortress Applications Ltd. System and methods for encryption with authentication integrity
JP2011040932A (ja) * 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
US8805963B2 (en) * 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US9143324B2 (en) * 2010-06-07 2015-09-22 Protected Mobility, Llc Secure messaging
US8767959B2 (en) * 2011-11-30 2014-07-01 Red Hat, Inc. Block encryption
US20140044262A1 (en) * 2012-08-09 2014-02-13 Cisco Technology, Inc. Low Latency Encryption and Authentication in Optical Transport Networks
US9917695B2 (en) * 2012-11-29 2018-03-13 Blackberry Limited Authenticated encryption method using working blocks
US9787475B2 (en) * 2013-03-04 2017-10-10 Nec Corporation Device, method, and program for message authentication tag generation
US9407437B1 (en) 2014-03-25 2016-08-02 Amazon Technologies, Inc. Secure initialization vector generation
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080240424A1 (en) * 2003-01-24 2008-10-02 Tae Gon Park Cryptographic systems and methods supporting multiple modes
US20080294926A1 (en) * 2007-05-21 2008-11-27 Hamed Eshraghian Globally synchronized timestamp value counter
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US20110238989A1 (en) * 2010-03-24 2011-09-29 Diversinet Corp. Method and system for secure communication using hash-based message authentication codes

Also Published As

Publication number Publication date
EP3607694A1 (en) 2020-02-12
JP2020513117A (ja) 2020-04-30
JP7008725B2 (ja) 2022-01-25
CA3059104A1 (en) 2018-10-11
US10560269B2 (en) 2020-02-11
EP3607694A4 (en) 2020-12-30
KR102609221B1 (ko) 2023-12-05
WO2018187481A1 (en) 2018-10-11
US20180294968A1 (en) 2018-10-11

Similar Documents

Publication Publication Date Title
KR102609221B1 (ko) 카운터 기반의 암호 시스템들에서 개선된 인증형 암호화를 위한 방법들 및 시스템들
US7827408B1 (en) Device for and method of authenticated cryptography
US9172529B2 (en) Hybrid encryption schemes
Harba Secure data encryption through a combination of AES, RSA and HMAC
EP3476078B1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
US20160119120A1 (en) Method and apparatus for public-key encrypted communication
CN107534558B (zh) 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统
KR102172181B1 (ko) 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
WO2007059558A1 (en) Wireless protocol for privacy and authentication
KR101675332B1 (ko) 차량용 데이터 통신 방법 및 그를 이용하는 차량용 전자 제어 장치 및 시스템
US20220191040A1 (en) Devices and methods for the generating and authentication of at least one data packet to be transmitted in a bus system (bu), in particular of a motor vehicle
Lucks BEAST: A fast block cipher for arbitrary blocksizes
EP2571192A1 (en) Hybrid encryption schemes
KR20060011999A (ko) Des 알고리즘에 의거한 암호화 기법
KR101934899B1 (ko) 인증 암호 장치 및 방법
US11115187B2 (en) Apparatus and method for block ciphers for real-time data transmission
KR20040083794A (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
Richter et al. Physical layer security vs. network layer secrecy: Who wins on the untrusted two-way relay channel?
WO2003049363A1 (en) System and method for symmetrical cryptography
Hussein et al. Design and simulation of authenticated encryption AENOTP stream cipher algorithm
KR20200028782A (ko) 실시간 데이터 전송을 위한 패턴 암호 블록 모드에 기초한 암호화 방법 및 장치
Hartl et al. Subverting Counter Mode Encryption for Hidden Communication in High-Security Infrastructures
US11838424B2 (en) Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
Noura et al. A new efficient secure coding scheme for random linear network coding
KR100864092B1 (ko) 블록암호의 블록 체이닝 모드를 사용한 패킷 암호화 방법,이를 이용한 패킷 암/복호화 서비스 제공 방법

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