KR20130048260A - 리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드 - Google Patents

리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드 Download PDF

Info

Publication number
KR20130048260A
KR20130048260A KR1020137007328A KR20137007328A KR20130048260A KR 20130048260 A KR20130048260 A KR 20130048260A KR 1020137007328 A KR1020137007328 A KR 1020137007328A KR 20137007328 A KR20137007328 A KR 20137007328A KR 20130048260 A KR20130048260 A KR 20130048260A
Authority
KR
South Korea
Prior art keywords
memory
logical partition
processor
encrypted
tweak
Prior art date
Application number
KR1020137007328A
Other languages
English (en)
Other versions
KR101479957B1 (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 KR20130048260A publication Critical patent/KR20130048260A/ko
Application granted granted Critical
Publication of KR101479957B1 publication Critical patent/KR101479957B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

시스템 메모리상의 하드웨어 공격에 대한 보호를 제공하는 방법 및 장치가 제공된다. 블록 암호에 대한 동작 모드는, 트위크가 "타임 스탬프" 표시자를 포함하도록 확장시킴으로써 메모리 암호화를 수행하는 표준 XTS-AES 동작 모드를 향상시킨다. "타임 스탬프" 표시자를 사용하는 증분 메커니즘은 상이한 시간에 걸쳐 상이한 콘텍스트를 구분하는 트위크를 생성하여, "Type 2 replay attacks"의 효과를 약화시킨다.

Description

리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드{A TWEAKABLE ENCRYPION MODE FOR MEMORY ENCRYPTION WITH PROTECTION AGAINST REPLAY ATTACKS}
본 명세서는 데이터의 암호화 보호에 관한 것으로, 특히 메모리의 메모리 영역에 저장된 소프트웨어 애플리케이션의 암호화에 관한 것이다.
보안 소프트웨어 애플리케이션에 의해 사용되는 시스템의 휘발성 메모리의 영역은 허가되지 않은 개체에 의한 악성 변형으로부터 보호되어야 한다. "공격"이라고도 불리는 이들 악성 변형은 소프트웨어 공격 또는 하드웨어 공격일 수 있다. 보안 소프트웨어 애플리케이션에 대한 비밀성 및 무결성 보호를 제공하는 한가지 방법은 보안 소프트웨어 애플리케이션에 의한 "사설 메모리"로서 사용될 대형 휘발성 메모리를 중앙 처리 장치(CPU) 패키지에 통합하는 것이다. 그러나, CPU 패키지에 대형 휘발성 메모리를 통합하는 것은 많은 비용이 든다.
따라서, 보안 소프트웨어 애플리케이션은 전형적으로 외부(즉, CPU의 외부) 메모리에 저장된다. 보안 소프트웨어 애플리케이션을 저장하는 외부 메모리 내의 메모리 영역은 그 시스템의 운영 시스템(OS)에 대해 가시적일 수도 있고 비가시적일 수도 있다. 이들 메모리 영역이 OS에 대해 가시적인 경우에는 소프트웨어 공격으로부터 보호되어야 한다. 이들 메모리 영역이 OS에 대해 가시적이지 않으며("도난 메모리 영역"이라고 함) 어떤 액세스 제어 메커니즘이 존재하는 경우에는 하드웨어 공격, 즉, 외부 메모리에 물리적 액세스를 갖는 공격자로부터 보호되어야 한다.
청구대상의 실시예의 특징은 다음의 상세한 설명 및 도면을 참조하여 명확해 질 것이며, 도면에서 동일한 부분은 동일한 참조번호로 표시된다.
도 1은 도난 메모리 영역을 포함하는 시스템 메모리를 도시하고 있다.
도 2a는 확장된 트위크(extended tweak)의 일 실시예를 도시하고 있다.
도 2b는 확장된 트위크의 다른 실시예를 도시하고 있다.
도 3은 메모리 암호화를 수행하는 메모리 암호화 엔진을 포함하는 시스템의 블록도이다.
도 4는 암호화될 데이터를 저장하는 도 3에 도시된 외부 메모리의 메모리 영역의 일부의 블록도이다.
도 5는 애플리케이션에 의해 도 4에 도시된 외부 메모리의 메모리 영역의 일부의 파티션의 사용을 위한 방법을 도시하고 있다.
도 6은 신뢰되는 애플리케이션을 메모리에 저장하는 방법의 실시예를 도시하고 있다.
도 7은 신뢰되는 애플리케이션에 메모리의 추가적인 할당을 추가하는 방법을 실시예를 도시하고 있다.
청구대상의 실시예를 참조하여 상세한 설명을 후술할 것이지만, 많은 대안, 변형 및 변형이 당업자에게 명확할 것이다. 따라서, 청구대상은 광범위하게 파악되어야 하며, 첨부된 청구범위에 의해서만 정의된다.
도 1은 도난 메모리 영역(102)을 포함하는 시스템 메모리(100)의 실시예를 도시하고 있다. 도난 메모리 영역(102)은 운영 시스템(OS)에 대해 가시적이지 않은 메모리 영역(메모리의 일부)이다. 시스템 메모리(100)는 "외부" 메모리, 즉, 시스템의 중앙 처리 장치(CPU)와 별개인 메모리이다. 도난 메모리 영역(102)은 복수의 물리적 페이지(106)를 포함한다. 3개의 소프트웨어 애플리케이션(104-1, 104-2, 104-3)은 도난 메모리 영역(102)의 하나 이상의 물리적 페이지(106)에 퍼져 있는 메모리 영역 내부에 존재한다. 각 소프트웨어 애플리케이션(104-1, 104-2, 104-3)은 시스템 (외부) 메모리(100)의 도난 메모리 영역(102)의 다수의 물리적 페이지(106)에 걸쳐 퍼져 있다.
보안 소프트웨어 애플리케이션에 의해 사용되는 메모리 영역을 보호하는 한가지 방법은 시스템 메모리(100의 메모리 영역에 저장된 데이터를 암호화하는 것이다. 메모리 영역에 저장된 데이터의 암호화 및 복호화는 CPU에서 수행되며, CPU 내부에서 생성되고 저장된 키를 사용한다. 그러나, 데이터의 암호화 자체는 단지 데이터의 비밀성을 제공하도록 설계된다. 메모리 영역에 저장된 데이터의 암호화는 외부 메모리를 수동적으로 판독하거나 CPU와 시스템 메모리(100) 사이에서 데이터가 전달될 때 데이터를 스누핑할 수 있는 공격자로부터 데이터의 비밀성을 보호하는 것을 돕는다.
그러나, 외부 메모리(100)의 메모리 영역에 저장된 데이터의 암호화는 무결성 검사를 제공하지는 않는다. 외부 메모리(100)의 도난 메모리 영역(102)의 메모리 영역에 암호화된 형태의 데이터를 저장하는 것은 외부 메모리(100)의 도난 메모리 영역(102)에 저장된 메모리 이미지 부분을 능동적으로 변형 또는 리플레이할 수 있는 공격자로부터 보호하지 못한다.
악성 공격자(적)는 외부 메모리(100)의 하나의 메모리 위치로부터 복사하여 외부 메모리의 상이한 메모리 위치에 기록할 수 있다. 예를 들어, 공격자는 어드레스 a의 페이지 x의 콘텐츠를 어드레스 b의 페이지 y로 복사할 수 있다. 암호화된 메모리 영역으로의 판독/기록 액세스를 갖는 적은 암호화된 메모리 영역이 변형될 때(가령, 시간 2(t2))를 관측하고 시간1(t1)에서 기록된 암호화된 영역의 콘텐츠를 복사하여 메모리 영역을 리셋팅함으로써 리플레이 공격을 수행할 수 있다. 리플레이 공격을 수행하는 공격자는 상이한 시간에 동일한 메모리 영역에 존재할 수 있는 2개의 상이한 애플리케이션(콘텍스트) 중 하나를 제어할 수 있다. 예를 들어, 공격자는 애플리케이션 중 하나를 사용하여 다른 애플리케이션을 공격할 수 있다.
리플레이 공격을 약화시키는 한가지 방법은 암호화 데이터를 사용하여 인증 태그를 외부 메모리(100)에 보안적으로 저장하는 것이다. 그러나, 이는 비용이 많이 드는 추가 메모리를 필요로 한다.
본 발명의 실시예는 리플레이 공격의 효과를 메모리 이미지에 대한 랜덤(예측할 수 없거나 제어할 수 없는) 변경을 유도할 수 있는 수준으로 감소시킴으로써 이러한 공격을 약화시킨다.
XTS(XEX encryption mode with tweak and ciphertext stealing) AES(Advanced Encryption Standard) 트위크 가능한 블록 암호 (IEEE 표준 1619-2007)는 NIST(National Institute of Standards and Technology) FIPS(Federal Information Processing Standards) 140-2 하의 동작 모드이며, 일정한 길이의 블록에 저장되는 데이터를 암호표기법으로(cryptographically) 보호하기 위한 아키텍쳐의 요소를 정의한다. 일 실시예에서, 표준 XTS-AES 동작 모드를 향상시키며, 블록 암호를 위한 XTS-AES 동작 모드를 사용하여 메모리 암호화를 구현하는 방법 및 장치를 향상시키는 블록 암호를 위한 새로운 동작 모드가 제공된다.
XTS-AES 동작 모드는 연속적이며 동일한 크기의 데이터 유닛으로 분할되는 데이터 스트림의 암호화에 적용되는데, 데이터 스트림의 최종 데이터 유닛만이 예외적으로 다른 것들보다 작을 수 있다. 각 데이터 유닛은 128 비트 또는 그 이상의 데이터를 하나의 키 범위 내에 가질 수 있다. 키 범위는 특정 키에 의해 암호화되고 동일한 크기의 데이터 유닛으로 분할되는 데이터이다. 키 범위는 3개의 음이 아닌 정수, 즉, 제 1 데이터 유닛에 대응하는 트위크 값(tweak value), 데이터 유닛 크기 및 데이터의 길이로 식별된다. 트위크 값은 XTS-AES로 암호화 또는 복호화되는 데이터 스트림의 데이터의 논리적 위치를 나타내는 데에 사용되는 128비트 값이다. 각 데이터 유닛에는 음이 아닌 정수인 트위크 값이 할당된다. 트위크 값은 임의의 음이 아닌 정수로부터 시작하여 연속적으로 할당된다.
XTS-AES 동작 모드는 "트위크 가능한 좁은 블록 암호화(tweakable narrow-block encryption)"이고, 디스크 암호화(미사용 데이터 암호화(data-at-rest encryption))에 대한 표준 모드이다. 이는 ECB(Electronic Code Book) 모드에서의 암호화로서 보여질 수 있는데, 이 모드에서 암호화는 "인덱스" 위치의 함수로서 데이터 블록의 암호화를 변형하는 트위크 값(트위크)을 사용한다. ECB 모드에서, 각 평문 블록은 블록 암호를 사용하여 독립적으로 암호화된다. 디스크 암호화에 있어서, XTS-AES 동작 모드에서, 트위크는 암호화되는 디스크 드라이브(저장 매체)상의 섹터에 암호화를 결속시키기 위해 사용된다.
일 실시예에서, 메모리 암호화 유닛은 XTS-AES 동작 모드를 사용하여 처리되는 데이터 블록의 (물리적) 메모리 어드레스에 암호화를 결속시킨다. AES-XTS를 사용함으로써, 암호화된 메모리 이미지를 물리적으로 조작할 수 있는 공격자 및 암호화된 블록의 위치를 바꾸려 하거나 암호화된 블록을 다른 암호화된 블록으로 덮어쓰려는 공격에 대해 대처하는 것에 큰 도움이 된다. AES-XTS 트위크는 물리적 메모리 어드레스의 함수이므로, 이러한 공격은 공격자에 의한 예측 불가능하고 제어 불가능한 랜덤 변경을 유도하는 훨씬 약한 공격과 동일하게 된다. 다시 말해, 공격자가 바꾸기/덮어쓰기를 통해서는 메모리를 "무분별하게(blindly)" 변경하는 것과 같은 효과를 얻을 수 없다.
그러나, XTS-AES 트위크는 물리적 어드레스의 함수이므로, 공격자가 동일한 어드레스에 이전에 기록되었던 암호화된 블록으로 한 블록을 덮어쓰는 리플레이 공격에 대해서는 보호하지 못한다. 이러한 공격의 잠재적 심각성을 설명하기 위해, 시간 1(t1)에서 메모리의 페이지 x에 암호화된 이미지를 기록하는 소프트웨어 애플리케이션을 고려하자. 공격자는 메모리로의 하드웨어 액세스를 사용하여 이 암호화된 이미지를 저장한다. 그 후, 공격자는 소프트웨어 방법을 통해 그 소프트웨어 애플리케이션을 추방시키고 동일한 메모리 영역을 차지하는 악성 소프트웨어 애플리케이션을 로딩한다. 그 후, 공격자는 페이지 x에 대한 상기 암호화된 이미지의 카피를 물리적으로 리플레이하고, 그 지점에서 악성 소프트웨어 애플리케이션은 이미지의 완전한 소유권을 얻게 된다. 예를 들어, 악성 소프트웨어 애플리케이션은 선택한 메모리 위치에 평문으로서 비밀을 해독하고 덤핑(dump)할 수 있다. 이 공격은, 키 가능성을 소모시키기 위해 충분한 횟수만큼 공격 프로세스를 반복할 것만을 요구하기 때문에, 메모리 암호화 유닛을 위해 유한한 수의 키가 CPU에 의해 사용되더라도 이루어질 수 있다. 이러한 공격은 CPU로부터 어떤 비밀(가령, EPID(Enhanced Privacy Identifier)) 또는 민감한 코드를 얻기 위해 사용될 수 있다.
디스크 암호화에 관한 표준 XTS 모드에서, 인덱스가 유닛(u)에서 (j)인 데이터 블록(P)의 AES-XTS는 먼저 트위크 값을 생성하고 트위크 값을 사용하여 평문으로부터 암호문을 생성함으로써 수행된다.
예를 들어, 트위크 값(X)은 다음에 도시된 바와 같이 블록 식별자에 대한 16바이트 키 값(K1) 및 다항식(Poly) x128+x7+x2+x+1을 사용하여 생성된다.
X = AES (Kl , u) * 2j mod Poly 식 1
여기서 "*"는 캐리 없는 곱셈(carry-less multiplication)을 나타낸다.
트위크 값(X)을 생성한 후, 암호문(C)은 아래에 도시된 바와 같이 트위크 값(X) 및 다른 16 바이트 키 값(K2)을 사용하여 평문(P)으로부터 생성된다.
C = AES (K2, P+X)+X 식 2
AES-XTS는 유닛(u)의 값에 대해 64비트(8바이트)를 보존한다. AES 암호화는 16바이트 블록에서 동작하므로, 식 1에 도시된 바와 같이 암호화되는 블록(16바이트)(="u")의 64개의 나머지 비트(8바이트)는 0으로 정의된다.
AES-XTS는, "유닛"을 64바이트 캐시 라인으로 정의하고, 그 캐시 라인의 16바이크 데이터 블록의 위치를 표시하는 인덱스 j=0,1,2,3을 정의함으로써 메모리 암호화에 적용될 수 있다. 이 경우, "u"의 값은 캐시 라인의 (물리적) 어드레스이다. 물리적 어드레스는 전형적으로 48비트를 사용하여 인코딩된다.
본 발명의 일 실시예에서, 트위크에서 더 많은 정보를 사용(확장된 트위크)하기 위해, 표준 AES-XTS 모드를 확장하는 것에 기초하는 새로운 동작 모드가 제공된다. 확장된 트위크는 표준 정보 외에도, 가령, 캐시 라인 어드레스 및 블록 위치, 타임 스탬프 값을 포함한다. 다른 실시예에서, 확장된 트위크는 적어도 하나의 추가 라벨을 포함한다. 일 실시예에서, 추가 라벨은 시스템에서 실행되고 있는 소프트웨어 애플리케이션의 버전 번호이다. 버전 번호를 트위크에 추가함으로써 소프트웨어 애플리케이션의 구버전으로부터 캐시 라인을 복사하여 소프트웨어 애플리케이션의 새로운 버전에 동일한 어드레스에 이를 리플레이하여, 구버전이 실행되는 동안에 새로운 버전의 특권을 얻는 것을 방지한다.
일 실시예에서, 추가 정보를 저장하는 확장된 트위크의 비트는 확장된 트위크의 상위(최상위) 64비트에 존재한다. 전술한 바와 같이, 최상위 비트는 표준 AES-XTS 모드에서 0으로 설정된다. 다른 실시예에서, 추가 정보는 0으로 설정되는 것으로 보장된 다른 비트에 존재한다. 따라서, 모든 추가 정보 비트가 0으로 디제너레이트(degenerate)되면 암호화는 표준 XTS 모드이므로, 확장된 AES-XTS는 표준 AES-XTS의 일반화이다.
일 실시예에서, 확장된 트위크는 식3에 도시된 바와 같이 생성된다.
X = AES (Kl , L │ T │ u) * 2j mod Poly 식 3
여기서, P는 데이터 블록이고, 유닛(u)에서 인덱스는 j이며, T로 표시되는 시간에서 암호화되며, 라벨 L을 가지며 기호 "│"는 연쇄(concatenation)를 나타낸다.
다른 실시예에서, 라벨이 사용되지 않고 캐시 라인 어드레스 및 시간을 사용하여 확장된 트위크가 생성된다. 확장된 트위크는 연속적인 정수를 기술하도록 생성되어, 시간(0, 1,...,2^(32)-1))에서 영역의 어드레스를 카운트한다.
(시간 TIME에서) CL [j]에 대한 트위크는 (j = 0, 1, 2,..., m-1이고, TIME = 0, 1, 2, ... 2^(32)-1):
TWEAK = 00...0 [127:55]│ (ACL [j] >>6) [33:n+14] │ TIME [31:0] │ (ACL [j] >>6) [n+13:0]
여기서: Unit = Cache Line (CL);
각 CL은 2^(6) = (4 x 128-bit (2^(20)) 블록)인 64 바이트;
각 CL은 40-비트 베이스 어드레스, ACL [39:0]이고 ACL [5:0] =
[000000]; 파티션은 2^n MB를 가짐;
m (파티션의 CL의 수) = 2^(n+14);
j는 데이터스트림에서 m CL 중 하나;
데이터 스트림은 m CL, 상이한 시간에서, 즉, CL[j] (시간 t에서), 다음과 같다:
시간 t=0에서 CL[0], CL [1], CL [m-1]
시간 t=1에서 CL[0], CL [1],..., CL [m-l]
...
t=2^(32)-l에서 CL[0], CL [1], CL [m-1]
CL [j]에 대한 베이스 어드레스는 ACL [j]로 표시됨(여기서 j = 0, 1, 2,..., m-l).
데이터 스트림의 CL(유닛)을 (전술한 순서대로) 넘어갈 때, TWEAK은 양의 정수로부터 시작하여 모든 양의 정수를 걸쳐 연속적으로 실행된다.
00...0 [127 : 55] │ (ACL[0] >>6)[33 : n+14] │ 00...0 [31 :0] │ (ACL[0] >>6) [n+13 :0]
00...0 [127 : 55] │ (ACL[m-l] >>6)[33 : n+14] │ 11...1 [31 :0] │ (ACL[m-l]>>6) [n+13 :0]으로 종료된다.
예를 들어:
n=1이고 m=15인 2MB 파티션을 고려하자.
시간 TIME(32bits)에서 CL[j]에 대한 트위크는 다음과 같이 정의된다.
00...0 [127 : 55] | (ACL[j] >>6) [33 : 15] | TIME [31 :0] | (ACL[j] >>6) [14 :0]
도 2a는 확장된 트위크(200)의 일 실시예를 도시하고 있다. 도 2a에 도시된 확장된 트위크(200)는 128비트 값이다. 확장된 트위크(200)의 최하위 48 비트(Bits 47:0)(206)는 어드레스(u)용으로 확보되고, 나머지 80개의 최상위 비트(Bits 127:48)(204)는 타임 스탬프(T)용으로 확보된다.
도 2b는 확장된 트위크(202)의 다른 실시예를 도시하고 있다. 도 2b에 도시된 확장된 트위크(202)의 실시예에서, 확장된 트위크(202)의 최하위 64비트 [bits 63:0]는 어드레스(u)(212)용으로 확보되고, 다음 32비트 [bits 95:64]는 타임 스탬프(T)용으로 확보되며, 최상위 32 비트 [bits 127:96]는 라벨(L)(208)용으로 확보된다.
도 2b에 도시된 확장된 AES-XTS의 실시예로 암호화된 블록을 해독하기 위해, 암호문(C), 어드레스(u), 인덱스(j) 및 타임 스탬프(T) 및 라벨(L)이 요구된다. 일 실시예에서, 타임 스탬프(T) 및 라벨(L)의 값은 비밀이 아니지만 신뢰되는 방식으로 저장된다.
확장된 AES-XTS 트위크의 장점은 다음의 "시간 분리" 특성이다. 시간(t1)에서 어드레스(A1)으로 암호화된 암호문(C)가 어드레스(A1)에서 리플레이되지만 시간(t2)에서 해독되는 경우에는 예측 가능하지 않은 스트링으로 해독되는데, 이는 상이한 타임 스탬프로 인해 트위크 값이 상이하기 때문이다.
이 "시간 분리" 특성은 Type 2 리플레이 공격으로부터 보호하는데, 이는 공격자가 "동일한 어드레스에 리플레잉"하는 것을 통해서는 메모리 이미지의 랜덤(예측할 수 없고 제어할 수 없는) 변경을 통해 얻을 수 있는 것 이상으로는 얻을 수 없기 때문이다. 유사하게, 확장된 AES-XTS 트위크 모드는 라벨(L)에 의해 구별되는 콘텍스트들 사이의 분리를 또한 달성한다.
XTS-AES에 대한 실시예를 설명하였지만, 확장된 트위크 모드는 XTS-AES에 한정되지 않으며 다른 실시예에서 다른 트위크 가능한 암호 방안에 적용될 수 있다. 예를 들어, LRW(M. Liskov, R. Rivest, and D. Wagner) 트위크 가능한 블록 암호에 대한 실시예에서, LRW은 유사한 방식으로 향상된 LRW 모드로 향상될 수 있다.
도 3은 메모리 암호화를 수행하는 메모리 암호화 엔진(303)을 포함하는 시스템(300)의 블록도이다. 이 시스템(300)은 프로세서(301), 메모리 제어기 허브(MCH)(302) 및 입력/출력(I/O) 제어기 허브(ICH)(304)를 포함한다. MCH(302)는 프로세서(301)와 외부 메모리(100) 사이의 통신을 제어하는 메모리 제어기(306)를 포함한다. 프로세서(301) 및 MCH(302)는 시스템 버스(316)를 통해 통신한다.
프로세서(301)는 싱글 코어 Intel?Pentium IV? 프로세서, 싱글 코어 Intel Celeron 프로세서, Intel?XScale 프로세서 또는 Intel?Pentium D, Intel?Xeon? 프로세서, Intel?Core?Duo 프로세서와 같은 멀리 코어 프로세서 또는 임의의 다른 종류의 프로세서와 같은 복수의 프로세서 중 하나일 수 있다.
프로세서(301)의 메모리 암호화 엔진(303)은 메모리(100) 및/또는 저장 디바이스(312)에 저장될 수 있는 데이터에 대한 암호화 및 복호화를 수행할 수 있다. 이 메모리 암호화 엔진(303)은 메모리(308)의 콘텐츠를 판독할 수 있는 수동적 공격자에 대한 비밀성을 제공한다. 또한, 메모리 암호화 엔진(303)은, 16바이트에서 동작하는 사이퍼를 사용하여 16바이트의 입도로 메모리의 메모리 영역을 판독하고 기록할 수 있는 능동적 공격자에 대한 보호를 제공하며 메모리(308)의 캐시 라인은 64 바이트를 갖는다. 예를 들어, 64 바이트 캐시 라인의 16 바이트 세그먼트의 한 비트가 변형되면, 16 바이트 세그먼트는 "랜덤"이고 공격자에 대해 예측 불가능하다.
메모리(100)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), SDRAM(Synchronized Dynamic Random Access Memory), DDR2(Double Data Rate 2) RAM or RDRAM(Rambus Dynamic Random Access Memory) 또는 다른 종류의 메모리일 수 있다.
ICH(304)는 DMI(Direct Media Interface )와 같은 고속 칩 대 칩 인터커넥트(314)를 사용하여 MCH(302)에 연결될 수 있다. DMI는 2개의 단방향 레인을 통해서 2 기가비트/초 동시 전송 레이트를 지원한다.
ICH(304)는 ICH(304)에 연결되는 적어도 하나의 저장 디바이스(312)와의 통신을 제어하는 저장 I/O 제어기(310)를 포함할 수 있다. 저장 디바이스는, 예를 들어, 디스크 드라이브, DVD(Digital Video Disk) 드라이브, CD(Compact Disk) 드라이브, RAID(Redundant Array of Independent Disks), 테이프 드라이브 또는 다른 저장 디바이스일 수 있다. ICH(304)는 SAS(Serial Attached Small Computer System Interface) or SATA(Serial Advanced Technology Attachment)와 같은 직렬 저장 프로토콜을 사용하여 저장 프로토콜 인터커넥트(318)를 통해 저장 디바이스(312)와 통신할 수 있다.
메모리(100)에서의 어드레스 범위의 보호를 위한 실시예를 설명할 것이다.
도 4는 암호화된 데이터를 저장하는 도 3에 도시된 외부 메모리(100)의 메모리 영역(402)의 일부의 블록도이다. 메모리 영역(402)은 논리적으로 N개의 "파티션"으로 분할된다. 도 3을 다시 참조하면, 프로세서(301)에는 N개의 카운터(350)가 존재하며, 도 4에 도시된 메모리 영역(402)의 부분에서 논리 파티션당 하나의 카운터가 존재한다.
도 5는 애플리케이션에 의한 도 4에 도시된 외부 메모리(100)의 메모리 영역(402)의 부분에서 파티션의 사용을 위한 방법을 도시하고 있다. 도 5는 도 4와 관련하여 설명한다.
블록(500)에서, 메모리 영역(402)의 부분은 N개의 파티션(404-1,..., 404-N)으로 분할된다. 카운터(406-1,..., 406-N)가 각 파티션(404-1,..., 404-N)에 할당된다. 카운터의 전부(406- 1,..., 406-N)가 초기에 0으로 리셋된다. 블록(502)에서 프로세싱이 계속된다.
블록(502)에서, 소프트웨어 애플리케이션이 메모리(100)에 저장(기록)되면, 소프트웨어 애플리케이션(410, 412, 414)은 하나 이상의 논리 파티션(404-1,..., 404-N)에 하나 이상의 캐시 라인을 파퓰레이팅한다. 일 실시예에서, 각 캐시 라인은 64바이트를 가지며 운영 시스템은 메모리 페이지의 입도로 동작하는데, 이는 4096바이트일 수 있다. 애플리케이션이 메모리(100)로 로딩되면, 프로세싱은 블록(504)에서 계속된다. 메모리(100)에 로딩된 애플리케이션이 추방되면, 다른 애플리케이션(가능하게는 악성 애플리케이션)이 동일한 어드레스 공간으로 로딩되고, 프로세싱은 블록(504)에서 계속된다. 애플리케이션이 추방되지 않으면, 블록(502)에서 프로세싱이 계속된다.
블록(504)에서, 파티션(404-1,..., 404-N)이 (어떤 캐시 라인에 의해) 최초로 파튤레이팅될 때마다, 그 파티션에 대한 대응 카운터(406-1,..., 406-N)가 프로세서에 의해 증분된다. 또한, 대응 파티션(404-1,...404-N)의 카운터 값은 추방 및/또는 로딩 절차의 일부로서 프로세서에 의해 자동으로 증분된다. 블록(502)에서 프로세싱이 계속된다.
다시 도 4를 참조하면, 상이한 시간에 걸쳐, 각 애플리케이션(410, 412, 414)은, 이 애플리케이션에 의해 파퓰레이팅되는 논리 파티션에 걸쳐 상이할 수 있는 상이한 카운터 값을 갖는 논리 파티션(404-1,...404-N)에 배치된다. 프로세서(301)의 메모리 암호화 엔진(303)은 XTS-AES 향상된 트위크 동작 모드를 구현하는데, 여기서 T는 카운터 값이고, u는 물리적 어드레스이며, j는 블록의 인덱스이다. 이 방식으로, 트위크 값(X)은 메모리의 논리 파티션의 어드레스에 결속될 뿐만 아니라 애플리케이션(410, 412, 414)이 메모리(100)에 로딩된 시간에 CPU가 저장한 카운터 값에도 결속된다.
"카운터" 및 이것이 초기화되고 증분되는 방법은 변할 수 있다. 일 실시예에서, 카운터는 선형 피드백 시프트 레지스터(LFSR)일 수 있는데, 이는 고정되거나 무작위로 정해질 수 있는 0이 아닌 값으로 초기화되며 클록 입력을 사용하여 증분된다. 다른 실시예에서, 카운터는 무작위로 또는 결정된 방식으로 초기화되는 증분 로직을 포함하는 레지스터일 수 있다. 또 다른 실시예에서, 카운터는 랜덤 비트 생성시로부터 샘플링되는 값일 수 있다. 카운터의 길이(출력 비트의 수)는, 동일한 카운터 값으로 복사된 이미지를 리플레이하려는 시도가 무산되도록 결정될 수 있다.
도 4에 도시된 예에서, 메모리(100)의 상이한 파티션(404-1,..., 404-N)에 저장되는 3개의 애플리케이션(410, 412, 414)이 존재하며, 3개의 애플리케이션(410, 412, 414)이 동일한 파티션(404-1, 404-N)에 저장된다. 각 논리 파티션(404-1,...404-N)에는 상이한 카운터가 할당된다. 애플리케이션(412)는 2개의 파티션(404-2, 404-3)에서 페이지를 사용하며, 이들 파티션의 각각은 각자의 카운터(406-2, 406-3)를 갖는다. 애플리케이션에 할당된 프로세서 내부의 카운터가 증분되지 않으면 논리 파티션에 저장되는 애플리케이션의 해독이 올바르게 이루어진다. 먼저 애플리케이션이 각자의 파티션으로부터 추방되지 않으면 카운터 값은 증분되지 않는다.
한 애플리케이션이 추방되고 다른 애플리케이션(가능하게는 악성 애플리케이션)이 동일한 어드레스 공간으로 로딩되면, 대응 파티션의 카운터 값은 추방 및/또는 로딩 절차의 일부로서 CPU에 의해 자동으로 증분된다. Type 2 공격에서, 공격자는 이전 애플리케이션에 속하는 메모리 이미지를 복사하고, 공격 코드가 관련 메모리 영역을 파퓰레이팅하는 동안에 동일한 어드레스에 복사된 메모리 이미지를 리플레이한다. 이 공격은 메모리가 표준 XTS-AES 암호화로 암호화되면 성공하고, 공격자는 메모리 이미지에 저장된 비밀을 판독할 수 있다. 그러나, XTS-AES 향상된 트위크 모드를 사용하는 경우에는, 카운터 값이 일치하지 않기 때문에 공격자가 결과를 얻지 못한다. 카운터 값의 사용은 랜덤 변형보다 우수한데, XTS-AES 향상된 트위크는 해독에서 상이한 카운터 값을 사용하기 때문이다.
한가지 장점은, 이 방법은 트위크로 암호화만을 사용하여 하나의 메모리 액세스로 메모리 판독 및 기록이 이동한다는 점이다. 또한, 카운터에 대한 추가 하드웨어 비용과, 파티션이 많을수록 우수한 입도를 제공하는 메모리 사용 효율 사이의 절충점으로서, 파티션의 수는 구현 시에 의해 결정될 수 있다.
도 6은 신뢰되는 애플리케이션을 메모리에 저장하는 방법의 실시예를 도시하고 있다. 신뢰되는 애플리케이션은 먼저 초기화되고, 추가 물리적 페이지에 대한 요청의 형태로 자신을 위한 메모리 할당을 요청한다.
블록(600)에서, 메모리에 저장될 애플리케이션이 수신된다. 수신된 애플리케이션은 애플리케이션 식별자와 연관되고 애플리케이션의 제 1 페이지를 포함한다. 논리 파티션은 애플리케이션에 대해 할당된다. 블록(602)에서 프로세싱이 계속된다.
블록(602)에서, 애플리케이션의 식별자는 논리 파티션에 저장되고, 할당된 논리 파티션과 연관되는 식별자는 애플리케이션의 식별자로 설정된다. 할당된 논리 파티션과 연관되는 페이지 번호는 할당된 논리 파티션과 연관되는 페이지 번호에 저장된다. 할당된 논리 파티션과 연관되는 파티션 카운터가 증분된다. 블록(604)에서 프로세싱이 계속된다.
블록(604)에서, 애플리케이션의 제 1 페이지의 데이터는 할당된 논리 파티션의 제 1 페이지에 저장된다.
도 7은 신뢰되는 애플리케이션에 메모리의 페이지의 추가적인 할당을 추가하는 방법을 실시예를 도시하고 있다.
블록(700)에서, 애플리케이션에 대해 메모리에 데이터를 저장하라는 요청을 수신하면, 이 애플리케이션에 대해 페이지가 할당된 최종 논리 파티션이 결정된다. 블록(702)에서 프로세싱이 계속된다.
블록(702)에서, 현재 페이지 번호가 할당된 논리 파티션의 최종 페이지이면, 프로세싱은 블록(704)에서 계속된다. 논리 파티션의 최종 페이지가 아니면, 블록(706)에서 프로세싱이 계속된다.
블록(704)에서, 현재 페이지가 애플리케이션에 대한 현재 할당된 논리 파티션의 최종 페이지이므로, 다른 논리 파티션이 애플리케이션에 대해 할당되고, 애플리케이션의 페이지는 새롭게 할당된 논리 파티션의 제 1 페이지로 복사된다.
블록(706)에서, 현재 페이지가 애플리케이션에 대한 현재 할당된 논리 파티션의 최종 페이지가 아니므로, 현재 논리 파티션의 애플리케이션에 할당된 페이지의 번호는 다음 페이지로 증분되고, 애플리케이션의 페이지는 현재 할당된 논리 파티션의 다음 페이지로 복사된다.
본 발명의 실시예에 포함되는 방법은 컴퓨터 사용 가능한 매체를 포함하는 컴퓨터 프로그램 제품으로 실시될 수 있다는 것이 당업자에게 자명할 것이다. 예를 들어, 이러한 컴퓨터 사용 가능한 매체는 CD ROM 디스크 또는 종래 ROM 디바이스 또는 컴퓨터 디스켓과 같은, 컴퓨터 판독 가능한 프로그램 코드를 저장한 판독 전용 메모리 디바이스로 구성될 수 있다.
본 발명의 실시예는 그 실시예를 참조하여 특히 도시되고 설명되었지만, 첨부된 청구범위에 의해 정해지는 본 발명의 실시예의 범위를 벗어나지 않고 형태와 세부사항의 다양한 변경이 이루어질 수 있음을 당업자는 이해할 것이다.

Claims (22)

  1. 프로세서에 의해, 애플리케이션과 연관되는 데이터 블록을 암호화하는 단계와,
    상기 암호화된 데이터 블록을 저장하기 위해 메모리에 논리 파티션을 할당하는 단계를 포함하되,
    상기 데이터 블록은 트위크(tweak)를 사용하여 암호화되고, 상기 트위크는 상기 프로세서와는 별개(separate)인 상기 메모리의 캐시 라인 식별자 및 암호화될 데이터 블록의 식별된 캐시 라인의 위치를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 할당된 논리 파티션과 연관되는 타임 스탬프 값을 상기 트위크에 저장하는 단계를 더 포함하되, 상기 암호화된 데이터가 상기 할당된 논리 파티션으로 로딩되는 경우 및 상기 암호화된 데이터가 상기 할당된 논리 파티션으로부터 추방되는(evicted) 경우, 상기 타임 스탬프 값은 상기 프로세서에 의해 증분되는
    방법.

  3. 제 2 항에 있어서,
    상기 타임 스탬프 값은 상기 프로세서의 카운터에 저장되며, 상기 카운터는 상기 논리 파티션에 할당되는
    방법.
  4. 제 3 항에 있어서,
    상기 카운터는 상기 프로세서에서 자체적으로(autonomously) 증분되는
    방법.
  5. 제 2 항에 있어서,
    상기 할당된 논리 파티션과 연관되는 라벨을 상기 트위크에 저장하는 단계를 더 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 애플리케이션은 보안 애플리케이션인
    방법.
  7. 제 1 항에 있어서,
    상기 트위크는 XTS-AES 트위크인
    방법.
  8. 제 1 항에 있어서,
    상기 트위크는 LRW 트위크인
    방법.
  9. 프로세서에 로직을 포함하되,
    상기 로직은 애플리케이션과 연관되는 데이터 블록을 암호화하고, 상기 암호화된 데이터 블록을 저장하기 위해 메모리에 논리 파티션을 할당하되, 상기 데이터 블록은 트위크(tweak)를 사용하여 암호화되고, 상기 트위크는 상기 프로세서와는 별개인 상기 메모리의 캐시 라인 식별자 및 암호화될 데이터 블록의 식별된 캐시 라인의 위치를 포함하는
    장치.
  10. 제 9 항에 있어서,
    상기 로직은 상기 할당된 논리 파티션과 연관되는 타임 스탬프 값을 상기 트위크에 저장하되, 상기 암호화된 데이터가 상기 할당된 논리 파티션으로 로딩되는 경우 및 상기 암호화된 데이터가 상기 할당된 논리 파티션으로부터 추방되는 경우, 상기 타임 스탬프 값은 상기 프로세서에 의해 증분되는
    장치.
  11. 제 10 항에 있어서,
    상기 타임 스탬프 값은 상기 프로세서의 카운터에 저장되며, 상기 카운터는 상기 논리 파티션에 할당되는
    장치.
  12. 제 11 항에 있어서,
    상기 카운터는 상기 프로세서에서 자체적으로 증분되는
    장치.

  13. 제 10 항에 있어서,
    상기 로직은 상기 할당된 논리 파티션과 연관되는 라벨을 상기 트위크에 저장하는
    장치.
  14. 제 9 항에 있어서,
    상기 애플리케이션은 보안 애플리케이션인
    장치.
  15. 제 9 항에 있어서,
    상기 트위크는 XTS-AES 트위크인
    장치.
  16. 제 9 항에 있어서,
    상기 트위크는 LRW 트위크인
    장치.
  17. 관련 정보를 갖는 머신-액세스 가능한 매체를 포함하는 물품으로서,
    상기 정보는 액세스되면 머신으로 하여금
    프로세서에 의해, 애플리케이션과 연관되는 데이터 블록을 암호화하는 단계와,
    상기 암호화된 데이터 블록을 저장하기 위해 메모리에 논리 파티션을 할당하는 단계를 수행하게 하되,
    상기 데이터 블록은 트위크(tweak)를 사용하여 암호화되고, 상기 트위크는 상기 프로세서와는 별개인 상기 메모리의 캐시 라인 식별자 및 암호화될 데이터 블록의 식별된 캐시 라인의 위치를 포함하는
    물품.
  18. 제 17 항에 있어서,
    상기 할당된 논리 파티션과 연관되는 타임 스탬프 값을 상기 트위크에 저장하는 단계를 더 포함하되, 상기 암호화된 데이터가 상기 할당된 논리 파티션으로 로딩되는 경우 및 상기 암호화된 데이터가 상기 할당된 논리 파티션으로부터 추방되는 경우, 상기 타임 스탬프 값은 상기 프로세서에 의해 증분되는
    물품.
  19. 제 17 항에 있어서,
    상기 타임 스탬프 값은 상기 프로세서의 카운터에 저장되며, 상기 카운터는 상기 논리 파티션에 할당되는
    물품.
  20. 애플리케이션을 저장하는 대용량 저장 디바이스와,
    프로세서를 포함하되,
    상기 프로세서는
    애플리케이션과 연관되는 데이터 블록을 암호화하고, 상기 암호화된 데이터 블록을 저장하기 위해 메모리에 논리 파티션을 할당하는 로직을 포함하고,
    상기 데이터 블록은 트위크(tweak)를 사용하여 암호화되고, 상기 트위크는 상기 프로세서와는 별개인 상기 메모리의 캐시 라인 식별자 및 암호화될 데이터 블록의 식별된 캐시 라인의 위치를 포함하는
    시스템.
  21. 제 20 항에 있어서,
    상기 로직은 상기 할당된 논리 파티션과 연관되는 타임 스탬프 값을 상기 트위크에 저장하되, 상기 암호화된 데이터가 상기 할당된 논리 파티션으로 로딩되는 경우 및 상기 암호화된 데이터가 상기 할당된 논리 파티션으로부터 추방되는 경우, 상기 타임 스탬프 값은 상기 프로세서에 의해 증분되는
    시스템.
  22. 제 21 항에 있어서,
    상기 타임 스탬프 값은 상기 프로세서의 카운터에 저장되며, 상기 카운터는 상기 논리 파티션에 할당되는
    시스템.
KR1020137007328A 2010-09-24 2011-09-24 리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드 KR101479957B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/890,365 2010-09-24
US12/890,365 US8468365B2 (en) 2010-09-24 2010-09-24 Tweakable encryption mode for memory encryption with protection against replay attacks
PCT/US2011/053170 WO2012040679A2 (en) 2010-09-24 2011-09-24 A tweakable encrypion mode for memory encryption with protection against replay attacks

Publications (2)

Publication Number Publication Date
KR20130048260A true KR20130048260A (ko) 2013-05-09
KR101479957B1 KR101479957B1 (ko) 2015-01-08

Family

ID=45871895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137007328A KR101479957B1 (ko) 2010-09-24 2011-09-24 리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드

Country Status (8)

Country Link
US (1) US8468365B2 (ko)
EP (1) EP2619705B1 (ko)
JP (1) JP5632086B2 (ko)
KR (1) KR101479957B1 (ko)
CN (1) CN103109296B (ko)
AU (1) AU2011305189C1 (ko)
TW (1) TWI567557B (ko)
WO (1) WO2012040679A2 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468365B2 (en) 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
JP5700481B2 (ja) * 2011-06-29 2015-04-15 インテル・コーポレーション 整合性チェック及びリプレーアタックからの保護を行って、メモリを暗号化するための方法及び装置
US9116991B2 (en) * 2011-08-16 2015-08-25 Google Inc. Searching encrypted electronic books
TW201423469A (zh) * 2012-12-03 2014-06-16 Inst Information Industry 電子數位資料匿篩裝置、方法及其電腦可讀取紀錄媒體
US9910790B2 (en) * 2013-12-12 2018-03-06 Intel Corporation Using a memory address to form a tweak key to use to encrypt and decrypt data
US9614666B2 (en) 2014-12-23 2017-04-04 Intel Corporation Encryption interface
US9710675B2 (en) * 2015-03-26 2017-07-18 Intel Corporation Providing enhanced replay protection for a memory
CN104852798B (zh) * 2015-05-11 2017-10-03 清华大学深圳研究生院 一种数据加解密系统及方法
CN105516186B (zh) * 2015-12-31 2019-07-23 华为技术有限公司 一种防止重放攻击的方法和服务器
US10585809B2 (en) * 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
US10126960B2 (en) * 2016-05-10 2018-11-13 Qualcomm Incorporated Fuse-based anti-replay mechanism
US10880082B2 (en) 2017-10-19 2020-12-29 Hewlett Packard Enterprise Development Lp Rekeying keys for encrypted data in nonvolatile memories
KR102488636B1 (ko) 2017-11-23 2023-01-17 삼성전자주식회사 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10880401B2 (en) * 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
KR20200129776A (ko) 2019-05-10 2020-11-18 삼성전자주식회사 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템
DE102019128528A1 (de) 2019-10-22 2021-04-22 Infineon Technologies Ag Datenkryptografievorrichtungen und speichersysteme
US11500786B2 (en) * 2019-12-03 2022-11-15 Nxp B.V. System and method for protecting memory encryption against template attacks
US20230080104A1 (en) * 2021-08-25 2023-03-16 International Business Machines Corporation Bulk data transfers via transport layer security protocol
WO2024049141A1 (ko) * 2022-09-02 2024-03-07 삼성전자주식회사 암호화된 데이터를 비휘발성 메모리 내에 저장하기 위한 전자 장치 및 그 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS504190B1 (ko) * 1969-09-27 1975-02-15
US6016553A (en) 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
JP4153653B2 (ja) * 2000-10-31 2008-09-24 株式会社東芝 マイクロプロセッサおよびデータ保護方法
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
US7681050B2 (en) 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
WO2007096979A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited 情報処理装置およびデータ転送方法
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
US8095802B2 (en) 2006-09-12 2012-01-10 International Business Machines Corporation System and method for securely saving a program context to a shared memory
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
US9324361B2 (en) * 2007-08-14 2016-04-26 Seagate Technology Llc Protecting stored data from traffic analysis
US20090187771A1 (en) 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US8477946B2 (en) * 2008-02-27 2013-07-02 International Business Machines Corporation Method and apparatus for protecting encryption keys in a logically partitioned computer system environment
US8607034B2 (en) * 2008-05-24 2013-12-10 Via Technologies, Inc. Apparatus and method for disabling a microprocessor that provides for a secure execution mode
WO2009156615A1 (fr) * 2008-06-02 2009-12-30 Awox Procede et dispositif de mise a jour d'application informatique
WO2010024004A1 (ja) * 2008-08-29 2010-03-04 日本電気株式会社 調整値付きブロック暗号化装置、調整値付きブロック暗号化方法及び調整値付きブロック暗号化プログラム並びに調整値付きブロック復号装置、調整値付きブロック復号方法及び調整値付きブロック復号プログラム
FI20080534A0 (fi) * 2008-09-22 2008-09-22 Envault Corp Oy Turvallinen ja valikoidusti kiistettävissä oleva tiedostovarasto
KR20110106849A (ko) * 2008-11-10 2011-09-29 윌리엄 브이 옥스포드 회귀형 보안 프로토콜을 이용하여 컴퓨팅 장치에서 코드 실행을 제어하는 방법 및 시스템
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
US8468365B2 (en) 2010-09-24 2013-06-18 Intel Corporation Tweakable encryption mode for memory encryption with protection against replay attacks
RU2011107568A (ru) * 2011-03-01 2012-09-10 ЭлЭсАй Корпорейшн (US) Устройство (варианты) и способ генерирования конструкции комбинационного умножителя конечного поля малой глубины

Also Published As

Publication number Publication date
CN103109296A (zh) 2013-05-15
EP2619705A4 (en) 2015-01-21
AU2011305189A1 (en) 2013-05-23
CN103109296B (zh) 2016-01-20
AU2011305189C1 (en) 2016-05-12
EP2619705A2 (en) 2013-07-31
US20120079285A1 (en) 2012-03-29
KR101479957B1 (ko) 2015-01-08
TWI567557B (zh) 2017-01-21
AU2011305189B2 (en) 2015-12-10
TW201224751A (en) 2012-06-16
WO2012040679A3 (en) 2012-07-19
US8468365B2 (en) 2013-06-18
WO2012040679A2 (en) 2012-03-29
EP2619705B1 (en) 2017-12-27
JP2013538376A (ja) 2013-10-10
JP5632086B2 (ja) 2014-11-26

Similar Documents

Publication Publication Date Title
KR101479957B1 (ko) 리플레이 공격에 대한 보호를 갖는 메모리 암호화를 위한 트위크 가능한 암호화 모드
KR101577886B1 (ko) 무결성 검사 및 리플레이 공격들에 대한 보호를 이용하는 메모리 암호화를 위한 방법 및 장치
US7428306B2 (en) Encryption apparatus and method for providing an encrypted file system
US9128876B2 (en) Memory location specific data encryption key
CN108449172B (zh) 加密/解密方法和计算设备的集成电路
KR102201062B1 (ko) 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
WO2009057094A1 (en) Memory randomization for protection against side channel attacks
KR20080100673A (ko) 암호화 기반의 프로세서 보안 방법 및 장치
CN102541762A (zh) 用于外部存储器的数据保护器和数据保护方法
CN109086612A (zh) 一种基于硬件实现的嵌入式系统动态数据保护方法
JP2017526220A (ja) 順不同(out of order)データに対する推論的暗号処理
Brož et al. Practical cryptographic data integrity protection with full disk encryption
WO2023073368A1 (en) Methods and systems for secure data storage
JP2023130311A (ja) サイドチャネル攻撃から電子コンピュータを保護する方法及び電子コンピュータ
JP2009075474A (ja) 暗号処理装置
KR20220108152A (ko) 비신뢰 메모리에 저장된 데이터에 대한 액세스를 제어하는 장치 및 방법

Legal Events

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

Payment date: 20181129

Year of fee payment: 5