KR20240015147A - 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 - Google Patents

메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 Download PDF

Info

Publication number
KR20240015147A
KR20240015147A KR1020247002132A KR20247002132A KR20240015147A KR 20240015147 A KR20240015147 A KR 20240015147A KR 1020247002132 A KR1020247002132 A KR 1020247002132A KR 20247002132 A KR20247002132 A KR 20247002132A KR 20240015147 A KR20240015147 A KR 20240015147A
Authority
KR
South Korea
Prior art keywords
individual
plaintext
block
blocks
ciphertext
Prior art date
Application number
KR1020247002132A
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 나그라비젼 에스에이알엘
Publication of KR20240015147A publication Critical patent/KR20240015147A/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES 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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

평문 메시지(10)로부터 암호문 메시지(50) 및 글로벌 태그(52)를 제공히기 위한 라운드 반복을 사용하는 블록 암호 방법 및 장치가 제공딘다. 평문 메시지는 복수의 순서화된 블록(11)으로 변환되고, 이들은 단일 암호 키를 사용하여 상기 입력 데이터(20)를 부호화함으로써 제1 세그먼트와 제2 세그먼트를 포함하는 크립토그램(cryptogram)(30)와, 제1 세그먼트(31), 현재의 평문 블록(11), 및 제2 세그먼트(32)를 피연산자로서 사용하는 제1 연산(41)을 수행함으로써 암호문 블록(51)을 계산하기 위해 라운드동안 연속적으로 처리된다. 각각의 다음번 라운드마다. 입력 데이터는 현재의 암호문 블록과 업데이트된 재생가능한 데이터에 기반하여 새롭게 결정된다. 암호문 메시지는 피연산자로서 계산된 인증 로컬 태그를 사용하는 제2 연산(42)에 의해 암호문 블록과 로컬 태그를 연결하는 것에 의해 결정된다.

Description

메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치{BLOCK CRYPTOGRAPHIC METHOD FOR ENCRYPTING/DECRYPTING MESSAGES AND CRYPTOGRAPHIC DEVICES FOR IMPLEMENTING THIS METHOD}
본 발명은 인증된 부호화(authenticated encryption,AE)를 위한 블록 사이퍼 모드(block chpher mode) 동작(opearation)을 사용한 메시지 부호화 및 역동작 모드를 이용한 메시지 해독화에 관한 것이다. 보다 구체적으로, 본 발명은 인증된 부호화 방식(schemes)에 관한 것으로, 특히, 소위 카운터 사이퍼 피드백(CCFB: Counter Cipher FeedBack) 방식의 개선에 관한 것이다. 또한, 본 발명은 또한 AEAD (Associated Data)에 의한 인증된 부호화 방식, 특히 CCFB+H 방식의 개선에 대한 확장을 포함한다. 마지막으로, 본 발명은 또한 동일한 방식을 사용하는 역 암호화 동작에 관한 것이다.
민감한 메시지를 첫번째 엔티티에서 두번째 엔티티로 전송해야 하는 경우 메시지의 프라이버시와 무결성/신뢰성(authenticity)을 보호하는 것이 일반적이다. 과거에는 일반적으로 메시지 인증 코드 (MAC) 또는 디지털 서명을 사용하여 처리되는 무결성 보호가 완전히 다른 수단에 의해 달성되어야 하는 목표였기 때문에, 이 두 가지 보안 목표는 분리되어 처리되었다.
분리된 인증 모드로 기밀보장 모드를 구현하는 것이 어렵고 오류가 발생할 수 있다는 것이 관찰된 후, 기밀보장 및 무결성/신뢰성을 단일 암호화 스킴 내에 결합한 연산 모드를 제공하는 것이 제안되었다. 연산 모드는 암호화 알고리즘, 특히 대칭 부호화 방식에 기반한 임의의 알고리즘의 효과를 향상시키는 기술로 간주될 수있다. 인증된 부호화(AE(Authenticated Encryption))는 연산의 하나의 컴팩트 모드에서 처리된 메시지의 프라이버시 및 무결성/신뢰성을 동시에 보호하도록 설계되었다. 예를 들어, 공급자가 중요한 정보를 클라이언트에 보내려고 할 때 정보가 기밀로 유지되는 데이터 프라이버시가 요구된다. 또한 무결성 및 신뢰성은 정보를 전송한 엔티티가 진정한 이전의 제공자이고 정보가 전송중 변경되지 않을 것을 더 요구한다.
AE 모드는 데이터 상의 패스의 수에 따라 분류될 수 있다. 일부 AE 모드는 데이터에 대해 하나의 패스만을 이용하는 반면 다른 모드는 두 개의 패스를 이용한다. 단일 패스 모드는 메시지를 한 번 처리한 직후 인증된 부호화를 제공한다. 2 패스 모드는 데이터를 두 단계(two phases)로 처리한다(그러나 여전히 부호화 및 인증에 대해 하나의 키만을 사용함).
메시지가 그러한 "통합식" 인증된 부호화 방식의 수단에 의해 암호화 될 때, 암호문(chiphertext)은 추가 정보와 함께 전송될 수 있다. 이는 부호화되지 않은 헤더를 부호화된 메시지에 추가할 수 있음을 의미한다. 이러한 패킷 헤더 (플레인텍스트(plaintext)에 바운드되는 클리어텍스트 헤더)는 메시지와 함께 인증되어야하지만 부호화 할 필요는 없다. 또한, 일반적으로 네트워크 패킷에 있어서, 페이로드는 부호화되고 인증되어야 하지만 헤더는 인증만 받으면 된다(즉, 부호화되지 않은 상태로 유지되어야 함). 그 이유는 라우터가 패킷을 올바르게 라우팅하기 위해서 라우터가 패킷의 헤더를 판독할 수 있어야 하기 때문이다. 일부의 연산 모드는 암호문 메시지와 관련된 데이터를 효율적으로 인증하는 데 특히 적합하다. 이러한 모드를 AEAD(Authenticated Encryption with Associated Data)로 언급된다. 이들은 관련 데이터가 그들의 스킴 내에 입력으로서 포함되는 것을 허용한다.
AE 및 AEAD 스킴(schemes)의 단점 중 하나는 1차 차동 전력 분석(DPA: Differential Power Analysis) 공격을 받기 쉽다는 것이다. 전력 분석은 해커가 암호화 장치의 전력 소비를 연구하는 사이드 채널 공격(비-침습적(non-invasive) 공격)의 한 형태이다. 이러한 장치는 마이크로 프로세서 카드, 배지(badge), 키, 인쇄 회로 기판의 집적 회로 칩, 디스크램블러 모듈 내의 보안 모듈 또는 소프트웨어 형태로만 구현된 기능으로 언급될 수 있다. 회로의 전류 및 전압 입력 및 출력(또는 장치의 타이밍 또는 전자기 방출)을 연구함으로써 정상적인 장치 동작 중에 사용되는 암호화 키와 같은 비밀 정보를 발견할 수 있다. 실제로, 일부 연산은 보다 많은 전력 소모를 필요로 한다. 따라서 디지털 오실로스코프 및 종래의 퍼스널 컴퓨터를 이용함으로써 변동(variations) 및 스파이크(spikes)의 분석은 암호해독에 대한 유용한 정보로 유도될 수 있다.
단순 전력 분석(SPA)은 장치의 전력 소비를 직접 관찰하여 비밀 키를 복구하는 반면 DPA 공격은 통계 기술을 사용하여 다중 전력 소비 측정으로부터 비밀 키 정보를 추출한다. DPA는 복수의 암호화 연산, 일반적으로 수천의 연산으로부터 수집된 데이터를 통계적으로 분석하여 암호 계산 내의 중간값을 계산할 수 있는 진보된 형태의 전력 분석이다. DPA 공격은 신호 처리 및 오류 수정 속성을 가지며 이들은 SPA를 사용하여 분석되는 많은 노이즈를 포함한 측정값으로부터 비밀을 추출할 수 있다. DPA 공격을 사용하여 해커는 취약한 암호화 시스템에서 수행 되는 여러 암호화 연산으로부터 전력 소비 측정을 분석하는 것으로 비밀 키를 얻을 수 있다.
이러한 사이드 채널 공격을 해결하기 위해 대책이 개발되었다. 이러한 대책 중 일부는 암호화 알고리즘의 변경을 포함하는데, 예를 들면 암호화 연산에서 생존한 수학적 관계에 의해 실제값과 관련된 데이터에 대해 암호화 연산을 수행하는 것이다. 한가지 방법은 암호화 시스템에 의해 조작된 데이터를 임의로 추출하여 파라미터를 감추고 여전히 정확한 결과를 산출하는 것을 포함한다. 예측할 수 없는 정보가 중간값에 내포되어 전력 소비 측정(사이드 채널)과 본래의 중간값 사이의 상관 관계가 감소된다. 다른 방법에 따르면, 신호 대 잡음비(S/N)를 감소시키기 위해 신호의 진폭을 의도적으로 감소시킴으로써 원래의 신호를 가리는 것이 가능하다. 변형예에서, 신호대잡음비를 줄이기 위해 진폭 잡음 또는 일시적인 잡음을 전력 소비 측정에 추가할 수도 있다. 다른 대책은 예를 들어 전기 신호 동기화 해제를 위해 칩의 내부 클록 주파수를 변경하는 하드웨어의 수정을 포함하거나, 또는 암호화 시스템의 수명 동안 비밀을 지속적으로 리프레시하고 업데이트하는 암호화 프로토콜의 변경을 포함할 수 있다.
그러나 DPA 공격을 예방하는 것은 매우 어려운 일인데, 이는 전력 소비의 작은 변화조차도 취약점으로 이어질 수 있기 때문이다. 또한 이런 대책들은 특허로 보호되어 자유롭게 이용되지 않을 수 있다. 따라서, 이러한 단점을 적어도 부분적으로 극복하기 위한 새로운 AE 스킴이 제공될 필요가 있다.
본 발명은 전술한 바와 같은 단점을 적어도 부분적으로 극복할 수 있는 새로운 AE 스킴을 제공하는 것을 목적으로 한다.
DPA 공격에 대항하여 암호화 시스템을 보호하기 위한 새로운 대책을 제공하는 대신에, 본 발명은 DPA 공격을 염두에 두면서 향상된 연산 모드를 제안한다. 이를 위해, 본 발명은 DPA 공격을 무력화하는데 더 적합한 CCFB 스킴에 기초한 오러페이션 모드를 언급한다. 특히, 본 발명은 평문(plaintext) 메시지로부터 암호문과 암호문(ciphertext) 메시지를 인증하기 위한 글로벌 태그를 제공하기 위해 라운드 반복(round repetition)을 이용하는 블록 암호화 방법을 제안한다. 평문 메시지는 모두 동일한 비트 길이를 갖는 복수의 순서화된(ordered) 평문 블록으로 변환(구체적으로는 분할 및 패딩)된다. 이러한 평문 블록들 각각은 라운드 동안 현재의 평문 블록으로서 순차적 방식으로 연속적으로 처리된다. 이 방법은 다음의 액션을 포함한다.
- 레지스터에 첫 번째 데이터를 로딩하는 단계,
- 다음 단계를 수행함으로써 라운드를 실행하는 단계:
- 입력 데이터를 블록 암호화 알고리즘에 입력하기 위한 제1 단계로서, 상기 입력 데이터는 상기 레지스터의 데이터 및 재생가능한(reproducible) 데이터, 예를 들면 카운터 데이터 또는 임의의 다른 재생가능한 데이터열(data series)을 포함하는 제1 단계,
- 상기 블록 암호화 알고리즘 내에서 단일 암호화 키를 사용하여 상기 입력 데이터를 부호화함으로써 크립토그램(cryptogram)을 계산하는 제2 단계로서, 상기 크립토그램은 제1 세그먼트 및 제2 세그먼트를 포함하고, 제2 세그먼트는 인증 로컬 태그(authentication local tag)로서 정의되는 제2 단계,
- 피연산자(operand)로서 제1 세그먼트, 현재의 평문 블록 및 제2 세그먼트를 사용하여 제1 연산을 수행하는 것에 의해 암호문 블록을 계산하는 제3 단계,
- 전술한 모든 평문 블록이 그 라운드에서 처리되지 않은 한, 마지막 계산 된 암호문 블록을 레지스터로 리로딩하고 업데이트 함수, 예를 들면 증가 함수(incrementing function)을 상기 제1 단계를 다시 시작하여 새로운 라운드를 실행하기 이전에 재생가능한 데이터에 적용하는 단계,
- 모든 라운드에 의해 제공된 암호문 블록을 순서대로, 바람직하게는 전술한 순서대로 연결하여 암호문 메시지를 결정하는 단계;
- 레지스터에 최종 계산된 암호문 블록을 리로딩하고 전술한 라운드의 첫번째 두개의 단계들을 수행하기 이전에 재생가능한 데이터에 업데이트 함수를 적용하는 단계, 이어서
- 피연산자로서 모든 계산된 인증 로컬 태그를 이용하는 제2 연산에 의해 글로벌 태그를 계산하는 단계를 포함한다.
전술한 방법으로부터, 본 발명의 새로운 연산 모드는 CCFB(Counter Cipher FeedBack) 스킴에 기반한다는 것에 주목해야 한다. 엄밀히 말하면, CCFB 스킴은 원(one)-패스 솔루션의 구조와 매우 유사한 구조를 갖는 투(two)- 패스 AE 스킴이다. 개시된 혁신적인 방법은, 바람직하게는 부호화 및 인증 모두를 제공하기 위한 두가지 연산 모드, 즉 카운터 모드(CTR) 및 사이퍼 피드백(CFB) 모드의 비정상적인 조합을 채택한다. 본 실시예에 따르면, 크립토그램의 제2 세그먼트의 계산으로부터 기인한 인증 로컬 태그는 제2 패스 동안 글로벌 태그를 계산하는데만 사용될뿐 아니라, 각각의 암호문 블록을 계산하기 위한 제1 패스 동안에도 유리하게 사용된다. 따라서, 알려진 공격에 대한 내성(resistance)을 포함하지만 이에 제한되지 않는 보안 컴퓨팅 시스템의 연산에 대한 개선이 달성될 수 있는 것으로 제안된다.
추가적인 실시예는 전술한 방법을 구현하기 위한 장치를 설명한다. 바람직하게, 이들 장치 중 하나는 특히 메시지를 부호화하는데 전용되는 반면, 다른 장치는 역 프로세스를 위해 전용된다. 이들이 동일한 구성 요소를 포함한다는 것을 감안할 때, 이들 장치 모두는 매우 유사하며, 이하의 상세한 설명에서보다 구체적으로 설명될 것이다.
본 발명의 목적 및 장점은 독립 방법 청구항의 청구대상과 일치하는 암호화 방법 및 다른 독립 장치 청구항의 청구대상과 일치하는 장치 덕분에 의해 달성될 수 있다.
다른 장점들 및 실시 예들은 다음의 상세한 설명에 제시될 것이다.
본 발명에 따르면 전술한 과제가 달성될 수 있다.
본 발명은 첨부된 도면들에 의해 보다 더 이해될 수 있다.
도 1은 평문 메시지를 암호문 메시지로 변환하는 변환 프로세스를 개략적으로 도시한 도면,
도 2는 본 발명의 암호화 방법, 특히 암호화 페이즈(phase)의 예시적인 실시 예를 도시하는 흐름도,
도 3은 도 2에 기반한 방법의 부분적인 설명에 따른 다른 실시예를 도시한 도면,
도 4는 도 1과 유사하지만 복호화 페이즈와 연관된 도면,
도 5는 특히 본 방법의 임의의 페이즈(부호화 또는 복호화)를 구현하기위한, 본 발명의 암호화 방법의 임의적인 실시예를 구현하기 위한 장치의 실시예를 도시한 도면.
도 1을 참조하면, 도 1은 추가 입력 데이터(20)를 갖는 본 발명에 의해 처리 된 평문 메시지(M)(10), 추가 입력 데이터(20)를 갖는 평문 메시지(10)의 주요 변환 단계 및 상기 프로세스에 의해 출력된 상호보완 데이터(52)를 갖는 아호문 메시지(C)(50)를 개략적으로 나타낸다. 선택적으로, 평문 메시지(10)에는 평문 메시지(10)의 헤더와 통상적으로 관련된 연관 데이터(AD)(15)가 제공될 수도 있다.
바람직한 실시예에 따르면, 전술한 추가 입력 데이터(20)는 초기화 벡터 (IV)와 같은 제1 데이터(21)와, 임의의 디폴트 값으로 초기화(리셋)될 수 있는 재생가능(reproducible) 데이터(22)를 포함한다. 이 재생가능한 데이터는 바람직하게 카운터 데이터(CDt), 즉 카운터에 의해 제공된 값과 같은 데이터이다. 그러나, 엄격한 의미로 카운터에 의해 제공된 데이터로 그러한 데이터가 제한될 필요가 없기 때문에, 소위 재생가능한 데이터로 언급된다. "재생가능한(reproducible)"이라는 단어는 사용되기 이전에 이들이 미리정의되지 않는한 어떠한 랜덤 데이터라도 배제한다. 따라서, 전술한 재생가능한 데이터는 업데이트 함수 또는 갱신(renewal) 함수으로 간주 될 수 있는 재생가능한 프로세스 또는 함수으로 인해 재생될 수 있는 값과 같은 임의의 데이터를 의미하는 것으로 이해되어야 한다. 예를 들면, 이러한 프로세스 또는 함수는 해시 함수와 관련되거나 초기값에 적용되는 증가 또는 감소 함수와 관련될 수 있다. 또한 이는 미리 정의된 리스트나 일련의 임의적인 또는 의사적인(pseudo) 특정의 연속적인 순서로 취해진 난수를 재생가능한 데이터로서 사용할 수 있다. 바람직하게는, 이들 숫자의 모두는 임의적인 반복을 피하기 위해 상이할 수 있다. 본 발명의 설명에서, "카운터 데이터"라는 표현은 바람직한 실시예에 따라, 즉 비제한적인 방식의 예로서 사용된다. 상보적 데이터(52)는 태그, 구체적으로는 후술되는 바와 같이 복수의 로컬 태그로부터 결정되는 글로벌 태그(TG)로 언급된다. 글로벌 태그(52)는 프로세스 종단에서 암호문 메시지(50)를 인증하기 위한 인증 데이터로서 사용된다.
도 1에 도시된 바와 같이, 평문 메시지(10)는 복수의 평문 블록(m1, m2, m3, ... mi)으로 변환된다. 이 도면에서, 이들 각각의 평문 블록은 공통 참조 번호 11에 의해 식별된다. 평문 블록 메시지(10)를 복수의 평문 블록들(11)로 변환하는데 사용되는 변환 프로세스는 평문 메시지(10)를 동일한 비트 길이를 갖는 블록들로 분할하도록 의도된다. 평문 메시지(10)가 평문 블록의 비트 수의 배수가 아닌 비트 길이를 갖는 경우에, 변환 프로세스는 두 개의 최종 평문 블록들 중 적어도 하나(예를 들어, 최종 평문 블록 및/또는 첫 번째 것)를 적어도 하나의 디폴트 비트(예를 들어, 0과 동일한 비트)로 패딩(padding)하는 단계를 더 포함한다. 패딩 단계의 목적은 다른 블록들과 동일한 비트 길이를 최종 블록에 제공하기 위함이다.
평문 블록(11)은 특정 순서로 처리되어야만 하고, 따라서 암호문 메시지를 복호화하는 것을 목표로 하는 역 프로세스 중에 동일한 순서가 적용될 수 있다. 따라서, 평문 블록(11)은 순차적인 방식으로 배열된다. 대안으로, 이러한 특정 순서를 결정하기 위해 각 블록에는 식별 가능한 위치가 할당된다. 이러한 블록의 순서로 인해, 암호문 메시지(50)로부터 평문 메시지(10)를 재구성하는 것이 가능하게 된다. 바람직하게, 평문 메시지(10)가 블록(11)으로 분할 될 때, 블록들은 함께 혼합되지 않지만, 그들이 분할되어진 순서는 유지된다. 그러한 순서를 유지하는 것은 예를 들면 블록의 콘텐츠와 메시지(10) 내의 위치를 레코드에 저장하는 것으로 달성된다. 변형예에서, 인덱스는 블록 각각의 내용에 연관될 수 있으므로, 임의의 블록 mi , m2, m3, ... mi의 적당한 위치는 그 인덱스 1, 2, 3, ... i로 인해 검색될 수 있다.
이어서, 이들 평문 블록(11)의 각각은 이 방법의 라운드 R 동안 순차적인 방식으로 소위 현재 평문 블록으로서 연속적으로 처리된다. 각 라운드의 끝에서, 현재의 평문 블록(11)에 대응하여 암호문 블록(51)이 얻어진다. 예를 들어, 도 1에 도시된 평문 블록 m1은 라운드 출력에서 암호문 블록 c1을 제공한다.
각각의 라운드는 또한 태그, 구체적으로는 동일한 라운드에 의해 출력된 연관 암호문 블록(51)에 대응하는 로컬 태그(32)를 제공한다. 암호문 블록(51)을 계산을 가능하게 하는 반복 세트는 본 방법의 제1 패스를 구성한다. 일 실시예에서, 제2 패스는 계산된 모든 로컬 태그(32)를 사용함으로써 글로벌 태그(52)를 결정하는 것을 목표로 한다.
암호문 메시지(50)는 모든 암호문 블록(51)을 결합함으로써, 특히 전술한 순차적인 방식에 따라 평문 메시지(10) 내의 블록(11)과 암호문 메시지(50) 내의 대응하는 블록(51) 사이의 각각의 위치를 유지하여 체인을 형성하도록 연결됨으로써 획득된다. 연관 데이터(15)는 전형적으로 메시지(10)의 헤더 일 수 있고, 따라서 암호화되지 않은 채로 유지되고 단지 암호문 메시지(50)에 첨부된다. 프로세스의 끝에서 암호문 메시지(50), 그 연관 데이터(존재시)(15) 및 글로벌 태그(52)는 3 개의 통합된 연관 엔티티를 함께 형성한다.
본 발명을 구현하는 바람직한 방법을 도 2를 참조하여 이하에 보다 상세히 설명한다. 도 2는 복수의 반복(IT1, IT2, IT3,..., ITi)을 통해 부호화 동안 취해지는 액션 및 단계를 나타낸다. 이들 각각의 반복은 단계들 및 액션들의 끝에서 하나의 암호문 블록(51)을 제공한다.
제1 동작은 제1 데이터(21)를 레지스터(23)에 로딩하는 것이다. 도 2에 도시된 바람직한 실시예에서 도시된 것 처럼, 제1 반복(IT1)의 제1 데이터(21)는 임의의 랜덤 또는 의사 랜덤 생성기에 의해 생성될 수 있는 초기화 벡터(IV)이다. 다음 액션은 다음의 3개의 주요 단계를 수행함으로써 본 발명의 라운드를 실행한다.
라운드의 제1 단계는 입력 데이터(20)를 블록 암호 알고리즘(E)(35)에 입력하는데 사용된다.이 알고리즘은 DES, IDEA, AES 또는 임의의 다른 블록 암호 알고리즘으로 언급될 수 있는 일반적인 블록 암호화 스킴이다. 입력 데이터(20)는 레지스터(23)에 로드된 데이터, 즉 제1 데이터(21) 및 카운터 데이터(CDti)(22)를 포함한다. 카운터 데이터(22)는 카운터(CTR)(25)에 의해 제공된 값을 언급한다. 새로운 반복(ITn)이 착수될 때 마다 업데이트, 즉 증가(또는 감소)되기 때문에, 이 카운터는 (즉, 업데이트를 위한 유닛)으로서 간주될 수 있다. 따라서, 각 라운드는 새로운 카운터 데이터(CDt1, CDt2,... CDti, CDti+1)로 시작한다. 따라서 카운터 데이터는 소위 "넌스(nonce)", 즉 "한번 사용되는 번호"로 사용됩니다. 또한 카운터에 의해 제공되는 각각의 값은 모든 처리된 블록(11)에 대해 고유하다.
라운드의 제2 단계 동안, 단일 암호 키(K)(34)를 사용하여 입력 데이터(20)를 부호화함으로써, 크립토그램(30)이 계산되고 블록 암호 알고리즘(35)으로부터 출력된다. 이 크립토그램(30)은 제1 세그먼트(S1)(31) 제2 세그먼트(32)를 포함한다. 후자는 인증 태그(Tn), 특히 제1 세그먼트(31)를 인증하는 로컬 태그인 것으로 정의된다. 바람직하게는, 글로벌 태그(52)가 계산 될 때까지 또는 적어도 다음 라운드의 다음 로컬 태그(32)로 중간 계산이 수행될 때까지, 로컬 태그(32)는 메모리에 저장되고, 이 경우 글로벌 태그가 각 반복 동안 점차적으로 결정된다.
라운드의 제3 단계는 현재의 평문 블록(11)의 암호문 블록(51)을 계산하기 위해 충당된다. 이를 위해, 암호문 블록(51)은 제1 세그먼트 (31), 현재 평문 블록(11) 및 로컬 태그(32)를 피연산자로 사용하는 제1 연산(41)을 수행함으로써 결정된다. 따라서, 암호문 블록(51)은 3개의 데이터 상에서 수행되는 연산의 결과이다.
이 제1 연산(41)이 3 개의 피연산자를 사용하면, 이는 제1 연산자를 사용하는 제1 서브 오퍼레이션(OP1i)을 수행한 다음 제2 연산자를 사용하는 제2 서브 오퍼레이션(OP12)을 수행하는 두개의 단계를 수행한다. 통상적으로, 2개의 서브 - 오퍼레이션 OP11, OP12는 논리적 연산(부울 대수), 일반적으로 교환적 연산이다. 더 바람직하게는, 적어도 하나의 연산자는 배타적 OR 연산(XOR 연산)이다.
또한, XOR 서브-연산의 교환적 특성 때문에, 3개의 피연산자는 제1 연산 (41) 내에서 임의의 순서로 처리될 수 있다는 것에 유의해야 한다. 도 1에 일례로서 도시된 바와 같이, 현재 평문 블록(11)은 제1 서브 연산(OP11)에 의해 제1 세그먼트(31)로 처리되고, 이어서 이 제1 서브 연산의 결과는 제2 서브 연산(OP12)에 의해 로컬 태그(32)로 처리된다. 그 결과, 제2 서브 연산(OP12)는 암호문 블록(51)을 제공하고 제1 반복(IT1)을 종료한다.
XOR 연산과 같은 부울(boolean) 연산을 사용하는 대신에, 제2 서브 연산(OP12)은 입력으로 사용되는 두 개의 피연산자의 분포(distrubutions)를 혼합할 수 있는 임의의 다른 함수에 기초할 수 있다는 것에 유의해야 하며, 따라서 이 두 피연산자 중 하나가 알려지지 않으면, 주어진 암호 블록(51)(즉, 주어진 출력)에 대한 다른 피연산자를 계산하는 것이 불가능하다. 그럼에도 불구하고 이 함수는 분명히 역산될 수 있어야만 한다. 그렇지 않으면 복호화가 가능하지 않다. 예를 들어, 부호화 페이즈에서 연산으로서 모듈식 덧셈이 사용되면 복호화 단계에서 모듈식 덧셈 대신 모듈식 뺄셈이 사용된다. 따라서 복호화 페이즈에서 수행되는 연산은 부호화 페이즈에서 수행되는 연산의 반대가 된다.
XOR 연산이 가장 자연스러운 선택이지만, 모듈식 뺄셈 또는 모듈식 나눗셈이 복호화 페이즈에 사용되는 경우 부호화 페이즈에서 모듈식 덧셈 또는 모듈식 곱셈을 사용하여 이러한 연산을 수행 할 수 있다. 그러나 이러한 모듈식 연산은 다른 사이드 채널 공격에 사용될 수 있는 정보(예를 들면 모듈러 덧셈에서의 캐리 비트)를 남길 수 있기 때문에 적합하지 않습니다.
모든 평문 블록(11)이 완전히 처리되지 않는 한, 레지스터(23)는 암호문 블록(51)을 리로딩하고(즉,도 2에 도시된 바와 같이 현재 또는 최종 계산된 암호문 블록(51), 증가 함수(incrementing function)와 업데이트 함수가 새로운 라운드를 실행하기 전에(즉, 상기 라운드의 제1 단계를 다시 시작하기 전에) 카운터 데이터(22)에 적용된다. 따라서, 제2 반복(IT2)의 제1 데이터(21)는 제1 반복(IT1)로부터 발행된 암호문 블록(51)에 대응하고, 제2 반복의 카운터 데이터(CDt2)는 제1 반복(IT1)의 카운터 데이터(CDT1)에 적용된 증가 함수의 결과에 대응된다. 본 설명에서, "증가 함수"라는 표현은 "업데이트 함수"의 바람직한 실시예로 사용된다. 그러므로, "증가 함수"는 임의의 "업데이트 함수"로 대체 될 수 있음을 이해해야 한다. 유사하게, 본 명세서에서 언급된 카운터(25)는 전술한 바와 같이 "업데이터"로 간주 될 수도 있다.
모든 평문 블록(11)이 처리되었을 때, 레지스터(23)는 최종 계산된 암호문 블록(51)으로 리로딩되고 카운터의 증가 함수는 이전 반복에서와 동일하게 (현재) 카운터 데이터(CDTi)에 적용된다. 그러나, 암호화 키(34)를 사용하여 블록 암호 알고리즘(35) 내에서 처리되는 입력 데이터(20)(즉, Ci 및 CDti+1)로부터 크리토그램(30)을 얻기 위해 이어서 라운드의 두 개의 제1 단계 만이 수행된다. 따라서, 이들 동작은 (이전에 수행 된 것과 같은) 완전한 반복을 의미하지는 않고 오히려 부분 반복으로 간주되어야 한다. 이 최종 크리토그램(30)으로부터, 모든 계산된 로컬 태그, 즉 제1 반복(IT1) 이후 계산된 모든 로컬 태그를 사용하는 제2 연산(OP2)(42)에 의해 글로벌 태그 (52)를 계산하기 위해 로컬 태그(Ti+1)이 이용된다. 이 부분 반복의 로컬 태그(제 2 세그먼트(32))만이 사용된다는 것을 주목해야한다. 따라서, 제1 세그먼트(31)의 결정은 선택적이지만, 단일 데이터로서 처리되는 크립토그램(30)의 계산을 통해 암시적으로 행해진다.
제2 연산(OP2)의 결과는 글로벌 태그(52)를 제공한다. 이 결과는 제1 연산(OP1)의 결과를 결정하는 것과 유사한 방식으로, 즉 복수의 서브 연산(OP21 내지 OP2i)에 의해 계산된다. 바람직하게는, 각각의 서브 연산은 관련 반복(ITn)의 로컬 태그(Tn) 및 이전 반복(ITn-1)에서 결정된 이전 서브 연산의 결과를 피연산자로 사용한다. 제2 연산(OP2)의 특성(즉, 종류)은 제1 연산(OP1)의 특성과 유사하거나 동일하다. 피연산자들이 글로벌 태그 (52)를 결정하는데 사용되는 순서에 관해서도 마찬가지이다. 모든 로컬 태그들로부터의 글로벌 태그(52)의 결정은 연산 모드의 제2 패스에 대응한다.
암호문 메시지(50)는 후술되는 역 프로세스 동안 암호문 메시지(50)로부터 평문 메시지(10)를 복원하기 위해 재사용되는 특정 순서로 모든 암호문 블록(51)을 함께 결합하는 것으로 결정된다. 예를 들어, 이러한 순서는 평문 블록(11)이 처리 된 순서와 동일 할 수도 있다. 변형예에서, 각 블록이 처리되는 순서를 식별하기 위해 인덱스가 각 암호문 블록(51)에 할당 될 수도 있다.
바람직하게는, 두개 대신 세개의 피연산자를 사용하여 제1 연산(OP1)을 수행함으로써, 암호문 블록(51)은 단일 연산으로부터 유도되지 않고, 2 개의 연속적인 연산, 즉 제1 서브 연산(OP11) 및 제2 서브 연산(OP12)으로부터 얻어질 수 있다. 제1 서브 연산은 입력으로서 세 개의 피연산자 중 두 개를 사용하고 제2 서브 오프레이션 입력으로서 제3 피연산자와 제1 서브 연산의 사용한다. 블록 암호 알고리즘을 여러 입력(예를 들면 100,000 전력 추적을 관찰하기 위해 100,000 번)에 실행하여 이러한 프로세스에 대한 DPA 공격을 수행하려는 공격자는 처음 두개의 피연산자를 기준으로 결정된 중간 출력에 액세스 할 수 없다. 그 대신 공격자는 단지 제2 서브 연산(OP12) 이후에 제공된 출력을 관찰 할 수만 있다. 따라서, 공격자는 먼저 제1 서브 연산(OP11)를 분석하기 전에 제2 서브 연산을 공격할 필요가 있다. 그러나 제2 연산은 두개의 미지의 값에 기반하고, 모두 균일하게 분산되어 있으며 관련성이 없다. 결과적으로, DPA는 작동하지 않거나, 종래 기술의 것에 비해 본 발명의 대상에 대해 그러한 공격을 적용하는 것이 적어도 더 어렵게 된다.
일 실시예에 따르면, 본 발명의 방법은 제1 데이터(21)(즉, 레지스터(23)에 로드된 데이터)와 카운터 데이터(22) 사이의 공통 비트 길이를 복원하기 위한 예비 단계를 더 포함한다. 이 예비 단계는 제1 데이터(21) 및 카운터 데이터(22)가 동일한 비트 길이를 갖지 않을 때 수행된다. 바람직하게, 이 예비 단계는 입력 데이터 (20)를 블록 암호 알고리즘(35) 내에 또는 알고리즘(35) 자체에 입력하기 전에 수행된다. 바람직하게는, 제1 세그먼트(31)와 로컬 태그(32)는 동일한 비트 길이를 갖는다. 그렇지 않은 경우, 상기 방법은 이들 2개의 세그먼트들 사이에서 동일한 비트 길이를 복원하기위한 추가 단계(패딩 단계)를 더 포함 할 수 있다. 더욱 바람직하게는, 제1 데이터(21)(예컨대, IV), 카운터 데이터(22), 제1 세그먼트 (31) 및 제2 세그먼트 (32)(로컬 태그)는 모두 동일한 비트 길이, 즉 입력 데이터(20)의 절반 비트 길이를 갖는다.
도 3에 도시된 일 실시예에 따르면, 제1 데이터(21)는 피연산자로서 평문 연관 데이터(AD)(24)를 사용하는 초기 연산(OP0)(43)의 결과일 수있다. 도시된 바와 같이, 초기화 벡터(IV)는 초기 연산(43)의 제2 피연산자로서 사용될 수 있다. 연관 데이터(24)는 통상적으로 평문 메시지(10)의 헤더에 관련될 수 있다. 이 경우, 헤더(즉, 연관 데이터)는 메시지 자체와 동일한 방식으로 처리되지 않지만 메시지의 부록으로 남는다. 초기 연산(OP0)의 특성은 제1 연산(OP1)의 특성 또는 제 2 연산(OP2)의 특성과 유사하거나 동일하다. 일반적으로 연관 데이터는 초기화 벡터에 추가된다.
도 4를 참조하면, 도 4는 도 2에 도시된 부호화 페이즈에 따라 얻어진 암호문 메시지(50)의 복호화 페이즈를 나타낸다. 평문 메시지(10)(도 2)를 암호화하기위한 연산 모드가 가역적 부호화 프로세스와 관련된다면, 도 4에 도시된 암호해독(decipherment) 방법은 도 2의 암호화 방법과 매우 유사하다.
보다 구체적으로는, 도 4는 암호문 메시지(50)로부터 평문 메시지(10) 및 평문 메시지를 인증하기 위한 글로벌 태그 (52)를 제공하기 위한 라운드 반복을 사용하는 블록 복호화 방법을 도시한다. 암호문 메시지(50)는 복수의 순서화된 암호문 블록(51)으로 변환되고; 이들 모두는 동일한 비트 길이를 갖는다(이러한 동작은 도 4에는 도시되지 않았지만 도 1에 도시된 것과 유사하다). 특히, 이 비트 길이는 부호화 페이즈(도 2) 동안 이 암호문 메시지(50)의 기원(origin)인 평문 메시지(10)로부터 평문 블록들(11)을 획득하기 위해 정의된 것과 동일하다. 부호화 페이즈에 관해 설명한 바와 같이, 패딩 단계가 최종 블록(관련 부호화 단계 동안 패딩된 블록에 따fms 첫 번째 또는 마지막 블록)에도 적용될 수 있다. 각 암호문 블록(51)은 라운드 동안 현재 암호문 블록으로서 순차적인 방식으로 연속 처리된다. 특히, 이러한 순차적인 방식은 평문 메시지(10) 내의 블록(11)과 암호문 메시지(50) 내의 대응하는 블록 (51) 사이에 각각의 위치를 유지하게 한다.
일반적으로, 부호화 단계 동안 수행 된 것과 동일한 액션, 즉 제1 데이터 (21)를 레지스터(23)내에 로딩 하고 이어서 다음 단계를 수행하여 라운드를 실행한다:
입력 데이터(20)를 블록 해독 알고리즘(35)에 입력하기위한 제 1 단계. 이 입력 데이터는 레지스터(23)에 로드된 데이터 및 카운터 데이터(22)를 포함한다.
단일 암호 키(34)(즉, 부호화 페이즈에 사용된 것과 동일한 키 K)를 사용하여 입력 데이터(20)를 복호화함으로써 블록 암화해독 알고리즘(35) 내에서 제1 출력(30)을 계산하기 위한 제2 단계. 이 제1 출력(30)은 제1 세그먼트(31) 및 제 2 세그먼트(32)를 포함하고, 후자는 인증 로컬 태그로서 정의된다.
피연산자로서 제1 세그먼트(31), 현재 암호문 블록(51) 및 제2 세그먼트 (32)(즉, 현재 반복에 의해 제공되는 로컬 태그)를 사용하여 제1 연산(OP1)(41)을 수행함으로써 평문 블록을 계산하는 제3 단계. 따라서, 평문 블록(11)은 3개의 데이터에서 수행된 연산의 결과이다. 이 제1 연산(41)이 3개의 피연산자를 사용한다고 가정하면, 이는 부호화 페이즈와 연관해서 이미 설명한 바와 같은 두개의 단계에서 수행된다.
복호화 페이즈(도 4) 동안 수행되는 연산(OP1)(41)은 부호화 페이즈(도 2) 동안 수행된 연산(OP1)(41)의 역이다. 또한, 이들 연산들(41) 각각은 2 개의 연속적인 서브 연산, 즉 제 1 OP11와 OP12를 포함하기 때문에, 복호화 페이즈 동안 수행되는 제1 서브 연산(OP11)는 부호화 페이즈에서 수행되는 제2 서브 연산(OP12)의 역에 대응한다. 유사하게, 복호화 페이즈 동안 수행되는 제2 서브 연산 OP12는 복호화 페이즈 동안 처음으로 수행된 서브 연산(OP11)의 역에 대응한다.
모든 암호문 블록(51)이 완전히 처리되지 않는 한, 레지스터는 현재 암호문 블록(51)(즉,도 4에 도시된 바와 같이 최종 계산 된 암호문 블록(51))에 의해 다음 반복 동안 리로드되고, 증가 함수가, 카운터 (25)에 의해, 이전 반복의 카운터 데이터에 적용되어 새로운 카운터 데이터(22)가 얻어진다. 이 새로운 카운터 데이터 (22)는 현재의 새로운 반복에서 새로운 라운드를 실행할 때 본 발명의 암호해독 방법의 제1 단계를 다시 시작하는 것에 의해 이용될 수 있다. 특히, 증가 함수는 부호화 페이즈에서 사용된 것과 동일한 함수입니다. 또한, 복호화 페이즈 동안 시작 값으로서(즉, 제1 반복 IT1'에 의해) 사용된 제1 카운터 데이터(CDt1)는 부호화 페이즈 동안(제1 반복 IT1에 의해) 시작값으로서 사용된 것과 동일하다. 이러한 이유로, 부호화 페이즈의 제1 카운터 데이터(CDt1)는 암호문 메시지(50)를 복호화하는 것을 담당하는 복호화 장치로 전송될 수 있다. 일반적으로, 그러한 카운터 데이터 (CDt1)는 암호문 메시지(50)와 함께, 예를 들면 암호문 메시지(50)의 (부호화되지 않은)헤더내에서 전송될 수 있다. 또한, 이 카운터 데이터(CDt1)는 적어도 이 데이터가 어떤 이유(예를 들면 발신자와 수신자 사이의 재동기화 목적)로 임의의 복호화 장치에 재전송되어야 하는 경우 부호화 장치 내에 저장될 수있다. 제1 데이터(21)(IV)에 대해서도 동일하다. 다른 방법에 따르면, 초기 카운터 데이터(CDt1)는 통신될 필요가 없도록 디폴트 값(예를 들어, 1로 설정)으로 설정 될 수 있다. 실제로, 동일한 제1 데이터(21)는 제1 반복(IT1 및 IT1') 동안 레지스터 내에 로드되어야 한다. 따라서, 제1 데이터(21)(IV)는 또한 제1 카운터 데이터와 동일한 방식으로 전송될 수 있고, 동일한 이유로 부호화 장치 내에 저장 될 수 있고, 또는 통신될 필요없이 디폴트 값으로 설정 될 수 있다. 변형예에서, 제1 카운터 데이터 (CDt1), 제 1 데이터(21)(IV) 및 암호 키(34)(K) 및/또는 카운터(25)의 증가 함수와 같은변화가능한 다른 데이터는 초기화 페이즈 동안 부호화 장치와 복호화 장치 사이에서 적어도 한번 공유될 수 있다. 이러한 초기화 페이즈는 예를 들어 시스템을 재설정하거나 업데이트하기 위해 나중에 리플레이(replayed)될 수도 있다.
전술한 바와 같이, 암호화 메시지(50)를 제공하기 위한 암호화 페이즈 중에 원래 사용된 평문 메시지를 검색하기 위해서, 모든 라운드 중에 얻어진 평문 블록 (11)을 동일한 순서로 결합(연결)함으로써 평문 메시지(10)가 결정된다.
그 다음, 레지스터(23)는 현재 암호문 블록(51)(즉, 최종 반복 ITi' 동안 처리된 마지막 암호문 블록(51)) 리로딩되고, 증가 함수가 라운드의 처음 두개의 단계를 수행하기 전에 최종 카운터 데이터(22) 상에 한번 이상 적용된다(부분 반복을 참조할 때 부호화 페이즈 동안 수행된 것과 유사하게). 이 마지막 첫 번째 출력(30)으로부터, 로컬 태그(Ti+1)(32)는, 피연산자로서 모든 계산된 인증 로컬 태그(32)를 사용하는 제2 연산(OP2)(42)에 의해 글로벌 태그(52)(Tg)를 계산하는데 이용된다. 부호화 페이즈에서 이미 설명된 바와 같이, 제2 연산(OP2)로부터 결과된 글로벌 태그(52)는 제1 연산(OP1), 즉 복수의 서브 연산(OP21 내지 OP2i)의 결과를 결정하는 것과 유사한 방식으로 계산된다. 부호화 페이즈 동안 언급된 것과 동일한 종류의 연산 및 변형이 복호화 페이즈 동안 적용될 수 있다.
부호화 페이즈 또는 복호화 페이즈와 무관하게, 모든 블록(11, 51)이 일단 처리된 후에는 서브 연산(OP21 내지 OP2i)이 반드시 계산될 필요는 없다라는 것을 유의해야한다. 실제로 이러한 서브 연산은 각 반복 동안 중간 결과를 결정하는 것에 의해 하나씩 점차적으로 계산될 수 있다. 이 중간 결과는 다음 반복(또는 프로세스의 끝 부분에서 부분 반복)에서 제공되는 다음 로컬 태그(제2 피연산자)와 함께 피연산자로서 처리될 때까지 메모리에 저장될 수 있다. 각각의 블록(11,51)으로부터 메시지(10,50)를 결정하기 위해 동일한 원리가 적용될 수 있다.
또한, 알고리즘(35)의 역특성으로 인해, 부호화 페이즈에서 언급된 블록 암호 알고리즘은 복호화 페이즈의 블록 복호화 알고리즘과 동일하다는 점에 유의해야 한다. 또한, 알고리즘(35)에 의해 제공된 결과는 복호화 페이즈에서 소위 "제1 출력"(30)으로 정의된다. 이 용어는 단어 크립토그램 대신에 선택되었는데, 이 출력은 오히려 복호화된 데이터로 간주되어야 하기 때문이다(기술적으로 알고리즘(35)은 소위 첫 번째 출력과 소위 크립토그램 사이의 어떤 차이도 만들지 못한다).
일 실시예에 따르면, 블록 해독(decipherment) 방법은 레지스터(23)에 로드 된 제1 데이터(21)와 카운터 데이터(22) 사이의 공통 비트 길이를 복원하기 위한 예비 단계를 더 포함한다. 이 예비 단계는 제1 데이터(21) 및 카운터 데이터(22)가 동일한 길이를 가지지 않을 경우 이용된다. 이러한 예비 단계는 입력 데이터(20)를 블록 암호 알고리즘(35)에 입력하기 전에 수행된다.
부호화 페이즈와 관련하여 이미 설명한 바와 같이, 제1 데이터(21)는 초기화 벡터(IV), 특히 카운터 데이터(22)의 비트 길이와 동일한 비트 길이를 갖는 단일 블록일 수있다.
일 실시예 및 도 3에 도시된 바와 유사하게, 제1 데이터(21)는 피연산자로서 평문 연관 데이터(24)를 사용하는 초기 연산(OP0)의 결과일 수있다. 이 초기 연산(OP0) 및 제1 및 제2 연산(OP1,OP2)는 논리 배타적 OR 연산인 것이 바람직하다. 그러나 앞서 언급했듯이 다른 종류의 연산도 사용할 수 있습니다.
또한, 본 발명의 암호해독 방법의 암호문 메시지(50)는 인증 데이터 (특히, 관련된 블록 암호 방법에 의해 부호화 페이즈 동안 획득된 글로벌 태그)와 더 연관될 수 있음에 유의해야 한다. 이러한 경우에, 본 발명의 해독 방법은 이 연관된 인증 데이터가 해독 방법의 제2 패스에 의해 결정된 글로벌 태그(52)와 동일한지를 검사하는 단계를 더 포함 할 수 있다. 글로벌 태그(52)가 암호문 메시지(50)와 연관된 인증 데이터와 동일하지 않으면, 후자는 인증되지 않은 것으로 선언될 것이다.
부호화 페이즈 및 복호화 페이즈가 각각 부호화 방법 및 해독 복호화 방법으로 제시되었지만, 본 발명은 또한 부호화 페이즈 및 복호화 페이즈 모두를 포함하는 하나의 방법으로 언급될 수 있다.
본 발명은 또한 본 설명에 개시된 방법들 또는 실시예들 중 하나를 구현하기위한 암호화 장치(60, 60 ')일 수 있다. 도 1, 도 2 및 도 5를 참조하면, 제1 암호화 장치(60)는 평문 메시지(10)로부터 암호문 메시지(50)와 암호문 메시지를 인증하기 위한 글로벌 태그(52)를 제공하기 위해 라운드 반복을 사용하는 블록 암호 방법의 구현하도록 전용된다. 이를 위해, 암호화 장치(60)는 다음 구성요소들:
- 통상적으로 메모리(예를 들어, 메모리 셀)의 형태이고 제1 데이터(21)를 수신하는 레지스터(23),
- 업데이트 함수 f에 따라 재생가능한 데이터(22)를 업데이트하는 업데이터(25)로서 예를 들어, 증가 함수(f)에 따라 카운터 데이터(22)를 증가시키기 위한 카운터(25)로 언급될 수도 있는 업데이터,
- 적어도 평문 메시지(10)를 수신하기위한 인터페이스(61),
- 상기 평문 메시지(10)를 모두 동일한 비트 길이를 갖는 복수의 순서화된 평문 블록들(11)(m1, m2,... mi)로 변환하고 바람직하게는 이를 저장하는 변환 유닛(62), 및
- 라운드 동안 현재의 평문 블록으로서 순차적인 방식으로 평문 블록들(11) 각각을 연속적으로 처리하고, 블록 암호 알고리즘 (35)을 호스팅하는 암호화 유닛(65)과, 단일 암호화 키(34)(K)를 포함하는 메모리(66)을 더 포함하는 프로세스 유닛(64)를 포함한다.
각 라운드는 다음의 단계;
- 입력 데이터(20)를 블록 암호 알고리즘(35)에 입력하는 제1 단계(예를 들어,도 5에 도시된 프로세스 유닛(64)을 통해)로서, 여기서 입력 데이터(20)는 레지스터(23)의 데이터(21) 및 재생가능한 데이터(카운터 데이터(22))를 포함하는 제1 단계;
- 상기 단일 암호화 키(34)를 사용하여 상기 입력 데이터(20)를 부호화함으로써 블록 암호 알고리즘(35) 내에서 크립토그램(30)을 계산하는 제2 단계로서, 여기서 크립토그램(30)은 제1 세그먼트(31)와 제2 세그먼트(32)를 포함하고, 제2 세그먼트는 프로세스 유닛(64) 내에서 또는 프로세스 유닛(64) 없이 메모리(66) 내에 저장되어 있는 인증 로컬 태그로서 정의되는 제2 단계;
- 피연산자로서 제1 세그먼트 (31), 현재 평문 블록(11) 및 제2 세그먼트 (32)를 사용하는 제1 연산(OP1)을 수행함으로써 암호문 블록(51)을 계산하고 메모리(66) 등에 저장하는제 3 단계;를 포함한다.
모든 평문 블록(11)이 완전히 처리되지 않은 한, 프로세스 유닛(64)은 레지스터(23)에 현재 암호문 블록(51)(즉, 최종 계산된 암호문 블록(51))을 리로드하고, 새로운 라운드를 실행하기 이전에 제1 단계를 다시 시작하는 것에 의해 카운터 데이터(22)를 증가시킨다(즉, 재생가능한 데이터를 업테이트 함).
변환 유닛(62)은 또한 평문 메시지(10) 내의 블록(11)과 암호문 메시지(50) 내의 대응하는 블록 (51) 사이의 각각의 위치를 유지하도록, 모든 라운드의 암호문 블록(51)(c1,C2, ... Ci)을 순서대로, 특히 전술한 순서대로 연결하여 암호문 메시지(50)를 결정하도록 더 구성된다.
프로세스 유닛 (64)은 최종 계산된 암호문 블록(51)을 레지스터(23)에 리로드하고 카운터 데이터(22)에 증가 함수(f)를 적용하여 라운드의 처음 두 단계를 수행하기 전에 그를 증가시킨다. 그 후, 프로세스 유닛(64)은 예를 들어 메모리(66)로부터 모든 계산된 인증 로컬 태그(32)를 피연산자로서 사용하는 제2 연산(OP2)에 의해 글로벌 태그 (52)를 계산하도록 구성된다.
인터페이스(61)(또는 임의의 다른 인터페이스)는 암호문 메시지(50) 및 글로벌 태그(52)를 출력하도록 더 구성된다.
변환 유닛(62)에 의해 수행되는 변환 연산은 평문 메시지(10)를 동일한 비트 길이를 갖는 블록들(11)로 분할하고, 필요시, 일단 분할된 이 평문 메시지의 2개의 끝 블록들(11) 중 적어도 하나에 패딩 연산이 인가된다.
암호화 장치(60)는 본 명세서에 개시된 임의의 실시예에 따른 방법을 구현하는데 사용되는 초기화 벡터(IV)를 생성하기 위한 생성기(67)(또는 의사 생성기)를 더 포함 할 수 있다. 그런 생성기(또는 다른 것)는 전형적인 리셋 목적을 위해 초기값으로 카운터(25)를 초기화하는데 사용될 수 있다. 또한, 레지스터(23), 카운터 (25) 및 필요시 생성기(67)가 프로세서 유닛(64) 내에 위치될 수도 있다.
제1 장치로서 특히 송신기 측에서 동작할 때, 부호화 장치(60)는 통상적으로 제2 장치로서 특히 수신기측에서 동작하는 복호화 장치(60 ')에 의해 복호되는 평문 메시지(10)를 부호화하는데 사용되도록 의도된다. 복호화 단계가 암호화 단계의 역 과정에 대응하면, 암호화 장치를 형성하는 전자 부품은 복호화 장치의 전자 부품과 동일하거나 유사하다. 복호화 장치의 일부 구성 요소와 관련된 기능 만이 암호화 장치의 기능과 다를 수 있다. 따라서, 본 발명의 복호화 장치는 도 2의 구성 요소를 참조하여 이후에 설명 될 것이다.
따라서, 제2 장치는 암호문 메시지(50)로부터 평문 메시지(10) 및 평문 메시지를 인증하기 위한 글로벌 태그(52)를 제공하기 위한 라운드 반복을 사용하는 블록 암호해제 방법을 구현하기위한 암호화 장치(60 ')에 관한 것이다. 이 암호화 장치(60')는,
- 통상적으로 메모리(또는 메모리 셀)의 형태이고 제1 데이터(21)를 수신하는 레지스터(23);
- 업데이트 함수 f에 따라 재생가능한 데이터(22)를 업데이트하는 업데이터(25)로서, 예를 들어, 증가 함수(f)에 따라 카운터 데이터(22)를 증가시키는 카운터(25)를 지칭할 수도 있는 업데이터;
- 적어도 암호문 메시지(50)를 수신하기 위한 인터페이스(61);
- 암호문 메시지(50)를 모두 동일한 비트 길이를 갖는 복수의 순서화된 암호문 블록(51)으로 변환하고 바람직하게는 이를 저장하는 변환 유닛(62);
- 라운드 동안 현재 암호문 블록으로서 순차적으로 각각의 암호문 블록(51)을 연속적으로 처리하기 위한 프로세스 유닛(64)으로서, 블록 암호해제 알고리즘 (35)을 호스팅하는 암호화 유닛(65) 및 단일 암호화 키(34)(K)를 포함하는 메모리(66)를 더 포함하는 프로세스 유닛;을 포함한다.
각 라운드는 다음의 단계;
- 입력 데이터(20)를 블록 암호해제 알고리즘(35)에 입력하는 제1 단계로서, 여기서 입력 데이터(20)는 레지스터(23)에 로딩된 데이터(21) 및 재생가능한 데이터(카운터 데이터(22))를 포함하는 제1 단계;
- 단일 암호화 키(34)를 사용하여 입력 데이터(20)를 처리하여 블록 암호 알고리즘(35) 내에서 제1 출력(30)을 계산하는 제2 단계로서, 여기서 제1 출력(30)은 제1 세그먼트(31)와 제2 세그먼트(32)를 포함하고, 제2 세그먼트는 메모리(66) 내에 저장되어 있는 인증 로컬 태그로서 정의되는 제2 단계;
- 피연산자로서 제1 세그먼트(31), 현재 암호문 블록(51) 및 제2 세그먼트 (32)(예를 들면 로컬 태그)를 사용하는 제1 연산(OP1)을 수행함으로써 평문 블록(11)을 계산하고 메모리(66) 등에 저장하는제 3 단계;를 포함한다.
모든 암호문 블록(51)이 완전히 처리되지 않은 한, 프로세스 유닛(64)은 레지스터(23)에 현재 암호문 블록(51)(즉, 최종 계산된 암호문 블록)을 리로드하고, 새로운 라운드를 실행하기 이전에 제1 단계를 다시 시작하는 것에 의해 재생가능한 데이터를 업데이트한다(즉, 카운터(25)의 증가 함수에 의해 카운터 데이터(22)를 증가시킴).
변환 유닛(62)은 또한 평문 메시지(10) 내의 블록(11)과 암호문 메시지(50) 내의 대응하는 블록(51) 사이의 각각의 위치를 유지하도록, 모든 라운드의 평문 블록(11)을 순서대로, 특히 전술한 순서대로 연결하여 평문 메시지(50)를 결정하도록 더 구성된다.
프로세스 유닛(64)은 현재의 암호문 블록(예를 들면 처리된 최종 암호문 블록)을 레지스터(23)에 리로드하고 카운터 데이터(22)에 증가 함수(f)를 적용하여 라운드의 처음 두 단계를 수행하기 전에 이를 증가시킨다. 그 후, 프로세스 유닛(64)은 예를 들어 메모리(66)로부터 모든 계산된 인증 로컬 태그(32)를 피연산자로서 사용하는 제2 연산(OP2)에 의해 글로벌 태그(52)를 계산하도록 구성된다.
바람직하게, 암호화 장치(60')의 프로세스 유닛(64)은 글로벌 태그(52)가 암호문 메시지(50)와 함께 제공된 인증데이터와 동일한지를 검사하도록 더 구성된다. 이런 인증 데이터는 암호화 장치(60)에 의해 부호화 페이즈 동안 결정되는 글로벌 태그(52)일 수 있다. 동일한 메시지(50)에 있어서, 암호화 장치(60,60')의 각각에 의해 제공된 글로벌 태그(52)들 사이에 차이점이 존재하는 경우, 이는 평문 메시지(10)(또는 암호문 메시지(50))가 인증되지 않음을 의미한다. 따라서, 프로세스 유닛(64)은 적절한 동작을 취할 수 있는데, 예를 들면 경고 메시지를 발생하거나, 평문 메시지(10)의 해방을 인터럽트하거나, 리포팅 데이터로서 정보를 송신할 수도 있다.
물론 인터페이스(61)는 평문 메시지가 일단 복원되면 평문 메시지(10)를 출력하도록 더 구성될 수도 있다.
암호화 장치(60)의 암호화 알고리즘은 암호화 장치(60')의 암호해제 알고리즘과 동일하다는 것을 유의해야 한다. 또한 그런 알고리즘(35)은 암호화를 위해서도 암호해제를 위해서도 이용될 수 있다.
또한 글로벌 태그(66)를 결정하는 측면에서, 메모리(66)(또는 다른 메모리)는 로컬 태그(32) 또는 이벤트의 중간 결과를 저장하는데 이용되고 글로벌 태그는 각각의 반복 동안 점차적으로 결정된다. 일 실시예에서, 암호문 메시지(50) 또는 평문 메시지(10)는 동일한 방식으로 결정될 수 있다.
암호화 장치(60, 60')의 메모리(66)는 보안 메모리일 수 있다. 일 실시예에서, 암호화 장치(60,60')의 구성요소는 모놀리식 유닛내에 포함될 수 있고, 모놀리 식 유닛을 파괴하지 않고 구성요소, 특히 민감한 구성 요소에 물리적으로 액세스하는 것이 불가능하다.
암호키(34)는 암호화 장치(60,60')에 의한 부호화 또는 복호화 목적을 위해 사용된다.
본 발명의 실시예를 특정 예시적인 실시예를 참조하여 설명하였지만, 이들 실시예들의 넓은 범위를 벗어나지 않고 이들 실시예들에 대한 다양한 변형 및 변경이 이루어질 수 있음이 명백 할 것이다. 따라서, 명세서 및 도면은 제한적인 의미 라기보다는 예시적인 것으로 간주되어야 한다. 본 명세서의 일부를 형성하는 첨부 된 도면은 본 발명이 실시될 수있는 특정 실시예를 설명하기 위한 것이며 한정을 위한 것은 아니다. 도시된 실시예는 당업자가 본 명세서에 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명되었다. 다른 실시예들이 그로부터 도출 될 수 있으며, 본 발명의 개시의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있다. 그러므로, 이러한 상세한 설명은 제한적인 의미로 받아 들여서는 안되며, 다양한 실시예들의 범위는 첨부된 청구 범위와 그러한 청구 범위가 부여되는 등가물의 전체 범위에 의해서만 정의된다.
본 발명의 청구대상의 실시예는 편의상 단지 "하나의 발명"이라는 용어로 하나 이상의 발명의 개념이 본 발명의 개념으로 제한되는 것을 의도하지 않고 "발명"이라는 용어로 개별적으로 및/또는 집합적으로 언급 될 수있다. 따라서 특정 실시 예가 본 명세서에 예시되고 설명되었지만, 동일한 목적을 달성하도록 계산된 임의의 배치가 도시된 특정 실시예를 대체 할 수 있음을 이해해야 한다. 따라서 본 발명의 내용은 모든 또는 모든 적용가능한 다양한 실시예들의 변형들을 포함한다는 것은 당업자에게 자명하다.

Claims (20)

  1. 메시지 부호화 방법으로서,
    평문 메시지를 복수의 평문 블록으로 변환하는 단계로서, 복수의 평문 블록의 각각의 평문 블록은 미리 정해진 비트 길이를 갖는, 단계;
    복수의 평문 블록의 각각의 개별적인 평문 블록에 대해:
    블록 암호 알고리즘에 개별적인 입력 데이터를 입력하는 단계로서, 개별적인 입력 데이터는 개별적인 재생가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록을 포함하는, 단계;
    암호화 키를 사용하여 개별적인 입력 데이터를 부호화함으로써 개별적인 크립토그램을, 블록 암호 알고리즘을 사용하여,ㅍ 계산하는 단계로서, 개별적인 크립토그램은 개별적인 제1 세그먼트 및 개별적인 제2 세그먼트를 포함하는, 단계;
    3개의 개별적인 피연산자 중 개별적인 제1 피연산자와 개별적인 제2 피연산자를 입력으로서 사용하여 제1 서브-연산을 수행하는 단계로서, 상기 3개의 개별적인 피연산자는 개별적인 제1 세그먼트, 개별적인 제2 세그먼트, 및 복수의 평문 블록의 개별적인 평문 블록을 포함하는, 단계; 및
    3개의 개별적인 피연산자 중 개별적인 제3 피연산자와 상기 제1 서브- 연산의 개별적인 결과를 입력으로서 사용하여 제2 서브-연산을 수행하는 단계로서, 제2 서브-연산의 개별적인 결과는 복수의 암호문 블록의 개별적인 암호문 블록인, 단계; 및
    암호문 메시지를 생성하기 위해 상기 복수의 암호문 블록을 연결하는 단계를 포함하는
    메시지 부호화 방법.
  2. 제1항에 있어서,
    복수의 평문 블록 중 각각의 평문 블록이 미리 정해진 비트 길이를 갖도록 복수의 평문 블록 중 적어도 하나의 평문 블록을 패딩(padding)하는 단계를 더 포함하는
    메시지 부호화 방법.
  3. 제1항에 있어서,
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖는지 여부를 결정하는 단계; 및
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖지 않는다는 결정에 응답하여, 개별적인 재생 가능한 데이터, 초기화 벡터 또는 개별적인 이전에 계산된 암호문 블록 중 적어도 하나를 패딩하는 단계를 더 포함하는
    메시지 부호화 방법.
  4. 제1항에 있어서,
    복수의 평문 블록 중 제1 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 초기화 벡터를 포함하고;
    복수의 평문 블록 중 모든 다른 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 복수의 암호문 블록 중 개별적인 이전에 계산된 암호문 블록을 포함하는
    메시지 부호화 방법.
  5. 제1항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 논리적 연산인
    메시지 부호화 방법.
  6. 제1항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 교환적 연산인
    메시지 부호화 방법.
  7. 제1항에 있어서,
    제1 서브-연산 또는 제2 서브-연산 중 적어도 하나는 배타적 OR(XOR) 연산인
    메시지 부호화 방법.
  8. 메시지 부호화 장치로서,
    적어도 하나의 메모리; 및
    적어도 하나의 메모리에 결합된 적어도 하나의 프로세서를 포함하고;
    상기 프로세서는,
    평문 메시지를 복수의 평문 블록으로 변환하고, 복수의 평문 블록의 각각의 평문 블록은 미리 정해진 비트 길이를 갖도록 구성되고;
    복수의 평문 블록의 각각의 개별적인 평문 블록에 대해:
    개별적인 재생가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록을 포함하는 개별적인 입력 데이터를 블록 암호 알고리즘에 입력하고;
    암호화 키를 사용하여 개별적인 입력 데이터를 부호화함으로써, 개별적인 제1 세그먼트 및 개별적인 제2 세그먼트를 포함하는 개별적인 크립토그램을, 블록 암호 알고리즘을 사용하여 계산하고;
    개별적인 제1 세그먼트, 개별적인 제2 세그먼트, 및 복수의 평문 블록의 개별적인 평문 블록을 포함하는 3개의 개별적인 피연산자 중 개별적인 제1 피연산자와 개별적인 제2 피연산자를 입력으로서 사용하여 제1 서브-연산을 수행하고; 및
    3개의 개별적인 피연산자 중 개별적인 제3 피연산자와 상기 제1 서브- 연산의 개별적인 결과를 입력으로서 사용하여 제2 서브-연산을 수행하고,
    암호문 메시지를 생성하기 위해 상기 복수의 암호문 블록을 연결하도록 구성되고,
    제2 서브-연산의 개별적인 결과는 복수의 암호문 블록의 개별적인 암호문 블록인
    메시지 부호화 장치.
  9. 제8항에 있어서,
    적어도 하나의 프로세서는 복수의 평문 블록 중 각각의 평문 블록이 미리 정해진 비트 길이를 갖도록 복수의 평문 블록 중 적어도 하나의 평문 블록을 패딩(padding)하도록 추가로 구성되는
    메시지 부호화 장치.
  10. 제8항에 있어서,
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖는지 여부를 결정하고; 및
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖지 않는다는 결정에 응답하여, 개별적인 재생 가능한 데이터, 초기화 벡터 또는 개별적인 이전에 계산된 암호문 블록 중 적어도 하나를 패딩하도록 추가로 구성되는
    메시지 부호화 장치.
  11. 제8항에 있어서,
    복수의 평문 블록 중 제1 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 초기화 벡터를 포함하고;
    복수의 평문 블록 중 모든 다른 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 복수의 암호문 블록 중 개별적인 이전에 계산된 암호문 블록을 포함하는
    메시지 부호화 장치.
  12. 제8항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 논리적 연산인
    메시지 부호화 장치.
  13. 제8항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 교환적 연산인
    메시지 부호화 장치.
  14. 제8항에 있어서,
    제1 서브-연산 또는 제2 서브-연산 중 적어도 하나는 배타적 OR(XOR) 연산인
    메시지 부호화 장치.
  15. 저장된 명령을 갖는 비-일시적 컴퓨터-판독가능한 저장 매체로서, 적어도 하나의 프로세서에 의해 실행될 때, 상기 명령은 적어도 하나의 프로세서가:
    평문 메시지를 복수의 평문 블록으로 변환하도록 하고, 복수의 평문 블록의 각각의 평문 블록은 미리 정해진 비트 길이를 갖고;
    복수의 평문 블록의 각각의 개별적인 평문 블록에 대해:
    개별적인 재생가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록을 포함하는 개별적인 입력 데이터를 블록 암호 알고리즘에 입력하고;
    암호화 키를 사용하여 개별적인 입력 데이터를 부호화함으로써, 개별적인 제1 세그먼트 및 개별적인 제2 세그먼트를 포함하는 개별적인 크립토그램을, 블록 암호 알고리즘을 사용하여 계산하고;
    개별적인 제1 세그먼트, 개별적인 제2 세그먼트, 및 복수의 평문 블록의 개별적인 평문 블록을 포함하는 3개의 개별적인 피연산자 중 개별적인 제1 피연산자와 개별적인 제2 피연산자를 입력으로서 사용하여 제1 서브-연산을 수행하고; 및
    3개의 개별적인 피연산자 중 개별적인 제3 피연산자와 상기 제1 서브- 연산의 개별적인 결과를 입력으로서 사용하여 제2 서브-연산을 수행하고,
    암호문 메시지를 생성하기 위해 상기 복수의 암호문 블록을 연결하도록 하고,
    제2 서브-연산의 개별적인 결과는 복수의 암호문 블록의 개별적인 암호문 블록인
    비-일시적 컴퓨터-판독가능한 저장 매체.
  16. 제15항에 있어서,
    적어도 하나의 프로세서에 의해 실행될 때, 상기 명령은, 상기 적어도 하나의 프로세서가, 복수의 평문 블록 중 각각의 평문 블록이 미리 정해진 비트 길이를 갖도록 복수의 평문 블록 중 적어도 하나의 평문 블록을 패딩(padding)하도록 하는
    비-일시적 컴퓨터-판독가능한 저장 매체.
  17. 제15항에 있어서,
    적어도 하나의 프로세서에 의해 실행될 때, 상기 명령은, 상기 적어도 하나의 프로세서가:
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖는지 여부를 결정하고; 및
    개별적인 재생 가능한 데이터와 초기화 벡터 또는 개별적인 이전에-계산된 암호문 블록이 동일한 비트 길이를 갖지 않는다는 결정에 응답하여, 개별적인 재생 가능한 데이터, 초기화 벡터 또는 개별적인 이전에 계산된 암호문 블록 중 적어도 하나를 패딩하도록 하는
    비-일시적 컴퓨터-판독가능한 저장 매체.
  18. 제15항에 있어서,
    복수의 평문 블록 중 제1 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 초기화 벡터를 포함하고;
    복수의 평문 블록 중 모든 다른 평문 블록에 대해, 개별적인 입력 데이터는 개별적인 재생가능한 데이터 및 복수의 암호문 블록 중 개별적인 이전에 계산된 암호문 블록을 포함하는
    비-일시적 컴퓨터-판독가능한 저장 매체.
  19. 제15항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 논리적 연산인
    비-일시적 컴퓨터-판독가능한 저장 매체.
  20. 제15항에 있어서,
    제1 서브-연산 및 제2 서브-연산은 모두 교환적 연산인
    비-일시적 컴퓨터-판독가능한 저장 매체.
KR1020247002132A 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치 KR20240015147A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP14196089 2014-12-03
EP14196089.8 2014-12-03
KR1020237018042A KR102628466B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
PCT/EP2015/078115 WO2016087395A1 (en) 2014-12-03 2015-12-01 Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020237018042A Division KR102628466B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치

Publications (1)

Publication Number Publication Date
KR20240015147A true KR20240015147A (ko) 2024-02-02

Family

ID=52011041

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237018042A KR102628466B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
KR1020247002132A KR20240015147A (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
KR1020177013773A KR102539111B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237018042A KR102628466B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177013773A KR102539111B1 (ko) 2014-12-03 2015-12-01 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치

Country Status (11)

Country Link
US (2) US11418321B2 (ko)
EP (1) EP3228044B1 (ko)
JP (1) JP6557727B2 (ko)
KR (3) KR102628466B1 (ko)
CN (1) CN107005415B (ko)
AU (1) AU2015357253B2 (ko)
CA (1) CA2968038C (ko)
ES (1) ES2717999T3 (ko)
MX (1) MX366491B (ko)
SG (1) SG11201704361XA (ko)
WO (1) WO2016087395A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200192B2 (en) * 2017-04-19 2019-02-05 Seagate Technology Llc Secure execution environment clock frequency hopping
EP3661115B1 (en) * 2017-09-01 2024-01-17 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
KR102488636B1 (ko) * 2017-11-23 2023-01-17 삼성전자주식회사 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치
US10862670B2 (en) * 2018-05-18 2020-12-08 Infineon Technologies Ag Automotive nonce-misuse-resistant authenticated encryption
US11764945B2 (en) * 2018-05-25 2023-09-19 ZenmuTech, Inc Data processing device, method, and computer program
US10419408B1 (en) * 2018-09-24 2019-09-17 Karamba Security In-place authentication scheme for securing intra-vehicle communication
US11177933B2 (en) 2019-03-24 2021-11-16 Google Llc Side channel timing attack mitigation in securing data in transit
US20200396054A1 (en) * 2019-06-17 2020-12-17 Macronix International Co., Ltd. Secure Memory Read
CN112580064B (zh) * 2019-09-27 2023-01-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112583764B (zh) * 2019-09-27 2022-12-20 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
US11347895B2 (en) * 2019-12-03 2022-05-31 Aptiv Technologies Limited Method and system of authenticated encryption and decryption
CN112187446A (zh) * 2020-09-25 2021-01-05 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
US11546146B2 (en) * 2020-10-05 2023-01-03 Huawei Technologies Co., Ltd. Methods, encoder and decoder using encryption and authentication functions for encrypting and decrypting a message
CN112787820B (zh) * 2021-01-02 2022-02-11 浙江大学 一种适用于硬件实现的轻量级认证加密解密实现方法
CN112765686A (zh) * 2021-01-06 2021-05-07 苏州裕太微电子有限公司 芯片内算法密钥的防功耗攻击架构及方法
EP4315125A1 (en) * 2021-03-29 2024-02-07 Nvidia Corporation Comprehensively obfuscated cryptographic accelerators and operations thereof
CN113660234A (zh) * 2021-08-10 2021-11-16 中和易茂科技服务(北京)有限公司 数据加密传输和解密方法、存储器和处理器
CN113645615B (zh) * 2021-08-12 2023-12-22 衡阳师范学院 轻量级分组密码加密及解密方法
CN114338021B (zh) * 2022-03-15 2022-07-19 阿里云计算有限公司 一种密文混合运算方法及装置
CN117034310B (zh) * 2023-08-08 2024-01-26 苏州申浪信息科技有限公司 基于容器云工厂物料数据可靠记录标签的配置方法

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748410B1 (en) * 1997-05-04 2004-06-08 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
US6128737A (en) * 1998-04-20 2000-10-03 Microsoft Corporation Method and apparatus for producing a message authentication code in a cipher block chaining operation by using linear combinations of an encryption key
US7450717B1 (en) * 1999-06-08 2008-11-11 General Instruments Corporation Self authentication ciphertext chaining
CN1783774A (zh) * 2000-01-14 2006-06-07 三菱电机株式会社 加密装置和加密方法及解密装置和解密方法
US20020048364A1 (en) * 2000-08-24 2002-04-25 Vdg, Inc. Parallel block encryption method and modes for data confidentiality and integrity protection
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
US6948067B2 (en) * 2002-07-24 2005-09-20 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7254233B2 (en) * 2002-07-24 2007-08-07 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7373509B2 (en) * 2003-12-31 2008-05-13 Intel Corporation Multi-authentication for a computing device connecting to a network
US7623656B2 (en) * 2004-02-17 2009-11-24 Qualcomm Incorporated Stream cipher encryption and message authentication
KR100675837B1 (ko) * 2004-12-13 2007-01-29 한국전자통신연구원 고속 gcm-aes 블록 암호화 장치 및 방법
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand
US8509427B2 (en) * 2005-08-01 2013-08-13 Eric Myron Smith Hybrid mode cryptographic method and system with message authentication
US7715553B2 (en) * 2005-08-01 2010-05-11 Durward D. Dupre Encrypting a plaintext message with authentication
KR20080058462A (ko) * 2005-11-04 2008-06-25 닛본 덴끼 가부시끼가이샤 메시지 인증 장치, 메시지 인증 방법, 메시지 인증 프로그램을 기록한 매체
US7725719B2 (en) * 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
EP1961140A4 (en) * 2005-12-14 2013-02-27 Nds Ltd METHOD AND SYSTEM FOR THE USE OF BLOCK ENCRYPTION CRIPTAGE
WO2007121035A2 (en) * 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
GB2443244A (en) * 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
US8122247B2 (en) * 2006-10-23 2012-02-21 Alcatel Lucent Processing method for message integrity with tolerance for non-sequential arrival of message data
US8090098B2 (en) * 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
US9209967B2 (en) * 2007-03-12 2015-12-08 Exelis, Inc. Precalculated encryption key
US8107620B2 (en) * 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
TWI342703B (en) * 2007-05-10 2011-05-21 Ind Tech Res Inst Low-latency method and apparatus of ghash operation for authenticated encryption galois counter mode
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
US8335316B2 (en) * 2008-04-21 2012-12-18 Broadcom Corporation Method and apparatus for data privacy in passive optical networks
CN102144370B (zh) * 2008-09-04 2015-04-15 富士通株式会社 发送装置、接收装置、发送方法及接收方法
KR101076681B1 (ko) * 2008-11-14 2011-10-26 한국전자통신연구원 데이터의 암호화 방법 및 그 복호화 방법
CN102687457A (zh) * 2009-05-15 2012-09-19 里维尔技术有限责任公司 用于加密和解密纯文本消息的具有认证的系统
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US8612352B2 (en) * 2010-10-13 2013-12-17 Square, Inc. Decoding systems with a decoding engine running on a mobile device and coupled to a payment system that includes identifying information of second parties qualified to conduct business with the payment system
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
WO2011068996A1 (en) * 2009-12-04 2011-06-09 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
CN102918795A (zh) * 2010-03-31 2013-02-06 罗伯特·博世有限公司 用于音频的认证加密的方法和设备
WO2011140368A1 (en) * 2010-05-05 2011-11-10 Eric Myron Smith Hybrid mode cryptographic method and system with message authentication
WO2011160683A1 (en) * 2010-06-22 2011-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Privacy preserving authorisation in pervasive environments
CN101958790B (zh) * 2010-10-09 2012-10-17 中国人民解放军信息工程大学 无线通信网络数字信息加密或解密方法
CN103155481A (zh) * 2010-10-15 2013-06-12 塞尔蒂卡姆公司 具有消息恢复的数字签名的认证加密
EP2442484A1 (en) * 2010-10-15 2012-04-18 Certicom Corp. Authenticated encryption for digital signatures with message recovery
DE102011009008A1 (de) * 2011-01-20 2012-07-26 Rohde & Schwarz Gmbh & Co. Kg Authentifizierung von verschlüsselten Datenblöcken
JP5167374B2 (ja) * 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード
US9160539B1 (en) * 2011-09-30 2015-10-13 Emc Corporation Methods and apparatus for secure, stealthy and reliable transmission of alert messages from a security alerting system
JP2013098722A (ja) * 2011-10-31 2013-05-20 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
US20140317407A1 (en) * 2011-10-31 2014-10-23 Nec Corporation Incremental mac tag generation device, method, and program, and message authentication device
US9166793B2 (en) * 2011-12-05 2015-10-20 University Of Washington Efficient authentication for mobile and pervasive computing
US20130238900A1 (en) * 2011-12-12 2013-09-12 Cleversafe, Inc. Dispersed storage network secure hierarchical file directory
US9425959B1 (en) * 2012-10-03 2016-08-23 Altera Corporation Security variable scrambling
WO2014058971A1 (en) * 2012-10-09 2014-04-17 Huawei Technologies Co., Ltd. Authenticated encryption support in iso/iec 23009-4
WO2014084886A1 (en) * 2012-11-29 2014-06-05 Blackberry Limited Authenticated encryption method using working blocks
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム
US20140281587A1 (en) * 2013-03-14 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor
US10237066B1 (en) * 2013-06-27 2019-03-19 Altera Corporation Multi-channel encryption and authentication
KR101809386B1 (ko) * 2013-08-02 2017-12-14 닛본 덴끼 가부시끼가이샤 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체
US9208335B2 (en) * 2013-09-17 2015-12-08 Auburn University Space-time separated and jointly evolving relationship-based network access and data protection system
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
US20170264426A1 (en) * 2014-05-16 2017-09-14 Thomson Licensing Method and apparatus for generating shorter signatures almost tightly related to standard assumptions
US9537657B1 (en) * 2014-05-29 2017-01-03 Amazon Technologies, Inc. Multipart authenticated encryption
WO2016027454A1 (ja) * 2014-08-20 2016-02-25 日本電気株式会社 認証暗号化方法、認証復号方法および情報処理装置

Also Published As

Publication number Publication date
KR102628466B1 (ko) 2024-01-23
BR112017010974A2 (pt) 2018-01-09
CN107005415B (zh) 2021-03-23
US20230041383A1 (en) 2023-02-09
KR102539111B1 (ko) 2023-06-01
JP2017536581A (ja) 2017-12-07
CA2968038C (en) 2024-01-09
MX366491B (es) 2019-07-10
US11418321B2 (en) 2022-08-16
CA2968038A1 (en) 2016-06-09
EP3228044B1 (en) 2019-02-20
CN107005415A (zh) 2017-08-01
JP6557727B2 (ja) 2019-08-07
US20170366340A1 (en) 2017-12-21
KR20170091599A (ko) 2017-08-09
AU2015357253A1 (en) 2017-06-15
WO2016087395A1 (en) 2016-06-09
SG11201704361XA (en) 2017-06-29
AU2015357253B2 (en) 2018-03-08
EP3228044A1 (en) 2017-10-11
ES2717999T3 (es) 2019-06-26
KR20230079509A (ko) 2023-06-07
MX2017007015A (es) 2017-10-02

Similar Documents

Publication Publication Date Title
KR102628466B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
Li et al. Differential fault analysis on the ARIA algorithm
US8000473B2 (en) Method and apparatus for generating cryptographic sets of instructions automatically and code generator
Ramezanpour et al. A statistical fault analysis methodology for the ascon authenticated cipher
Dobraunig et al. Fault attacks on nonce-based authenticated encryption: Application to keyak and ketje
Dassance et al. Combined fault and side-channel attacks on the AES key schedule
Hell et al. An AEAD variant of the grain stream cipher
Joshi et al. SSFA: Subset fault analysis of ASCON-128 authenticated cipher
US20120257747A1 (en) Method of secure cryptographic calculation, in particular, against attacks of the dfa and unidirectional type, and corresponding component
Zhang et al. Securing the AES cryptographic circuit against both power and fault attacks
Anand et al. Differential fault attack on SIMON with very few faults
Arribas et al. Guards in action: First-order SCA secure implementations of KETJE without additional randomness
Vialar Fast side-channel key-recovery attack against elephant dumbo
Diedrich et al. Comparison of Lightweight Stream Ciphers: MICKEY 2.0, WG-8, Grain and Trivium
Bringer et al. On physical obfuscation of cryptographic algorithms
Taha et al. Keymill: Side-channel resilient key generator
Ghosal et al. Strengthening the security of AES against differential fault attack
Kim et al. New Type of Collision Attack on First‐Order Masked AESs
Zhang et al. Optimized lightweight hardware trojan-based fault attack on des
Liu et al. Meet‐in‐the‐middle fault analysis on word‐oriented substitution‐permutation network block ciphers
Beigizad et al. Linked Fault Analysis
Oliynykov Next generation of block ciphers providing high-level security
Feix et al. Defeating embedded cryptographic protocols by combining second-order with brute force
Volpe Evaluation of encryption algorithm security in heterogeneous platform against differential power analysis attack
Maistri et al. An evaluation of an AES implementation protected against EM analysis

Legal Events

Date Code Title Description
A107 Divisional application of patent