KR20160122180A - 감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들 - Google Patents

감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들 Download PDF

Info

Publication number
KR20160122180A
KR20160122180A KR1020167024413A KR20167024413A KR20160122180A KR 20160122180 A KR20160122180 A KR 20160122180A KR 1020167024413 A KR1020167024413 A KR 1020167024413A KR 20167024413 A KR20167024413 A KR 20167024413A KR 20160122180 A KR20160122180 A KR 20160122180A
Authority
KR
South Korea
Prior art keywords
data
key
block
reduced
modified
Prior art date
Application number
KR1020167024413A
Other languages
English (en)
Other versions
KR101767655B1 (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 KR20160122180A publication Critical patent/KR20160122180A/ko
Application granted granted Critical
Publication of KR101767655B1 publication Critical patent/KR101767655B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Abstract

일 특징은 데이터 기밀성을 개선시키기 위해 데이터를 인크립팅하는 것에 관련된다. 일 양상에서, 감소된-라운드 블록 암호들과 함께 사용하기 위해 XTS 인크립션의 수정된 형태가 제공된다. 감소된-라운드 암호를 적용시키기 위해 수정된 비밀 키를 생성하거나 또는 다른 방식으로 획득하기 위해서, 감소된-라운드 암호에 적용될 데이터의 데이터 유닛 인덱스가 비밀 키 하에서 인크립팅된다. 즉, 감소된-라운드 암호에 의해 인크립팅될 데이터는 정적 키 하에서 인크립팅되는 것이 아니라, 대신에 데이터의 인덱스에 따라 변하는 동적 키 하에서 인크립팅된다. 공격자가 암호에 의해 인크립팅된 데이터를 분석함으로써 감소된-라운드 암호에 적용된 키의 값을 도출하려 한다면, 공격자는 전체 어드레스 공간에 적용된 글로벌 정적 키가 아니라, 일 특정 데이터 유닛 인덱스에 대응하는 동적 키만을 획득할 것이다. 디크립션 프로시저들이 또한 설명된다.

Description

감소된-라운드 암호들을 사용하는 XTS 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들{DYNAMIC ENCRYPTION KEYS FOR USE WITH XTS ENCRYPTION SYSTEMS EMPLOYING REDUCED-ROUND CIPHERS}
관련 출원들에 대한 상호-인용
[0001] 본 출원은, 2014년 3월 11일자로 미국 특허 상표청에 출원된 U.S. 정식 특허 출원 번호 14/205,230에 대한 우선권 및 그 이득을 주장하며, 위의 특허 출원의 전체 내용은 본원에 인용에 의해 통합된다.
[0002] 다양한 특징들은 인크립션, 특히, 모바일 컴퓨팅 디바이스들과 함께 사용하기 위한 XTS 블록 암호 모드들을 활용하는 인크립션에 관한 것이다.
[0003] 메모리 시스템들 또는 다른 저장 시스템들, 특히, 공격자 또는 다른 악의적 엔티티가 액세스할 수 있는 메모리 시스템들 내에 저장되는 데이터의 기밀성을 개선시키기 위해, 블록 암호(cipher)들이 암호기법(cryptography)에서 사용된다. 통상적으로, 블록 암호들은 비트들의 고정-길이 그룹들(즉, 블록들)에 대해 동작하는 결정성 프로시저 또는 알고리즘을 사용한다. 블록 암호들은, 벌크 데이터, 예컨대, 스마트폰들 또는 다른 모바일 컴퓨팅 디바이스들의 시스템-온-어-칩(SoC:System-on-a-Chip) 프로세서들과 함께 사용되는 오프-칩 메모리 디바이스들 상에 저장된 데이터의 인크립션을 구현하기 위해 사용될 수 있다. 블록 암호 동작 모드의 일 예는 IEEE(Institute of Electrical and Electronics Engineers) 표준 1619-2007에 의해 특정된 XTS-AES이다. 또한, NIST(National Institute of Standards and Technology) 특별 공개 800-38E인 "Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices"(2010년 6월)을 참조하라. XTS는 "XEX Tweakable Block Cipher with Ciphertext Stealing"를 나타내고, XEX는 "XOR Encrypt XOR"를 나타냄을 주목하라. AES는 어드밴스드 인크립션 시스템(Advanced Encryption System)을 지칭한다.
[0004] 간단히, XTS-AES 모드는, 고정 길이 "데이터 유닛들"을 사용하는 저장 디바이스들 상의 데이터의 암호 보호를 위해 의도된다. 표준 XTS 블록 암호 모드는 비밀로 유지되도록 의도되는 고정 키들 K1 및 K2을 사용하며, 일반적으로 말하면, K1은 데이터에 대해 동작하고, K2는 대응하는 데이터 유닛 인덱스들에 대해 동작한다. 일정한 애플리케이션들의 경우, 예컨대, 스마트폰들의 메모리 디바이스들 상에 저장된 데이터의 리트리벌(retrieval)의 경우, K1을 활용하는 블록 암호 함수는, 전체 읽기 레이턴시를 감소시키기 위하여 이 블록 암호 함수가 더욱 신속하게 동작하도록 허용하기 위해, 암호에 의해 사용되는 라운드들의 수를 감소시킴으로써, "스트립 다운(strip down)"될 수 있다. 이러한 블록 암호들은 감소된-라운드 블록 암호(reduced-round block cipher)들로 지칭된다. 이 점에 있어서, 블록 암호들은 라운드 함수들로서 알려진 가역 변환들을 사용할 수 있는데, 각각의 반복이 라운드로 지칭된다. 감소된-라운드 암호는, 풀 블록 암호(full block cipher)에 대해 잘린 또는 감소된 수의 이러한 라운드들, 예컨대, 32개가 아니라 16개의 라운드들 또는 반복들을 사용할 수 있다. 그러나, 감소된-라운드 암호들은 키들 중 적어도 일부를 덜 안전하게 렌더링할 수 있다.
[0005] 그러므로, 저장 시스템들, 예컨대, 공격자 또는 다른 악의적 엔티티가 액세스할 수 있는 메모리 시스템들 내에 저장된 데이터, 특히, 감소된-라운드 암호들을 사용하여 인크립팅된 데이터의 기밀성을 개선시킬 필요가 있다.
[0006] 일 양상에서, 감소된-라운드 인크립션 암호와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법은, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하는 단계 ―데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅하는 단계; 및 인크립팅된 데이터를 저장 디바이스에 저장하는 단계를 포함한다.
[0007] 다른 양상에서, 디바이스는 데이터를 저장하기 위한 저장 디바이스, 및 이 저장 디바이스에 커플링된 프로세싱 회로를 포함하고, 프로세싱 회로는, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅하고; 그리고 인크립팅된 데이터를 저장 디바이스에 저장하도록 구성된다.
[0008] 또 다른 양상에서, 감소된-라운드 디크립션 암호와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법은, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하는 단계 ―데이터 유닛 인덱스는 감소된-라운드 디크립션 암호에 의해 디크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호를 사용하여, 데이터를 디크립팅하는 단계; 및 디크립팅된 데이터를 저장 디바이스에 저장하는 단계를 포함한다.
[0009] 여전히 또 다른 양상에서, 디바이스는 데이터를 저장하기 위한 저장 디바이스, 및 이 저장 디바이스에 커플링된 프로세싱 회로를 포함하고, 프로세싱 회로는, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―데이터 유닛 인덱스는 감소된-라운드 디크립션 암호에 의해 디크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호를 사용하여, 데이터를 디크립팅하고; 그리고 디크립팅된 데이터를 저장 디바이스에 저장하도록 구성된다.
[0010] 도 1은 예시적 예에 따른, 모바일 통신 디바이스의 시스템 온 어 칩(SoC) 프로세서의 블록도를 예시한다.
[0011] 도 2는 풀-라운드 블록 암호를 사용하는 예시적 XTS 블록 암호 인크립션 프로시저를 예시하며, 제 1 비밀 키 및 제 2 비밀 키가 사용된다.
[0012] 도 3은 예시적 XTS 블록 암호 인크립션 프로시저를 예시하며, 감소된-라운드 블록 암호가 사용된다.
[0013] 도 4는 수정된 XTS 인크립션 프로시저의 개요를 제공하며, 제 1 키 뿐만 아니라 제 2 (백색화) 키가 동적으로 획득된다.
[0014] 도 5는 도 4의 인크립션 프로시저와 함께 사용하기 위한 예시적 방법을 예시하는 블록도이며, SoC 프로세서 시스템과 함께 사용하기 위한 각각의 새로운 쓰기 동작에 대해 제 1 키는 동적으로 획득된다.
[0015] 도 6은 추가로, 도 4의 인크립션 프로시저의 양상들을 예시한다.
[0016] 도 7은 도 1 - 도 6의 시스템들, 방법들 및 장치와 함께 사용하기 위한 저장 디바이스의 예를 예시하는 블록도이다.
[0017] 도 8은 도 4 - 도 7의 프로시저를 사용하여 이전에 인크립팅된 데이터를 디크립팅할 때 사용하기 위한 예시적 디크립션 방법을 예시하는 블록도이다.
[0018] 도 9는 추가로, 도 8의 디크립션 프로시저의 양상들을 예시한다.
[0019] 도 10은 도 1 - 도 9의 시스템들 및 방법들을 활용할 수 있는 프로세싱 시스템을 사용하는 장치에 대한 하드웨어 구현의 예를 예시하는 블록도이다.
[0020] 도 11은 도 10의 프로세서의 디바이스 컴포넌트들을 예시하는 블록도이다.
[0021] 도 12는 도 10의 프로세서-판독 매체의 명령 컴포넌트들을 예시하는 블록도이다.
[0022] 도 13은 도 10 - 도 12의 컴포넌트들에 의해 수행될 수 있는 인크립션 프로시저를 요약한다.
[0023] 도 14는 추가로, 도 13의 인크립션 프로시저의 양상들을 요약한다.
[0024] 도 15는 도 10 - 도 12의 컴포넌트들에 의해 수행될 수 있는 디크립션 프로시저를 요약한다.
[0025] 도 16은 추가로, 도 15의 디크립션 프로시저의 양상들을 요약한다.
[0026] 하기의 설명에서는, 본 개시 내용의 다양한 양상들의 철저한 이해를 제공하기 위해 특정 세부사항들이 제공된다. 그러나, 이들 특정 세부사항들 없이, 양상들이 실시될 수 있음이 당업자에 의해 이해될 것이다. 예컨대, 양상들을 불필요한 세부사항으로 모호하게 하는 것을 회피하기 위하여, 회로들은 블록도들로 도시될 수 있다. 다른 인스턴스들에서, 본 개시 내용의 양상들을 모호하게 하지 않기 위하여, 잘 알려진 회로들, 구조들 및 기술들은 상세히 도시되지 않을 수 있다.
[0027] "예시적"이란 단어는 본원에서 "예, 인스턴스, 또는 예시로서의 역할을 하는"을 의미하도록 사용된다. "예시적"인 것으로서 본원에 설명되는 임의의 구현 또는 양상이 반드시 본 개시 내용의 다른 양상들보다 바람직하거나 또는 유리한 것으로서 이해되지 않아야 한다. 마찬가지로, "양상들"이란 용어는, 본 개시 내용의 모든 양상들이 논의되는 특징, 장점 또는 동작 모드를 포함하는 것을 요구하지 않는다.
개요
[0028] 여러 신규한 특징들은, 데이터의 기밀성을 보존하기 위해, 저장 디바이스들에 저장하기 위한 데이터를 인크립팅하는 것에 관련된다. 신규한 특징들은 시스템-오브-어-칩(SoC:system-of-a-chip) 디바이스들에서 사용될 수 있지만, 넓은 범위의 시스템들, 장치 및 디바이스들에서, 그리고 다양한 목표들을 달성하기 위해 적용가능하다.
[0029] 일 양상에서, SoC 프로세서의 인크립션/디크립션 컴포넌트는 XTS 블록 암호의 수정된 형태를 사용하여 데이터를 인크립팅/디크립팅하며, 하나의 암호 인스턴스는 "스트립 다운"된 감소된-라운드 암호이고, 두 개의 키들(K1 및 K2)은 데이터 유닛 인덱스들 또는 트위크(tweak)들, 예컨대, 페이지 인덱스들의 인크립션/디크립션에서 사용된다. 감소된-라운드 암호는 풀 블록 암호에 대해 잘린 또는 감소된 수의 라운드들을 사용하며, 대응하는 풀 블록 암호의 라운드들의 수는 정해진 인크립션 표준, 예컨대, AES에 의해 특정되거나 또는 정의되거나, 또는 사용되고 있는 특정 블록 암호의 수학적 처리(mathematics)에 의해 암시적으로 또는 명시적으로 결정될 수 있다. 일 예에서, 풀-라운드 암호가 32개 라운드들을 사용할 수 있는 반면에, 감소된-라운드 버전은 8개만을 사용한다. 주목되는 바와 같이, 일반적으로 말하면, K1은 데이터에 대해 동작하고, K2는 데이터 유닛 인덱스들, 예컨대, 페이지들에 대해 동작한다. 예컨대 스트립 다운된 암호 함수를 사용할 때, K1은 악의적 엔티티들에 대한 공개의 위험에 처할 수 있다. 예컨대, 감소된-라운드 인크립션 암호를 사용하여 인크립팅되고 이후 메모리에 저장된 데이터는, K1에 대한 값을 잠재적으로 결정하기 위해 공격자에 의해 분석될 수 있는데, 그 이유는 풀(full) 암호가 사용되지 않았기 때문이다. K1이 위태롭게 되면, 저장 디바이스와 연관된 어드레스 공간 내의 데이터가 마찬가지로 위태롭게 된다. K1의 기밀성 및 이에 따른 K1을 사용하여 인크립팅된 데이터의 기밀성은, 본원에 설명되는 프로시저들에 의해 개선될 수 있으며, 수정된 키(본원에서 K1'로 표기됨)를 생성하거나 또는 다른 방식으로 획득하기 위해, 데이터 유닛 인덱스(또는 페이지 번호)는 K1 하에서 풀 블록 암호를 사용하여 동적으로 인크립팅되고, 이후, 이 수정된 키는, 감소된-라운드 인크립션 암호를 사용하여 데이터를 인크립팅하기 위해 사용된다. 즉, 데이터(또한, XTS에 따라 K2를 활용하는 암호 인스턴스의 출력을 사용하여 백색화될 수 있음)를 인크립팅하기 위해 K1을 감소된-라운드 인크립션 암호에 직접적으로 적용하는 것이 아니라, 본원에 설명되는 예시적 프로시저들은 K1의 수정된 그리고 동적으로 획득된 버전(즉, K1')을 감소된-라운드 인크립션 암호에 적용한다. 본원에서, "획득"이 예컨대, 생성, 포착, 수신, 리트리빙 또는 임의의 다른 적절한 대응하는 액션들의 수행을 넓게 커버함을 주목하라. 그 후, 공격자가 K1'의 값을 결정하면, 전체 어드레스 공간의 모든 데이터가 아니라, K1'를 생성하기 위해 사용된 특정 데이터 유닛 인덱스에 대응하는 데이터만이 위태롭게 되는데, 그 이유는 다른 데이터 유닛들이 상이한 데이터 유닛 인덱스들 또는 트위크들에 기초한 K1'의 상이한 버전들을 이용하여 인크립팅되기 때문이다.
[0030] 이 점에 있어서, 데이터를 데이터 유닛들(또는 페이지들)에 저장하는 시스템을 고려하라. 일 모드로서의 XTS는 하기와 같이 동작하기 위해 사용될 수 있다:
Figure pct00001
여기서, 값 W는 입력 및 출력 백색화 키이고, i는 데이터 유닛 인덱스이고, j는 인크립팅될 데이터 P의 블록 인덱스(즉, 데이터 유닛 내에서의 오프셋)이고, 그리고
Figure pct00002
는 배타적-OR(XOR) 동작을 표현한다. V가 i에 따라서는 좌우되지만 j에 따라서는 좌우되지 않는다는 것, 즉, 본 예에서, 데이터 유닛 내의 모든 블록들이 동일한 V를 공유하고, 단일 데이터 유닛 내에서의 연속적인 동작들에 대해 V를 단 한 번 컴퓨팅하기 위해 다양한 최적화들이 사용될 수 있음을 주목하라. 표준 AES-XTS는, 상기가 단순화되도록, F1 및 F3를 AES-128(E)로 셋팅하고
Figure pct00003
에서 F2(j, a) =
Figure pct00004
로 셋팅함으로써 하기와 같이 획득될 수 있다:
Figure pct00005
.
[0031] 이 표준 XTS 모드는 고정 키 K1 하에서의 플레인텍스트 Pj의 인크립션으로서 간주될 수 있는데, 키 K2 하에서 데이터 유닛 인덱스(i)를 인크립팅하는 것으로부터 추가적인 입력/출력 "백색화 키"가 도출된다. XTS의 일 특징은, 인크립션이 포지션-종속적이라는 점이다. 따라서, 공격자들은 데이터를 복사하여 상이한 위치들에 붙일 수 없고, 플레인텍스트를 임의의 유용한 방식으로 보존할 수 있다. 데이터는 동일한 위치로만 복사 및 붙여질 수 있다. 기밀성에 관하여, XTS가 난스(nonce)-기반(여기서, 난스는 "한 번 사용되는 번호"를 의미함)이 아니라, 그럼에도 불구하고 통상적 전자 코드 북(ECB:Electronic Code Book)-형 분석에 하기의 방식으로 저항(resist)함을 주목하라. 통상적 ECB에서는, 동일한 키 하에서 어드레스들 A1 및 A2(여기서, A1 ≠ A2)에 쓰인 플레인텍스트 P는 동일한 암호문 C를 산출할 것이다. XTS에 대해, 백색화 키들이 상이할 것이고, 이는 C1 ≠ C2인 암호문들 C1 및 C2를 야기한다. 요약하면, XTS에 대한 ECB-형 분석은 통상적으로, 전체 어드레스 공간이 아니라 단일 어드레스(특정하게, i와 j의 결합)로 제한된다. (이 점에 있어서, P는 항상, A1에서는 C1로 인크립팅되지만, 상이한 A2에서는 상이한 C2로 인크립팅된다.)
[0032] 본원에 설명되는 적어도 일부 예시적 프로시저들에서, 하기를 셋팅하는 XTS 동작 모드의 수정된 형태가 제공된다:
Figure pct00006
F4 = F1은 예시적이고, 아마도 바람직한 변화 또는 구현임을 주목하라. 이 수정된 XTS 모드는 동적 키 K1' 하에서의 플레인텍스트 Pj의 인크립션으로서 간주될 수 있는데, 키 K2 하에서 데이터 유닛 인덱스(i)를 인크립팅하는 것으로부터 추가적인 입력/출력 "백색화 키"가 도출된다. 데이터 유닛마다 K1'를 동적으로 도출하는 것은, 그 특정 데이터 유닛의 데이터만을 잠재적 위험에 둔다. 데이터는 후속하여, 플레인텍스트를 다시 획득하기 위해, 일반적으로 동일한 키들 및 인덱스들을 이용하여 프로세스를 리버싱함으로써 디크립팅할 수 있다. 예컨대, 메모리 디크립션에서의 판독들과 같은 많은 애플리케이션들에서, 하드웨어는 자신이 Pj를 획득하기 이전에 i를 획득하는데, 즉, 프로세싱 디바이스는 디크립팅될 데이터를 자신이 페치하기 이전에 어드레스를 획득한다. 이로써, 프로세싱 디바이스는 그 사이의 레이턴시를 사용하여, 디크립팅될 데이터가 메모리로부터 페치되고 있는 동안에 V 및 K1'를 컴퓨팅하기 위해 F1 및 F4를 이용하여 i에 대해 동작할 수 있다.
[0033] 용어에 대한 주석: 본원에서, K1'은, 감소된-라운드 인크립션 및 디크립션 암호들에 대한 키로서 사용하기 위해 데이터 유닛 인덱스를 인크립팅하는 제 1 블록 암호의 출력을 표기하기 위해 사용되며, 그리고 제 1 키 K1의 수정된 버전으로 지칭된다. 이 용어는, K1'가 정적 키 K1 대신에 감소된-라운드 암호에 적용되기 때문에 사용된다. 용어는 임의적이고, 이 값은 대신에 다른 용어들을 사용하여 지칭될 수 있다. 문자 V는 대체로 본원에서, 백색화 키를 생성하거나 또는 다른 방식으로 획득하기 위해 사용되는 제 2 블록 암호의 출력을 표기하기 위해 사용된다. 이 용어는, 다른 표준 XTS 인크립션 용어와 일치하게 되도록 사용된다. 그러나, 다시, 용어는 임의적이고, 이 값은 대신에 다른 용어들을 사용하여 지칭될 수 있다. 일부 경우들에서, V는 추가적으로 또는 대안적으로, 본원에서 제 2 키 K2의 수정된 버전으로 지칭된다.
예시적 시스템-온-어-칩 하드웨어 환경
[0034] 도 1은 다양한 신규한 특징들이 활용될 수 있는 일 예에 따라 모바일 통신 디바이스의 시스템-온-어-칩(SoC) 프로세서 디바이스(100)를 예시한다. SoC 프로세서는 Qualcomm Incorporated에 의해 제조되는 Snapdragon™ 프로세서일 수 있다. SoC 프로세서(100)는 애플리케이션 프로세서(110)를 포함하고, 이 애플리케이션 프로세서(110)는 멀티-코어 CPU(112)를 포함한다. 애플리케이션 프로세서(110)는 통상적으로, 모바일 통신 디바이스의 모든 컴포넌트들의 동작을 제어한다. 일 양상에서, 애플리케이션 프로세서(110)는, 동적으로 생성되는 키들, 예컨대, 전술된 동적으로 생성되는 K1' 키를 사용하는 수정된 XTS 인크립션/디크립션을 수행하도록 갖춰진 인크립션/디크립션 컴포넌트들(150)을 포함한다. 애플리케이션 프로세서(110)는, SoC 프로세서(100)의 다양한 컴포넌트들에 대한 부트 시퀀스 명령들을 저장하는 부트 ROM(read-only memory)(118)을 포함할 수 있다. SoC 프로세서(100)는 애플리케이션 프로세서(110)에 의해 제어되는 하나 또는 그 초과의 주변장치 서브시스템들(120)을 더 포함한다. 주변장치 서브시스템들(120)은, 저장 서브시스템(예컨대, ROM(read-only memory), RAM(random access memory)), 비디오/그래픽스 서브시스템(예컨대, DSP(digital signal processor), GPU(graphics processor unit)), 오디오 서브시스템(예컨대, DSP, ADC(analog-to-digital converter), DAC(digital-to-analog converter)), 전력 관리 서브시스템, 보안 서브시스템(예컨대, 인크립션, DRM(digital rights management)), 입력/출력(I/O) 서브시스템(예컨대, 키보드, 터치스크린), 그리고 유선 및 무선 연결성 서브시스템들(예컨대, USB(universal serial bus), GPS(Global Positioning System), Wi-Fi, GSM(Global System Mobile), CDMA(코드 Division Multiple Access), 4G LTE(Long Term Evolution) 모뎀들)을 포함할 수 있지만, 이에 제한되지 않는다. 모뎀 서브시스템인 예시적 주변장치 서브시스템(120)은 DSP(122), 다양한 하드웨어(HW:hardware) 및 소프트웨어(SW:software) 컴포넌트들(124), 그리고 다양한 라디오-주파수(RF:radio-frequency) 컴포넌트들(126)을 포함한다. 일 양상에서, 각각의 주변장치 서브시스템(120)은 또한, 연관된 주변장치 서브시스템들(120)의 주(primary) 부트 이미지(미도시)를 저장하는 부트 ROM(128)을 포함한다.
[0035] SoC 프로세서(100)는 다양한 내부 공유 HW 자원들(130), 예컨대, 내부 공유 스토리지(132)(예컨대, SRAM(static RAM), DDR(double-data rate) 및/또는 SD(synchronous dynamic) RAM, DRAM, 플래시 메모리 등)를 더 포함하고, 이 내부 공유 스토리지(132)는, 다양한 런타임 데이터를 저장하기 위해 애플리케이션 프로세싱 회로(110) 및 다양한 주변장치 서브시스템들(120)에 의해 공유된다. 일 양상에서, SoC 프로세싱 회로(100)의 컴포넌트들(110, 118, 120, 128 및 130)은 단일-칩 기판 상에 집적된다. SoC 프로세싱 회로(100)는 다양한 외부 공유 HW 자원들(140)을 더 포함하고, 이 외부 공유 HW 자원들(140)은 상이한 칩 기판 상에 위치될 수 있고, 시스템 버스(미도시)를 통해 SoC 프로세싱 회로(100)와 통신할 수 있다. 외부 공유 HW 자원들(140)은 예컨대, 외부 공유 저장 디바이스(142)(예컨대, DDR RAM, DRAM, 플래시 메모리) 및/또는 영구적 데이터 스토리지(144)(예컨대, SD(Secure Digital) 카드 또는 HDD(하드 디스크 Drive) 등)를 포함할 수 있고, 이들은, 다양한 타입들의 데이터, 예컨대, 운영체제(OS:operating system) 정보, 시스템 파일들, 프로그램들, 애플리케이션들, 사용자 데이터, 오디오/비디오 파일들, 등을 저장하기 위해, 애플리케이션 프로세싱 회로(110) 및 다양한 주변장치 서브시스템들(120)에 의해 공유된다. SoC를 포함하는 모바일 통신 디바이스가 활성화될 때, 보안 SoC 프로세싱 회로(100)는 시스템 부트 업 프로세스를 시작한다. 특히, 애플리케이션 프로세싱 회로(110)는, 다양한 주변장치 서브시스템들(120)에 대한 부트 시퀀스 명령들을 비롯해, SoC 프로세싱 회로(100)에 대한 부트 명령들을 리트리빙 또는 획득하기 위해, 부트 ROM(118)에 액세스한다. 주변장치 서브시스템들(120)은 또한, 추가적인 주변장치 부트 ROM(128)을 가질 수 있다.
동적 K 1 키를 이용하지 않는 예시적 XTS -기반 인크립션 프로시저들
[0036] 도 2는 정적 K1 키(204) 및 정적 K2 키(206)와 결합하여 데이터를 인크립팅하기 위한 풀-라운드 인크립션 블록 암호(202)를 사용하는 도 1의 SoC 프로세싱 회로, 또는 다른 적절한-구비된 디바이스들, 시스템들 또는 프로세싱 회로들에 의해 사용될 수 있는 예시적 프로시저(200)를 예시한다. 이 구현은, 예컨대, 풀-라운드 암호가 인크립션 동안 그리고 후속하는 디크립션 동안 둘 다에서 사용될 수 있도록, 읽기 레이턴시가 디크립션 동안의 이슈가 아닌 시스템들에서 사용될 수 있다. 다시, IEEE 표준 1619-2007을 참조하라. 이 모드에서, K2 키(206) 하에서 페이지 인덱스(210)(128개 비트들일 수 있음)를 인크립팅하기 위해 풀-라운드 블록 암호(208)가 사용된다(이 경우, 페이지 인덱스는 또한, "트위크"로 지칭될 수 있음). V로 표기되고 K2의 수정된 버전으로서 간주될 수 있는 블록 암호(208)의 출력이 212에서 αj(214)로 곱셈되어, 입력/출력 백색화 값이 제공되며, α는 상수이고, j는 블록 인덱스(인크립팅될 데이터의 페이지 내에서의 오프셋일 수 있음)를 표현한다. 이후, 인크립팅될 데이터(216)는 218에서 백색화 값과 XOR되고, "백색화된" 데이터로서 풀-라운드 인크립션 암호(202)에 입력된다. 이후, 백색화된 데이터는 K1 하에서 풀-라운드 인크립션 암호에 의해 인크립팅된다. 이후, XOR 함수(212)에 의해 생성된 입력/출력 백색화 값이 풀 블록 암호로부터의 출력 데이터와 220에서 XOR되어, 최종 암호문(222)이 산출되고, 이 최종 암호문(222)은 예컨대, 도 1에 도시된 타입의 오프-칩 저장 디바이스 또는 어떤 다른 적절한 저장 위치에 저장될 수 있다. 이들 프로시저들은, 풀-라운드 디크립션 암호를 사용하여 암호문을 다시 플레인텍스트로 디크립팅하기 위해 리버싱될 수 있다.
[0037] 도 3은 다시 정적 K1 키(304) 및 정적 K2 키(306)와 결합하여 데이터를 인크립팅하기 위한 감소된-라운드 인크립션 암호(302)를 사용하는 도 1의 SoC 프로세싱 회로 또는 다른 적절한-구비된 디바이스들, 시스템들 또는 프로세싱 회로들에 의해 사용될 수 있는 예시적 프로시저(300)를 예시한다. 이 구현은 예컨대, 읽기 레이턴시가 디크립션 동안의 이슈가 아니지만, K1의 공개 위험이 상당한 것으로 여겨지지 않는 시스템들에서 사용될 수 있다. 도 3의 동작 모드의 특징들 중 많은 특징들이 도 2의 특징들과 동일하거나 또는 유사하고, 그에 따라 단지 간단히 설명될 것이다. 다시, K2 키(306) 하에서 페이지 인덱스(310)를 인크립팅하기 위해 풀-라운드 블록 암호(308)가 사용된다. 출력 V가 312에서 αj(314)로 곱셈되어, 입력/출력 백색화 값이 제공된다. 이후, 인크립팅될 데이터(316)는 318에서 백색화 값과 XOR되고, 백색화된 데이터로서 감소된-라운드 인크립션 암호(302)에 입력된다. 이후, 백색화된 데이터는 정적 키 K1 하에서 감소된-라운드 인크립션 암호에 의해 인크립팅된다. 이후, 백색화 값이 감소된-라운드 인크립션 암호로부터의 출력 데이터와 320에서 XOR되어, 최종 암호문(322)이 산출된다. 프로시저들은, 감소된-라운드 디크립션 암호를 사용하여 암호문을 다시 플레인텍스트로 디크립팅하기 위해 리버싱될 수 있다. 풀 블록 암호들이 아니라 감소된-라운드 암호들이 사용되기 때문에, 키 K1은 잠재적으로, 데이터의 어드레스 공간 내의 모든 데이터와 함께 위험에 처한다.
동적 K 1 키를 이용하는 예시적 XTS -기반 인크립션 프로시저들
[0038] 도 4는 XTS 암호들과 함께 사용하기 위한 동적으로 생성되는(또는 다른 방식으로 동적으로 획득되는) 키 K1'를 사용함으로써 데이터 기밀성을 개선시키기 위한, 도 1의 SoC 프로세싱 회로, 또는 다른 적절한-구비된 디바이스들, 시스템들 또는 프로세싱 회로들에 의해 사용될 수 있는 프로시저(400)의 개요를 제공한다. 단계(402)에서, 수정된 제 1 키 K1'를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키(K1) 하에서(또는 이 제 1 키(K1)에 "기초하여" 또는 이 제 1 키(K1)를 "사용하여" 등), 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스가 동적으로 인크립팅된다. 단계(404)에서, 수정된 제 1 키(K1') 하에서, 풀 블록 암호보더 더 적은 수의 라운드들을 갖는 감소된-라운드 인크립션 암호를 사용하여, 데이터가 인크립팅된다. 단계(406)에서, 인크립팅된 데이터(예컨대, 암호문)는 저장 디바이스, 예컨대, 오프-칩 메모리 디바이스에 저장된다. 정적 키가 아니라, 감소된-라운드 인크립션 암호와 함께 동적으로 생성되는 키 K1'를 사용함으로써, K1' 키가 공격자에 의해 공개되거나 또는 획득된다면, 데이터 유닛 인덱스들과 연관된 어드레스 공간 내, 즉, 어드레스 공간의 모든 페이지들 내의 데이터 전부가 아니라, K1' 키를 생성하기 위해 사용된 인덱스와 연관된 데이터 유닛 내의 데이터만이 위험에 처한다. 후속하여, 단계(408)에 도시된 바와 같이, 오리지널 데이터(예컨대, 플레인텍스트)를 드러내거나 또는 재생성하기 위해, 일반적으로 동일한 키들 및 인덱스들을 이용하여 프로세스를 리버싱함으로써, 데이터가 디크립팅될 수 있다.
[0039] 도 5는 도 4의 예시적 인크립션 프로시저를 더욱 상세히 예시하며, 다시, 프로시저는 도 1의 SoC 프로세싱 회로 또는 다른 적절한-구비된 디바이스들, 시스템들 또는 프로세싱 회로들에 의해 사용될 수 있다. 도 5의 프로시저(500)는 단계(502)에서 시작하며, 프로세싱 회로는 n-비트 데이터 유닛 인덱스 파라미터를 인크립팅하고, 인덱스는 인크립팅될 데이터의 페이지에 대응하는데 ―n은 암호의 블록 사이즈임―, 예컨대, 데이터 유닛 인덱스는 인크립팅될 데이터를 포함하는 메모리 저장 위치를 식별한다. 즉, 데이터 유닛 인덱스가 데이터 유닛에 "대응함"을 표시하기 위해 본원에 사용되는 용어는, 데이터 유닛 인덱스가 데이터 유닛 또는 데이터 유닛의 부분을 식별하거나 또는 다른 방식으로 데이터 유닛 또는 데이터 유닛의 부분과 유사하게 연관됨을 널리 의미한다. 본원의 예들에서, 데이터 유닛 인덱스는 통상적으로 페이지 인덱스이다. 수정된 제 1 키(K1')를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키(K1) 하에서, 풀-라운드 블록 암호를 사용하여, 데이터 유닛 인덱스는 인크립팅된다. 단계(504)에서, 프로세싱 회로는, V로 표기된 수정된 제 2 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 2 키(K2) 하에서, 동일한 풀-라운드 블록 암호의 제 2 인스턴스를 사용하여, n-비트 데이터 유닛 인덱스를 인크립팅한다. 단계(506)에서, 프로세싱 회로는, 백색화 키를 생성하기 위해, V를 αj로 곱셈함으로써, 블록 인덱스 j를 V에 적용하며, α는 상수이고, j는 데이터의 페이지 내에서의 블록 인덱스 오프셋을 표현한다. 이후, 단계(508)에서, 프로세싱 회로는, (데이터를 감소된-라운드 인크립션 암호에 입력하기에 앞서) 백색화 키를 인크립팅될 데이터와 XOR함으로써, 백색화 키를 인크립팅될 데이터에 적용한다. 인크립팅될 데이터는 예컨대, 온-칩 SRAM으로부터 획득될 수 있다. 단계(510)에서, 프로세싱 회로는, 수정된 제 1 키 하에서, 감소된-라운드 인크립션 암호를 사용하여, 백색화된 데이터를 인크립팅하며, 감소된-라운드 인크립션 암호는 풀 블록 암호에 대해 감소된 수의 라운드들을 사용하는 "스트립 다운"된 암호이다. 단계(512)에서, 프로세싱 회로는, 인크립팅된 암호문 데이터를 생성하기 위해, 백색화 키를 감소된-라운드 인크립션 암호로부터 출력된 데이터와 XOR함으로써, 백색화 키를 감소된-라운드 데이터 암호의 출력에 재적용한다. 그 후, 단계(514)에서, 암호 텍스트가 이후, 오프-칩 저장 디바이스, 예컨대, DDR RAM 또는 다른 적절한 저장 디바이스들에 저장된다. 스토리지는 일시적(temporary) 또는 순간적(transient)일 수 있으며, 이후, 인크립팅된 데이터가 다른 디바이스, 예컨대, 다른 모바일 컴퓨팅 디바이스에 송신되거나, 또는 다른 적절한 액션들이 취해질 수 있다. 다시, 데이터 유닛 인덱스에 기초하여 동적으로 생성된 K1'를 이용하는 경우, K1'가 공개된다면, 어드레스 공간 내의 데이터 전부가 아니라, 그 특정 데이터 유닛 내의 데이터만이 위험에 처한다.
[0040] 도 6은 K1 키(604) 및 K2 키(606)와 결합하여 데이터를 인크립팅하기 위한 감소된-라운드 블록 인크립션 암호(602)를 사용하는 도 5의 방법에 따라 사용될 수 있는 예시적 프로시저(600)를 예시한다. 이 모드에서, K2 키(606) 하에서, 페이지 인덱스(610)(예컨대, 128-비트)를 인크립팅하기 위해, 풀-라운드 블록 암호(608)가 사용된다. K2의 수정된 버전으로서 간주될 수 있는 블록 암호(608)의 출력 V가 612에서 αj(614)로 곱셈되어, 입력/출력 백색화 값이 제공되며, α는 상수이고, j는 블록 인덱스(인크립팅될 데이터의 페이지 내에서의 오프셋일 수 있음)를 표현한다. 이후, 인크립팅될 데이터(616)는 618에서 백색화 값과 XOR되고, "백색화된" 데이터로서 감소된-라운드 인크립션 암호(602)에 입력된다. 동시에, 동일한 페이지 인덱스(610)는 또한, 키(K1) 하에서 풀-라운드 암호(619)를 사용하여 인크립팅되고, 이 풀-라운드 암호(619)는 풀-라운드 암호(608)와 동일한 형태의 암호일 수 있다. 도시된 바와 같이, K1의 수정된 버전으로서 간주될 수 있는 블록 암호(619)의 출력(K1')은 감소된-라운드 인크립션 암호(602)에 대한 키로서 사용된다. 이후, 즉, 백색화된 데이터는 K1의 수정된 버전 하에서 감소된-라운드 인크립션 암호(602)에 의해 인크립팅된다. 이후, 곱셈 함수(612)에 의해 생성된 입력/출력 백색화 값이 감소된-라운드 인크립션 암호로부터의 출력 데이터와 620에서 XOR되어, 최종 암호문(622)이 산출되고, 이 최종 암호문(622)은 예컨대, 도 1에 도시된 타입의 오프-칩 저장 디바이스에 또는 어떤 다른 적절한 저장 위치에 저장될 수 있다. 도 6의 예에서, 적어도 두 개의 프로세스들이 병렬로 수행될 수 있다는 것: K2를 이용한 암호 인스턴스가 작동하는 동안에, K1을 이용한 암호 인스턴스가 작동하는 것을 주목하라.
[0041] 도 7은 예시적 저장 디바이스(700), 예컨대, 오프-칩 저장 디바이스를 예시한다. 저장 디바이스(700)는, 참조 부호들(7041 ... 704n)에 의해 개별적으로 표기된 데이터 유닛들(M1 ... Mn)의 최신 버전들을 저장하며, 각각의 데이터 유닛은 오프-칩 스토리지의 어드레스 공간 내에서의 데이터의 페이지를 표현할 수 있다. 저장 디바이스는, 참조 부호들(7061 ... 706n)에 의해 개별적으로 표기된 데이터 유닛(인덱스1 ... 인덱스n)에 대한 대응하는 페이지 인덱스들을 사용한다. 인덱스3에 기초하여 생성된 K1' 키가 위태롭게 되면, 음영 블록(7043)에 의해 도시된 바와 같이, 대응하는 데이터 유닛(M3) 내의 데이터는 위험에 처할 것이지만, 이로써 전체 어드레스 공간의 데이터의 나머지는 위험에 처하지 않을 것이다.
동적 K 1 키를 이용하는 예시적 XTS -기반 디크립션 프로시저들
[0042] 도 8은 후속하여 암호문을 디크립팅할 때 사용하기 위한 예시적 디크립션 프로시저를 예시하며, 다시, 프로시저는 도 1의 SoC 프로세싱 회로, 또는 다른 적절한-구비된 디바이스들, 시스템들 또는 프로세싱 회로들에 의해 사용될 수 있다. 도 8의 프로시저(800)는 단계(801)에서 시작하며, 디크립팅될 데이터가 저장 디바이스, 예컨대, 오프-칩 DDR RAM으로부터 페치된다. 데이터가 페치되고 있는 단계(802)에서, 프로세싱 회로는 n-비트 데이터 유닛 인덱스를 인크립팅하며, 인덱스는 디크립팅될 데이터의 페이지에 대응하고, n은 암호의 블록 사이즈이다. 수정된 제 1 키(K1')를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키(K1) 하에서, 풀-라운드 블록 암호를 사용하여, 데이터 유닛 인덱스는 인크립팅된다. 데이터가 페치되고 있는 단계(804)에서, 프로세싱 회로는, V로 표기된 수정된 제 2 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 2 키(K2) 하에서, 동일한 풀-라운드 블록 암호의 제 2 인스턴스를 사용하여, n-비트 데이터 유닛 인덱스를 인크립팅한다. 여전히 페치하고 있는 단계(806)에서, 프로세싱 회로는, 백색화 키를 생성하기 위해, V를 αj로 곱셈함으로써, 블록 인덱스 j를 V에 적용하며, α는 다시, 상수 값이고, j는 디크립팅될 데이터의 페이지 내에서의 블록 인덱스 오프셋을 표현한다. 이후, 단계(808)에서, 프로세싱 회로는, (데이터를 감소된-라운드 디크립션 암호에 입력하기에 앞서) 백색화 키를 디크립팅될 데이터와 XOR함으로써, 백색화 키를 디크립팅될 페치된 데이터에 적용한다. 단계(810)에서, 프로세싱 회로는, 수정된 제 1 키 하에서, 감소된-라운드 디크립션 암호를 사용하여, 백색화된 데이터를 디크립팅하며, 감소된-라운드 디크립션 암호는 다시, 풀 블록 암호에 대해 감소된 수의 라운드들을 사용하는 "스트립 다운"된 암호이다. 단계(812)에서, 프로세싱 회로는, 플레인텍스트를 획득하여 요청자에 전달하기 위해, 백색화 키를 감소된-라운드 디크립션 암호로부터 출력된 데이터와 XOR함으로써, 백색화 키를 감소된-라운드 디크립션 암호의 출력에 재적용하여, 디크립팅된 플레인텍스트 데이터를 생성한다. 이 점에 있어서, 플레인텍스트는 온-칩 저장 디바이스, 예컨대, 디바이스의 컴포넌트들에 의한 사용을 위한 SRAM에 저장될 수 있다. 스토리지는 다시, 일시적 또는 순간적일 수 있다.
[0043] 도 9는 K1 키(904) 및 K2 키(906)와 결합하여 데이터를 디크립팅하기 위한 감소된-라운드 디크립션 암호(902)를 사용하는 도 8의 방법에 따라 사용될 수 있는 예시적 프로시저(900)를 예시한다. 이 모드에서, K2 키(906) 하에서 128-비트 페이지 인덱스(910)를 인크립팅하기 위해, 풀-라운드 블록 암호(908)가 사용된다. 다시, K2의 수정된 버전으로서 간주될 수 있는 블록 암호(908)의 출력 V가 912에서 αj(914)로 곱셈되어, 입력/출력 백색화 값이 제공되며, α는 상수이고, j는 블록 인덱스(디크립팅될 데이터의 페이지 내에서의 오프셋일 수 있음)를 표현한다. 동시에, 동일한 페이지 인덱스(910)는 또한, 키(K1) 하에서 풀-라운드 암호(919)를 사용하여 인크립팅되고, 이 풀-라운드 암호(919)는 풀-라운드 암호(908)와 동일한 형태의 암호일 수 있다. 이들 프로시저들은, 디크립션을 위해 데이터가 페치되고 있는 동안에 수행될 수 있다. 이후, 디크립팅될 페치된 데이터(916)는 918에서 백색화 값과 XOR되고, 백색화된 데이터로서 감소된-라운드 디크립션 암호(902)에 입력된다. 다시, 도시된 바와 같이, K1의 수정된 버전으로서 간주될 수 있는 블록 암호(919)의 출력(K1')은 감소된-라운드 디크립션 암호(902)에 대한 키로서 사용된다. 즉, 백색화된 데이터는 이후, K1의 수정된 버전 하에서, 감소된-라운드 디크립션 암호(902)에 의해 디크립팅된다. 이후, 곱셈 함수(912)에 의해 생성된 입력/출력 백색화 값이 감소된-라운드 디크립션 암호로부터의 출력 데이터와 920에서 XOR되어, 최종 플레인텍스트(922)가 산출되고, 이 최종 플레인텍스트(922)는 예컨대, 온-칩 SRAM에 저장되거나 또는 그렇지 않으면 디바이스 내에서 프로세싱될 수 있다. 도 9의 예에서, 적어도 세 개의 프로세스들이 병렬로 수행될 수 있다는 것: K1을 이용한 암호 인스턴스가 작동되고; K2를 이용한 암호 인스턴스가 작동되며, 그리고 암호문이 페치되는 것을 주목하라. 이는 읽기 레이턴시를 감소시킨다.
예시적 시스템 또는 장치
[0044] 도 10은 도 1 - 도 9의 컴포넌트들 및 방법들이 구현될 수 있는 전체 시스템 또는 장치(1000)를 예시한다. 본 개시 내용의 다양한 양상들에 따라, 엘리먼트, 또는 엘리먼트의 임의의 부분, 또는 엘리먼트들의 임의의 결합은, 하나 또는 그 초과의 프로세싱 회로들(1004), 예컨대, 도 1의 SoC 프로세싱 회로를 포함하는 프로세싱 시스템(1014)으로 구현될 수 있다. 예컨대, 장치(1000)는 모바일 통신 시스템의 사용자 장비(UE:user equipment)일 수 있다. 장치(1000)는 라디오 네트워크 제어기(RNC:radio network controller)와 함께 사용될 수 있다. SoC 이외에, 프로세싱 회로들(1004)의 예들은 마이크로프로세서들, 마이크로제어기들, DSP(digital signal processor)들, FPGA(field programmable gate array)들, PLD(programmable logic device)들, 상태 머신들, 게이티드 로직, 이산 하드웨어 회로들, 및 본 개시 내용을 통틀어 설명된 다양한 기능을 수행하도록 구성된 다른 적절한 하드웨어를 포함한다. 즉, 장치(1000)에서 활용되는 프로세싱 회로(1004)는, 위에서 설명되고 도 1 - 도 9에서 예시된 프로세스들(및 하기에서 논의되는 도 13 - 도 16에서 요약되는 것들) 중 임의의 하나 또는 그 초과를 구현하기 위해 사용된다. 특히, 프로세싱 회로(1004)는, 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅하고; 그리고 인크립팅된 데이터를 저장 디바이스에 저장하도록 구성될 수 있다. 프로세싱 회로(1004)는, 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―데이터 유닛 인덱스는 감소된-라운드 디크립션 암호에 의해 디크립팅될 데이터에 대응함―; 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호를 사용하여, 데이터를 디크립팅하고; 그리고 디크립팅된 데이터를 저장 디바이스에 저장하도록 구성될 수 있다.
[0045] 이 예에서, 프로세싱 시스템(1014)은, 일반적으로 버스(1002)에 의해 표현되는 버스 아키텍처로 구현될 수 있다. 버스(1002)는, 프로세싱 시스템(1014)의 특정 애플리케이션 및 전체 설계 제약들에 따라, 임의의 수의 상호연결시키는 버스들 및 브릿지들을 포함할 수 있다. 버스(1002)는, 하나 또는 그 초과의 프로세싱 회로들(일반적으로 프로세싱 회로(1004)에 의해 표현됨), 저장 디바이스(1005), 및 프로세서-판독가능 미디어(일반적으로 비-일시적 프로세서-판독가능 또는 컴퓨터-판독가능 판독 매체(1006)에 의해 표현됨)를 비롯한 다양한 회로들을 서로 링크시킨다. 버스(1002)는 또한, 기술분야에서 잘 알려져 있고 그에 따라 더 이상 추가로 설명되지 않을 다양한 다른 회로들, 예컨대, 타이밍 소스들, 주변장치들, 전압 레귤레이터들, 및 전력 관리 회로들을 링크시킬 수 있다. 버스 인터페이스(1008)는 버스(1002)와 트랜시버(1010) 사이의 인터페이스를 제공한다. 트랜시버(1010)는 송신 매체를 통해 다양한 다른 장치와 통신하기 위한 수단을 제공한다. 장치의 특성에 따라, 사용자 인터페이스(1012)(예컨대, 키패드, 디스플레이, 스피커, 마이크로폰, 조이스틱)가 또한 제공될 수 있다.
[0046] 프로세서 또는 프로세싱 회로(1004)는 버스(1002) 및, 프로세서-판독 매체(1006) 상에 저장된 소프트웨어의 실행을 비롯한 일반 프로세싱을 관리하는 것을 책임진다. 소프트웨어는, 프로세싱 회로(1004)에 의해 실행될 때, 프로세싱 시스템(1014)으로 하여금, 임의의 특정 장치에 대해 본원에 설명된 다양한 기능들을 수행하게 한다. 프로세서-판독 매체(1006)는 또한, 소프트웨어를 실행할 때 프로세싱 회로(1004)에 의해 조작되는 데이터를 저장하기 위해 사용될 수 있다. 특히, 프로세서-판독가능 저장 매체(1006)는, 프로세싱 회로(1004)에 의해 실행될 때, 프로세싱 회로(1004)로 하여금: 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키 하에서, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하게 하고 ―데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응함―; 수정된 제 1 키 하에서, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅하게 하고; 그리고 인크립팅된 데이터를 저장 디바이스에 저장하게 하는 하나 또는 그 초과의 명령들을 가질 수 있다. 프로세서-판독가능 저장 매체(1006)는 또한, 프로세싱 회로(1004)에 의해 실행될 때, 프로세싱 회로(1004)로 하여금: 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키 하에서, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하게 하고 ―데이터 유닛 인덱스는 감소된-라운드 디크립션 암호에 의해 디크립팅될 데이터에 대응함―; 수정된 제 1 키 하에서, 감소된-라운드 디크립션 암호를 사용하여, 데이터를 디크립팅하게 하고; 그리고 디크립팅된 데이터를 저장 디바이스에 저장하게 하는 하나 또는 그 초과의 명령들을 가질 수 있다.
[0047] 프로세싱 시스템의 하나 또는 그 초과의 프로세싱 회로들(1004)은, 소프트웨어를 실행할 수 있다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술어로 지칭되든, 또는 달리 지칭되든 간에, 명령들, 명령 세트들, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 애플리케이션들, 소프트웨어 애플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능들, 실행 스레드들, 프로시저들, 함수들 등을 의미하는 것으로 널리 해석될 것이다. 프로세싱 회로는 필수적인 작업들을 수행할 수 있다. 코드 세그먼트는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램문들의 임의의 결합을 표현할 수 있다. 코드 세그먼트는, 정보, 데이터, 인수들, 파라미터들, 또는 메모리 콘텐츠들을 전달하거나 그리고/또는 수신함으로써, 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 비롯한 임의의 적절한 수단을 통해 전달, 포워딩, 또는 송신될 수 있다.
[0048] 소프트웨어는, 컴퓨터-판독가능 또는 프로세서-판독 매체(1006) 상에 상주할 수 있다. 프로세서-판독 매체(1006)는 비-일시적 프로세서-판독 매체일 수 있다. 비-일시적 프로세서-판독 매체는, 예로서, 자기 저장 디바이스(예컨대, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 디스크(예컨대, CD(compact disc) 또는 DVD(digital versatile disc)), 스마트 카드, 플래시 메모리 디바이스(예컨대, 카드, 스틱, 또는 키 드라이브), RAM, ROM, PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically erasable PROM), 레지스터, 탈착가능 디스크, 하드 디스크, CD-ROM, 및 컴퓨터가 액세스 및 판독할 수 있는 소프트웨어 및/또는 명령들을 저장하기 위한 임의의 다른 적절한 매체를 포함한다. "머신-판독 매체", "컴퓨터-판독 매체", 및/또는 "프로세서-판독 매체"란 용어들은, 비-일시적 미디어, 예컨대, 휴대용 또는 고정된 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 보유 또는 운반할 수 있는 다양한 다른 미디어를 포함할 수 있지만, 이로 제한되지 않는다. 따라서, 본원에 설명된 다양한 방법들은, "머신-판독 매체," "컴퓨터-판독 매체," 및/또는 "프로세서-판독 매체"에 저장되고 하나 또는 그 초과의 프로세싱 회로들, 머신들 및/또는 디바이스들에 의해 실행될 수 있는 명령들 및/또는 데이터에 의해 완전히 또는 부분적으로 구현될 수 있다. 프로세서-판독 매체는 또한, 예로서, 반송파, 송신선, 및 컴퓨터가 액세스 및 판독할 수 있는 소프트웨어 및/또는 명령들을 송신하기 위한 임의의 다른 적절한 매체를 포함할 수 있다. 프로세서-판독 매체(1006)는 프로세싱 시스템(1014)에 상주하거나, 프로세싱 시스템(1014)의 외부에 있거나, 또는 프로세싱 시스템(1014)을 비롯한 다수의 엔티티들에 걸쳐 분산될 수 있다. 프로세서-판독 매체(1006)는 컴퓨터 프로그램 물건으로 구현될 수 있다. 예로서, 컴퓨터 프로그램 물건은 프로세서-판독 매체를 패키징 재료들 내에 포함할 수 있다. 당업자들은, 특정 애플리케이션 및 전체 시스템에 부과된 전체 설계 제약들에 따라, 본 개시 내용을 통틀어 제시된 설명된 기능성을 구현하는 최선의 방법을 인식할 것이다.
[0049] 도면들에서 예시된 컴포넌트들, 단계들, 특징들, 및/또는 함수들 중 하나 또는 그 초과는 재배열되고 그리고/또는 단일 컴포넌트, 단계, 특징 또는 함수로 결합되거나 또는 여러 컴포넌트들, 단계들, 또는 함수들로 구현될 수 있다. 설명된 양상들 및 특징들로부터 벗어남 없이, 추가적인 엘리먼트들, 컴포넌트들, 단계들, 및/또는 함수들이 또한 부가될 수 있다. 도면들에서 예시된 장치, 디바이스들, 및/또는 컴포넌트들은 도면들에서 설명된 방법들, 특징들, 또는 단계들 중 하나 또는 그 초과를 수행하도록 구성될 수 있다. 본원에 설명된 알고리즘들은 또한 효율적으로 소프트웨어로 구현되고 그리고/또는 하드웨어에 임베딩될 수 있다.
[0050] 본원에 개시된 예들과 관련하여 설명된 다양한 예시적 논리 블록들, 모듈들, 회로들, 엘리먼트들, 및/또는 컴포넌트들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC:application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램가능 논리 컴포넌트, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본원에 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현 또는 수행될 수 있다. 범용 프로세싱 회로는 마이크로프로세서일 수 있지만, 대안적으로, 프로세싱 회로는 임의의 통상적인 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세싱 회로는 또한, 컴퓨팅 컴포넌트들의 결합, 예컨대, DSP와 마이크로프로세서의 결합, 다수의 마이크로프로세서들, DSP 코어와 공조된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
[0051] 따라서, 본 개시 내용의 일 양상에서, 도 1 및 도 10에 예시된 프로세싱 회로(100 및/또는 1004)는, 도 2, 도 3, 도 5, 도 6, 도 8 및/또는 도 9(그리고/또는 하기에서 논의되는 도 13, 도 14, 도 15 및/또는 도 16)에서 설명되는 알고리즘들, 방법들, 및/또는 단계들을 수행하도록 특정하게 설계되고 그리고/또는 하드-와이어링되는 전문화된 프로세싱 회로(예컨대, ASIC)일 수 있다. 따라서, 이러한 전문화된 프로세싱 회로(예컨대, ASIC)는 도 2, 도 3, 도 5, 도 6, 도 8 및/또는 도 9(그리고/또는 하기에서 논의되는 도 13, 도 14, 도 15 및/또는 도 16)에서 설명되는 알고리즘들, 방법들, 및/또는 단계들을 실행하기 위한 수단의 일 예일 수 있다. 프로세서-판독가능 저장 매체는, 전문화된 프로세싱 회로(예컨대, ASIC)에 의해 실행될 때, 전문화된 프로세싱 회로로 하여금, 본원에 설명된 알고리즘들, 방법들, 및/또는 단계들을 수행하게 하는 명령들을 저장할 수 있다.
[0052] 도 11은 프로세싱 회로(1004)의 선택된 그리고 예시적인 컴포넌트들을 예시한다. 특히, 도 11의 프로세싱 회로(1004)는, 동적인 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호(예컨대, XTS 풀-라운드 암호(1110))를 사용하여, 데이터 유닛 인덱스를 인크립팅하도록 동작되는 데이터 유닛 인덱스 인크립션 컴포넌트(1100)를 포함하고, 데이터 유닛 인덱스는 감소된-라운드 암호에 의해 인크립팅되거나 또는 디크립팅될 데이터에 대응한다. 데이터 유닛 인덱스 인크립션 컴포넌트(1100)는 추가로, 수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하도록 동작된다. 프로세싱 회로(1004)는 또한, 동적인 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호(1112)를 사용하여, 데이터를 인크립팅하도록 동작되는 데이터 유닛 인크립션 컴포넌트(1102)를 포함한다. 프로세싱 회로(1004)는 또한, 동적인 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호(1113)를 사용하여, 이전에 인크립팅된 데이터를 디크립팅하도록 동작되는 데이터 유닛 디크립션 컴포넌트(1103)를 포함한다. 프로세싱 회로(1004)는, 인크립팅된 데이터를 저장 디바이스에 저장하고 그리고/또는 디크립팅될 데이터를 저장 디바이스, 예컨대, 저장 디바이스(1005)로부터 페치하도록 동작되는 데이터 저장 및 리트리벌 제어기(1104)를 더 포함한다. 프로세싱 회로(1004)는, 추가적인 컴포넌트들, 예컨대, 데이터를 개개의 감소된-라운드 암호들에 적용하기에 앞서, 백색화 키를 인크립팅되거나 또는 디크립팅될 데이터에 적용하고, 이후, 백색화 키를 감소된-라운드 암호들의 출력들에 재적용하도록 동작되는 백색화 컴포넌트(1114)를 포함할 수 있다.
[0053] 도 12는 프로세서-판독가능 또는 컴퓨터-판독 매체(1006)의 선택된 그리고 예시적인 명령 컴포넌트들을 예시한다. 특히, 도 12의 프로세서-판독 매체(1006)는, 도 8의 프로세싱 회로에 의해 실행될 때, 프로세싱 회로로 하여금, 동적인 수정된 제 1 키를 생성하거나 또는 다른 방식으로 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하게 하는 데이터 유닛 인덱스 인크립션 명령들(1200)을 포함하고, 데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응한다. 프로세서-판독 매체(1006)는 또한, 동적인 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅하도록 동작되는 데이터 유닛 인크립션 명령들(1202)을 포함한다. 프로세서-판독 매체(1006)는 또한, 동적인 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호를 사용하여, 이전에 인크립팅된 데이터를 디크립팅하도록 동작되는 데이터 유닛 디크립션 명령들(1203)을 포함한다. 프로세서-판독 매체(1006)는, 인크립팅된 데이터를 저장 디바이스에 저장하고 그리고/또는 디크립팅될 데이터를 저장 디바이스, 예컨대, 저장 디바이스(1205)로부터 페치하도록 동작되는 데이터 저장 및 리트리벌 명령들(1204)을 더 포함한다. 프로세서-판독 매체(1006)는, 추가적인 명령들, 예컨대, XTS 풀-라운드 암호 명령들(1210), 감소된-라운드 인크립션 암호 명령들(1212) 및 감소된-라운드 디크립션 암호 명령들(1213), 뿐만 아니라 데이터를 개개의 감소된-라운드 암호들에 적용하기에 앞서, 백색화 키를 인크립팅/디크립팅될 데이터에 적용하고, 이후, 백색화 키를 감소된-라운드 암호들의 출력들에 재적용하도록 동작되는 백색화 명령들(1214)을 포함할 수 있다. 다른 명령들도 역시 제공될 수 있으며, 도 12의 예시는 결코 철저한 것이 아니다.
[0054] 도 13은 예컨대, 도 11의 프로세싱 회로 또는 다른 적절하게-구비된 디바이스들에 의해 수행될 수 있는 감소된-라운드 인크립션 암호와 함께 사용하기 위한 인크립션 방법(1300)을 요약한다. 간단히, 단계(1302)에서, 프로세싱 회로는, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고, 데이터 유닛 인덱스는 감소된-라운드 인크립션 암호에 의해 인크립팅될 데이터에 대응하는데, 즉, 데이터 유닛 인덱스는 인크립팅될 데이터를 포함하는 메모리 저장 위치를 식별한다. 단계(1304)에서, 프로세싱 회로는, 수정된 제 1 키에 기초하여, 감소된-라운드 인크립션 암호를 사용하여, 데이터를 인크립팅한다. 단계(1306)에서, 프로세싱 회로는 인크립팅된 데이터를 저장 디바이스에 저장한다.
[0055] 도 14는 예컨대, 도 11의 프로세싱 회로 또는 다른 적절하게-구비된 디바이스들에 의해 또한 수행될 수 있는 감소된-라운드 인크립션 암호와 함께 사용하기 위한 추가적인 프로시저들(1400)을 요약한다. 간단히, 단계(1402)에서, 프로세싱 회로는, 수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅한다. 단계(1404)에서, 프로세싱 회로는, 백색화 키를 획득하기 위해, 블록 인덱스를 수정된 제 2 키에 적용한다. 단계(1406)에서, 프로세싱 회로는, 데이터를 감소된-라운드 인크립션 암호에 적용하기에 앞서, 백색화 키를 인크립팅될 데이터에 적용한다. 단계(1408)에서, 프로세싱 회로는, 예컨대, 암호문을 생성하기 위해, 백색화 키를 감소된-라운드 인크립션 암호의 출력에 재적용한다.
[0056] 도 15는 예컨대, 도 11의 프로세싱 회로 또는 다른 적절하게-구비된 디바이스들에 의해 또한 수행될 수 있는 감소된-라운드 디크립션 암호와 함께 사용하기 위한 디크립션 방법(1500)을 요약한다. 간단히, 단계(1502)에서, 프로세싱 회로는, 수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고, 데이터 유닛 인덱스는 감소된-라운드 디크립션 암호에 의해 디크립팅될 데이터에 대응하는데, 즉, 데이터 유닛 인덱스는 디크립팅될 데이터를 포함하는 메모리 저장 위치를 식별한다. 단계(1504)에서, 프로세싱 회로는, 수정된 제 1 키에 기초하여, 감소된-라운드 디크립션 암호를 사용하여, 데이터를 디크립팅한다. 단계(1506)에서, 프로세싱 회로는 디크립팅된 데이터를 저장 디바이스에 저장한다.
[0057] 도 16은 예컨대, 도 11의 프로세싱 회로 또는 다른 적절하게-구비된 디바이스들에 의해 또한 수행될 수 있는 감소된-라운드 디크립션 암호와 함께 사용하기 위한 추가적인 프로시저들(1600)을 요약한다. 간단히, 단계(1602)에서, 프로세싱 회로는, 수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅한다. 단계(1604)에서, 프로세싱 회로는, 백색화 키를 획득하기 위해, 블록 인덱스를 수정된 제 2 키에 적용한다. 단계(1606)에서, 프로세싱 회로는, 데이터를 감소된-라운드 디크립션 암호에 적용하기에 앞서, 백색화 키를 디크립팅될 데이터에 적용한다. 단계(1608)에서, 프로세싱 회로는, 예컨대, 플레인텍스트를 생성하기 위해, 백색화 키를 감소된-라운드 디크립션 암호의 출력에 재적용한다.
[0058] 또한, 본 개시 내용의 양상들이 흐름차트, 흐름도, 구조도, 또는 블록도로서 묘사되는 프로세스로서 본원에서 설명될 수 있음이 주목된다. 흐름차트가 동작들을 순차적 프로세스로서 설명할 수 있지만, 동작들 중 많은 동작들은 병렬로 또는 동시에 수행될 수 있다. 부가하여, 동작들의 순서는 재배열될 수 있다. 프로세스는 이 프로세스의 동작들이 완료될 때 종료된다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 함수의 종료는 이 함수의 호출 함수 또는 메인 함수로의 리턴에 대응한다.
[0059] 당업자들은 추가로, 본원에 개시된 양상들과 관련하여 설명된 다양한 예시적 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있음을 인식할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환성을 명확하게 예시하기 위해, 다양한 예시적 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그들의 기능성 면에서 위에서 설명되었다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는, 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 따라 좌우된다.
[0060] 본원에 설명된 다양한 특징들이 상이한 시스템들로 구현될 수 있음이 고려된다. 본 개시 내용의 전술된 양상들이 단지 예들이고, 제한하는 것으로서 이해되지 않아야 함이 주목되어야 한다. 본 개시 내용의 양상들의 설명은 예시적인 것으로 의도되고, 그리고 청구항들의 범위를 제한하지 않는 것으로 의도된다. 따라서, 본 교시들은 다른 타입들의 장치들에 쉽게 적용될 수 있고, 많은 대안들, 수정들, 및 변형들이 당업자들에게 명백할 것이다.

Claims (32)

  1. 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법으로서,
    수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하는 단계 ―상기 데이터 유닛 인덱스는 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스에 의해 인크립팅될 데이터에 대응함―;
    수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계;
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하는 단계;
    인크립팅된 데이터를 획득하기 위해, 상기 수정된 제 1 키에 기초하여, 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스를 사용하여, 수정된 데이터를 인크립팅하는 단계; 및
    인크립팅된 데이터를 전자식 저장 디바이스에 저장하는 단계
    를 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하는 단계는,
    백색화 키를 획득하기 위해, 블록 인덱스를 상기 수정된 제 2 키에 적용하는 단계; 및
    상기 데이터를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스에 적용하기에 앞서, 상기 백색화 키를 상기 인크립팅될 데이터에 적용하는 단계
    를 더 포함하고,
    상기 수정된 데이터를 인크립팅하는 단계는, 상기 인크립팅된 데이터를 획득하기 위해, 상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스의 출력에 재적용하는 단계를 더 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 제 1 블록 암호 및 상기 제 2 블록 암호는 풀 블록 암호(full block cipher)들인,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 데이터 유닛 인덱스는 상기 제 1 블록 암호 및 상기 제 2 블록 암호에 적용되는 n-비트 파라미터의 형태로 있고, n은 상기 제 1 블록 암호 및 상기 제 2 블록 암호의 블록 사이즈인,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  5. 제 2 항에 있어서,
    상기 백색화 키를 획득하기 위해, 상기 블록 인덱스를 상기 수정된 제 2 키에 적용하는 단계는, 상기 수정된 제 2 키를 αj로 곱셈하는 단계를 포함하고, α는 상수이고, j는 상기 블록 인덱스인,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 데이터를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스에 적용하기에 앞서, 상기 백색화 키를 상기 데이터에 적용하는 단계는, 상기 백색화 키를 상기 데이터와 XOR하는 단계를 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스의 출력에 재적용하는 단계는, 상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스로부터 출력된 데이터와 XOR하는 단계를 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  8. 제 1 항에 있어서,
    상기 데이터 유닛 인덱스는 페이지 번호인,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  9. 제 1 항에 있어서,
    상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스는 오프-칩 저장 디바이스에 커플링된 시스템-온-어-칩 디바이스 내에 구현되고, 그리고 상기 방법은, 인크립팅된 데이터를 상기 오프-칩 저장 디바이스에 저장하는 단계를 더 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  10. 디바이스로서,
    데이터를 저장하기 위한 전자식 저장 디바이스; 및
    상기 저장 디바이스에 커플링된 프로세싱 회로
    를 포함하고,
    상기 프로세싱 회로는,
    수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―상기 데이터 유닛 인덱스는 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스에 의해 인크립팅될 데이터에 대응함―;
    수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하고;
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하고;
    인크립팅된 데이터를 획득하기 위해, 상기 수정된 제 1 키에 기초하여, 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스를 사용하여, 수정된 데이터를 인크립팅하고; 그리고
    인크립팅된 데이터를 상기 저장 디바이스에 저장하도록
    구성되는,
    디바이스.
  11. 제 10 항에 있어서,
    상기 프로세싱 회로는,
    백색화 키를 획득하기 위해, 블록 인덱스를 상기 수정된 제 2 키에 적용하고; 그리고
    상기 데이터를 상기 감소된-라운드 인크립션 블록 암호에 적용하기에 앞서, 상기 백색화 키를 상기 인크립팅될 데이터에 적용함으로써,
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하도록 구성되고,
    상기 프로세싱 회로는 추가로, 상기 인크립팅된 데이터를 획득하기 위해, 상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스의 출력에 재적용하도록 구성되는,
    디바이스.
  12. 제 10 항에 있어서,
    상기 프로세싱 회로에 의해 사용되는 상기 제 1 블록 암호 및 상기 제 2 블록 암호는 풀 블록 암호들인,
    디바이스.
  13. 제 10 항에 있어서,
    상기 프로세싱 회로에 의해 사용되는 상기 데이터 유닛 인덱스는 상기 제 1 블록 암호 및 상기 제 2 블록 암호에 적용되는 n-비트 파라미터의 형태로 있고, n은 상기 제 1 블록 암호 및 상기 제 2 블록 암호의 블록 사이즈인,
    디바이스.
  14. 제 11 항에 있어서,
    상기 프로세싱 회로는 추가로, 상기 백색화 키를 획득하기 위해, 상기 수정된 제 2 키를 αj로 곱셈함으로써, 상기 블록 인덱스를 상기 수정된 제 2 키에 적용하도록 구성되고, α는 상수이고, j는 상기 블록 인덱스인,
    디바이스.
  15. 제 14 항에 있어서,
    상기 프로세싱 회로는 추가로, 상기 데이터를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스에 적용하기에 앞서, 상기 백색화 키를 상기 데이터와 XOR함으로써, 상기 백색화 키를 상기 데이터에 적용하도록 구성되는,
    디바이스.
  16. 제 15 항에 있어서,
    상기 프로세싱 회로는 추가로, 상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스로부터 출력된 데이터와 XOR함으로써, 상기 백색화 키를 상기 감소된-라운드 인크립션 블록 암호 프로세싱 디바이스의 출력에 재적용하도록 구성되는,
    디바이스.
  17. 제 10 항에 있어서,
    상기 프로세싱 회로에 의해 사용되는 상기 데이터 유닛 인덱스는 페이지 번호인,
    디바이스.
  18. 제 10 항에 있어서,
    상기 프로세싱 회로는 오프-칩 저장 디바이스에 커플링된 시스템-온-어-칩 디바이스의 컴포넌트이고, 상기 프로세싱 회로는 추가로, 인크립팅된 데이터를 상기 오프-칩 저장 디바이스에 저장하도록 구성되는,
    디바이스.
  19. 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법으로서,
    수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하는 단계 ―상기 데이터 유닛 인덱스는 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 의해 디크립팅될 데이터에 대응함―;
    수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계;
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하는 단계;
    디크립팅된 데이터를 획득하기 위해, 상기 수정된 제 1 키에 기초하여, 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스를 사용하여, 수정된 데이터를 디크립팅하는 단계; 및
    디크립팅된 데이터를 전자식 저장 디바이스에 저장하는 단계
    를 포함하는,
    감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법.
  20. 제 19 항에 있어서,
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하는 단계는,
    백색화 키를 획득하기 위해, 블록 인덱스를 상기 수정된 제 2 키에 적용하는 단계; 및
    상기 데이터를 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 적용하기에 앞서, 상기 백색화 키를 상기 디크립팅될 데이터에 적용하는 단계
    를 더 포함하고,
    상기 수정된 데이터를 디크립팅하는 단계는, 상기 디크립팅된 데이터를 획득하기 위해, 상기 백색화 키를 상기 감소된-라운드 디크립션 암호 프로세싱 디바이스의 출력에 재적용하는 단계를 더 포함하는,
    감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법.
  21. 제 19 항에 있어서,
    상기 제 1 블록 암호 및 상기 제 2 블록 암호는 풀 블록 암호들인,
    감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법.
  22. 제 19 항에 있어서,
    디크립팅될 데이터를 저장 디바이스로부터 획득하는 단계
    를 더 포함하고, 그리고
    상기 수정된 제 1 키를 획득하기 위해, 상기 제 1 키에 기초하여, 상기 제 1 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계, 및 상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키에 기초하여, 상기 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계는 둘 다, 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 의해 디크립팅될 데이터를 획득하기 위한 동작들과 병렬로 수행되는,
    감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법.
  23. 디바이스로서,
    데이터를 저장하기 위한 전자식 저장 디바이스; 및
    상기 저장 디바이스에 커플링된 프로세싱 회로
    를 포함하고,
    상기 프로세싱 회로는,
    수정된 제 1 키를 획득하기 위해, 제 1 키에 기초하여, 제 1 블록 암호를 사용하여, 데이터 유닛 인덱스를 인크립팅하고 ―상기 데이터 유닛 인덱스는 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 의해 디크립팅될 데이터에 대응함―;
    수정된 제 2 키를 획득하기 위해, 제 2 키에 기초하여, 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하고;
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하고;
    디크립팅된 데이터를 획득하기 위해, 상기 수정된 제 1 키에 기초하여, 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스를 사용하여, 수정된 데이터를 디크립팅하고; 그리고
    디크립팅된 데이터를 저장 디바이스에 저장하도록
    구성되는,
    디바이스.
  24. 제 23 항에 있어서,
    상기 프로세싱 회로는,
    백색화 키를 획득하기 위해, 블록 인덱스를 상기 수정된 제 2 키에 적용하고; 그리고
    상기 데이터를 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 적용하기에 앞서, 상기 백색화 키를 상기 디크립팅될 데이터에 적용함으로써,
    상기 데이터를 수정하기 위해, 상기 수정된 제 2 키를 상기 데이터에 적용하도록 구성되고,
    상기 프로세싱 회로는 추가로, 상기 디크립팅된 데이터를 획득하기 위해, 상기 백색화 키를 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스의 출력에 재적용하도록 구성되는,
    디바이스.
  25. 제 23 항에 있어서,
    상기 프로세싱 회로에 의해 사용되는 상기 제 1 블록 암호 및 상기 제 2 블록 암호는 풀 블록 암호들인,
    디바이스.
  26. 제 23 항에 있어서,
    상기 프로세싱 회로는 추가로, 디크립팅될 데이터를 저장 디바이스로부터 획득하도록 구성되고, 그리고
    상기 수정된 제 1 키를 획득하기 위해, 상기 제 1 키에 기초하여, 상기 제 1 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 것, 및 상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키에 기초하여, 상기 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 것은 둘 다, 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스에 의해 디크립팅될 데이터를 획득하기 위한 동작들과 병렬로 수행되는,
    디바이스.
  27. 제 1 항에 있어서,
    상기 수정된 제 1 키를 획득하기 위해, 상기 제 1 키에 기초하여, 상기 제 1 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계, 및 상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키에 기초하여, 상기 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하는 단계는 병렬로 수행되는 동작들인,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  28. 제 27 항에 있어서,
    병렬로 수행되는 상기 동작들은,
    상기 제 1 키 하에서 상기 데이터 유닛 인덱스를 인크립팅하는 동작 ―상기 데이터 유닛 인덱스는 디크립팅될 데이터의 페이지에 대응하는 n-비트 인덱스이고, n은 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스의 블록 사이즈임―; 및
    상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키 하에서 n-비트 데이터 유닛 인덱스를 인크립팅하는 동작
    을 더 포함하는,
    감소된-라운드 인크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 인크립팅하기 위한 방법.
  29. 제 10 항에 있어서,
    상기 프로세싱 회로는 추가로, 병렬 동작들로, 상기 수정된 제 1 키를 획득하기 위해, 상기 제 1 키에 기초하여, 상기 제 1 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하고, 그리고 상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키에 기초하여, 상기 제 2 블록 암호를 사용하여, 상기 데이터 유닛 인덱스를 인크립팅하도록 구성되는,
    디바이스.
  30. 제 29 항에 있어서,
    상기 프로세싱 회로에 의해 병렬로 수행되는 상기 동작들은,
    상기 제 1 키 하에서 상기 데이터 유닛 인덱스를 인크립팅하는 동작 ―상기 데이터 유닛 인덱스는 디크립팅될 데이터의 페이지에 대응하는 n-비트 인덱스이고, n은 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스의 블록 사이즈임―; 및
    상기 수정된 제 2 키를 획득하기 위해, 상기 제 2 키 하에서 n-비트 데이터 유닛 인덱스를 인크립팅하는 동작
    을 더 포함하는,
    디바이스.
  31. 제 22 항에 있어서,
    디크립팅될 데이터를 획득하는 단계는, 상기 저장 디바이스로부터 상기 데이터를 페치하는 단계를 포함하고, 그리고 상기 데이터가 페치되고 있는 동안에: 상기 데이터 유닛 인덱스는 상기 제 1 키 하에서 인크립팅되고 ―상기 데이터 유닛 인덱스는 디크립팅될 데이터의 페이지에 대응하는 n-비트 인덱스이고, n은 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스의 블록 사이즈임―; 상기 수정된 제 2 키를 획득하기 위해, n-비트 데이터 유닛 인덱스는 상기 제 2 키 하에서 인크립팅되고; 그리고 백색화 키를 생성하기 위해, 블록 인덱스가 상기 수정된 제 2 키에 적용되며, 상기 블록 인덱스는 디크립팅될 데이터의 페이지 내에서의 오프셋인,
    감소된-라운드 디크립션 블록 암호 프로세싱 디바이스와 함께 사용하기 위한 데이터를 디크립팅하기 위한 방법.
  32. 제 26 항에 있어서,
    상기 프로세싱 회로는 추가로, 상기 저장 디바이스로부터 상기 데이터를 페치함으로써, 디크립팅될 데이터를 획득하도록 구성되고, 그리고 상기 데이터가 페치되고 있는 동안에: 상기 데이터 유닛 인덱스는 상기 제 1 키 하에서 상기 프로세싱 회로에 의해 인크립팅되고 ―상기 데이터 유닛 인덱스는 디크립팅될 데이터의 페이지에 대응하는 n-비트 인덱스이고, n은 상기 감소된-라운드 디크립션 블록 암호 프로세싱 디바이스의 블록 사이즈임―; 상기 수정된 제 2 키를 획득하기 위해, n-비트 데이터 유닛 인덱스는 상기 제 2 키 하에서 상기 프로세싱 회로에 의해 인크립팅되고; 그리고 백색화 키를 생성하기 위해, 블록 인덱스가 상기 수정된 제 2 키에 적용되며, 상기 블록 인덱스는 디크립팅될 데이터의 페이지 내에서의 오프셋인,
    디바이스.

KR1020167024413A 2014-03-11 2015-03-02 감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들 KR101767655B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/205,230 US9405919B2 (en) 2014-03-11 2014-03-11 Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US14/205,230 2014-03-11
PCT/US2015/018357 WO2015138179A1 (en) 2014-03-11 2015-03-02 Dynamic encryption keys for use with xts encryption systems employing reduced-round ciphers

Publications (2)

Publication Number Publication Date
KR20160122180A true KR20160122180A (ko) 2016-10-21
KR101767655B1 KR101767655B1 (ko) 2017-08-11

Family

ID=52684702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167024413A KR101767655B1 (ko) 2014-03-11 2015-03-02 감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들

Country Status (7)

Country Link
US (1) US9405919B2 (ko)
EP (1) EP3117558A1 (ko)
JP (1) JP6109441B1 (ko)
KR (1) KR101767655B1 (ko)
CN (1) CN106105089B (ko)
TW (1) TWI570590B (ko)
WO (1) WO2015138179A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102376506B1 (ko) * 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
US10346318B2 (en) 2016-09-13 2019-07-09 Intel Corporation Multi-stage memory integrity method and apparatus
JP6386198B1 (ja) * 2017-02-21 2018-09-05 三菱電機株式会社 暗号化装置及び復号装置
US10298553B2 (en) 2017-03-31 2019-05-21 Sprint Communications Company L.P. Hardware trusted data communications over system-on-chip (SOC) architectures
EP3602633A4 (en) * 2017-03-31 2020-11-11 INTEL Corporation GATE FOR A TRANSISTOR
US10608822B2 (en) * 2017-04-26 2020-03-31 Nxp B.V. Efficient calculation of message authentication codes for related data
US11630920B2 (en) * 2018-06-29 2023-04-18 Intel Corporation Memory tagging for side-channel defense, memory safety, and sandboxing
US11349639B2 (en) 2018-12-28 2022-05-31 ePIC Blockchain Technologies Inc. Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
US11574079B2 (en) * 2021-05-27 2023-02-07 Nuvoton Technology Corporation Multi-stage provisioning of secret data
US20230094171A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Memory assisted incline encryption/decryption

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658004B2 (ja) * 1993-07-20 2005-06-08 キヤノン株式会社 通信システム
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
TW375721B (en) * 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
EP1440535B1 (en) * 2001-10-03 2011-01-05 Nxp B.V. Memory encrytion system and method
US20060195402A1 (en) * 2002-02-27 2006-08-31 Imagineer Software, Inc. Secure data transmission using undiscoverable or black data
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
US7472285B2 (en) 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
US7321659B2 (en) * 2003-10-01 2008-01-22 International Business Machines Corporation Simple universal hash for plaintext aware encryption
ATE509442T1 (de) * 2003-12-11 2011-05-15 Irdeto Bv Blockchiffriersystem unter verwendung von permutationen zum verbergen der kernchiffrierfunktion jeder verschlüsselungsrunde
US7697681B2 (en) * 2004-02-06 2010-04-13 Nortel Networks Limited Parallelizable integrity-aware encryption technique
US8155306B2 (en) * 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
EP2186250B1 (en) 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US8121294B2 (en) * 2008-10-21 2012-02-21 Apple Inc. System and method for a derivation function for key per page
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP5272751B2 (ja) 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
JP5704159B2 (ja) 2010-02-24 2015-04-22 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
JP2012009928A (ja) 2010-06-22 2012-01-12 Toshiba Corp 暗号演算装置、記憶装置および暗号演算方法
US8966279B2 (en) 2010-12-21 2015-02-24 Apple Inc. Securing the implementation of a cryptographic process using key expansion
US8966285B2 (en) * 2011-01-10 2015-02-24 Apple Inc. Securing implementation of a cryptographic process having fixed or dynamic keys
JP5167374B2 (ja) * 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード
TWI475879B (zh) * 2011-12-06 2015-03-01 Ind Tech Res Inst 數位版權管理物件之加密/解密方法、數位版權管理物件加密/解密裝置
CN102779251B (zh) * 2012-06-29 2016-04-13 鸿富锦精密工业(深圳)有限公司 电子设备及其加密/解密方法

Also Published As

Publication number Publication date
US9405919B2 (en) 2016-08-02
US20150261965A1 (en) 2015-09-17
EP3117558A1 (en) 2017-01-18
JP2017511900A (ja) 2017-04-27
CN106105089A (zh) 2016-11-09
CN106105089B (zh) 2019-04-26
KR101767655B1 (ko) 2017-08-11
JP6109441B1 (ja) 2017-04-05
TW201546648A (zh) 2015-12-16
WO2015138179A1 (en) 2015-09-17
TWI570590B (zh) 2017-02-11

Similar Documents

Publication Publication Date Title
KR101767655B1 (ko) 감소된-라운드 암호들을 사용하는 xts 인크립션 시스템들과 함께 사용하기 위한 동적 인크립션 키들
US9912476B2 (en) System and method for content protection based on a combination of a user PIN and a device specific identifier
US9401898B2 (en) System and method for wireless data protection
US9712319B2 (en) Method and apparatus to encrypt plaintext data
JP2016517241A (ja) ストレージデバイスによって支援されるインライン暗号化および暗号化解除
US8681975B2 (en) Encryption method and apparatus using composition of ciphers
US10027640B2 (en) Secure data re-encryption
WO2006126191A2 (en) Method, device, and system of encrypting/decrypting data
KR101820366B1 (ko) 메시지 인증 코드 태그들을 활용하는 시스템들에 사용하기 위한 롤백 공격들로부터의 데이터 무결성 보호
CN102769525A (zh) 一种tcm的用户密钥备份与恢复方法
US20210006391A1 (en) Data processing method, circuit, terminal device and storage medium
WO2012047199A1 (en) Modifying a length of an element to form an encryption key
JP2018517921A (ja) ファイルセグメントを並列に解読するための装置および方法
CN109491712B (zh) 一种适用于VxWorks环境的可信引导方法
Demir et al. Improving dm-crypt performance for XTS-AES mode through extended requests: first results
KR20150049422A (ko) 제한된 자원의 모바일 장비에서의 안전한 암호화 방법

Legal Events

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