KR101714108B1 - 검증가능 누출 방지 암호화 및 복호화 - Google Patents

검증가능 누출 방지 암호화 및 복호화 Download PDF

Info

Publication number
KR101714108B1
KR101714108B1 KR1020127014536A KR20127014536A KR101714108B1 KR 101714108 B1 KR101714108 B1 KR 101714108B1 KR 1020127014536 A KR1020127014536 A KR 1020127014536A KR 20127014536 A KR20127014536 A KR 20127014536A KR 101714108 B1 KR101714108 B1 KR 101714108B1
Authority
KR
South Korea
Prior art keywords
key
encryption
encrypted data
message
value
Prior art date
Application number
KR1020127014536A
Other languages
English (en)
Other versions
KR20120098764A (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 KR20120098764A publication Critical patent/KR20120098764A/ko
Application granted granted Critical
Publication of KR101714108B1 publication Critical patent/KR101714108B1/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/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
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3271Cryptographic 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 challenge-response
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • 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/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

외부 모니터링 공격들로부터 보안성을 제공하는 방식으로 민감한 데이터를 암호화하고 복호화하는 방법들 및 디바이스들이 개시된다. 암호화 디바이스는 복호화 디바이스에도 공지된 베이스 비밀 암호화 값 (키) 으로의 액세스를 갖는다. 민감한 데이터는 세그먼트들로 분해되고, 각각의 세그먼트는 베이스 키 및 메시지 식별자로부터 유도된 별도의 암호화 키로 암호화되어, 암호화된 세그먼트들의 세트를 생성한다. 암호화 디바이스는 베이스 암호화 값을 이용하여, 이 메시지 식별자에 대한 암호화된 세그먼트들이 베이스 키로의 액세스를 갖는 디바이스에 의해 생성되었다는 것을 증명하는 검증자를 생성한다. 복호화 디바이스는, 암호화된 세그먼트들을 수신할 때, 메시지 식별자 및 그 암호화된 세그먼트가 변형되지 않았음을 검증하도록 밸리데이터를 이용한다.

Description

검증가능 누출 방지 암호화 및 복호화{VERIFIABLE, LEAK-RESISTANT ENCRYPTION AND DECRYPTION}
관련 출원에 대한 교차 참조
본 출원은 2010 년 12 월 2 일에 출원된 미국 출원 제1s2/958,570호 및 2009 년 12 월 4 일에 출원된 미국 특허 가출원 제61/266,948호 에 대한 우선권을 주장하며, 이 출원들은 여기에서 전체가 참조로서 포함된다.
본 특허는 암호화된 데이터 입력들을 프로세싱하는 기법들에 관한 것이고, 특히 그러한 시스템들 및 외부 모니터링 공격들에 대항하는 데이터를 보호하는 기법들에 관한 것이다.
민감한 데이터에 대해 동작하는 시스템들은 공격자들에 의한 그러한 데이터로의 비승인 액세스, 또는 그러한 데이터의 폭로 또는 변경에 대항하여 보호될 필요가 있다. 암호 키들 및 다른 비밀들에 액세스하는 공격자들은 민감한 데이터를 훔치거나 탬퍼링하여, 비승인 커맨드들의 도입이나 기밀 또는 사적 정보의 노출을 통해 시스템의 중요한 동작들의 전복과 같은 심각한 결과들을 가져올 수 있다. 한 가지 절충된 엘리먼트는 또한 추가 공격들을 시작하여 시스템의 다른 엘리먼트들을 위험에 빠뜨리는 데 이용될 수도 있다. 보다 구체적으로, 이전의 연구는, 공격자들이 동작 타이밍, 전력 소비 및/또는 전자기 방사와 같은 디바이스의 외부 특성들을 모니터링할 수 있고, 디바이스 내에서 이용되고 있는 비밀 키들을 추출하는 데 이 추가 정보를 이용할 수도 있다는 것을 보여 주고 있다. 예를 들어, Kocher 등에 의해 설명된 바와 같이 (P. Kocher, J. Jaffe, B. Jun, "Differential Power Analysis," Advances in Cryptology - Crypto 99 Proceedings, Lecture Notes In Computer Science Vol. 1666, Springer- Verlag, 1999 참조), 상이한 데이터를 갖는 동일한 세트의 키들을 이용하여 암호화 연산의 시퀀스를 수행하는 디바이스의 외부 모니터링이 키의 누설을 초래할 수 있다는 것은 본 분야에서 주지되어 있다.
외부 모니터링 공격들은 일반적으로 수동적이고 비침습적이기 때문에, 물리적 액세스를 방지하거나 부적절한 이용을 검출하는 것에 기초하는 일반적인 탬퍼링 방지 디펜스들은 그러한 공격들에 대한 방지를 제공하기에 불충분하거나 비실용적이다. 예를 들어, 물리적으로 안전한, 잘 차폐된 룸들을 이용하여 비밀 키들을 관리하는 방법들이 배경에서 주지되어 있다. 그러나, 많은 애플리케이션들에서, 암호화 시스템들을 물리적으로 격리된 설비들에 유지시킬 것을 요구하는 것은, 그들이 동작할 것으로 예상되는 환경이 제공되면, 가능하지 않다. 또한, 그러한 설비들은 축조하고 동작시키기에는 고가이며, 소량의 정보를 상대방에게로의 누출하는 것을 방지할 능력 면에서 여전히 불완전할 수도 있다.
물론, 필수적으로 물리적 차폐에 의존하지 않고도 모니터링 공격들로부터의 정보 누출 문제를 완화시킬 수 있는 다른 방법들이 백그라운드에 공지되어 있다. 이들은 트랜잭션들로부터의 정보 누출량 (또는 속도)을 감소시키고, 암호 알고리즘 구현들을 변형하여 계산상의 중간산물을 랜덤화하고, 및/또는 전력 소비 및 동작 타이밍에 잡음을 도입하는 방법들을 포함한다.
예를 들어, 발명의 명칭이 "Leak-Resistant Cryptographic Indexed Key Updated"인 미국 특허 제 6539092 호는 공유 마스터 키 및 인덱스 값 (예컨대, 카운터) 을 트랜잭션 키로 변환하는 방법들을 제공하는데, 여기서 유도물은 외부 모니터링 공격들에 대해 보호된다. 이러한 방법들은 외부 모니터링 공격들에 대해 보호되고 있는 디바이스(들)가 트랜잭션 키의 유도물의 원인이 될 수 있는 애플리케이션들에서 잘 작동한다. 예를 들어, '092 특허는 각각의 트랜잭션에 따라 증가하여, 키 유도물에서 인덱스 카운터를 이용하는 인덱스 카운터를 스마트카드가 어떻게 유지할 수 있는지를 설명한다.
그러나, '092 특허에서 설명된 바와 같이, 프로토콜에서의 참여자(들)가 외부 모니터링 공격들에 대해 보호되어야 하지만 시퀀스 카운터들 및 업데이트된 키들을 저장할 능력이 결여되어 있는 애플리케이션들이 존재한다. 예를 들어, 임의적인 순서로 암호문들을 복호화하는 데 반복적으로 이용되는 고정 불변의 내장 키를 포함하는 디바이스와 같은 디바이스가 동일한 입력 데이터를 규칙적으로 프로세싱할 필요가 있는 경우를 고려한다. 펌웨어 암호화는 그러한 애플리케이션의 실시예이다: 마이크로프로세서는 퓨즈들 내에 내장 키를 갖는 마이크로프로세가 제조될 수도 있고, 모든 리부팅 시에, 마이크로프로세서는 불신 (untrusted) 외부 플래쉬로부터 로딩된 그의 펌웨어 이미지를 재복호화할 필요가 있다. 펌웨어 이미지는 때때로 업데이트될 수도 있지만, 동일한 암호문이 또한 반복해서 복호화될 수도 있다. 따라서, 애플리케이션 요건들 및 물리적 제조 제한사항들 (예컨대, 키들을 보유하기 위해 일회용 프로그래밍가능 퓨즈들의 사용으로 인한 저장된 키를 변형하는 무능력) 양측 모두는 복호화 키가 이용될 횟수를 디바이스가 제한하는 것을 비용적이게 만들 수 있다. 펌웨어 공개자는 '092 특허에 설명된 방법들을 이용할 수 있는데, 새로운 인덱스 값을 이용하여, 매번 새로운 암호화된 펌웨어 이미지가 릴리스되지만, 복호화 디바이스는 각각의 리부팅 시에 상이한 인덱스 값을 사용할 수 없는데, 이는 인덱스 값을 암호화 디바이스에 의해 이용된 것과는 다른 값으로 변경하는 것이 부정확한 복호화를 초래할 것이기 때문이다. 따라서, 공격자는 복호화 디바이스에 탬퍼링된 데이터 세트들을 잠재적으로 제공할 수 있고, 그 이후에 디바이스가 그러한 암호문들을 프로세싱 (예컨대, 복호화 등) 하는 동안에 외부 특성들을 모니터링함으로써 비밀 키를 회수하고자 할 수 있다. 차동 전력 분석 (PDA) 과 같은 통계적 측면 채널 공격들은, 디바이스가 동일한 키를 반복해서 이용하여 상이한 입력 값들 (예컨대, 전술한 실시예들에서 상이한 펌웨어 암호문들 또는 동일한 펌웨어 암호문들의 탬퍼링된 버전들) 에 대해 동작할 때 수집된 측정치들의 세트로부터 비밀 키를 추론할 수 있다. 단일의 긴 메시지로부터의 측정치들 (예컨대, 많은 블록 암호 입력들을 포함함) 또는 적법한 메시지들의 콜렉션 (예컨대, 다수의 펌웨어 버전들) 은 또한 암호문 메시지들이 탬퍼링되지 않은 경우라 해도, 측면 채널 공격에 충분한 데이터를 제공할 수도 있다.
물론, 디바이스가 모든 트랜잭션에 대해 동일한 키를 이용하는 일부 상황들에 있어서, 디바이스는 이론상으로 (예컨대, 트랜잭션 또는 실패 임계가 초과되는 경우에 자멸함으로써) 록-아웃 (lock-out)을 구현하여, 상대방이 관찰할 수 있는 트랜잭션의 수를 제한할 수 있다. 그러나, 록-아웃 메커니즘들은 신뢰도 관계 및 실패 카운터를 저장하는 것과 관련된 곤란성들과 같은 다수의 실질적 문제들을 도입한다 (예컨대, 많은 반도체 제조 프로세스들은 안전한 온-칩 비휘발성 스토리지가 부족하고, 오프-칩 스토리지는 보장하기가 어렵다).
전술한 모든 사항의 관점에서, 디바이스들이 데이터를 통신 및 교환하는 검증 가능하게 안전한 방식을 제공하고, 외부 모니터링 공격들에 대한 보호 및 디바이스가 가짜 데이터를 거부할 능력을 갖는 방법이 유리할 것이다.
본 특허는 외부 모니터링 공격들에 대한 비밀 암호화 키들을 이용하는 디바이스뿐 아니라 종래의 암호해독, 및 디바이스의 내부 동작들에 상관된 정보를 수집하는 다른 공격들 (예컨대, DPA 및 다른 형태의 외부 모니터링 공격들) 에 대한 개선된 보안을 제공하는 방법들을 설명한다. 민감한 데이터를 암호화하는 다양한 예시적 실시형태들이 명세서에 개시된다.
이러한 다양한 실시형태들이 그들의 세부사항들에서 현저하게 변할 수도 있지만, 명세서에서 설명된 다양한 실시형태들에 관해 용이하게 검증될 수도 있는 바와 같이, 그들은 모두 하기의 일반적인 기법 내에 포괄된다: 암호화와 관련하여, 각 세트의 암호화될 데이터는 메시지 식별자 (트랜잭션/메시지 카운터, 평문의 해시, 랜덤 값, 또는 다른 고유 값 또는 준고유 값) 와 관련된다. 암호화 디바이스는 메시지 식별자, 및 복호화 디바이스(들) 와 공유되는 초기 비밀 내부 상태를 이용하여 메시지 키를 유도한다. 이러한 유도는, 공유된 비밀 내부 상태의 적어도 일부분으로부터 시작하여, 메시지 키에 이르는 일련의 하나 이상의 중간 키들을 통해 반복적인 방식으로 수행되며, 여기서 각각의 반복 시에, 다음 키는 적어도 하나의 이전 키 및 메시지 식별자의 적어도 일부분에 의존한다. 평문은 하나 이상의 세그먼트들로 분해될 수도 있다. 각각의 평문 세그먼트는 메시지 키 또는 메시지 키로부터 추가로 유도되는 키들을 포함하여 대응하는 암호화된 세그먼트를 생성할 수 있는 하나 이상의 비밀 키들로 암호화된다. 일반적으로, 상이한 키 (또는 상이한 세트의 키들) 가 각각의 세그먼트에 대해 이용된다.
그 후, 암호화 디바이스는 복호화 디바이스와 공유되는 비밀 키 (예컨대, 메시지 키, 비밀 내부 비밀, 상이한 키, 키들, 전술한 사항으로부터 유도된 키들 등) 를 이용하여, 적어도 하나의 밸리데이터를 계산한다. 밸리데이터의 유도는 메시지 키를 생성하는 데 이용된 것과 유사한 반복 프로세스를 이용하여 수행되어, 일련의 변환들은 연속적 값들을 생성하도록 비밀 키에 적용된다 (예를 들어, 각각의 중간 값의 생성은 그것의 부모 값을 해싱하는 것을 포함한다).
암호화 디바이스는 하나 이상의 암호화된 세그먼트들 및 하나 이상의 밸리데이터들을 출력한다. 추가 정보는 또한 수신자가 메시지 식별자를 판정하게 하는 데 필요하면 출력될 수도 있다.
대응하는 복호화 프로세스 동안, 복호화 디바이스는 하나 이상의 암호화된 세그먼트들, 하나 이상의 밸리데이터(들), 및 암호화된 세그먼트(들) 에 대응하는 메시지 식별자를 수신한다. 그 후, 그것은 하나 이상의 밸리데이터들을 이용하여, 적어도 복호화될 제 1 암호화된 세그먼트가 변형되지 않았음을 검증한다. 밸리데이터의 검증은 암호화 디바이스와 공유된 비밀로 시작한 일련의 연속적 중간 값들을 계산하는 것을 포함할 수도 있고, 각각의 중간 값은 그것의 부모의 해시이다 (그리고, 특정 해시 동작은 상기 암호화된 세그먼트(들)의 해시의 일부분에 의존한다). 일반적으로, 암호화된 세그먼트에 대한 복호화 프로세스는 세그먼트가 변형되지 않았다는 것이 검증되는 경우에만 진행하도록 허용된다. 검증이 성공적이면, 복호화 디바이스는 (이미 유도되지 않은 경우) 비밀 내부 상태를 이용하여 메시지 키를 계산하는데, 그것은 암호화 디바이스들과 공유하고, 그 뒤에 동일한 반복 키 유도 프로세스가 오고 그 다음에 암호화 디바이스가 온다 (즉, 공유된 비밀 내부 상태의 적어도 일부분으로부터 시작하여, 최종 메시지 키에 이르는, 일련의 중간 키들을 통해, 각각의 단계에서, 다음 키가 메시지 식별자의 적어도 일부분 및 적어도 하나의 이전 키에 의존한다). 각각의 암호화된 세그먼트 (변형되지 않은 것으로 결정된 경우) 는 메시지 키로부터 유도된 하나 이상의 대응하는 비밀 키들로 복호화되어 대응하는 평문 세그먼트를 복구한다.
도 1 은 키 및 암호문 해시 체이닝을 이용한 검증가능 누출 방지 암호화를 위한 전체 프로세스의 예시적 실시형태를 도시한다.
도 2 는 공유된 암호화 비밀 KSTART 로부터 시작하여 경로 Pi ...PQ 를 통해 계속되는 누출 방지, 키-트리-기반 키 유도 프로세스의 예시적 실시형태를 도시한다. 도 2 의 키 유도 프로세스는 도 1 및 도 3 의 제 1 예시적 암호화 프로세스들 및 도 4 의 제 1 예시적 암호화 프로세스와 관련하여 이용 가능하다. 그것은 또한 도 5, 도 11 및 도 13 의 다른 예시적 암호화 프로세스들 및 도 6, 도 12 및 도 14 의 다른 예시적 암호화 프로세스들과 관련하여 이용 가능하다.
도 3 은 암호화를 위한 누출 방지 키 및 암호문 해시 체이닝 프로세스 (예컨대, 도 1 에 도시된 전체 암호화 프로세스의 일부분을 포함함) 의 예시적 실시형태를 도시한다.
도 4 는 도 1 의 암호화 프로세스에 대응하는 키 및 암호문 해시 체이닝을 이용한 검증가능 누출 방지 복호화 프로세스의 예시적 실시형태를 도시한다.
도 5 는 키 및 평문 해시 체이닝을 이용한 검증가능 누출 방지 암호화를 위한 프로세스의 예시적 실시형태를 도시한다.
도 6 은 도 1 의 암호화 프로세스에 대응하는 키 및 평문 해시 체이닝을 이용한 검증가능 누출 방지 복호화를 위한 프로세스의 예시적 실시형태를 도시한다.
도 7 은 검증가능 누출 방지 암호화 동작들이 칩 상의 시스템에 펌웨어를 로딩하는 데 이용되는 환경을 도시한다.
도 8 은 플래시 및/또는 RAM 과 같은 외부 메모리가 신뢰되는 안전한 CPU 칩 내에서 검증가능 누출 방지 암호화 동작들이 이용되는 환경을 도시한다.
도 9 는 필드 프로그래밍가능 게이트 어레이 상에 비트스트림 이미지를 로딩하는 데 검증 가능 누출 방지 암호화 동작들이 이용되는 환경을 도시한다.
도 10 은 패킷 기반 네트워크 통신 디바이스에서 검증가능 누출 방지 암호화 동작들이 이용되는 환경을 도시한다.
도 11 은 도 10 에 설명된 환경과 함께 및 다른 실시형태드에서 이용될 수 있는 검증가능 패킷-레벨 누출 방지 암호화를 위한 예시적 실시형태를 도시한다.
도 12 는 도 11 에 설명된 암호화 프로세스에 대응하는 검증가능 패킷-레벨 누출 방지 복호화를 위한 프로세스의 예시적 실시형태를 도시한다.
도 13 은 인트라-세그먼트 키 변경들을 갖는 암호 블록 체이닝 (CBC)을 이용한 예시적 ENC() 동작의 예시적 실시형태를 도시한다.
도 14 는 도 13 의 암호화 동작에 대응하는, 인트라-세그먼트 키 변경들을 갖는 암호 블록 체이닝 (CBC) 을 이용한 예시적 DEC 의 예시적 실시형태를 도시한다.
본 특허에서 설명되는 기법들은 당사자들이 외부 모니터링 공격들에 대해 증가된 보안성을 갖는, 암호로 보호된 민감한 데이터를 통신하게 한다. 일반적으로 암호화 디바이스 및 복호화 디바이스라고 지칭되는 2 개의 부분들을 포함하는 예시적 실시형태들이 설명되고 있지만, 디바이스라는 용어는 편의상 선택된 것이고, 반드시 시스템 설계에 있어서 임의의 특정 역할에 직접적으로 대응할 필요가 없다. 디바이스들은, 상이한 폼 팩터들 또는 구현물들을 이용할 수도 있지만, 그로 요구되는 것은 아니다. 예를 들어, 암호화 및 복호화 디바이스들은 양자 모두 휴대용 하드웨어 디바이스들일 수 있다. 대안으로, 암호화 디바이스는 설비에서 동작하는 서버 상에서 실행되는 소프트웨어 애플리케이션일 수 있고, 복호화 디바이스는 휴대용 하드웨어 디바이스일 수 있다 (또는 그 반대일 수 있다). 또한, 대부분의 암호화 동작들이 2 개의 부분들을 포함하고 있지만, 물론, 본 특허의 기법들은 (예컨대, 도 8 에 예시된 예시적 환경에서, 양측 모두의 역할들이 하나의 것 및/또는 디바이스의 제어 하에 있는 보안 메모리 또는 저장 시스템들에서와 같은) 오로지 하나의 부분만을 포함하는 환경들 또는 (도 10 예시된 예시적 실시형태와 같은) 3 개 이상의 부분들 및/또는 디바이스들을 포함하는 환경들에 적용될 수 있다.
엔트로피 분배 동작들( ENTROPY REDISTRIBUTION OPERATIONS )
여기서 사용되는 바와 같이, "엔트로피 분배 동작"(또는 "엔트로피 분배 동작") 은 그것의 입력(들)을 혼합하여 입력 비트들에 관한 미지의 정보가 출력 비트들 사이에 재분배되도록 하는 동작이다. 예를 들어, 각각의 i > 1 에 대해 키 Ki = f(Ki-1) 이 되도록 하는 엔트로피 분배 동작 f 로 x 비트 암호화 키 K0 이 반복적으로 프로세싱된다고 가정한다. 다음, n 개의 상이한 키 Ki 각각에 관한 (예컨대, 시도된 외부 모니터링 공격의 일부로서 획득된) y 비트의 정보를 상대방이 획득하여, 키 K0 에 대해 해결할 충분한 것 이상의 정보 (예컨대, y*n > x) 를 제공한다고 가정한다. 엔트로피 분배 동작 f 의 이용은 그러한 솔루션을 계산상으로 실현 불가능하게 만들 수 있다. 암호 해시 함수 H 는 엔트로피 분배 동작으로서 이용될 수도 있는 동작의 실시예이다. 예를 들어, 256-비트 결과를 생성하는 강한 해시 함수 H를 고려한다. 랜덤한 256-비트 초기 키 K0 이 제공되면, 각각의 i > 1 에 대해, Ki = H (Ki-1) 로 한다. (예를 들어) 각각의 K0, ..., K999,999 의 최상위 비트 에 대한 지식을 갖는 상대방은 K0 에 관련된 1,000,000 비트의 데이터를 갖는다. 무한 연산력을 갖는 가상의 상대방은 K0 에 대한 모든 가능한 2256 값을 테스트하여, 최상위 비트들의 공지된 시퀀스와 일치하는 값을 식별함으로써 K0을 찾을 수 있다. 그러나, 실제 상대방은 이용 가능한 유한 연산력을 가지며, 엔트로피 분배 동작은 시도된 외부 모니터링 공격들을 통해 누출된 정보를 제공받는 K0 (또는 임의의 다른 Ki) 에 대해 해결할 계산상으로 실용적인 방식으로부터 방지된다.
엔트로피 분배 동작들은 암호화 해시 함수들, 블록 암호 (예컨대, AES) 를 이용하여 구성된 동작들, 의사난수 변환, 의사난수 치환, 다른 암호화 동작들, 또는 이들의 조합을 이용하여, 비제한적으로 구현될 수도 있다. 편의상, 특정 예시적 실시형태들이 해시와 관련하여 설명되지만, 당업자는 전술한 사항에 따라 다른 엔트로비 재분배 함수들이 또한 대신에 또는 추가로 이용될 수도 있다는 것을 이해할 것이다.
다수의 엔트로피 분배 동작들은 또한 베이스 동작으로부터 구성될 수 있다. 실례로서, 2 개의 256-비트 엔트로피 분배 동작들 f0() 및 f1() 가 요구되면, f0() 는 SHA-256 암호화 해시 함수를 f0() 으로의 입력과 연결된 동작 식별자 스트링 "f0" 에 적용하는 것을 포함할 수 있고, f1() 은 SHA-256을 f1() 로의 입력과 연결된 동작 식별자 스트링 "f1()" 에 적용하는 것을 포함할 수 있다. 엔트로피 분배 동작들은 주지된 AES 블록 암호를 이용하여 구성될 수 있다. 예를 들어, f0()...fb-1()을 구현하기 위해, 각각의 fi() 는 AES-256 키로서 그의 입력을 이용하여, 0...b-1 내에서 i 의 선택에 고유한 128-비트 입력 블록들의 쌍을 암호화하여 256 비트의 출력을 안출한다. 광범위한 블록 암호 기반 해시 함수 및 MAC 구성들은 또한 배경 기술들에서 주지되어 있고, 채용될 수도 있다.
공유된 암호화 값들 및 연산들( SHARED CRYPTOGRAPHIC VALUES AND OPERATIONS )
이 섹션은, 본 특허에서 설명되는 바와 같은 검증가능 누출 방지 암호화 연산을 수행하는 데 이용되는, 암호화 디바이스 및 그의 대응하는 복호화 디바이스 양측 모두에 의해 공유되는 특정 암호화 값(들) 및/또는 연산(들)을 설명한다.
암호화 디바이스 및 복호화 디바이스는 각각이 KROOT 로서 표기된 비밀 키와 같은 베이스 공유 비밀 암호화 상태 값으로의 액세스를 갖도록 셋업된다. 이 비밀 상태는, 예를 들어 EEPROM, 플래시, 퓨즈, 또는 탬퍼링 방지 칩 상의 다른 스토리지 중 하나 이상에 저장될 수도 있고, 다른 값들 또는 프로세스들로부터 전체적으로 또는 부분적으로 유도될 수도 있으며, 또는 외적으로 획득될 수도 있다. 이러한 디바이스들 각각이 KROOT 를 획득한 방법은, 각각의 디바이스가 KROOT 로 제조되고, 디바이스들은 서로 KROOT 와 직접적으로 협상하거나 제 3 자를 통해 (예컨대, RSA, Diffie-Hellman, 또는 다른 공개 키 암호화 기법들, 또는 대칭 기법들을 이용하는 프로토콜들을 이용하여) 물리적 키 인터페이스를 통한 KROOT 의 수신에 의해, (예컨대, 암호화 및 복호화 디바이스가 동일하다면) KROOT 를 랜덤하게 생성하는 것 등에 의해 협상한다.
또한, 암호화 디바이스 및 복호화 디바이스 양측 모두는 또한 비선형 암호화 엔트로피 분배 연산 f0(), f1(),..., fb-1() 의 세트를 계산할 수 있으며, 이 때 b > 1 은 양의 정수이다. 이러한 b 엔트로피 분배 함수들은 트리 구조로 구성될 수 있다. 예를 들어, 높이 Q 의 간단한 b-진수 트리 구조 (즉, 0 내지 Q 의 Q+1 레벨들을 가짐) 는 b 개의 개별 엔트로피 분배 함수들 f0()...fb-1() 을 이용하여 트리의 각각의 노드에서 이 b-진수 트리의 b 개의 가능한 브랜치들을 나타냄으로써 생성될 수 있는데, 각각의 노드는 가능한 유도된 키를 나타낸다. 이러한 트리에서, 루트 암호화 키 KSTART (레벨 0 에 설정됨) 로부터 시작하면, b 개의 가능한 유도된 키들이 레벨 1에서 계산될 수 있다: 가장 촤측 브랜치에 대해 f0(KSTART); 다음 브랜치에 대해 f1(KSTART); 및 가장 우측 브랜치에 대해 fb-1(KSTART) 까지 계속된다. 레벨 2에서, b2 개의 가능한 키들이 유도될 수 있는데, 이는 f0()...fb-1() 각각이 b 개의 가능한 레벨 1 키들 각각에 적용될 수 있기 때문이다. 물론, 특정 레벨 2 노드를 계산하는 것은 b2 가 아니라 2 의 계산들만을 요구한다 (즉, 경로 상에 있지 않은 노드들은 계산되지 않는다). 트리는 연속 레벨들 1 내지 Q 에 대해 계속되는데, 이 때 이전 레벨의 각각의 가능한 키 (즉, 상이한 노드) 는 f0()...fb-1()를 적용함으로써 프로세싱되어 b 개의 추가의 가능한 유도된 키들을 유도할 수 있다. 전체 키 트리는 레벨 0에서 단일 노드로 시작하여, 레벨 i 에서 bi 노드들로 계속되어, 레벨 Q에서 bQ노드들로 종료되는, Q + 1 레벨들을 갖는다. 따라서, 레벨 0 에서의 루트 노드로부터 레벨 Q 에서의 bQ 개의 최종 노드들까지의 가능한 경로들이 bQ 개 존재한다. 상이한 레벨들에서 인가된 함수들의 고유 시퀀스에 대응하는 그러한 가능한 경로 각각은 Q 개의 정수들의 시퀀스로서 표현될 수 있으며, 각각의 정수는 (0...b-1) 로부터 선택된다.
예를 들어, 예시적 실시형태에서, b = 2 이다. 따라서, 2 개의 엔트로피 분배 연산 f0() 및 f1() 이 이용된다 (예컨대, 전술된 바와 같이, 베이스 연산으로부터 구성될 수도 있다). Q = 128 인 경우 (즉, 높이가 128 인 경우), 2128 개의 경로들이 가능하고, 128 개의 엔트로피 분배 함수 계산이 레벨 0 노드 (시작 키) 로부터 레벨 Q 키를 유도하기 위해서 요구된다.
변형으로서, 실시형태들은 레벨들 중 b 의 값을 변화시키는 것 및/또는 특정 레벨로 취해진 루트에 기초하여 b 를 변화시키는 것과 같은 b 의 선택에 있어서 더 많은 다양성을 포함할 수 있다. 마찬가지로, 엔트로피 분배 연산도, 예컨대 엔트로피 분배 연산 fi() 을 상이한 레벨들에서 상이하게 만들거나 그러한 연산을 특정 레벨로 취해진 시퀀스에 의존하게 만듦으로써 변화할 수 있다.
암호화 및 복호화 디바이스들은 또한 함수들 fi() 와는 별개일 수도 있는 (그러나, 반드시 그러한 것은 아닌) 암호화 비선형 키 체이닝 연산 g() 을 수행할 수 있다. 예를 들어, 일 실시형태에서, g() 는 암호화 해시 연산으로 구성된다. 변형 실시형태들은, (예컨대, 카운터 또는 g() 의 애플리케이션을 나타내는 다른 값으로 입력 데이터를 해시함으로써) 베이스 함수로부터 구성된 변형들을 포함하는, g() 의 상이한 애플리케이션들에 대한 상이한 함수들을 이용할 수 있다.
암호화 디바이스 및 복호화 디바이스는 또한 연산 fi() 및 g() 와는 별개일 수도 있는 (그러나, 반드시 그러한 것은 아닌) 암호화 충돌 방지 일방향 해시 함수 h()(예컨대, 세그먼트 해싱 함수로서 이용됨) 를 갖는다.
예시적 실시형태에서, 각각의 연산들 fi(), g() 및 h() 는 각각의 연산을 연산 식별자 및 입력 데이터의 암호화 해시로서 계산함으로써 공통 암호화 해시 함수로부터 구성된다. 연산 식별자는, 예를 들어 "f#", "g" 또는 "h"으로 구성되는 제로-종단 스트링일 수도 있는데, 여기서 # 는 f0() 에 대한 연산 식별자가 f0 이도록 하는 소정의 fi() 에 대한 i 의 값이다. 입력을 키로서 사용하는 연산 식별자의 HMAC 는 또한 이러한 연산들을 구현하는 데 이용될 수도 있다. 본 특허의 기법들과 함께 이용 가능한 해시 함수들은, MD5, SHA-1, SHA-256, SHA-512, 임의의 SHA3 후보 연산뿐 아니라 전술한 사항과 (HMAC 와 같은) 전술한 사항을 이용한 구성들의 조합을 포함하며, 이들로 국한되지 않는다. 여기서 사용되는 바와 같이, 함수들 BLAKE, Blue Midnight Wish, CubeHash, ECHO, Fugue, Grostl, Hamsi, JH, Keccak, LANE, Luffa, Shabal, SHAvitE-3, SIMD, 및 Skein 각각은 SHA3 후보 연산이다. 다른 실시형태들에 있어서, 해시 함수는, AES, DES 또는 다른 암호들과 같은 블록 아호들을 해시 함수로 변환하는, Matyas-Meyer-Oseas, Davies-Meyer, Miyaguchi-Preneel, Merke-Damgard 등을 포함하지만 이들로 국한되지 않는 다른 주지된 구성들을 이용하여 유도된다. 충돌 방지가 아닌 변환들 (예컨대, MD5, 해시 변환들의 축소된 라운드 변형들, 또는 다른 혼합 연산들)은 또한 입력에 존재하는 엔트로피를 재분배할 수 있지만, 일방향 함수 h() 로서의 사용에는 덜 매력적일 것이다.
또 다른 실시형태들은, 엔트로피 분배 연산들 f0...b-1() 를 구현하는 데 있어, 가볍고, 잠재적으는 암호학적으로 약한 스트림 암호들을 잠재적으로 포함하는 스트림 암호들을 이용할 수도 있다. 예를 들어, 스트림 암호 RC4 가 채용될 수도 있는데, 이 때, 엔트로피 분배 연산 입력은 RC4 키로서 이용되고, RC4 출력 바이트들은 엔트로피 분배 연산 출력으로서 (또는 엔트로피 분배 연산 출력을 형성하는 데) 이용된다.
암호화 디바이스 및 복호화 디바이스는 대응하는 복호화 함수 DEC()를 갖는 비밀 키 암호화 함수 (또는 함수들의 세트) ENC()를 갖는다. 일부 실시형태들에서, 고정 길이 메시지들을 갖는 것들과 같이, ENC() 및 DEC() 는 ECB 또는 CBC 모드에서의 AES 와 같은 종래의 암호 구성들을 이용할 수도 있다. 다른 실시형태들에 대한 ENC() 및 DEC() 의 구성들은 각각 도 13 및 도 14 를 참조하여 이후에 설명된다.
도 1 및 도 2 에서의 예시적 실시형태
이 섹션은 검증가능 누출 방지 암호화 및 복호화를 위한 일반적 기법의 예시적 실시형태를 설명한다. 이 제 1 예시적 실시형태는 키 체이닝 및 암호문 해시 체이닝을 이용한다.
암호화( Encryption )
편의상, 암호학에서의 일반적인 명명법에 따라, 평문이라는 용어를 이용하여 암호화될 데이터를 지칭한다. 당업자는, 이것이 반드시 입력 데이터가 인간-판독가능하고, 또한 본 특허의 기법에 따라 보호되기 전에 어떠한 것도 압축, 인코딩, 또는 심지어 암호화되는 것으로부터 그러한 데이터를 배제하지 않는다는 것을 의미하는 것은 아니라는 점을 이해할 것이다. 마찬가지로, 당업자는, 데이터라는 용어가 처리되는 임의의 양을 포괄하고, 콘텐츠, 데이터, 소프트웨어, 코드 및 임의의 다른 타입의 정보를 포함하지만 이들로 국한되지 않는다는 것을 이해할 것이다.
보호될 민감한 평문 데이터 메시지 D 가 주어지고, 공유된 베이스 비밀 암호화 값 KROOT 의 지식으로, 암호화 디바이스는 도 1에서 약술된 하기의 단계들을 수행한다. 먼저, 그것은 민감한 평문 데이터 D 를 L 세그먼트들 D1, ..., DL 의 시퀀스로 분해하는데 (단계 100), 이 때 (L ≥ 1) 이며, 세그먼트들 각각은 수신기(들)에서 인입 세그먼트들을 위한 메모리에 피팅될 수 있을 정도로 충분히 작다. 또한, 이러한 세그먼트들 각각의 사이즈는 애플리케이션 및 구현의 누출 요건들을 충족시킬 정도로 충분히 작아야 한다. 세그먼트들은 동일한 사이즈일 수 있지만, 반드시 그러한 것은 아니다. 또한, 다른 변형들이 또한 도 13 및 도 14 와 관련하여 하기에서 도시되는 바와 같이 키들을 변경함으로써 비제한적 사이즈의 세그먼트들을 지원할 수 있다.
암호화 디바이스는 또한 D 의 암호화와 관련하여 사용되는 메시지 식별자 (또는 그에 대한 전구체) 로서 이용될 수 있는 넌스 N (하기에 도시됨)을 생성한다 (단계 101). 예를 들어, 넌스는 진성 난수 발생기, 의사 난수 발생기, 진성 난수 발생기와 의사 난수 발생기의 일부 조합, 카운터 값 또는 다른 (바람직하게는 고유 또는 셀덤-반복(sEldom-rEpEating)) 파라미터를 이용하여, 또는 암호화 디바이스에 이용 가능한 (예컨대, N을 일부 또는 모든 D 의 해시로 설정함으로써 D 를 제한없이 포함하는) 키들 및/또는 데이터로부터 N을 유도함으로써 생성될 수 있다. 도 1에서, 소정 KROOT 에 대해, 특정 메시지를 암호화하는 데 이용된 N 의 값은 바람직하게는 임의의 다른 메시지를 암호화하는 데 이용되지 않는다 (또는, 그러한 경우, 임의의 재사용은 믿기 어렵게 및/또는 빈번하지 않게 제한되어야 한다).
다음의 예시적 실시형태들에서, 메시지 식별자 H1 은 넌스 N 을 이용하여 형성된다. N 이 메시지 식별자로서 이용되는 대부분의 수월한 구현에 있어서, H1 은 단순히 N 과 동일할 수도 있다. N 이 메시지 식별자에 대한 전구체로서 이용되는 다른 실시예로서, 암호화 디바이스는 함수 f()를 이용하여 N 의 해시로서 H1 을 계산할 수 있다 (단계 102). 해싱은 고정 사이즈의 메시지 식별자를 생성하여, 예를 들어 계산 효율을 위해 더 짧은 양에 대해 연산하는 한편 (문자열과 같은) 더 긴 데이터 값들의 포함을 허용하거나, 또는 계산상의 간소성을 위해 가변 길이 데이터 값들을 균일 길이 메시지 식별자로 변환하거나, 또는 당사자들이 H1 의 선택에 영향을 주어야 할 수도 있는 임의의 능력을 감소시키기 원하는 상황들에서 유용하다. 물론, 해싱은 메시지 식별자를 생성할 유일한 방법이며, 당업자는 h 외의 함수들이 H1 을 생성하는 데 이용될 수도 있다는 것을 인지할 것이다.
H1을 계산한 후, 암호화 디바이스는 누출 방지 키-트리 기반 키 유도 프로세스로의 입력으로서, 공유된 베이스 비밀 암호화 값 KROOT 및 H1을 이용하여 메시지 키 KMESSAGE 를 계산한다 (103). 설명의 편의를 위해, 키 유도 프로세스가 여기서 (예컨대, 암호화 디바이스에 의해 수행되는) 암호화의 문맥, 및 더 구체적으로는, 도 1 의 제 1 예시적 암호화 프로세스에 제시된다. 그러나, 동일한 키 유도 프로세스는, 그것이 복호화 디바이스에 의해 수행될 경우인 도 4 의 제 1 예시적 복호화 프로세스에서도 이용될 것이다. 마찬가지로, 키 유도 프로세스는, 도 5, 도 11 및 도 13 의 예시적 암호화 프로세스들 및 도 6, 도 12 및 도 14 의 예시적 복호화 프로세스들을 포함하는 다른 프로세스들과도 관련되어 이용될 것이다.
예시적 키 유도 프로세스는 도 2 에 도식화되어 있다. 프로세스는 KSTART 로 표기된 트리의 시작점 (201) 및 경로 P1...PQ (202) 에서 시작된다. 예를 들어, 도 1 의 상기 단계 103 에서, KSTART 는 공유된 비밀 키 KROOT 의 값이고, 경로 P1...PQ (202) 는 H1 에 의해 결정된다 (H1 의 P1...PQ 로의 변환은 하기에 설명된다.) 경로는 KSTART 에 적용될 일련의 엔트로피 분배 연산들을 특정한다.
예시적 구현에 있어서, 메시지 식별자 H1 은 Q 개의 부분들 P1, P2, ..., PQ 로 분해된다. 예시적 분해에 있어서, 각각의 부분 Pi 는 0 내지 (b-1) 의 정수이다 (예컨대, b = 4 이면, 각각의 Pi 는 2-비트 값 (0, 1, 2 또는 3) 이다). 마찬가지로, b = 2 이면, 각각의 Pi 는 단일 비트 (0 또는 1) 이다. 이러한 이유로, 경로 부분들 P1...PQ 는 함수들 f0(), f1(), ..., fb-1()을 적용하여 KSTART , PATH 에 이르는 복수의 중간 키들을 다음과 같이 생성함으로써 KSTART 로부터 KSTART , PATH 까지의 특정 경로를 특정하는 데 이용될 수 있다. 먼저, 함수 fp1 이 KSTART 에 적용되어 중간 키 KSTART , P1 (203) 을 안출하고, 그 후, fp2 가 KSTART , P1 에 적용되어 중간 키 KSTART , P1 , P2 (204) 를 안출하는 등에 이어서, 중간 키 KSTART , P1 , P2 ,... PQ -1 (205) 에 fPQ 를 최종 적용하여 최종 키 KSTART , P1 , P2 ,..., PQ (206) 를 안출한다. 각각의 중간 키의 유도는 적어도 하나의 전임자 키 (예컨대, 도 2 의 경우, 그것의 즉각적 부모 키) 및 메시지 식별자의 관련 부분에 의존한다. 편의상, 이 최종 유도 키를 (KSTART 로 시작하여 PATH 를 따름으로써 도달된 키를 표시하는) 표기 KSTART , PATH 로 표기한다. 마찬가지로, 도 1 의 단계 103 의 경우에 있어서, 최종 유도 키 (KMESSAGE 키에 할당된 메시지 키) 는 KROOT , H1 로 표기되는데, 이는 시작 키가 사실상 KROOT 이고, 경로가 사실상 단순히 H1 의 분해인 P1,P2, ..., PQ 이기 때문이다. (대안의 실시형태들에서, KMESSAGE 는, 예컨대 KROOT , H1 을 해싱함으로써 KOOT,H1 로부터 유도될 수도 있다. 어느 방식이든, KMESSAGE 는 KOOT,H1 에 기초한다.)
단계 104에서, 데이터 세그먼트(들)는 상기 메시지 키 KMESSAGE 에 기초한 적어도 하나의 암호화 키를 이용하여 암호화되며, 암호문 E = E1, ..., EL 을 생성하는 것은 입력 세그먼트(들) D = D1, ..., DL 로부터이다. 단계 104 에 대한 예시적 실시형태는 도 3 에 도시되는데, 이는 암호화된 세그먼트들 E1, ..., EL 을 계산할 시에 포함된 단계들 및 상태들을 나타낸다.
도 3 의 프로세스는 KMESSAGE 를 이용하여 L 개의 개별 세그먼트 암호화 키들 Ki (i = 1 내지 L) 를 계산하며, 각각의 키는 비밀 메시지 데이터 D 의 대응 세그먼트 Di (i = 1 내지 L)를 암호화하는 데 이용된다. 먼저, 함수 g() 는 KMESSAGE 에 적용되어 제 1 세그먼트에 대해 이용될 암호화 키 K1 (302) 을 안출한다. 그 후, 함수 g() 가 키 K1 등에 적용되어 제 2 세그먼트 등에 대한 암호화 키 K2 (303) 등을 안출한다. 마지막으로, 함수 g() 가 키 KL-1 에 적용되어 최종 세그먼트에 대한 암호화 키 KL (305) 을 생성한다. 이러한 타입의 프로세스를 키 체이닝이라고 지칭하는데, 이는 암호화 키들이 서로 연쇄되기 때문이다.
L 개의 세그먼트들을 암호화하기 위한 L 개의 키 K1, ..., KL 이 결정된 후, 세그먼트들의 암호화는 다음과 같이 진행된다. 최종 (L 번째) 세그먼트가 먼저 프로세싱되는데, 이 때 ENC() 함수로의 평문 입력 (306) 은 전체 평문 D1, ..., DL 을 암호학적으로 해싱함으로써 계산된 메시지 무결성 값으로 연결된 L 번째 데이터 세그먼트 DL 이다. (D1...DL 의 해시의 포함은 선택적이며; 실시형태들은 이것을 생략할 수도 있고, 또는 0 바이트들의 시퀀스 또는 일부 다른 형태의 패딩과 같은 다른 데이터를 연결할 수도 있다.) 이 L 번째 평문 세그먼트는 키 KL 에 의해 암호화되어 암호화된 세그먼트 EL (307) 을 안출한다.
다음, L-1 번째 세그먼트는, 해시 함수 h() 를 EL 에 적용하고, 이 해시 함수를 데이터 세그먼트 DL-1 에 부가하며, L-1 번째 세그먼트로의 암호화 입력으로서 그 결과를 이용함으로써 308에서 프로세싱된다. 그 후, 309에서, L-1 번째 평문 세그먼트는 키 KL-1 을 이용하여 암호화되어 암호화된 세그먼트 EL-1 을 안출한다. 이 프로세스는 다른 세그먼트들에 대해 반복된다. 예를 들어, 제 2 평문 세그먼트에 대응하는 암호화 입력 (310) 은 3 번째 암호화된 세그먼트의 해시 h(E3) 가 뒤따르는 제 2 데이터 세그먼트 D2 로 분해되며, 그 후 입력 (310) 은 키 K2 를 이용하여 암호화되어 암호화된 세그먼트 E2 (311)를 안출한다. 마지막으로, 제 1 평문 세그먼트에 대응하는 암호화 입력 (312) 은 제 2 암호화된 세그먼트 (311) 의 해시 h(E2) 가 뒤따르는 제 1 데이터 세그먼트 D1 로 분해되고, 그 후, 입력 (311) 은 키 K1 을 이용하여 암호화되어 암호화된 세그먼트 E1 (313) 을 안출한다. (전술한 사항의 변형으로서, 후속 세그먼트 해시들은 암호화될 필요가 없는데, 예컨대, Ei는 Di 를 암호화하고, 그 후에 암호화 결과를 Ei+1 의 해시로 연결함으로써 형성될 수 있다.)
암호화된 세그먼트들 E1...EL 은 암호문 E 를 형성한다. 그 후, 도 1 의 단계 104 가 완료된다. Ei의 계산 시에 각각의 Ei+1 의 해시를 이용하는 것은, 암호화 값들을 효과적으로 서로 연쇄시키는데, 이는 복호화 디바이스들이 결함 세그먼트(들)을 복호화하기 전에 수정된(또는 결함) 암호문 세그먼트(들)를 검출하게 하는 데 도움이 된다. 이것을 암호문 해시 체이닝이라고 지칭한다. 상기에 도시된 실시예에서, 각각의 암호문 세그먼트 Ei(1 < i < L) 는 다음 암호문 세그먼트의 해시를 인증하는 데 이용되며, 그 후 E1 은 (필요하다면 D1 에 대한 복호화 이후에) E2 의 예상 해시를 안출한다. 마찬가지로, E2 는 (필요하다면, 복호화 이후에) 세그먼트 E3 의 해시 등을 안출한다.
도 3 의 프로세스는 (예컨대, 입력 메시지가 작거나 또는 도 13 에 도시된 프로세스와 같은 암호화 프로세스 ENC()가 채용되기 때문에) 여전히 모든 데이터가 하나의 세그먼트 (즉, L = 1) 에 있는 경우에 수행될 수 있다는 것에 유의한다. L = 1 의 경우, 오로지 K1 만이 요구되며, K1 = g(KMESSAGE) 이다. 대안으로, KMESSASGE 는 연산 g() 이 함께 생략될 수도 있는 경우에 K1 로서 직접적으로 이용될 수도 있다. 전술된 바와 같이, D1...DL (이 경우, L = 1 이므로, 오로지 D1) 의 해시의 포함은 선택적이다. 프로세스의 결과는 이것이 유일한 세그먼트이므로 E = E1 이다.
도 1 을 다시 참조하면, 데이터 세그먼트 Di 가 계산된 후, 암호화된 메시지의 승인된 수신자들이 복호화 이전에 암호문을 승인하게 할 밸리데이터 V 가 계산된다. 먼저, 값 H2 가 제 1 암호화된 세그먼트 E1 의 해시로서 계산된다 (105). 제 1 세그먼트 E1 이 모든 다른 세그먼트들의 해시들을 포함하는 것을 리콜한다. 따라서, E1 의 해시는, 세그먼트 E1 을 포함하는 모든 세그먼트들의 콘텐츠를 실질적으로 반영하며, 세그먼드들 중 어느 것도 변경되지 않았음을 검증하는 데 이용될 수 있다. (선택적으로, E1 외에, H2 를 생성하는 해시로의 입력이 또한 길이, 버전 넘버, 발신자 아이덴티티, N 의 값 등과 같은 메시지에 관한 추가 정보를 포함할 수도 있다.)
다음, 암호화 디바이스는 비밀 키를 이용하여, 메시지 식별자의 밸리데이터인 V 및 암호문 세그먼트(들) Ei를 계산한다 (106). 밸리데이터 V 는 적어도 하나의 암호문 세그먼트의 해시 (예컨대, 해시 H2 = h(E1)) 및 초기 비밀 (예컨대, KMESSAGE, 또는 하기의 단락에서 설명되는 다른 값들) 을 이용하여 계산된다. V 의 계산은 도 2에서 설명된 누출 방지 키-트리-기반 키 유도 프로세스를 이용하여 수행될 수도 있으며, 시작 키 KSTART 는 KMESSAGE 이고, 경로는 H2를 이용하여 판정된다 (106). 따라서, V 의 유도는 V 에 이르는 복수의 연속적 중간 값들을 계산하는 것을 포함하는데, 여기서 각각의 중간 값은 적어도 하나의 전임자 (예컨대, 도 2 의 경우에 있어서, 그것의 부모 값) 및 해시 (예컨대, H2) 의 관련 부분에 의존한다. 함수 fi(), 값 b 등은 103에서 사용된 것과 동일한 것일 수도 있다(그러나, 반드시 그러한 것으로 요구되는 것은 아니다) 는 것에 유의한다. 이 프로세스는 밸리데이터 V 인 (또는 밸리데이터 V 를 형성하도록 추가로 프로세싱되는) 키 KMESSAGE , H2 의 유도를 초래한다.
전술된 설명은 밸리데이터를 유도함에 있어서 KMESSAGE 로 시작되지만, 대안의 실시형태들은 상이한 값으로 시작될 수도 있다. 예를 들어, 단계 104 에서의 키 KMESSAGE 및 단계 106 에서의 키 KMESSAGE 는 서로 상이할 수도 있지만, 양측 모두는 KROOT,H1 로부터 유도된다. 마찬가지로, 단계 106에서 사용되는 키는 단계 104에서 사용되는 KMESSAGE 로부터 유도될 수도 있고, 또는 그 반대로 유도될 수도 있으며, 또는 (KROOT 외의) 상이한 베이스 키가 KSTART 로서 채용될 수도 있다. 물론, KROOT 자체는 (예컨대, H2 가 N 및/또는 H1 과 하나 이상의 암호문 세그먼트들의 해시인 경우) KSTART 로서 이용될 수도 있다.
본 특허에서 이용되는 밸리데이터는, 일부 추정 암호문이 특정 메시지 식별자와 관련된 일부 평문 메시지 데이터의 비변형 버전의 암호화이고 비밀 암호화 값으로의 액세스를 갖는 엔티티에 의해 생성되었다는 검증가능 암호화 증거이다. 단계 106 에서 구성된 밸리데이터는 편리하게도 복호화 디바이스와 같은 수신자에 의해 차동 전력 분석 및 관련 외부 모니터링 공격들에 대한 민감성을 피하는 방식으로 검증될 수 있다. 또한, 밸리데이터 생성 프로세스 (즉, 단계 106 의 수행) 도 암호화 디바이스가 차동 전력 분석 및 관련 외부 모니터링 공격들에 대한 민감성을 피하게 한다.
밸리데이터를 계산한 후, 암호화 프로세스가 완료된다. 단계 107에서, 결과가 출력된다. 출력 데이터는 수신자가 메시지 식별자, 밸리데이터 V, 및 암호화된 결과 E (암호화된 세그먼트들 E1, ..., EN) 을 유도하게 하는 데 요구되는 정보 (만약 존재한다면, 넌스 N) 로 구성된다. 키 체이닝 및 암호문 해시 체이닝을 조합함으로써, 이러한 타입의 암호화 프로세스는 차동 전력 분석 및 암호화 디바이스에 대한 관련 공격들을 가능하게 하는 방식들로 암호화 디바이스에 위치되는 비밀 키들의 재사용을 피하면서 메시지 인증을 갖는 암호학적으로 강한 출력을 안출할 수 있다. 암호화 결과는 복호화 디바이스가 차동 전력 분석 및 복호화 디바이스에 대한 관련 공격들을 가능하게 하는 방식들로 비밀 키들을 재사용하지 않고 복호화를 수행하게 하는 형태로 생성된다. 키-트리 프로세스는 KMESSAGE 및 밸리데이터 V 의 형성 시에 키들의 재사용을 제한하지만, 암호화 해시 체이닝 방법은 데이터 암호화에 사용되는 키들의 사용을 제한한다.
다음 섹션은 출력 데이터가 복호화 디바이스에 의해 후속하여 어떻게 복호화될 수 있는지를 설명한다.
복호화( DEcryption )
도 4 는 도 1 및 도 3 의 예시적 암호화 프로세스에 대응하는 예시적 복호화 프로세스를 도시한다. 먼저 언급된 바와 같이, 이것은 복호화 디바이스 및 암호화 디바이스 양측 모두가 동일한 식별자 (예컨대, 각각의 디바이스가 넌스 N 을 알고 있기 때문에, H1 을 계산할 수 있음), 베이스 비밀 암호화 값 KROOT, 암호화 함수들 f(), g() 및 h() 를 유도하는 능력을 갖는다. 예시적 복호화 프로세스는 도 2 에서 설명된 동일한 키 유도 프로세스(그리고 키 체이닝) 을 이용할 것이다.
예시적 복호화 프로세스는 단계 400에서 시작하여, 암호화의 추정 결과 (즉, 메시지 식별자 (예컨대, 넌스 N), 밸리데이터 V, 및 세그먼트들 E1, ..., EN 을 포함하는 암호화 결과 E) 를 (예컨대, 비신뢰 디지털 인터페이스를 통해) 획득한다. 단계 401에서, 디바이스는 다음으로 수신 넌스 N 을 해싱함으로써 값 H1 을 계산한다. 넌스가 부정확하게 수신되지 않았다면, 복호화 디바이스는 세그먼트 E12 (그리고, 암호화 동안 이전에 이용되었다면, H2 의 유도에 포함되었던 메시지에 관한 다른 정보)) 을 해싱함으로써 값 H2 를 계산한다는 것에 유의한다. 단계 403에서, 디바이스는 도 2 에 설명된 누출 방지 키-트리 기반 키 유도 프로세스를 이용하여 KSTART = KROOT 및 PATH = H1 과 함께 메시지 키 KMESSAGE 를 계산하고자 한다. 단계 404 에서, 디바이스는, 암호화 디바이스와 동일한 누출 방지 키-트리 기반 키 유도 프로세스 (예컨대, 키 KSTART = KMESSAGE 및 PATH = H2 를 이용하는 도 2 의 프로세스) 를 이용하여 예상된 밸리데이터 V' 을 계산한다. 단계 405 에서, 계산 값 V' 은 수신된 밸리데이터 V 와 비교된다. 예상된 밸리데이터 V' 이 제공된 밸리데이터 와 매칭되지 않으면, 프로세스는 제공된 데이터가 악의적으로 손상되었거나 변형되었을 수도 있고, 또는 일부 다른 에러가 발생했으므로 에러를 갖고 종료된다 (단계 406).
단계 405 에서의 검사거 성공적이면, 프로세스는 단계 407 로 이동하는데, 이 단계에서 카운터 i 가 값 1 로 초기화되는 경우, 키 레지스터 K 는 제 1 암호화된 세그먼트 E1 을 복호화하기 위한 키인 g(KMESSAGE) 를 계산한 결과 (즉, 도 3에서 302 로 라벨링된 K1 의 값) 로 초기화된다. 또한, 단계 407 에서, 변수 H 는 H2 로 초기화된다. 그 후, 하기의 동작들은 도 4 에 도시된 루프에서 수행된다. 먼저, 복호화될 다음 암호문 세그먼트의 해시 (즉, h(Ei)) 가 계산되고, 예상 해시 H 와 비교된다 (단계 408). 비교가 실패하면, 암호화된 세그먼트는 변경되어, 프로세스가 에러를 갖고 종료되고 (409) 추가의 복호화가 수행되지 않는다. 비교가 단계 408 에서 성공하면, 세그먼트 Ei는 단계 410에서 복호화 함수 DEC() 를 이용하여 복호화되며, 키 K 는 다음 암호문 세그먼트는 퍼포팅된 (purportEd) 해시가 뒤따르는 평문 Di 를 포함하는 것으로 해석되는 복호화된 세그먼트를 안출한다. H 가 이 퍼포팅된 해시 값으로 설정된다. 다음, 단계 411에서, 모든 L 개의 세그먼트들이 복호화되었는지를 (즉, 카운터 i 가 L 과 동일한지를) 알기 위한 검사가 수행된다. 카운터가 아직 L 에 도달하지 않았다면, 단계 412 에서, 카운터 i 는 증가하고, 레지스터 K 는 K = g(K) 를 계산함으로써 다음 세그먼트에 대한 복호화 키로 업데이트되고, 프로세스는 단계 408 로부터 앞으로 나아가 반복된다. 단계 411 이, i 가 L 에 도달했음을 판정하면, H 가 예상된 패드 데이터 (예컨대, D1...DL 의 해시) 와 동일한지를 알기 위한 검사가 단계 413에서 수행된다. 이러한 검사가 실패하면, 복호화는 실패 상태로 종료된다 (414). 검사가 성공하면, 복호화 프로세스는 성공적이고, 복구된 복호화된 출력 D = D1, ..., DL 은 단계 415에서 리턴된다.
이 실시형태에서, 복호화 프로세스는 스트리밍 방식으로 이루어질 수 있고 (즉, 복호화 디바이스는 초기에 N, V 및 E1 을 획득할 수 있고, 이후에 나머지 세그먼트들 E2,..., EL 을 한 번에 수신할 수 있다), 여전히 전술된 단계들을 실행할 수 있다. 스트리밍 동작은, 예를 들어 복호화 디바이스가 전체 메시지를 보유할 정도로 충분한 메모리가 결여되어 있는 경우, 또는 모든 데이터가 수신되고 복호화되기 전에 복호화된 데이터의 초기 부분들이 이용 가능할 필요가 있는 경우에 유용하다.
제 2 예시적 실시형태
이 섹션은 검증가능 누출 방지 암호화 및 복호화를 위한 일반적 기법의 제 2 예시적 실시형태를 설명한다. 암호문 해시 체이닝을 이용한 제 1 예시적 실시형태와는 대조적으로, 제 2 예시적 실시형태는 평문 해시 체이닝을 이용한다. 그러나, 양측 모두의 경우들에 있어서, 키들의 재사용은 암호화 디바이스 및 복호화 디바이스 양측 모두에서 제어되어, 차동 전력 분석 및 관련 공격들을 방지한다.
암호화( Encryption )
암호화 디바이스에 의한 암호화의 제 2 예시적 실시형태가 도 5 에 도시되며, 도 5 는, 간결성을 위해, 조합된 프로세스도 및 상태도를 도시한다. 암호화 디바이스는 암호화할 메시지 D, 및 카운터, 랜덤하게 생성된 값, 평문 해시 등일 수도 있는 메시지 식별자 N 을 생성하거나 획득한다.
입력 메시지 D 는 세그먼트들 D1, ..., DL 의 시퀀스로 분할되며, 이러한 세그먼트들은 다음과 같이 평문 세그먼트들 B1, ..., BL 을 생성하는 데 이용된다. 먼저, 세그먼트 B1 (501) 이 메시지 세그먼트 D1 을 임의의 희망하는 메시지 데이터 (X 로 표기되며, 길이 L, 메시지 식별자 N, 트랜잭션 식별자 또는 카운터 등과 같은 엘리먼트들을 포함할 수도 있음) 의 해시와 연결함으로써 형성된다. 다음, B2 (502) 가 D2 를 h(B1)(즉, B1 의 해시)과 연결함으로써 형성된다. 그 후, 각각의 후속하는 Bi 내지 BL-1 이 Di 를 Bi-1 의 해시와 연결함으로써 형성된다. 마지막으로, 최종 평문 세그먼트 BL (504) 이 DL 을 h(BL-1) 과 연결함으로써 형성된다.
프로세스의 다음 단계들 (505-508) 은 키 체이닝 프로세스를 이용하여 평문 세그먼트들 각각에 대한 암호화 키들을 생성하여, 제 1 실시형태와 유사하게, 각각의 암호화 키가 직접 또는 간접적으로 메시지 키에 기초하게 한다. 제 2 예시적 실시형태에서, 제 1 암호화 키 K1 은 간단히 h(N) 을 계산하고, 이후에 KSTART=KROOT 및 PATH=h(N) 과 함께 도 2 에 설명된 바와 같은 누출 방지 키 트리 기반 키 유도 프로세스를 이용하여, K1=KMESSAGE=KROOT ,h(N) 를 계산함으로, 유도된 (505) 메시지 키 KMESSAGE 의 값으로 설정된다. 따라서, 제 2 키 K2 는 g(K1)(506) 을 계산한 결과이다. 이 프로세스는 반복되어, L-1 번째 키 (KL-1)이 g(KL-2)(507) 로서 계산되고 최종 세그먼트 키 KL 이 g(KL-1)(508)로서 계산되게 한다. 따라서, 모든 키 Ki 는 메시지 키 KMESSAGE 에 기초한다(예컨대, 그와 동일하거나 그를 이용하여 유도된다).
프로세스에서의 다음 단계는 암호화된 세그먼트들 E1, ..., EL 을 안출하기 위해 대응하는 키들 K1, ..., KL 을 이용한 평문 세그먼트들 B1, ..., BL 각각의 암호화이다. 예를 들어, 암호화된 세그먼트 E1 은 B1 을 K1 로 암호화하여 생성되고 (509), E2 등은 K2 등으로 B2 등을 암호화하여 생성되고 (510), EL-1 은 KL-1 로 BL-1 을 암호화하여 생성되며 (511), EL 은 BL 을 KL 로 암호화하여 생성된다 (512). 암호화 결과 E 는 세그먼트들 E1, ..., EL 로 구성된다.
프로세스에서의 다음 단계는 암호화를 위한 밸리데이터 V 의 계산이다 (513). 먼저, 해시 함수 h() 는
Figure 112012044698817-pct00001
Figure 112012044698817-pct00002
을 계산하는 데 이용되고, 이 때 "
Figure 112012044698817-pct00003
"은 연결을 표기한다. 다음,
Figure 112012044698817-pct00004
이 계산되고, 그 후 KROOT ,Z 가 누출 방지 키-트리 기반 키 유도 프로세스 (예컨대, 도 2 에 설명된 바와 같이, KSTART = KROOT 및 PATH = Z 를 이용함) 를 이용하여 계산된다. 그 후, 밸리데이터 V 가 키 트리 결과의 해시 (즉, h(KROOT ,Z)) 로서 계산된다. 마지막으로, N, h(BL), E 및 밸리데이터 V 를 포함하는 암호화 프로세스의 결과가 제공된다 (514).
상기의 암호화 프로세스는 입력 데이터 D 가 스트리밍에 의해 도달하거나 또는 다른 이유들로 (예컨대, 메모리 제한 때문에) D 가 한 번에 모두 프로세싱될 수 없는 시스템들에서 채용될 수 있다. 이 경우, 암호화 디바이스는 N, h(X) 및 K1 을 획득함으로써 시작된다. 또한, 실행 중인 해시 계산은 N 으로 초기화된다.
1. N 을 생성하거나 획득함
2. 실행 중인 해시 계산을 초기화함
3. H = h(X) 라 함
4. K = KROOT ,h(N) 이라 함
5. N 을 이용하여 실행 중인 해시 계산을 업데이트함
6. i = 1 이라 함
7. 입력 데이터 Di (예컨대, 내부 스트리밍) 를 수신함
8. Bi = Di 및 H 의 연결
9. H = h(Bi) 라 함
10. Ei= ENC(K, Di) 를 생성함
11. Ei를 이용하여 실행 중인 해시 계산을 업데이트함
12. Ei를 출력함
13. i 를 증가시킴
14. 입력 데이터가 많다면, 단계 7 로 진행함
15. H 를 이용하여 실행 중인 해시 계산을 업데이트함
16. 실행 중인 해시 계산을 완료하고 Z 에 저장함
17. V = h(KROOT ,Z) 를 계산함
18. H (h(BL) 와 동일함), N, V 를 출력함
복호화( Decryption )
복호화의 프로세스가 도 6 에 예시된다. 단계 600에서, 복호화 디바이스는 (일반적으로 불신용 인터페이스로부터) 암호화 프로세스, 즉 E, h(BL), 넌스 N, 및 밸리데이터 V 의 퍼포팅된 결과들을 수신한다. 복호화 디바이스는 E 를 E1, ... , EL 로 분할하고, 카운터 i 를 1 로 초기화하고, 레지스터 H 를 수신된 값 해시 h(BL) 로 설정한다. 메시지의 길이 L 이 또한 수신되거나 판정된다 (예컨대, 1 킬로바이트의 세그먼트 사이즈가 1 킬로바이트보다 작을 수도 있는 거의 모든 최종 세그먼트에 대해 이용되면, L 은 킬로바이트의 반올림된 길이이다). 단계 605에서, 복호화 디바이스는
Figure 112012044698817-pct00005
.
Figure 112012044698817-pct00006
를 계산하며, 이 때, "
Figure 112012044698817-pct00007
"는 연결을 표기한다. 단계 610에서, 복호화 디바이스는 도 2에서 설명된 누출 방지 키-트리 기반 키 유도 프로세스를 이용하여 KROOT , Z 의 값을 계산하되, 루트는 KSTART = KROOT 및 PATH = Z 이며, 그 결과를 해싱하여 h(KROOT ,Z) 를 안출한다. 단계 620에서, 그것은 계산된 h(KROOT ,Z) 를 수신된 밸리데이터 V 와 비교한다. 결과가 V 와 동일하지 않으며, 데이터 손상이 존재하고, 어떠한 복호화도 수행하지 않고 프로세스가 611 에서 중지된다. 검사가 성공하면, 단계 620에서, 복호화 디바이스가 h(N) 을 계산하고, 그 후에 도 2에서 설명된 누출 방지 키-트리 기반 키 유도 프로세스를 이용하여 KROOT ,h(N) 을 계산한 결과로 키 레지스터 K 를 초기화하며, KSTART = KROOT 및 PATH = h(N) 을 갖고, 카운터 i 를 1 로 설정한다.
다음, 하기의 동작들이 루프에서 수행된다. 단계 630에서, 세그먼트 Ei 가 키 레지스터 K 에서의 키로 복호화되어, 데이터 세그먼트 Di 및 해시 값으로 구성된 평문 세그먼트 Bi 를 생성한다. 제 1 세그먼트 (즉, i = 1) 에 대해, 해시는 h(X) 에 비교되는데, X 는 암호화 동안에 X 와 동일한 필드들로 구성된다. 제 1 이후의 세그먼트들 (즉, i > 1) 에 대해, Bi 로부터의 해시는 이전 세그먼트의 해시 (즉, h(Bi-1)) 에 비교된다. 비교가 실패하면, 복호화 프로세스는 단계 641에서 실패한다. 그렇지 않으면, 단계 650에서, Bi 의 메시지 부분 (즉, Di) 이 출력 버퍼 (예컨대, RAM) 에 추가되고, 키 레지스터 K 는 g(K) 를 계산한 후 K 에 그 결과를 저장함으로서 다음 세그먼트 키로 증가한다. 카운터 i 가 또한 1 만큼 증가한다. 단계 660에서, i 의 값은 L 과 비교되며, i 의 값이 L 을 초과하면, 복호화 프로세스는 단계 630 으로 되돌아간다. 그렇지 않은 경우, 복호화 프로세스는, 최종 평문 세그먼트의 해시 (즉, h(BL)) 가 수신된 해시 H 에 비교되는 단계 670에서 완료된다. 단계 670에서 비교가 실패하면 (즉, 값들이 동일하지 않으면), 에러가 발생한 것이고, 복호화는 실패한다 (단계 671). 그렇지 않으면, 결과 데이터 D1, ..., DL이 단계 680에서 출력된다.
이 실시형태에서, 평문의 해시들은 체이닝되고, 평문 세그먼트 Bi 는 평문 Bi-1 의 해시를 포함한다. 이 체이닝은, 누출 방지에 엄격하게 필수적인 것은 아니지만, 평문이 암호화된 것과 동일한 것으로 검증되기 때문에 복호화 프로세스 동안에 발생하는 임의의 결함들이 검출될 수 있다는 추가 특성을 제공한다. 따라서, 이 실시형태는 복호화 프로세스의 손상 가능성이 있는 환경들에서의 사용에 유리하다.
시스템들, 애플리케이션들 및 변형들
이러한 점으로, 본 특허는 누출 방지 암호화 및 복호화를 위한 일반적 기법을 그 기법의 일부 예시적 실시형태들과 함께 설명하였다. 이 섹션은 전술한 사항이 이용될 수 있는 일부 예시적 시스템들 및/또는 애플리케이션들뿐 아니라 전술된 예시적 실시형태들의 양태들의 추가 변형들을 설명할 것이다.
보안 펌웨어 로딩
도 7 은 중앙 처리 유닛 (CPU) 상의 민감한 펌웨어를, 예컨대 소위 시스템 온 칩 (SoC) 의 일부분으로서 안전하게 로딩하는 검증가능 누출 방지 암호화의 애플리케이션을 도시한다. 편의상, 문맥에 따라, 참조부호들은 프로세스의 단계들, 및/또는 그러한 프로세스 단계들에 의해 사용되는 (또는 생성되는) 수량을 지칭할 수도 있다. 이 실시형태에서, SoC 는 CPU (703) 및 다양한 타입의 메모리를 포함하는 단일 집적회로 (700) 로 구성된다. 메모리들은, 코드가 실행될 수도 있는 랜덤 액세스 메모리 (RAM)(701), 신뢰된 부트스트랩 코드를 포함하는 판독 전용 메모리 (ROM)(704), 공유된 암호화 비밀 키 KROOT 를 보유하는 비밀 상태 저장 메모리 (702) 를 포함할 수도 있지만, 이들로 국한되지 않는다. 키 저장 메모리는 다양한 기법들을 이용하여 구현될 수도 있으며, 퓨즈/안티퓨즈, 배터리 보조 RAM 및 EEPROM 를 포함하지만 이들로 국한되지 않는다. SoC 는 (예컨대, 상대방의 관찰 및/또는 제어 하에 잠재적으로) 불신용 소스로부터 전력을 수신할 수도 있는 외부 전력 입력 (707) 을 가질 수도 있다. 외부 공급 클록 (708) 이 또한 수신될 수도 있다 (그리고, 추가 클록들을 형성하기 위해 PLL 과 함께 사용될 수도 있다). SoC 는 데이터 암호화 및 복호화에 대한 AES 엔진, 예컨대 SHA-1 또는 SHA-256 또는 AES 기반 해시 함수 엔진을 포함하되 이들로 국한되지 않는 해시 함수 엔진, 및 도 2 에 기초한 누출 방지 키 유도 프로세스의 구현을 갖는 암호화 하드웨어 콤포넌트 (705) 를 가지며, 함수들 f0(), ..., fb-1() 은 해시 함수 및/또는 AES 함수 또는 그들의 변형들을 이용하여 구현된다. 다른 실시형태들에서, 암호화 하드웨어 콤포넌트 (705) 의 전체 기능, 또는 그의 일부 서브세트가 소프트웨어에 의해 (예컨대, CPU 에 의해) 수행될 수 있다는 것은 당업자에게 명백할 것이다.
ROM 에서 신용 부트스트랩 코드로부터의 부트스트랩 시, SoC 는, 불신 인터페이스 (706) 를 통해, 이 실시형태에서 플래시 메모리 (709) 인 외부 불신 저장 디바이스로부터 그의 민감한 소프트웨어/데이터를 로딩한다. 민감한 소프트웨어/데이터를 폭로 또는 비승인 변경으로부터 보호하기 위해, 그것은 공유된 비밀 암호화 값 KROOT 를 이용하여 디바이스 제조자 또는 다른 코드 발행자에 의해 검증가능 누출 방지 기법들 (예컨대, 도 1 또는 도 5 에 도시된 바와 같음) 을 이용하여 암호화된다. 암호화 결과는 플래시 메모리 (709) 에 저장된다. SoC 는 먼저 플래시 메모리 (709) 로부터의 암호화된 코드/데이터를 그의 내부 RAM (701) 로 로딩한다. 그 후, 그것은 프로세스가 ROM (704) 암호화 하드웨어 콤포넌트 (705) 에 저장된 신용 부트스트랩 코드로 구현되고, 공유된 비밀 키 KROOT 를 이용하여 키스토어 (702) 로부터 수행되는 누출 방지 복호화 (예컨대, 도 4 에 도시됨) 를 수행한다. 성공적인 경우, 이 프로세스는 검증되고 복호화된 민감한 코드/데이터 이미지를 RAM 메모리 (701) 내에 생성하는데, 이는 이후에 실행될 수도 있다. 복호화 프로세스가 실패한 경우, RAM 내의 암호화된 코드/데이터 (그리고 임의의 부분적으로 복호화된 코드/데이터) 는 플러시되고, 동작은 필요 시 시작부로부터 재시작된다.
이 실시형태에 대한 동작 향상에 있어서, 보안성은 퓨즈, 배터리 지원 메모리, 또는 소프트웨어가 로딩될 디바이스의 다른 로컬 스토리지에서 최소의 수용가능 소프트웨어 버전 넘버를 저장함으로써 보완된다. 디바이스 내로 로딩될 모든 소프트웨어는 버전 번호를 전달할 것이며, 디바이스는 최소보다 큰 버전 번호를 갖는 소프트웨어만을 수용할 것이다. 또한, 일부 소프트웨어 버전들은 SoC 에게 최소의 수용가능한 소프트웨어 버전 번호를 업데이트하여 수용 불가능한 것으로 간주된 이전 버전에 대한 소프트웨어의 악의적 롤백을 방지할 것으로 구체적으로 명령할 수도 있다. 전술된 안티-롤백 방법들은 검증가능 누출 방지 동작들과는 독립적으로 (즉, 이에 대한 부가물로서) 구현될 수 있다. 대안으로, 안티-롤백 방법은 메시지 식별자, 밸리데이터, 또는 검증가능 누출 방지 동작들에서 사용되는 다른 보안된 수량의 일부로서 구현될 수 있다.
당업자는, SoC 애플리케이션들이 여기에서 제시된 특정 아키텍처로 국한되지 않고, SoC들 또는 도 7 에 제시된 실시형태와는 상이한 내부 아키텍처 및/또는 콤포넌트들을 갖는 다른 디바이스들이 보호될 수도 있다는 것을 용이하게 인식할 것이다.
예를 들어, 도 8 은 보안 프로세서 아키텍처 (800) 로의 검증가능 누출 방지 암호화의 적용을 도시한다. 편의상, 문맥에 따라, 참조 부호들은 프로세스에서의 단계들, 및/또는 그러한 프로세스 단계들에 의해 사용되는 (또는 생성되는) 수량을 지칭할 수도 있다. 이러한 설정에 있어서, 디바이스는 CPU, 베이스 비밀 암호화 키를 포함하는 내부 비밀 상태를 보유하는 키스토어를 포함한다. 퓨즈들 (801) 을 포함하지만 이로 국한되지 않는 비휘발성 저장소가 내부 비밀 상태를 저장하도록 채용될 수도 있다. 암호화 하드웨어 서브콤포넌트 (804) 는 온-칩 데이터/명령 캐시 (803)로부터 외부 RAM 메모리 (806) 로 이동하는 모든 데이터를 암호화하고 및/또는 무결성 보호하고 및/또는 리플레이 보호하며, 외부 비보안 RAM 메모리로부터 페치되는 모든 데이터를 복호화하고 및/또는 무결성 검사하고 및/또는 리플레이 검사한다. 또한, 모든 코드는 비보안 플래시 (805) 에 암호화되고 무결성 보호된 형태로 저장되며, 온-칩 데이터/명령 캐시 (803) 내로 불러올 때 복호화 및 무결성 검사된다. 보안성이 검증가능 누출 방지 암호화의 추가를 통해 개선될 수 있는 배경 기술의 예시적 프로세서 아키텍처들은, IBM 으로부터의 보안 블루 설계 ("IBM Extends Enhanced Data Security to Consumer Electronics Products"라는 명칭의 2006 년 4 월 6일자 IBM press release 에 소개됨) 및 MIT 로부터의 AEGIS 설계 (AEGIS: Architecture for Tamper-evident and Tamper-resistant Processing (Proceedings of the 17th Annual International Conference on Supercomputing, pages 160 - 171, 2003) 에서 설명됨) 를 포함하지만 이들로 국한되지 않는다.
검증가능 누출 방지 암호화의 이용은 모니터링 공격들에 대한 보호를 제공함으로써 기존 프로세서 설계의 보안성을 실질적으로 향상시킨다. 특히, 이 실시형태는 암호화 하드웨어 서브콤포넌트 (804)를 강화하여 기존 보안 프로세서 설계의 암호화 (예컨대, AES) 기능을 재사용하는 키 트리 프로세싱 기능 및 해시 함수를 포함하고, 제 1 예시적 실시형태의 단계들 및 방법을 구현하여 보안 누출 방지 보안 프로세서를 생성한다. 특히, 캐시 (803) 로부터 RAM 메모리 (806) 에 기록되는 임의의 데이터는 누출 방지 암호화 프로세스 (예컨대, 도 1 에 도시됨)를 이용하여 암호화되고, 불신용 플래시 (805) 및 불신용 RAM 으로부터 판독된 임의의 코드는 도 4에서 약술된 누출 방지 복호화 프로세스를 이용하여 복호화된다. 데이터가 특정 세그먼트에 기록될 때, 그 세그먼트에 대응하는 카운터가 증가하고, 카운터 값은 그 세그먼트에 대한 암호화 및/또는 무결성 검사 생성 프로세스에 포함되어, 낡은 데이터의 치환을 수반하는 공격들의 검출을 가능하게 한다.
FPGA 비트스트림 로딩
FPGA 내로 로딩될 로직은 종종 고도로 민감한 트레이드 비밀, 암호 비밀 및/또는 폭로 또는 복제로부터 보호될 필요가 있는 다른 민감한 정보를 포함한다. 이 로딩된 로직 또는 업그레이드된 로직은 일반적으로, 플래시 메모리 디바이스 또는 CPU 또는 일부 다른 소스 (907)을 포함하지만 이들로 국한되지 않는 외부 소슬부터의 비트스트림으로서 FPGA 에 공급된다. 일부 FPGA 는 구성 데이터를 저장하는 비휘발성 메모리를 포함하고, 다른 것들은 칩이 전력을 공급받을 때마다 재로딩되어야 한다. 기존의 FPGA 는, (예컨대, 온-칩 플래시, EEPROM, 또는 퓨즈들을 이용하여) 일반적으로 배터리 지원 메모리에 보유되거나 또는 국부적으로 저장된 키를 이용하여, 비트스트림들을 복호화하는 능력을 갖는다. FPGA 는 공급된 암호화된 비트스트림을 FPGA 내에 존재하는 프로그래밍가능 슬라이스들 내에 인스톨하기 전에 (또는 인스톨하는 동안에) 그러한 비트스트림을 복호화한다. 차동 전력 분석 공격들 및 관련 외부 모니터링 공격들은 비트스트림 프로세스들에 대해 시도되어, 성공적인 공격이 비트스트림 복호화 키 및/또는 비트스트림 자체의 폭로를 가져올 수 있을 때 심각한 보안 위험을 제기할 수 있다.
도 9 를 참조하면, 검증가능 누출 방지 암호화는 FPGA 상에서 보안 비트스트림 복호화 기능을 생성하는 데 이용될 수 있다. 복호화 이전, 민감한 비트스트림은 누출 방지 암호화 프로세스 (예컨대, 제 1 예시적 실시형태에서 설명된 바와 같음)를 이용하여 외부 디바이스에 의해 암호화되어, 암호화된 비트스트림을 생성한다. 암호화된 비트스트림은 외부 플래시 또는 하드드라이브와 같은 불신용 메모리에 위치될 수도 있고 (907), CPU 등과 같은 불신용 소스로부터 취출될 수도 있다.
FPGA 내에서, 누출 방지 복호화를 위한 암호화 비밀 KROOT 는, 내부 비밀 상태를 저장하고, 퓨즈, 배터리 지원 RAM (902, 903), EEPROM, 플래시 등을 포함하되 이들로 국한되지 않는 기법들을 이용하여 구현될 수도 있는 키스토어 (902) 에 보관된다. FPGA (900) 는 인터페이스 (906)를 통해 암호화된 비트스트림을 수신한다. 이 비트스트림은, 예를 들어 제 1 실시형태 또는 제 2 실시형태 (도 1 및 도 5 에 대응함) 중 어느 하나를 이용하여 암호화되었을 수 있다.
도 1 의 실시형태가 암호화에 이용되었다면, FPGA 는 먼저 넌스 N, 밸리데이터 V, 길이 L, 및 초기 세그먼트 E1 를 수신한다. E1 은 암호화된 세그먼트 버퍼에 저장된다 (905). 전술된 바와 같은 누출 방지 복호화 프로세스 (예컨대, 도 4 참조) 를 이용하면, E1 의 해시가 계산되고, 밸리데이터가 KROOT ,L, 및 해시로 검증되어, (성공 시) KMESSAGE 또는 치명적 에러 (이 경우에는 프로세스 중단)를 안출한다. 성공적인 경우, FPGA 는 세그먼트 복호화 프로세싱 콤포넌트 (904)를 이용하여 E1 에 대해 누출 방지 복호화 프로세스를 수행한다. E1 의 복호화는 로딩되고, 검증되며, 복호화되는 세그먼트 E2 의 해시를 안출한다. 프로세스는 한 번에 하나의 세그먼트를 계속하는데, 이는 최종 세그먼트가 복호화되고 검증될 때까지이다. 에러가 발생하면, 프로세스는 중단되고, 모든 부분 FPGA 복호화 데이터가 와이핑된다. (실패 시, 프로세스는 시작으로부터 다시 재시작될 수 있다.) 하나 이상의 상태 레지스터들 (910) 은 비트스트림 로딩 프로세스의 상태를 추적 (예컨대, 프로세스가 진행 중인지 실패인지 또는 완료인지를 추적) 하는 데 사용된다. 상태는 또한 진단 목적 및 외부 콤포넌트들에 의한 사용을 위해 내보내질 수 있다. 일단 모든 세그먼트들이 성공적으로 로딩되었다면, FPGA 가 이제 구성되고, 이용될 수 있다 (예컨대, FPGA 는 이제 I/O, 클로킹 등을 허용하여, 로딩된 비트스트림 이미지에 적용될 수 있다). FPGA 동작은(예컨대, 비완료 FPGA 이미지에 관한 정보 누설을 피하고 부정확한 FPGA 구성으로부터 발생하는 전체 회로의 예측불능 동작을 피하기 위해) 비트스트림이 충분히 로딩될 때까지 방지될 수 있다.
도 5 의 제 2 실시형태가 암호화를 위해 사용되었다면, FPGA 는 먼저 E, V, N 및 h(BL)을 수신하고 E를 버퍼에 저장한다. 그 후, FPGA 의 세그먼트 복호화 프로세싱 콤포넌트 (904) 는 도 6 에 설명된 방법을 이용하여, 제공된 암호화된 세그먼트들을 검증 및 복호화한다. 상태 레지스터(들)(910) 은 비트스트림 로딩의 상태, 검증, 및 복호화 프로세스들을 추적하는 데 사용되며, 임의의 심각한 에러는 프로세스의 중단 및 임의의 부분 복호화된 데이터의 와이핑을 초래한다.
네트워크 통신 및 다른 패킷 기반 애플리케이션들
도 10 은 외부 모니터링 공격들로부터 네트워크 통신을 보호하도록 하는 검증가능 누출 방지 암호화의 애플리케이션을 도시한다. 이 실시형태에서, 디바이스 A (1000), 디바이스 B (1030) 및 디바이스들 (1040) 과 같은 다수의 네트워크 디바이스들은 네트워크 (1020)를 통해 서로 통신한다. 이들 통신의 일부 또는 모두는 민감한 정보를 포함하여, 데이터를 암호화하고 인증하는 데 유용하게 한다. 또한, 이러한 디바이스들의 일부 (이 실시형태에서는 디바이스 A) 는 외부 모니터링 공격들로부터 그들의 암호 계산 및 키들을 보호하기 위해 요구된다.
디바이스 A 는 그것이 통신할 필요가 있는 다른 디바이스들과 공유된 암호 루트 키들의 테이블을 저장하도록 하는 키스토어 (1001)를 갖는다. 이러한 키들은 이전에 저장되었을 수도 있고, 또는 (예컨대, 공개 키 암호 작성법을 이용하여) 협상될 수도 있다. 공개 키 암호 시스템들을 이용하여 키들을 협상하는 방법들은 배경 기술에 주지되어 있으며, SSL 및 IPSEC 와 같은 프로토콜들에서 이용된다. 이 실시형태는 그러한 프로토콜들 또는 다른 프로토콜들 내에 용이하게 통합될 수 있다.
암호화될 아웃바운드 패킷들 또는 데이터 세그먼트들은 애플리케이션, 운영 체제, 드라이버, 또는 다른 콤포넌트로부터 기원하며 (1002), 평문 패킷 버퍼에 진입한다 (1003). 그 후, 각각의 패킷은, 검증가능 누출 방지 암호화 방법 (예컨대, 도 1 에 설명된 바와 같은 방법)을 이용하여 암호화되는 세그먼트 암호화/복호화 프로세싱 콤포넌트를 이용하여 프로세싱된다 (1004). 이 암호화를 위한 루트 키는 디바이스 A 와 목적지 디바이스 사이의 공유된 키이며, 키스토어 (1001) 로부터 획득된다. 이 프로세싱을 위해, 메시지 식별자 넌스 N 은, 카운터를 포함한, 임의의 (바람직하게는) 고유한 값일 수도 있다. 예를 들어, 넌스는 패킷 식별자를, 가능하게는 오버플로우를 방지하기 위한 추가 최상위 비트들, 값의 해시, 난수 등의 포함을 갖는 TCP 시퀀스 번호와 같을 수 있다. 각각의 패킷에 대해, 누출 방지 암호화 동작은 암호화된 세그먼트 및 밸리데이터 V 를 생성한다. 넌스는 (예컨대, 이전에 수신된 패킷들의 수에 기초하여) 송신될 수도 있고, 또는 내포될 수도 있다. 암호화된 세그먼트 V 및 임의의 다른 요구되는 데이터는 아웃고잉 패킷 내에 어셈블리되고, 적절한 목적지 디바이스로의 라우팅을 위해 네트워크 인터페이스 콤포넌트 (1006) 및 그 후의 네트워크 (1020) 로 이동한다.
인바운드 암호화된 패킷들에 대해, 전송 디바이스가 전술된 바와 같은 암호화를 수행하였다는 것을 가정한다. 이러한 패킷들은 네트워크 인터페이스 콤포넌트 (1006) 에 의해 네트워크로부터 수신되고, 이후에 암호문 패킷 버퍼 (1005) 로 이동한다. 그 후, 각각의 패킷은 누출 방지 복호화 프로세스 (예컨대, 도 4에서 설명된 바와 같음) 가 수행되는 세그먼트 암호화/복호화 프로세싱 콤포넌트 (1004) 에 의해 프로세싱된다. 이 복호화 프로세스 동안, (i) 수신 디바이스와 전송 디바이스 사이의 공유된 키가 키스토어 (1001) 로부터 획득되고, (ii) 넌스 N 은 패킷으로부터 복구되거나 이와 달리 결정되며, (iii) 밸리데이터가 N 및 암호화된 패킷에 대해 검증되고, (iv) 밸리데이터가 정확하면, 패킷 데이터가 복호화된다. 디바이스 A 와 전송 디바이스 사이의 공유된 암호화 비밀은 KROOT 로서 이용될 수도 있다. 복호화 또는 검증이 실패하면, 패킷은 드롭된다. 그렇지 않으면, 성공적인 복호화 시, 복호화 결과가 애플리케이션, 운영 체제, 드라이버 등에 제공될 수 있다.
이 프로세스는 도 11 및 도 12 에 약술된다. 도 11 은 검증가능 패킷 레벨 누출 방지 암호화 프로세스를 예시하고, 도 12 는 대응하는 복호화 프로세스를 예시한다. 검증가능 패킷 레벨 누출 방지 암호화 프로세스는 다음과 같다: 베이스 암호화 값 KROOT를 공유하는 소스 및 목적지를 갖는 입력 패킷 데이터 D (1100) 가 제공되며, 메시지 식별자 N 이 (예컨대, 통신 프로토콜과 관련된 시퀀스 번호와 같은 패킷 D 및/또는 일부 패킷에 존재하는 랜덤 소스 및/또는 정보를 이용하여) 단계 1101 에서 생성된다. TCP/IP 통신의 경우, N 은 세션 식별자, 시퀀스 번호 (선택적으로, 롤오버를 방지하기 위해 첨부된 추가의 최상위 비트들을 가짐), 소스 포트, 목적지 포트, 및/또는 다른 값들로부터 구성될 수 있다. 다음, 단계 1102에서, N 의 해시가 계산된다. (선택적으로, 이 단계는 생략될 수도 있고, N 은 KMESSAGE 의 유도 시에 h(N) 대신에 이용될 수도 있다.) 후속으로, 단계 1103 에서, 메시지 키 KMESSAGE = KROOT ,h(N) 은 KSTART = KROOT 및 PATH = h(N) 과 함께 도 2에서 설명된 누출 방지 키-트리 기반 키 유도 프로세스를 이용하여 계산된다. 입력 패킷 데이터 D 는 키 KMESSAGE 로 암호화되어, 암호화 결과 E (1104)를 안출한다.
다음, E 의 해시가 (예컨대, SHA-256을 이용하여) 계산된다 (1105). 그 후, 암호화를 위한 밸리데이터 V 가, KSTART = KMESSAGE 및 PATH = h(E) 와 함께, 도 2에서 약술된 누출 방지 키-트리 기반 키 유도 프로세스를 이용하여 KMESSAGE ,h(E)(1106) 로서 계산된다. 마지막으로, 출력 패킷은 V, E 및 N (또는, 존재한다면, 수신자가 N 을 복구하게 하는 데 요구되는 임의의 다른 정보)을 포함하도록 형성된다. 그 후, 출력 데이터 E 는 패킷에서 (인터넷을 통한 원격 컴퓨터와 같은) 원격 디바이스로 전달된다.
선택적 최적화로서, 암호화 디바이스가 전송을 위해 버퍼링된 다수의 패킷들을 갖는다면, 오로지 하나의 밸리데이터가 모든 패킷들을 위해 요구되도록 동시에 다수의 패킷들을 암호화할 수 있다. 예를 들어, 암호화 프로세스는 도 3 에 도시된 바와 같이 수행될 수도 있고, 이 때 각각의 세그먼트 Di 는 패킷이다. 이 방식으로 패킷들을 조합하는 것은, 전송자 및 수신자 양측 모두에게 요구되는 키-트리 동작들의 수를 감소시킨다.
대응하는 검증가능 패킷 레벨 누출 방지 복호화 프로세스가 도 12 에 예시된다. V, E, N (또는 N, 예컨대 시퀀스 넘버를 복구하기에 충분한 데이터)을 포함하는 암호화된 패킷 및 공유된 암호화 비밀 KROOT (1200) 이 제공되면, 복호화 프로세스는 다음과 같이 진행된다: 먼저, h(N) 의 값 (1201) 이 계산된다 (또는 암호화 디바이스가 N 을 직접 이용했다면, 이 단계는 생략된다). 그 후, E 의 해시가 계산된다 (1202). 다음, KMESSAGE = KROOT ,h(N) 이, KSTART = KROOT 및 PATH = h(N) 과 함께, 도 2에서 약술된 누출 방지 키 트리 프로세스를 이용하여 계산된다 (1204). 후속으로, 복호화 디바이스는 V' = V인지를 검사한다 (1205). 그들이 같지 않으면, 프로세싱은 이 패킷에 대해 중지되고, 그 패킷은 폐기된다 (1206). 검사가 성공하면, E 는 KMESSAGE 로 복호화되어 (예컨대, 도 14 에 도시된 DEC() 프로세스를 이용하여) 평문 패킷 D 를 안출한다 (1207).
스마트카드 애플리케이션들( Smart Card Applications )
검증가능 누출 방지 암호화 및 복호화가 (예컨대, 스마트카드가 차동 전력 분석 및 관련 외부 모니터링 공격들로부터 안전한 방식으로 암호화 및/또는 복호화를 수행하는 데 요구되는 프로토콜들과 관련하여) 스마트카드에서 구현될 수 있다. 이러한 시스템들 및 프로토콜들의 실시예들은, 지불 텔레비전 신호들, 납부 (오프라인 파라미터들을 포함함), 아이덴티티 검증/네트워크 로그인, 모바일 전화 SIM 카드들, 및 수송 패스들의 복호화를 위한 키들 (제어 워드들) 의 유도를 포함하지만 이들로 국한되지 않는다. 본 특허에 개시된 예시적 암호화 기법들은 스마트카드 S의 비밀 키들이 그러한 프로토콜들을 수행하면서 외부 모니터링 공격들로부터 보호되는 것을 보장하도록 하는 데 이용될 수 있다. 스마트카드들 (또는 다른 보안 칩들) 은 또한, 마치 KSTART 가 결코 스마트카드를 떠날 필요가 없도록 스마트카드가 도 3 의 키-트리 기반 키 유도 프로세스를 구현하는 것처럼, 더 큰 시스템에서 이용되는 누출 방지 암호화 또는 복호화 프로세스들 중 일부 또는 모두를 구현하는 데에도 이용될 수 있다.
수동 인증 애플리케이션들
많은 애플리케이션들에 있어서, 2 개 이상의 디바이스들은 서로 인증하고 및/또는 그들 사이에서 민감한 정보를 교환할 필요가 있다. 이러한 프로토콜들의 예시적 애플리케이션들은, (i) 프린터 및 카트리지 양측 디바이스들이 진품이고 위조품이 아니라는 것을 보증하도록 하는 프린터와 카트리지 사이의 승인; (ii) (예컨대, 도난당한 비디오 복호화 키들의 도입을 방지하기 위해) 콤포넌트들이 진본인 것을 보장하도록 하는 세톱 박스와 스마트카드 사이의 승인; (iii) 차고 문과 오프너 사이의 승인; (iv) (예컨대, 문을 잠금해제하거나 엔진을 시동하기 전에) 키들을 승인하는 (차에서 사용될 수도 있는 바와 같은) 무키 입력 시스템들; (v) 빈번하게 도난 당하는 아이템들 (예컨대, 라디오, GPS 유닛들, 셀 폰들 등) 에 의해 수행되어 도난 당하거나 탬퍼링된 디바이스들이 동작하지 못하게 하는 인증 프로토콜들; 및 (vi) 입력을 허용하기 전에 키/토큰을 승인하는 보안 빌딩에서 발견되는 것들과 같은 입력 시스템들을 포함하지만 이들로 국한되지 않는다. 이러한 애플리케이션들에서, 디바이스들 사이의 도전 응답 프로토콜들은 일반적으로 수동적 승인 및 민감한 정보의 교환을 위한 공유된 비밀 키의 셋업 양측 모두에 이용되고 있다. DPA를 견디면서 이러한 인증을 수행하도록 하는 간단한 프로토콜들은 본 특허의 방법을 이용하여 임의의 요구된 암호화 또는 복호화 동작들을 수행하도록 구성될 수 있다. 예를 들어, 디바이스는 본 특허에서 개시된 기법들을 이용하여 유효한 밸리데이터를 공급하고 및/또는 메시지를 복호화하는 그의 능력을 통해 그것의 진위를 입증할 수 있다.
인트라 - 세그먼트 키 변경들을 갖는 세그먼트 암호화 및 복호화
이 섹션은 (예컨대, 도 3 의 단계 320, 도 4 의 단계 410, 도 5 의 단계 509, 도 6 의 단계 630, 도 11 의 단계 1104, 도 12 의 단계 1207에서 도시된 바와 같은) 예시적 실시형태들을 구현하는 (ECB 또는 CBC 모드에서의 AES 와 같은) 종래의 암호화 프로세스들 대신에 이용될 수 있는 ENC() 및 DEC() 동작들의 예시적 변형들을 설명한다. 도 13 및 도 14 에 각각 도시된 ENC() 및 DEC() 변형들에서, 암호화 키들은, 심지어 더 큰 보안성을 위해, 빈번하게 변경된다. 구체적으로, 추가 암호화 키 업데이트들은 Ei 로의 데이터 세그먼트 Di (또는 그 반대로) 의 암호화 내에서 발생한다. 따라서, 이러한 변형들을 인트라-세그먼트 키 변경들을 구현하는 것이라 지칭한다.
ENC() 및 DEC() 에 대한 변경들 외에, 제 1 및 제 2 예시적 실시형태들에서의 동작들 중 나머지는 이전에 설명된 바와 같이 구현될 수 있다. 예를 들어, 비제한적으로, 초기 메시지 키 KMESSAGE, 밸리데이터 V 등을 포함하는 연산들은 변경될 필요가 없다.
도 13 은 데이터 세그먼트들을 암호화하는 ENC() 연산의 예시적 실시형태이다. 도 14 는 DEC() 연산의 대응하는 예시적 실시형태이다. 이 실시형태에서, 이러한 연산들은 암호 블록 체이닝 (CBC) 모드에서 블록 암호 AES 를 이용하여 이루어지지만, 다른 QFFHR 암호들 또는 암호화/복호화 기초요소 또는 암호화 모드들이 마찬가지로 이용될 수 있다는 것은 당업자에게 명확할 것이다.
세그먼트 i 에 대한 암호화 프로세스로의 입력들은 세그먼트 키 Ki (1301) 및 데이터 세그먼트 Di (1310) 이다. 입력 데이터 세그먼트 Di (1310) 는 서브세그먼트들 Di,1 (1311), Di,2(1312) 등으로 분할된다. 도 13 및 도 14 는 3 AES 블록들의 서브세그먼트들로 분할되는 데이터 세그먼트 D를 도시하지만, 다른 사이즈들도 이용될 수 있고, AES 외의 다른 알고리즘들도 물론 채용될 수도 있다. (더 적은 서브세그먼트들은 계산상의 오버헤드를 증가시키고, 더 큰 서브세그먼트들은 키들로 하여금 더 많은 동작들에서 이용되게 하여, 정보가 누출될 잠재성을 증가시킨다.) 세그먼트 키 Ki 는 해시 연산 m() 으로 변환되어, 제 1 서브세그먼트 Di,1 에 대한 키인 Ki,1 (1302) 를 안출한다. 초기화 벡터 (IV)(1314) 가 이용될 것이면, 그것은 Di,1 의 제 1 AES 블록과 XOR 연산된다. (어떠한 IV 도 이용되지 않을 것이면, 이 XOR 단계는 생략될 수도 있다. IV 가 이용되면, 그것은, 예컨대 그것을 밸리데이터 계산에 포함시킴으로써 또는 IV를 메시지 식별자와 같은 검증된 값으로부터 유도함으로써 승인될 수 있다.) (Di XOR IV) 의 제 1 비트들은 세그먼트 키 Ki,1 (1302)를 이용하여 AES (1315) 로 암호화되어, 암호문 서브세그먼트 Ei,1 의 제 1 부분을 형성한다. 이 암호문 부분은 또한 서브세그먼트 Di,1 의 다음 비트들과 택 연산되어, 키 Ki,1 (1302)를 이용하여 후속으로 암호화되어 서브세그먼트 Di,1 (1311) 의 다음 부분을 생성하는 다른 AES 입력을 안출한다. 유사한 암호 블록 체이닝 동작이 수행되어, 키 Ki,1 로 수행되는 제 3 AES 암호화로의 입력을 형성한다. 3 개의 AES 연산들의 결과는 암호문 서브세그먼트 Ei,1 (1320) 이다. 제 4 AES 연산은 다음 데이터서브세그먼트 Di,2 (1312)의 제 1 블록 상에서 수행되고, m()를 Ki,1 (1302) 에 적용함으로써 유도되는 새로운 키, 특히 Ki,2 (1303) 가 사용된다. Di,1 을 프로세싱하는 것으로부터의 최종 암호문은 Di,2 (1312) 의 제 1 부분에 대한 IV (1317) 이 된다. 암호화 프로세스는, 모든 s 개의 데이터 서브세그먼트들의 모든 블록들이 암호화되어, 궁극적으로 암호화된 서브세그먼트들 Ei,2 (1321), ..., Ei,s (1322)를 안출할 때까지, 그리고 새로운 키가 각각의 서브세그먼트에 대해 m()을 이용하여 유도되는 경우에 계속된다. 마지막으로, 암호문 서브세그먼트들은 최종 암호문 세그먼트 Ei (1330) 를 형성하도록 어셈블리된다.
도 14를 참조하면, 복호화 프로세스 DEC() 는 ENC() 프로세스의 역이다. 서브키 Ki,1 (1402), Ki,2 (1403) 등은 상기 암호화 동안과 동일한 프로세스를 통해 m()를 이용하여 세그먼트 키 Ki (1401) 로부터 유도된다 암호화된 세그먼트 Ei 는 서브세그먼트들로 분할되고, 각각의 서브세그먼트는 서브키들로 복호화되는 하나 이상의 AES 입력들을 포함한다. 각각의 복호화 연산 후, 적절한 IV (존재한다면) 또는 이전 암호문이 데이터와 XOR 처리된다. 최종 데이터는 서브세그먼트들 (1420, 1421, 1432 등)을 형성하도록 어셈블리되며, 이 서브세그먼트들은 이후에 Di (1430)를 형성하도록 어셈블리된다.
상기 ENC() 및 DEC() 프로세스는 급속한 키 변경을 포함하여 더 큰 누설 공차를 제공하는 실시예들이다. ECB, CBC, 또는 카운터 (예컨대, 갈로이스 카운터) 모드들에서 (RC4, SEAL, AES, DES, 트리플 DES 등과 같은) 스트림 암호 및/또는 블록 암호의 적용을 포함하는 다른 세그먼트 암호화 및 복호화 방법들이 이용될 수 있다. 동일한 키가 세그먼트의 모든 데이터에 적용되는 그러한 동작들에 대해, 각각의 키로 수행되는 동작들의 수를 제한하도록 암호화 이전에 (예컨대, 데이터를 도 3 에 도시된 바와 같이 서브 세그먼트들로 분할함으로써) 각각의 세그먼트의 사이즈를 제한하여, 각각의 키로 수행되는, 상대방이 관찰할 수 있는 동작들의 수를 감소하는 것이 유리할 수도 있다.
통신 채널
여기에 개시된 데이터 교환은 폭넓은 가능한 방식들로 실현될 수도 있다. 예를 들어, 제한 없이, (I2C, JTAG, PCI, (USB 를 포함한) 시리얼 I/O , PCI 익스프레스, 이더넷 등과 같은) 통상의 버스/인터페이스들, (802.11 계열, 블루투스, 셀룰라 전화기 프로토콜, IS014443 등과 같은) 무선 프로토콜, 및 (APB, 다른 플립 플롭들과의 직접 접속 등과 같은) 칩 내 접속이 모두 이용될 수도 있다. 상술한 내용 각각에 대해, 전송 디바이스(들) 및 수신 디바이스(들)는 (필요에 따라) 전송, 수신 또는 전송 및 수신할 수 있는 적절한 인터페이스들 (예를 들어, 상술한 유형들의 인터페이스들) 을 갖는다.
복호화 이전의 다른 형태들의 데이터 검증 ( Data Validation )
이제까지 제공된 예시적인 실시형태들은 (예를 들어, 도 2 에 나타낸 바와 같은) 리크-저항 키-트리-기반 키 (leak-resistant key-tree-based key) 유도 프로세스를 이용하여 복호화 이전에 안전하게 검증될 수 있는 암호문의 검증기를 계산하였다. 이 프로세스는 광범위한 애플리케이션에 매우 적합하지만, 유사한 역할을 서브할 수 있는 값을 생성하는 다른 기술들도 특정 설정들에 적합할 수도 있다. 예를 들어, 일부 실시형태들에서, 암호화 프로세스는 외부 모니터링에 저항성 (복호화 프로세스는 이러한 저항을 요구하지 않음) 있도록 요구받지 않으며/않거나 (미국 특허 제6,304,658호에 설명된 바와 같은) 공개 키 디지털 사인 프로세스들에 대한 대책들이 존재할 수 있다. 이들 시스템에서, 디지털 사인 (디지털 서명) 동작들을 이용하여 복호화 시간에 검증될 수 있는 값을 구성하여, 암호문이 변형되지 않음을 보장할 수도 있다. 예를 들어, 디지털 서명은 적어도 하나의 암호화된 세그먼트 및 메시지 식별자를 인증할 수 있다. 공개 키 디지털 사인 알고리즘의 예들은 제한 없이, RSA, DSA,및 (제한없이 EC-DSA 를 포함한) 타원 곡선 DSA 변형물을 포함한다. 디지털 서명의 검증은 어떠한 민감한 정보도 요구하지 않으며, 따라서, 복호화 전에 수행될 수도 있다. 그러나, 이 유연성은 암호화 디바이스 내에서 공개 키 서명 로직을 필요로 하고 복호화 디바이스 내에서 공개 키 검증 로직을 필요로 한다는 댓가를 치룬다. 또한, 검증기 (또는, 검증기 대체물) 가 복수의 대칭 검증기들, 공개 키 서명들, 또는 다른 요소들로 구성되는 것도 가능하다.
비 순차적 세그먼트 키 유도
세그먼트 키들 (예를 들어, 도 3 에서의 K1, K2, ... KL) 및 서브세그먼트 키들 (도 13 에서의 Ki ,1, Ki ,2 등) 은 순차적으로 유도되도록 요구되지 않는다. 예를 들어, 키들은 계층적 트리 패턴으로 유도될 수 있거나, 보다 일반적으로, 각각의 키가 임의의 이전 키(들)의 함수일 수 있거나, 또는 키 트리 구성을 이용하여 KROOT 로부터 독립적으로 유도될 수 있거나 또는 키들이 다른 키들 및 키 트리 구성의 몇몇 조합을 이용하여 유도될 수 있다.
데이터 전송 및 계산의 재순서화 ( Reordering )
데이터 전송 및 동작의 순서화는 변경될 수도 있다. 예를 들어, 도 1, 도 3 및 도 4 에 설명된 예시적인 실시형태는 마지막 세그먼트 (DL) 에서부터 제 1 세그먼트 (Dl) 로 진행하는 암호화 프로세스를 나타내며, 각각의 세그먼트 (Di) 는 i+l 번째 세그먼트의 암호화 결과 (Ei +l) 의 해시를 포함한다. 별도의 검증기가 제 1 암호화된 세그먼트 (El) 에 대해 계산된다 (예를 들어, 단계 106 을 참조). 이 접근 방식은 도 4 에 도시된 복호화 디바이스에 대해 유용할 수 있는데, 그 이유는 암호화 디바이스는 버퍼링을 해야할 필요가 있는 반면, 복호화 디바이스는 복호화 전에 전체 암호화 결과를 버퍼링할 필요가 없기 때문이다.
대안으로서, 암호화 디바이스는 Dl 에서 시작하여 DL 에서 끝나는 세그먼트들을 암호화할 수 있고, 각각의 세그먼트 Di +l 는 이전 세그먼트의 암호화 (Ei) 의 해시를 포함한다. 이 예에서, 세그먼트 (Dl) 는 (예를 들어) 이 세그먼트가 제 1 세그먼트임을 나타내도록 해시 함수의 출력 길이와 동일한 크기의 0들의 스트링에 의해 확장된다. 그 후, 키 트리에 의해 생성된 검증기는 PATH=h(EL) 를 이용하여 계산된다. 이 변형예에서, 복호화 프로세스는 도 4 와 유사하지만, 마지막 암호화된 세그먼트에서부터 시작하여 제 1 세그먼트로의 역방향의 진행을 한다. 따라서, 현재 복호화 디바이스는 버퍼를 해야 하지만, 암호화 디바이스는 더이상 데이터 세그먼트들을 버퍼하지 않는다.
해시들의 추가적인 검증기들의 대체
몇몇 예들은 후속의 암호화된 세그먼트들을 인증하는 데이터 세그먼트에서의 해시들을 보여주고 있지만, 대안으로서, 후속의 세그먼트들은 자신의 독립적인 검증기를 수행할 수 있다. 예를 들어, 도 3 은 세그먼트 (E2) 가 변경되지 않았음을 검증하도록 해시 (h(E2)) 를 수행하는 제 1 데이터 세그먼트 (312) 를 보여준다. 그러나, 이러한 해시가 항상 요구되는 것은 아니며, 몇몇 경우에, (예를 들어, 다음 세그먼트가 대신에 검증기를 수행한다면) 생략될 수 있다. 이는 암호화를 다소 간략화하지만, 더 많은 검증기가 연산 및 검사될 필요가 있기 때문에 계산을 증가시킨다. 저장/메모리가 한정된다면 또는 스트리밍 애플리케이션에서는, 후속의 데이터를 이용가능하고 버퍼링되도록 할 필요성을 회피하는 이점이 주어진다면, 추가적인 계산 작용 (effort) 이 정당화될 수도 있다.
해싱에서의 변형들( Variations in Hashing )
일부 도식들에서, 도 3 에서의 h() 와 같은 단일 동작이 다수회 적용되고, 및/또는 상이한 용도에 이용된다. 일반적으로 이들 모두가 동일한 기능이라는 것이 요구되는 것은 아니다. 예를 들어, 상이한 단계들은 상이한 해시 함수들을 채용할 수 있다.
해시 함수의 출력은 트렁케이트될 수도 있고, 다른 해시 함수 출력들과 조합될 수도 있고, 또는 이와 달리 사후 프로세싱을 통해 변형될 수도 있다. 예를 들어, SHA-2 는 256-비트 출력 해시를 생성하지만, 더 짧은 메시지 식별자 (예컨대, 160-, 128-, 80- 또는 64-비트) 가 희망될 수도 있다. 함수 h() 는 내적으로 SHA-2를 이용할 수도 있고, 그 결과의 오직 일부 비트들만을 리턴할 수도 있다.
동작 순서의 변형
예시적 실시형태들 중 일부는 데이터 엘리머트들이 연결되거나 조합되는 특정 순서를 지정한다. 예를 들어, 도 3 의 단계 303-312에서, 데이터 Di 는 해시 h(Ei+1) 로 연결된다. 해싱되기 전에 데이터 세그먼트들이 시퀀스에서 연결되는 다른 실시예들은 도 5 의 엘리먼트들 501-504 및 513, 도 3 의 단계 306을 포함한다. 이러한 특정 순서화는 가능한 순서화의 하나의 실시예에 불과하며, 다양한 다른 데이터 순서화가 대안의 실시형태들에서 이용될 수 있다.
트리 기반 키 유도의 변형들
동작들 (예컨대, fi) 이 가역적이면, 트리의 최상단외의 값을 시작 값으로서 이용하는 것이 가능하다. 마찬가지로, 계산된 값들은 캐싱될 수 있다 (예컨대, 메시지 식별자가 카운터이며, 초기 동작들은 일반적으로 하나의 메시지로부터 다음 메시지로 변하지 않을 것이고, 그에 따라 재계산될 필요가 없다).
에러 검출 및/또는 정정
암호 디바이스의 동작에 결함들을 주입한 결과로서 생성된 부정확한 출력들이 민감한 데이터 및 키들에 관한 정보를 안출할 수 있다는 것은 본 분야에서 주지되어 있다. 실제로, 암호화 동작들은 비밀들을 타협할 수 있는 부정확한 계산들의 릴리스를 방지하는 데 도움이 되도록 검사될 수 있다. 예를 들어, 간단하고 효율적인 기법은, 이상적으로는 2 개(이상)의 독립적 하드웨어 프로세서들 및 구현물들을 이용하여, 암호화 동작들을 2 회 수행하는 것이며, 비교기는 양측 모두(또는 모두)가 동일한 결과들을 생성한다는 것을 검증한다. 단위대로 생성된 결과들이 매칭되지 않으면, 비교기는 결과가 이용되지 못하게 하고 및/또는 다른 에러 조건들을 트리거할 것이다. 개별적인 암호화 동작들 (예컨대, 해싱 단계들) 내에서, 에러 검출 및/또는 에러 정정 로직은 또한 암호화 동작들이 부정확하게 수행되는 상황들을 방지하거나 검출하는 데 도움이 되도록 채용될 수 있다.
본 특허에서 개시된 기법들은 또한 암호화 및 복호화 프로세스들에 대한 특정 타입의 결함 주입 공격들에 대해 일부 내재적 저항성을 제공한다. 암호화 프로세스 동안, 키 트리 기반 키 유도 프로세스 동안에 도입된 제한되거나 부분적인 결함은 이 프로세스 내에서의 엔트로피 분배 함수들의 사용으로 인해 랜덤하고 예측 불가능한 결과들을 생성할 것이다. 특히, 손상된 중간값들은 일반적으로 후속하는 엔트로피 분배 함수들에 의해 혼합되는데, 이는 결합 결과를 이용하는 공격들을 마운팅할 상대방의 능력을 제한할 것이다.
마찬가지로, 복호화 동안, 암호문 또는 메시지 식별자 프로세싱 내에 도입된 결함 또는 에러는 일반적으로 밸리데이터가 거부되게 할 것이다. 평문 해시 체이닝을 갖는 제 2 실시형태는 평문 세그먼트들이 출력 이전에 정확성에 대해 독립적으로 승인되기 때문에 추가 저항성을 제공한다. 물론, 동작들의 검사 및 다른 공지된 결함 검출 기법들이 추가로 이용될 수도 있다.
POST (power-on-self-test) 및 난수 테스팅과 같은 자가 진단 함수들은 또한 암호화 함수들 및 난수 발생 능력이 손상받지 않았음을 검증하도록 포함될 수도 있다.
추가 호스트 환경 및 폼 팩터들( Additional Host Environments and Form Factors )
검증가능 누출 방지 암호화의 이용을 위한 여러 예시적 시스템들 및 애플리케이션들이 전술되었다. 그러나, 당업자가 이해하는 바와 같이, 전술된 기법들은 특정 호스트 환경들 또는 폼 팩터들로 국한되지 않는다. 오히려, 그들은: ASIC, FPGA, SoC, 마이크로프로세서, 보안 프로세서, 보안 네트워크 디바이스, 모든 종류의 암호화 스마트카드 (ISO 7816-1, ISO 7816-2, 및 ISO 7816-3 과 실질적으로 부합하는 스마트카드("ISO 7816-컴플라이언트 스마트카드")들을 비제한적으로 포함함)를 비제한적으로 포함하는 다양한 애플리케이션들; (ISO 14443 과 실질적으로 부합하는 스마트카드를 비제한적으로 포함하는) 무접촉 및 근접성 기반 스마트카드 및 암호화 토큰; 저장된 값 카드 시스템; 암호화 방식으로 보안된 신용 및 데빗 카드; 고객 로얄티 카드 및 시스템; 암호학적으로 승인된 신용 카드; 암호화 액셀러레이터; 갬블링 및 도박 시스템; 보안 암호화 칩; 탬퍼링 방지 마이크로프로세서; 소프트웨어 프로그램 (개인용 컴퓨터, 서버 등에서의 사용을 위한 프로그램, 암호화 디바이스에 로딩되거나 내장될 수 있는 프로그램을 비제한적으로 포함함); 키 관리 디바이스; 은행업무 키 관리 시스템; 보안 웹 서버; 방어 시스템; 전자 지불 시스템; 마이크로지불 시스템 및 미터계; 선불 전화 카드; 암호 식별 카드 및 다른 아이덴티티 검증 시스템; 전자 금융 이체 시스템; 자동 응답기; 판매 시점 관리 단말기; 증명서 발행 시스템; 전자 뱃지; 진입구 시스템; 암호화 키를 이용한 모든 종류의 물리적 자물쇠; 텔레비전 신호를 복호화하는 시스템 (브로드캐스트 텔레비전, 위성 텔레비전, 및 케이블 텔레비전을 비제한적으로 포함함); 암호화된 음악 및 다른 오디오 콘텐츠 (컴퓨터 네트워크를 통해 배포된 음악을 포함함)를 복호화하는 시스템; 모든 종류의 비디오 신호를 보호하는 시스템; 콘텐츠 보호 및 복제 방지 시스템 (예컨대, 영화, 오디오 콘텐츠, 컴퓨터 프로그램, 비디오 게임, 이미지, 텍스트, 데이터베이스 등의 무허가 복제 또는 이용을 방지하는 데 이용되는 것들); 셀룰러 전화 스크램블링 및 승인 시스템 (전화 승인 스마트카드를 포함함); 보안 전화 (그러한 전화용 키 저장 디바이스를 포함함); 암호화 PCMCIA 카드; 휴대용 암호화 토큰; 및 암호화 데이터 편집 시스템들을 포함하지만 이들로 국한되지 않는 다양한 애플리케이션에서 사용될 수 있다.
전술한 모든 사항은 검증가능 누출 방지 암호화의 예시적 실시형태들 및 애플리케이션들을 예시하며, 이들로부터 관련된 변형물, 개선물, 변경물들이 본 개시물의 사상 및 범주의 문맥에서 자명하다. 따라서, 본 특허에 의해 보호되는 발명(들)은 전술한 개시물로 국한되어서는 안 되며, 오히려 여기에 첨부되는 청구범위에 의해 이해되어야 한다.

Claims (68)

  1. 암호화 키들의 재사용을 제한하면서 내부 비밀 상태를 갖는 디바이스에 의해 평문 데이터를 암호화하는 방법으로서,
    (a) 상기 내부 비밀 상태의 적어도 일부분으로 시작하여 메시지 키에 이르는 복수의 연속적 중간 키를 계산함으로써, 상기 내부 비밀 상태로부터 상기 메시지 키 및 메시지 식별자를 유도하는 단계로서, 각각의 연속적 키는 상기 메시지 식별자의 적어도 일부분 및 이전 키에 기초하여 유도되는, 상기 내부 비밀 상태로부터 메시지 키 및 메시지 식별자를 유도하는 단계;
    (b) 하나 이상의 암호화된 데이터 세그먼트들을 생성하도록 적어도 상기 메시지 키에 기초한 하나 이상의 상기 암호화 키들을 이용하여 상기 평문 데이터의 하나 이상의 세그먼트들을 암호화하는 단계;
    (c) 비밀 키를 이용하여, 적어도 상기 암호화된 데이터 세그먼트들 중 하나 이상에 기초하고, 상기 암호화된 데이터 세그먼트들 중 하나 이상을 검증하는 데 이용 가능한 암호화 검증 값을 계산하는 단계; 및
    (d) 상기 하나 이상의 암호화된 데이터 세그먼트들 및 상기 암호화 검증 값을 출력하는 단계를 포함하는, 평문 데이터를 암호화하는 방법.
  2. 제 1 항에 있어서,
    상기 단계 (c) 는:
    (i) 적어도 하나의 상기 암호화된 데이터 세그먼트로부터 암호화 해시를 계산하는 단계; 및
    (ii) 적어도 비밀 값 및 상기 암호화 해시로부터 밸리데이터를 유도하는 단계를 포함하고,
    상기 유도하는 단계는, 상기 비밀 값으로 시작하는 복수의 연속적 중간 값들을 계산하는 단계를 포함하고,
    각각의 연속적 값은 적어도 상기 중간 값들 중 이전 값 및 상기 암호화 해시의 일부분에 기초하는, 평문 데이터를 암호화하는 방법.
  3. 제 2 항에 있어서,
    단계 (a) 에서, 각각의 상기 중간 키의 상기 유도는 엔트로피 분배 동작을 선택하고, 그 후에 상기 엔트로피 분배 동작을 상기 이전 키에 적용하는 단계를 포함하는, 평문 데이터를 암호화하는 방법.
  4. 제 3 항에 있어서,
    상기 메시지 식별자는 복수의 부분들로 분해되고, 각각의 상기 부분은 적용될 특정 엔트로피 분배 동작을 결정하는, 평문 데이터를 암호화하는 방법.
  5. 제 4 항에 있어서,
    상기 엔트로피 분배 동작은, 적어도 (i) 상기 이전 키; 및 (ii) 상기 메시지 식별자의 적어도 일부분에 대응하는 값에 의존하는 암호화 해시 동작인, 평문 데이터를 암호화하는 방법.
  6. 제 2 항에 있어서,
    단계 (b) 에서, 상기 암호화 키는 키 체이닝을 이용하여 상기 메시지 키로부터 유도되는, 평문 데이터를 암호화하는 방법.
  7. 제 2 항에 있어서,
    단계 (a) 에서, 상기 메시지 키는 키 트리를 통한 경로에 따름으로써 계산되고, 상기 경로는 상기 메시지 식별자를 포함하는, 평문 데이터를 암호화하는 방법.
  8. 제 7 항에 있어서,
    상기 밸리데이터는 키 트리를 통한 경로에 따름으로써 계산되고, 상기 경로는 상기 암호화된 데이터 세그먼트들에 기초한 해시를 포함하는, 평문 데이터를 암호화하는 방법.
  9. 제 2 항에 있어서,
    단계 (b) 는 복수의 엔트로피 분배 동작들을 수행함으로써 상기 메시지로부터 복수의 상기 암호화 키들을 유도하는 단계를 포함하고;
    상기 평문 데이터를 암호화하는 방법은, 추가로,
    (i) 상기 암호화 키들 중 하나는 엔트로피 분배 함수를 상기 메시지 키에 적용함으로써 계산되고,
    (ii) 복수의 연속적 암호화 키들 각각은 엔트로피 분배 함수를 상기 암호화 키들 중 이전 암호화 키에 적용함으로써 계산되는, 평문 데이터를 암호화하는 방법.
  10. 제 2 항에 있어서,
    (i) 상기 평문 데이터는 복수의 세그먼트들을 포함하고;
    (ii) 상기 암호화 키들 각각은 오로지 하나의 평문 세그먼트를 암호화하여, 암호화된 데이터 세그먼트를 생성하는 데 이용되고,
    (iii) 상기 암호화된 데이터 세그먼트 모두에 기초한 암호화 해시가 계산되는, 평문 데이터를 암호화하는 방법.
  11. 제 10 항에 있어서,
    (iii) 에서, 상기 암호화 해시는 해시 체이닝을 이용하여 계산되는, 평문 데이터를 암호화하는 방법.
  12. 제 11 항에 있어서,
    상기 해시 체이닝에서, 상기 암호화된 데이터 세그먼트들은 상기 암호화된 데이터 세그먼트들이 출력되는 순서로부터 역의 순서로 해싱되는, 평문 데이터를 암호화하는 방법.
  13. 제 2 항에 있어서,
    (b) 에서,
    (i) 상기 평문 데이터는 복수의 세그먼트들을 포함하고, 각각의 세그먼트는 복수의 서브세그먼트들을 포함하고,
    (ii) 각각의 평문 서브세그먼트에 대해, 상기 암호화 키들 중 새로운 하나의 암호화 키는 상기 서브세그먼트를 암호화하는 데 이용되는, 평문 데이터를 암호화하는 방법.
  14. 제 13 항에 있어서,
    상기 암호화된 데이터 세그먼트들 모두에 기초하여 해시 체이닝을 이용하여 암호화 해시를 계산하는 단계를 더 포함하는, 평문 데이터를 암호화하는 방법.
  15. 제 2 항에 있어서,
    (b) 에서,
    (i) 상기 평문 데이터는 복수의 세그먼트들을 포함하고;
    (ii) 암호화 키 업데이트는 인트라-세그먼트 기반으로 발생하고;
    (iii) 각각의 상기 암호화된 데이터 세그먼트는 업데이트된 상기 암호화 키들 중 적어도 하나를 이용하여 생성되는, 평문 데이터를 암호화하는 방법.
  16. 제 2 항에 있어서,
    각각의 상기 연속적 중간 값은 입력들이 (1) 상기 연속적 중간 값의 중간 부모 (parent) 값; 및 (2) 1 또는 2 비트의 상기 암호화된 데이터 세그먼트 해시에 의해서만 결정되는 암호화 해시 동작의 결과인, 평문 데이터를 암호화하는 방법.
  17. 제 2 항에 있어서,
    오로지 하나의 평문 데이터 세그먼트 및 오로지 하나의 암호화된 데이터 세그먼트가 존재하고, 상기 암호화 해시 계산은 데이터 세그먼트 길이를 더 포함하는, 평문 데이터를 암호화하는 방법.
  18. 제 2 항에 있어서,
    상기 메시지 식별자는 랜덤하게 생성되는, 평문 데이터를 암호화하는 방법.
  19. 제 2 항에 있어서,
    상기 메시지 식별자는 카운터인, 평문 데이터를 암호화하는 방법.
  20. 제 2 항에 있어서,
    상기 디바이스는 데이터 패킷들을 복호화 디바이스에 송신하는 네트워킹된 통신 디바이스인, 평문 데이터를 암호화하는 방법.
  21. 제 2 항에 있어서,
    암호화된 데이터를 송신하기 전에 복호화 디바이스를 인증하는 단계를 더 포함하는, 평문 데이터를 암호화하는 방법.
  22. 제 1 항에 있어서,
    상기 암호화 검증 값은 상기 암호화된 데이터 세그먼트들 중 적어도 하나를 인증하는 디지털 서명인, 평문 데이터를 암호화하는 방법.
  23. 암호화 키들의 재사용을 제한하면서 내부 비밀 상태를 갖는 디바이스에 의해 데이터를 복호화하는 방법으로서,
    (a) 하나 이상의 암호화된 데이터 세그먼트들 및 암호화 검증 값을 수신하고, 그에 대응하는 메시지 식별자를 획득하는 단계;
    (b) 상기 암호화 검증 값을 검증하여, 상기 메시지 식별자 또는 상기 암호화된 데이터 세그먼트들 중 적어도 하나가 변형되었는지를 판정하는 단계;
    (c) 상기 내부 비밀 상태의 적어도 일부분으로 시작하고 메시지 키에 이르는 복수의 연속적 중간 키들을 계산함으로써 상기 내부 비밀 상태 및 상기 메시지 식별자로부터 상기 메시지 키를 유도하는 단계로서, 각각의 연속적 키는 상기 메시지 식별자의 적어도 일부분 및 이전 키에 기초하여 유도되는, 상기 내부 비밀 상태 및 메시지 식별자로부터 메시지를 유도하는 단계;
    (d) 적어도 상기 메시지 키에 기초한 상기 하나 이상의 암호화 키들을 이용하여 상기 암호화된 데이터의 하나 이상의 검증된 세그먼트들을 복호화하여 하나 이상의 평문 데이터 세그먼트들을 생성하는 단계를 포함하는, 데이터를 복호화하는 방법.
  24. 제 23 항에 있어서,
    상기 단계 (b) 는:
    (i) 적어도 하나의 상기 암호화된 데이터 세그먼트로부터 암호화 해시를 계산하는 단계;
    (ii) 적어도 비밀 값 및 상기 암호화 해시로부터 예상 밸리데이터를 유도하는 단계로서, 상기 유도하는 단계는 상기 비밀 값으로 시작하는 복수의 연속적 중간 값들을 계산하는 단계를 포함하고, 각각의 연속적 값이 적어도 상기 중간 값들 중 이전 값 및 상기 암호화 해시 중 일부분에 기초한, 상기 유도하는 단계; 및
    (iii) 상기 유도된 예상 밸리데이터를 상기 수신된 암호화 검증 값과 비교하는 단계를 포함하는, 데이터를 복호화하는 방법.
  25. 제 24 항에 있어서,
    (c) 에서, 각각의 상기 중간 값의 상기 유도는 엔트로피 분배 동작을 선택하고, 이후에 상기 엔트로피 분배 동작을 상기 이전 키에 적용하는 단계를 포함하는, 데이터를 복호화하는 방법.
  26. 제 25 항에 있어서,
    상기 메시지 식별자는 복수의 부분들로 분해되고, 각각의 상기 부분은 적용될 특정 엔트로피 분배 동작을 결정하는, 데이터를 복호화하는 방법.
  27. 제 26 항에 있어서,
    상기 엔트로피 분배 동작은, 적어도 (i) 상기 이전 키; 및 (ii) 상기 메시지 식별자의 적어도 일부분에 대응하는 값에 의존하는 암호화 해시 동작인, 데이터를 복호화하는 방법.
  28. 제 24 항에 있어서,
    (d) 에서, 상기 암호화 키들은 키 체이닝을 이용하여 상기 메시지 키로부터 유도되는, 데이터를 복호화하는 방법.
  29. 제 24 항에 있어서,
    (c) 에서, 상기 메시지 키는 키 트리를 통한 경로를 따름으로써 계산되고, 상기 경로는 상기 메시지 식별자를 포함하고, 상기 밸리데이터는 키 트리를 통한 경로를 따름으로써 계산되고, 상기 경로를 상기 암호화된 데이터 세그먼트들에 기초한 해시를 포함하는, 데이터를 복호화하는 방법.
  30. 제 24 항에 있어서,
    (d) 는 복수의 엔트로피 분배 동작들을 수행함으로써 상기 메시지 키로부터 복수의 상기 암호화 키들을 유도하는 단계를 포함하는, 데이터를 복호화하는 방법.
  31. 제 30 항에 있어서,
    (i) 상기 암호화 키들 중 하나는 엔트로피 분배 함수를 상기 메시지 키에 적용함으로써 계산되고;
    (ii) 복수의 연속적 암호화 키들 각각은 엔트로피 분배 함수를 상기 암호화 키들 중 이전 암호화 키에 적용함으로써 계산되는, 데이터를 복호화하는 방법.
  32. 제 24 항에 있어서,
    (i) 상기 암호화된 데이터는 복수의 세그먼트들을 포함하고;
    (ii) 마지막을 제외한 각각의 암호화된 데이터 세그먼트는 다음 암호화된 데이터 세그먼트의 암호화 해시의 표현을 나타내고;
    (iii) 제 1 암호화된 데이터 세그먼트를 복호화하기 전에, 그것의 암호화 해시가 계산되고 검증되며;
    (iv) 각각의 후속 세그먼트를 복호화하기 전에, 그의 암호화 해시가 계산되고 이전 암호화된 데이터 세그먼트에 표현된 해시에 비교되며;
    (v) 상기 암호화 키들 각각은 오로지 하나의 암호화된 데이터 세그먼트만을 복호화하는 데 이용되는, 데이터를 복호화하는 방법.
  33. 제 24 항에 있어서,
    (d) 에서,
    (i) 상기 암호화된 데이터는 복수의 세그먼트들을 포함하고, 각각의 세그먼트는 복수의 서브세그먼트들을 포함하고,
    (ii) 각각의 암호화된 서브세그먼트에 대해, 상기 암호화 키들 중 새로운 암호화 키는 상기 서브세그먼트를 복호화하는 데 이용되는, 데이터를 복호화하는 방법.
  34. 제 24 항에 있어서,
    상기 해시는 상기 암호화된 데이터 세그먼트들 모두에 의존하는, 데이터를 복호화하는 방법.
  35. 제 24 항에 있어서,
    (b) 에서,
    (i) 상기 암호화된 데이터는 복수의 세그먼트들을 포함하고;
    (ii) 암호화 키 업데이트들은 인트라-세그먼트 단위로 발생하며;
    (iii) 각각의 상기 평문 데이터 세그먼트는 업데이트된 상기 암호화 키들 중 적어도 하나를 이용하여 생성되는, 데이터를 복호화하는 방법.
  36. 제 24 항에 있어서,
    각각의 상기 연속적 중간 값은 입력들이 (A) 부모 값, 및 (B) 상기 암호화된 데이터 세그먼트 해시의 적어도 일부분에 대응하는 그것의 값을 포함하는 암호화 해시 동작의 결과인, 데이터를 복호화하는 방법.
  37. 제 36 항에 있어서,
    상기 암호화 해시 동작으로의 상기 입력들은 (1) 상기 연속적 중간 값의 중간 부모 값, 및 (2) 상기 암호화된 데이터 세그먼트 해시의 1 또는 2 비트에 의해서만 결정되는, 데이터를 복호화하는 방법.
  38. 제 24 항에 있어서,
    오로지 하나의 평문 데이터 세그먼트 및 오로지 하나의 암호화된 데이터 세그먼트가 존재하고, 상기 암호화 해시 계산은 데이터 세그먼트 길이를 더 포함하는, 데이터를 복호화하는 방법.
  39. 제 24 항에 있어서,
    상기 예상 밸리데이터는 해시를 검증하고, (i) 상기 해시는 제 2 암호화된 데이터 세그먼트의 해시를 포함하는 제 1 암호화된 데이터 세그먼트에 의존하고, (ii) 상기 제 2 및 후속 암호화된 데이터 세그먼트들은 다음 암호화된 데이터 세그먼트의 해시를 각각 포함하는, 데이터를 복호화하는 방법.
  40. 제 24 항에 있어서,
    상기 메시지 식별자는 카운터인, 데이터를 복호화하는 방법.
  41. 제 24 항에 있어서,
    상기 메시지 식별자는 상기 평문 데이터의 적어도 일부분의 암호화 해시인, 데이터를 복호화하는 방법.
  42. 제 24 항에 있어서,
    상기 평문 데이터는 FPGA 비트스트림인, 데이터를 복호화하는 방법.
  43. 제 24 항에 있어서,
    프로세서를 이용하여 상기 평문 데이터의 적어도 일부분을 실행하는 단계를 더 포함하는, 데이터를 복호화하는 방법.
  44. 제 24 항에 있어서,
    프로세서를 포함하는 칩에 의해, 외부 메모리로부터 온-칩 캐시로 로딩되는 데이터를 보호하는 데 이용되는, 데이터를 복호화하는 방법.
  45. 제 24 항에 있어서,
    상기 디바이스는 복호화 디바이스로부터 데이터 패킷들을 수신하는 네트워킹된 통신 디바이스인, 데이터를 복호화하는 방법.
  46. 제 24 항에 있어서,
    안티-롤백 보호를 더 포함하는, 데이터를 복호화하는 방법.
  47. 제 23 항에 있어서,
    상기 암호화 검증 값은 상기 암호화된 데이터 세그먼트들 중 적어도 하나를 인증하는 디지털 서명인, 데이터를 복호화하는 방법.
  48. 암호화 키들의 재사용을 제한하면서 평문 데이터를 암호화하는 디바이스로서, 상기 디바이스는 하드웨어 유닛을 포함하고,
    상기 하드웨어 유닛은:
    (a) 내부 비밀 상태의 적어도 일부분으로 시작하여 메시지 키에 이르는 복수의 연속적 중간 키를 계산함으로써, 상기 내부 비밀 상태로부터 상기 메시지 키 및 메시지 식별자를 유도하되, 각각의 연속적 중간 키는 상기 메시지 식별자의 적어도 일부분 및 이전 키에 기초하여 유도되고;
    (b) 하나 이상의 암호화된 데이터 세그먼트들을 생성하도록 적어도 상기 메시지 키에 기초한 하나 이상의 상기 암호화 키들을 이용하여 상기 평문 데이터의 하나 이상의 세그먼트들을 암호화하고;
    (c) 비밀 키를 이용하여, 적어도 상기 암호화된 데이터 세그먼트들 중 하나 이상에 기초하고, 상기 암호화된 데이터 세그먼트들 중 하나 이상을 검증하는 데 이용 가능한 암호화 검증 값을 계산하고;
    (d) 상기 하나 이상의 암호화된 데이터 세그먼트들 및 상기 암호화 검증 값을 출력하도록 구성된, 평문 데이터를 암호화하는 디바이스.
  49. 제 48 항에 있어서,
    상기 (c) 는.
    (i) 적어도 하나의 상기 암호화된 데이터 세그먼트로부터 암호화 해시를 계산하고;
    (ii) 적어도 비밀 값 및 상기 암호화 해시로부터 밸리데이터를 유도하도록 구성되고,
    상기 유도는, 상기 비밀 값으로 시작하는 복수의 연속적 중간 값들을 계산하는 것을 포함하고,
    각각의 연속적 값은 적어도 상기 중간 값들 중 이전 값 및 상기 암호화 해시의 일부분에 기초하는, 평문 데이터를 암호화하는 디바이스.
  50. 제 49 항에 있어서,
    (a) 에서, 각각의 상기 중간 키의 상기 유도는 엔트로피 분배 동작을 선택하고, 그 후에 상기 엔트로피 분배 동작을 상기 이전 키에 적용하는 것을 포함하는, 평문 데이터를 암호화하는 디바이스.
  51. 제 50 항에 있어서,
    상기 엔트로피 분배 동작이, 적어도 (i) 상기 이전 키; 및 (ii) 상기 메시지 식별자의 적어도 일부분에 대응하는 값에 의존하는 암호화 해시 동작이도록 구성된, 평문 데이터를 암호화하는 디바이스.
  52. 제 49 항에 있어서,
    (a) 에서, 상기 메시지 키가, 키 트리를 통한 경로에 따름으로써 계산되도록 구성되고, 상기 경로는 상기 메시지 식별자를 포함하는, 평문 데이터를 암호화하는 디바이스.
  53. 제 49 항에 있어서,
    (b) 에 대해, 복수의 엔트로피 분배 동작들을 수행함으로써 상기 메시지로부터 복수의 상기 암호화 키들을 유도하는 것을 포함하도록 구성되고,
    (i) 상기 암호화 키들 중 하나는 엔트로피 분배 함수를 상기 메시지 키에 적용함으로써 계산되고,
    (ii) 복수의 연속적 암호화 키들 각각은 엔트로피 분배 함수를 상기 암호화 키들 중 이전 암호화 키에 적용함으로써 계산되도록 구성된, 평문 데이터를 암호화하는 디바이스.
  54. 제 49 항에 있어서,
    각각의 상기 연속적 중간 값이, 입력들이 (1) 상기 연속적 중간 값의 중간 부모 (parent) 값; 및 (2) 1 또는 2 비트의 상기 암호화된 데이터 세그먼트 해시에 의해서만 결정되는 암호화 해시 동작의 결과가 되도록 구성된, 평문 데이터를 암호화하는 디바이스.
  55. 제 48 항에 있어서,
    상기 암호화 검증 값은 상기 암호화된 데이터 세그먼트들 중 적어도 하나를 인증하는 디지털 서명이도록 구성된, 평문 데이터를 암호화하는 디바이스.
  56. 암호화 키들의 재사용을 제한하면서 내부 비밀 상태를 갖는 디바이스에 의해 데이터를 복호화하는 디바이스로서, 상기 디바이스는 하드웨어 유닛을 포함하고,
    상기 하드웨어 유닛은:
    (a) 하나 이상의 암호화된 데이터 세그먼트들 및 암호화 검증 값을 수신하고, 그에 대응하는 메시지 식별자를 획득하고;
    (b) 상기 암호화 검증 값을 검증하여, 상기 메시지 식별자 또는 상기 암호화된 데이터 세그먼트들 중 적어도 하나가 변형되었는지를 판정하고;
    (c) 상기 내부 비밀 상태의 적어도 일부분으로 시작하고 메시지 키에 이르는 복수의 연속적 중간 키들을 계산함으로써 상기 내부 비밀 상태 및 상기 메시지 식별자로부터 상기 메시지 키를 유도하되, 각각의 연속적 키는 상기 메시지 식별자의 적어도 일부분 및 이전 키에 기초하여 유도되며;
    (d) 적어도 상기 메시지 키에 기초한 상기 하나 이상의 암호화 키들을 이용하여 상기 암호화된 데이터의 하나 이상의 검증된 세그먼트들을 복호화하여 하나 이상의 평문 데이터 세그먼트들을 생성하도록 구성된, 데이터를 복호화하는 디바이스.
  57. 제 56 항에 있어서,
    상기 (b) 는:
    (i) 적어도 하나의 상기 암호화된 데이터 세그먼트로부터 암호화 해시를 계산하고;
    (ii)적어도 비밀 값 및 상기 암호화 해시로부터 예상 밸리데이터를 유도하되, 상기 비밀 값으로 시작하는 복수의 연속적 중간 값들을 계산하는 단계를 포함하고, 각각의 연속적 값이 적어도 상기 중간 값들 중 이전 값 및 상기 암호화 해시 중 일부분에 기초하도록 하며,
    (iii) 상기 유도된 예상 밸리데이터를 상기 수신된 암호화 검증 값과 비교하도록 구성된, 데이터를 복호화하는 디바이스.
  58. 제 57 항에 있어서,
    (c) 에서, 각각의 상기 중간 값의 상기 유도는 엔트로피 분배 동작의 선택 및 그 이후에 상기 엔트로피 분배 동작의 상기 이전 키로의 적용을 포함하도록 구성된, 데이터를 복호화하는 디바이스.
  59. 제 58 항에 있어서,
    상기 엔트로피 분배 동작은, 적어도 (i) 상기 이전 키; 및 (ii) 상기 메시지 식별자의 적어도 일부분에 대응하는 값에 의존하는 암호화 해시 동작이도록 구성된, 데이터를 복호화하는 디바이스.
  60. 제 57 항에 있어서,
    (c) 에서, 상기 메시지 키는 키 트리를 통한 경로를 따름으로써 계산되도록 구성되고, 상기 경로는 상기 메시지 식별자를 포함하는, 데이터를 복호화하는 디바이스.
  61. 제 57 항에 있어서,
    (d) 는, 복수의 엔트로피 분배 동작들을 수행함으로써 상기 메시지 키로부터 복수의 상기 암호화 키들을 유도하는 것을 포함하도록 구성되고,
    (i) 상기 암호화 키들 중 하나는 엔트로피 분배 함수를 상기 메시지 키에 적용함으로써 계산되고;
    (ii) 복수의 연속적 암호화 키들 각각은 엔트로피 분배 함수를 상기 암호화 키들 중 이전 암호화 키에 적용함으로써 계산되도록 구성된, 데이터를 복호화하는 디바이스.
  62. 제 57 항에 있어서,
    상기 암호화 해시 동작으로의 입력들이 (1) 상기 연속적 중간 값의 중간 부모 값, 및 (2) 상기 암호화된 데이터 세그먼트 해시의 1 또는 2 비트에 의해서만 결정되도록 구성된, 데이터를 복호화하는 디바이스.
  63. 제 57 항에 있어서,
    오로지 하나의 평문 데이터 세그먼트 및 오로지 하나의 암호화된 데이터 세그먼트가 존재하고, 상기 암호화 해시 계산은 데이터 세그먼트 길이를 더 포함하는, 데이터를 복호화하는 디바이스.
  64. 제 57 항에 있어서,
    상기 예상 밸리데이터는 해시를 검증하고, (i) 상기 해시는 제 2 암호화된 데이터 세그먼트의 해시를 포함하는 제 1 암호화된 데이터 세그먼트에 의존하고, (ii) 상기 제 2 및 후속 암호화된 데이터 세그먼트들은 다음 암호화된 데이터 세그먼트의 해시를 각각 포함하도록 구성된, 데이터를 복호화하는 디바이스.
  65. 제 57 항에 있어서,
    상기 디바이스는 FPGA 비트스트림이고, 상기 디바이스는 상기 평문 데이터가 FPGA 비트스트림을 포함하도록 구성된, 데이터를 복호화하는 디바이스.
  66. 제 57 항에 있어서,
    상기 디바이스에 포함된 프로세서를 이용하여 상기 평문 데이터의 적어도 일부분을 실행하도록 추가로 구성된, 데이터를 복호화하는 디바이스.
  67. 제 57 항에 있어서,
    상기 디바이스는 프로세스를 포함하는 칩이고, 상기 디바이스는
    프로세서를 포함하는 칩에 의해, 외부 메모리로부터 온-칩 캐시로 로딩되는 데이터를 보호하도록 구성되고, 상기 데이터는 상기 칩에 의해 이전에 암호화된 것으로 로딩되는, 데이터를 복호화하는 디바이스.
  68. 제 56 항에 있어서,
    상기 암호화 검증 값은 상기 암호화된 데이터 세그먼트들 중 적어도 하나를 인증하는 디지털 서명으로 구성된, 데이터를 복호화하는 디바이스.

KR1020127014536A 2009-12-04 2010-12-02 검증가능 누출 방지 암호화 및 복호화 KR101714108B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US26694809P 2009-12-04 2009-12-04
US61/266,948 2009-12-04
US12/958,570 US8386800B2 (en) 2009-12-04 2010-12-02 Verifiable, leak-resistant encryption and decryption
US12/958,570 2010-12-02
PCT/US2010/058768 WO2011068996A1 (en) 2009-12-04 2010-12-02 Verifiable, leak-resistant encryption and decryption

Publications (2)

Publication Number Publication Date
KR20120098764A KR20120098764A (ko) 2012-09-05
KR101714108B1 true KR101714108B1 (ko) 2017-03-08

Family

ID=44083176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127014536A KR101714108B1 (ko) 2009-12-04 2010-12-02 검증가능 누출 방지 암호화 및 복호화

Country Status (8)

Country Link
US (10) US8386800B2 (ko)
EP (2) EP3537653B1 (ko)
JP (2) JP5552541B2 (ko)
KR (1) KR101714108B1 (ko)
CN (1) CN102725737B (ko)
IL (1) IL219906A (ko)
TW (1) TWI440351B (ko)
WO (1) WO2011068996A1 (ko)

Families Citing this family (271)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181953B1 (en) 2013-09-16 2019-01-15 Amazon Technologies, Inc. Trusted data verification
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US20090307140A1 (en) * 2008-06-06 2009-12-10 Upendra Mardikar Mobile device over-the-air (ota) registration and point-of-sale (pos) payment
US9680637B2 (en) 2009-05-01 2017-06-13 Harris Corporation Secure hashing device using multiple different SHA variants and related methods
US10454674B1 (en) * 2009-11-16 2019-10-22 Arm Limited System, method, and device of authenticated encryption of messages
JP5552541B2 (ja) 2009-12-04 2014-07-16 クリプトグラフィ リサーチ, インコーポレイテッド 検証可能な耐漏洩性暗号化および復号化
WO2011097482A1 (en) 2010-02-05 2011-08-11 Maxlinear, Inc. Conditional access integration in a soc for mobile tv applications
WO2011119985A2 (en) 2010-03-26 2011-09-29 Maxlinear, Inc. Firmware authentication and deciphering for secure tv receiver
US8935520B2 (en) 2010-03-30 2015-01-13 Maxlinear, Inc. Control word obfuscation in secure TV receiver
US9172680B2 (en) 2010-06-07 2015-10-27 Protected Mobility, Llc Systems and methods for enabling secure messaging, command, and control of remote devices, communicated via a short message service or other message oriented communications mediums
US9602277B2 (en) 2010-06-07 2017-03-21 Protected Mobilty, Llc User interface systems and methods for secure message oriented communications
US9143324B2 (en) * 2010-06-07 2015-09-22 Protected Mobility, Llc Secure messaging
US8984271B2 (en) 2010-06-07 2015-03-17 Protected Mobility, Llc User interface systems and methods for input and display of secure and insecure message oriented communications
US8892855B2 (en) * 2010-08-10 2014-11-18 Maxlinear, Inc. Encryption keys distribution for conditional access software in TV receiver SOC
CN101925060A (zh) * 2010-08-27 2010-12-22 西安西电捷通无线网络通信股份有限公司 一种资源受限网络的实体鉴别方法及系统
CN102014386B (zh) * 2010-10-15 2012-05-09 西安西电捷通无线网络通信股份有限公司 一种基于对称密码算法的实体鉴别方法及系统
US8924706B2 (en) 2010-11-05 2014-12-30 Protected Mobility, Llc Systems and methods using one time pads during the exchange of cryptographic material
US9237155B1 (en) 2010-12-06 2016-01-12 Amazon Technologies, Inc. Distributed policy enforcement with optimizing policy transformations
JP2012169756A (ja) * 2011-02-10 2012-09-06 Hitachi Ltd 暗号化通信検査システム
JP5286380B2 (ja) * 2011-03-07 2013-09-11 株式会社東芝 データ送信装置および送信方法
EP2523385B1 (en) * 2011-05-05 2017-07-12 Proton World International N.V. Method and circuit for cryptographic operation
US9438418B1 (en) * 2011-05-06 2016-09-06 Altera Corporation Systems and methods for generating a key difficult to clone
US8769642B1 (en) 2011-05-31 2014-07-01 Amazon Technologies, Inc. Techniques for delegation of access privileges
IL213497A0 (en) * 2011-06-12 2011-08-31 Eliphaz Hibshoosh Light public key cryptography
EP2535804A1 (en) * 2011-06-17 2012-12-19 Thomson Licensing Fault-resistant exponentiation algorithm
US8862767B2 (en) 2011-09-02 2014-10-14 Ebay Inc. Secure elements broker (SEB) for application communication channel selector optimization
FR2980607B1 (fr) * 2011-09-27 2014-04-25 Proton World Int Nv Procede de derivation de cles dans un circuit integre
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US9178701B2 (en) 2011-09-29 2015-11-03 Amazon Technologies, Inc. Parameter based key derivation
US9197409B2 (en) 2011-09-29 2015-11-24 Amazon Technologies, Inc. Key derivation techniques
US10797864B2 (en) * 2011-11-21 2020-10-06 Combined Conditional Access Development And Support, Llc System and method for authenticating data while minimizing bandwidth
US9553725B2 (en) * 2011-11-21 2017-01-24 Combined Conditional Access Development And Support, Llc System and method for authenticating data
US8627488B2 (en) * 2011-12-05 2014-01-07 At&T Intellectual Property I, L.P. Methods and apparatus to anonymize a dataset of spatial data
US20180083930A1 (en) * 2011-12-12 2018-03-22 International Business Machines Corporation Reads for dispersed computation jobs
US9674155B2 (en) * 2011-12-12 2017-06-06 International Business Machines Corporation Encrypting segmented data in a distributed computing system
US10360106B2 (en) 2011-12-12 2019-07-23 International Business Machines Corporation Throttled real-time writes
WO2013089682A1 (en) * 2011-12-13 2013-06-20 Intel Corporation Method and apparatus to process keccak secure hashing algorithm
US8984273B2 (en) 2011-12-16 2015-03-17 Protected Mobility, Llc Method to provide secure multimedia messaging between peer systems
US9405537B2 (en) 2011-12-22 2016-08-02 Intel Corporation Apparatus and method of execution unit for calculating multiple rounds of a skein hashing algorithm
KR101264286B1 (ko) 2012-01-13 2013-05-22 고려대학교 산학협력단 데이터베이스 암호화 시스템 및 방법
US10419907B2 (en) 2012-02-22 2019-09-17 Qualcomm Incorporated Proximity application discovery and provisioning
US9544075B2 (en) 2012-02-22 2017-01-10 Qualcomm Incorporated Platform for wireless identity transmitter and system using short range wireless broadcast
US9329879B2 (en) * 2012-02-23 2016-05-03 Qualcomm Innovation Center, Inc. Device, method, and system to enable secure distribution of javascripts
JP5612006B2 (ja) 2012-03-13 2014-10-22 株式会社東芝 データ送信装置、データ受信装置、及びプログラム
TWI451741B (zh) * 2012-03-19 2014-09-01 Chiou Haun Lee 以xor運算於三方通訊之加解密方法
US9215076B1 (en) 2012-03-27 2015-12-15 Amazon Technologies, Inc. Key generation for hierarchical data access
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
US8892865B1 (en) * 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
DE102012206272A1 (de) * 2012-04-17 2013-10-17 Beckhoff Automation Gmbh Feldbus-Datenübertragung
US10360593B2 (en) 2012-04-24 2019-07-23 Qualcomm Incorporated Retail proximity marketing
US10795766B2 (en) 2012-04-25 2020-10-06 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9380032B2 (en) * 2012-04-25 2016-06-28 International Business Machines Corporation Encrypting data for storage in a dispersed storage network
US10621044B2 (en) 2012-04-25 2020-04-14 Pure Storage, Inc. Mapping slice groupings in a dispersed storage network
US9660972B1 (en) 2012-06-25 2017-05-23 Amazon Technologies, Inc. Protection from data security threats
US9258118B1 (en) 2012-06-25 2016-02-09 Amazon Technologies, Inc. Decentralized verification in a distributed system
US9160719B2 (en) 2012-07-20 2015-10-13 Protected Mobility, Llc Hiding ciphertext using a linguistics algorithm with dictionaries
US8917868B2 (en) * 2012-08-22 2014-12-23 Vixs Systems, Inc. Adaptable encryption device and methods for use therewith
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US9189225B2 (en) 2012-10-16 2015-11-17 Imprivata, Inc. Secure, non-disruptive firmware updating
KR20140052243A (ko) * 2012-10-23 2014-05-07 한국전자통신연구원 네트워크 데이터 서비스 장치 및 방법, 네트워크 데이터 서비스를 위한 클라이언트 단말 장치
US8886926B2 (en) * 2012-11-07 2014-11-11 Centri Technology, Inc. Single-pass data compression and encryption
WO2014075000A1 (en) * 2012-11-12 2014-05-15 Cryptography Research Inc. Methods and systems for glitch-resistant cryptographic discrete-log based signing
CN103023635B (zh) * 2012-12-03 2015-10-07 广东欧珀移动通信有限公司 一种信息备份的方法及装置
CN103023653B (zh) * 2012-12-07 2017-03-29 哈尔滨工业大学深圳研究生院 低功耗的物联网安全组通信方法及装置
US9690759B2 (en) * 2013-01-03 2017-06-27 Cable Television Laboratories, Inc. Content linking
US9124434B2 (en) 2013-02-01 2015-09-01 Microsoft Technology Licensing, Llc Securing a computing device accessory
JP6238774B2 (ja) 2013-02-21 2017-11-29 キヤノン株式会社 ハッシュ値生成装置
JP6113091B2 (ja) * 2013-03-07 2017-04-12 キヤノン株式会社 ハッシュ値生成装置
US9813235B2 (en) 2013-03-11 2017-11-07 Indian Institute of Technology Kharagpur Resistance to cache timing attacks on block cipher encryption
US9425967B2 (en) 2013-03-20 2016-08-23 Industrial Technology Research Institute Method for certificate generation and revocation with privacy preservation
JP5931797B2 (ja) * 2013-05-27 2016-06-08 日本電信電話株式会社 署名システム及び方法、署名生成装置並びに署名検証装置
US9763067B2 (en) 2013-05-28 2017-09-12 Protected Mobility, Llc Methods and apparatus for long-short wave, low-high frequency radio secure message service
KR101416447B1 (ko) * 2013-06-17 2014-07-10 (주)씽크에이티 전화인증 기반의 정보유출 방지방법 및 시스템
FR3007169B1 (fr) 2013-06-18 2016-10-07 Stmicroelectronics Rousset Procede de verification de l'authenticite d'un produit
FR3007168B1 (fr) * 2013-06-18 2016-10-07 Stmicroelectronics Rousset Mecanisme de verification de l'authenticite d'un produit
US9407440B2 (en) 2013-06-20 2016-08-02 Amazon Technologies, Inc. Multiple authority data security and access
GB2513669B (en) 2013-06-21 2016-07-20 Visa Europe Ltd Enabling access to data
TWI510046B (zh) * 2013-07-04 2015-11-21 Univ Nat Cheng Kung 認證式加解密方法
US9521000B1 (en) 2013-07-17 2016-12-13 Amazon Technologies, Inc. Complete forward access sessions
US9160525B2 (en) * 2013-07-19 2015-10-13 Qualcomm Incorporated Apparatus and method for key update for use in a block cipher algorithm
US9736181B2 (en) * 2013-07-26 2017-08-15 Intel Corporation Hardening data transmissions against power side channel analysis
US10403173B2 (en) * 2013-08-13 2019-09-03 Fiske Software, Llc NADO cryptography using one-way functions
US9485222B2 (en) * 2013-08-20 2016-11-01 Hewlett-Packard Development Company, L.P. Data stream traffic control
US9053325B2 (en) * 2013-08-22 2015-06-09 Freescale Semiconductor, Inc. Decryption key management system
US9189638B1 (en) * 2013-08-25 2015-11-17 Google Inc. Systems and methods for multi-function and multi-purpose cryptography
US9842214B2 (en) * 2013-09-10 2017-12-12 Insyde Software Corp. System and method to secure on-board bus transactions
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9218235B2 (en) * 2013-09-25 2015-12-22 Lexmark International, Inc. Systems and methods of verifying operational information associated with an imaging device
CN103761456B (zh) * 2013-10-12 2016-05-11 利尔达科技集团股份有限公司 一种单片机核心代码防破解的方法
FR3012234B1 (fr) * 2013-10-23 2017-02-24 Proton World Int Nv Protection de l'execution d'un algorithme contre des attaques par canaux caches
US10243945B1 (en) 2013-10-28 2019-03-26 Amazon Technologies, Inc. Managed identity federation
US9420007B1 (en) 2013-12-04 2016-08-16 Amazon Technologies, Inc. Access control using impersonization
EP2884692B1 (en) * 2013-12-13 2020-05-20 Nxp B.V. Updating software on a secure element
CN103729602B (zh) * 2013-12-18 2016-08-17 东莞市乐升电子有限公司 利用电源管理控制器对系统进行加密保护的方法
CN104753661A (zh) * 2013-12-30 2015-07-01 上海格尔软件股份有限公司 一种用于商用密码设备的密钥描述文件
US9369461B1 (en) 2014-01-07 2016-06-14 Amazon Technologies, Inc. Passcode verification using hardware secrets
US9374368B1 (en) 2014-01-07 2016-06-21 Amazon Technologies, Inc. Distributed passcode verification system
US9292711B1 (en) 2014-01-07 2016-03-22 Amazon Technologies, Inc. Hardware secret usage limits
US9262642B1 (en) 2014-01-13 2016-02-16 Amazon Technologies, Inc. Adaptive client-aware session security as a service
EP2902934B1 (en) * 2014-02-03 2019-04-10 Nxp B.V. Portable Security Device, Method for Securing a Data Exchange and Computer Program Product
US20150242620A1 (en) * 2014-02-27 2015-08-27 Microsemi SoC Corporation Methods for controlling the use of intellectual property in individual integrated circuit devices
US10771255B1 (en) 2014-03-25 2020-09-08 Amazon Technologies, Inc. Authenticated storage operations
CN114710351A (zh) * 2014-03-26 2022-07-05 大陆-特韦斯股份有限公司 用于在通信过程中改进数据安全性的方法和系统
US9473296B2 (en) * 2014-03-27 2016-10-18 Intel Corporation Instruction and logic for a simon block cipher
CN106463069A (zh) 2014-05-14 2017-02-22 三菱电机株式会社 加密装置、存储系统、解密装置、加密方法、解密方法、加密程序以及解密程序
US9871651B2 (en) * 2014-06-16 2018-01-16 Cisco Technology, Inc. Differential power analysis countermeasures
EP3158556A4 (en) * 2014-06-18 2018-01-10 James Collier Methods and apparatus for cryptography
US10114369B2 (en) 2014-06-24 2018-10-30 Microsemi SoC Corporation Identifying integrated circuit origin using tooling signature
US9258117B1 (en) 2014-06-26 2016-02-09 Amazon Technologies, Inc. Mutual authentication with symmetric secrets and signatures
US10326597B1 (en) 2014-06-27 2019-06-18 Amazon Technologies, Inc. Dynamic response signing capability in a distributed system
US8990556B1 (en) 2014-08-13 2015-03-24 Gimbal, Inc. Sharing beacons
US9571465B1 (en) * 2014-09-18 2017-02-14 Amazon Technologies, Inc. Security verification by message interception and modification
US10839086B2 (en) * 2014-09-30 2020-11-17 Jonker Llc Method of operating ephemeral peripheral device
US10115467B2 (en) * 2014-09-30 2018-10-30 Jonker Llc One time accessible (OTA) non-volatile memory
US10061738B2 (en) 2014-09-30 2018-08-28 Jonker Llc Ephemeral peripheral device
US10389520B2 (en) * 2014-10-03 2019-08-20 Cryptography Research, Inc. Exponent splitting for cryptographic operations
US9288043B1 (en) * 2014-10-17 2016-03-15 Motorola Solutions, Inc. Methods and systems for providing high-security cryptographic keys to mobile radios
US10353638B2 (en) 2014-11-18 2019-07-16 Microsemi SoC Corporation Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory
CN107005415B (zh) * 2014-12-03 2021-03-23 耐瑞唯信有限公司 用于加密/解密消息的块加密方法及设备
DE102015201298A1 (de) * 2015-01-26 2016-07-28 Robert Bosch Gmbh Verfahren zum kryptographischen Bearbeiten von Daten
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
US9832022B1 (en) 2015-02-26 2017-11-28 Altera Corporation Systems and methods for performing reverse order cryptographic operations on data streams
JP6273226B2 (ja) * 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
JP6273223B2 (ja) * 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP6273225B2 (ja) * 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
CN104602209A (zh) * 2015-02-27 2015-05-06 中国科学院大学 一种基于rsa和流密码算法的联合信源短信加密解密方法
US9107152B1 (en) 2015-03-11 2015-08-11 Gimbal, Inc. Beacon protocol advertising bi-directional communication availability window
WO2016155779A1 (en) * 2015-03-30 2016-10-06 Irdeto B.V. Data protection
US9697359B2 (en) 2015-04-15 2017-07-04 Qualcomm Incorporated Secure software authentication and verification
US9703973B2 (en) * 2015-04-28 2017-07-11 International Business Machines Corporation Customer load of field programmable gate arrays
EP3089398B1 (en) * 2015-04-30 2017-10-11 Nxp B.V. Securing a cryptographic device
US10979553B2 (en) 2015-05-15 2021-04-13 Overhead Door Corporation Near field communications activated door access panel
US9697340B2 (en) * 2015-06-14 2017-07-04 Guardtime IP Holdings, Ltd. System and methods with assured one-time, replay-resistant passwords
US10122689B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Load balancing with handshake offload
US10122692B2 (en) 2015-06-16 2018-11-06 Amazon Technologies, Inc. Handshake offload
DE102015211540A1 (de) * 2015-06-23 2016-12-29 Bayerische Motoren Werke Aktiengesellschaft Verfahren, Server, Firewall, Steuergerät, und System zur Programmierung eines Steuergeräts eines Fahrzeugs
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
US10924270B2 (en) * 2015-08-31 2021-02-16 Nec Corporation Secret calculation system, secret calculation apparatus, and secret calculation method
US9660803B2 (en) 2015-09-15 2017-05-23 Global Risk Advisors Device and method for resonant cryptography
CN105224831B (zh) * 2015-09-29 2018-06-15 深圳市九洲电器有限公司 终端设备标识数据写入方法及系统
WO2017058221A1 (en) * 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development Lp Cryptographic-based initialization of memory content
US10025600B2 (en) * 2015-10-02 2018-07-17 Google Llc NAND-based verified boot
US9876641B2 (en) * 2015-10-08 2018-01-23 The Boeing Company Data dependent authentication keys for differential power analysis resistant authentication
CN105376053B (zh) * 2015-10-26 2019-10-18 宁波大学 基于Keccak杂凑算法的图像密钥生成方法
GB201519612D0 (en) * 2015-11-06 2015-12-23 Nagravision Sa Key sequence generation for cryptographic operations
AT517983B1 (de) * 2015-11-18 2018-11-15 Siemens Ag Oesterreich Schutz eines Computersystems vor Seitenkanalattacken
EP3179668B1 (en) * 2015-12-11 2019-05-22 Institut Mines-Télécom Methods and devices for estimating secret values
WO2017106406A1 (en) * 2015-12-16 2017-06-22 Cryptography Research, Inc. Cryptographic management of lifecycle states
EP3185464B1 (en) 2015-12-21 2020-05-20 Hewlett-Packard Development Company, L.P. Key generation information trees
US9930021B2 (en) * 2016-01-05 2018-03-27 Intel Corporation Secure devices using entropy multiplexing
US10382210B2 (en) 2016-01-10 2019-08-13 Apple Inc. Secure device pairing
KR101772554B1 (ko) 2016-02-02 2017-08-30 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
EP3220306B1 (en) * 2016-02-22 2018-11-07 Eshard Method of testing the resistance of a circuit to a side channel analysis
US10089116B2 (en) * 2016-03-18 2018-10-02 Uber Technologies, Inc. Secure start system for an autonomous vehicle
US9946890B2 (en) 2016-03-18 2018-04-17 Uber Technologies, Inc. Secure start system for an autonomous vehicle
US20190305927A1 (en) * 2016-03-18 2019-10-03 University Of Florida Research Foundation Incorporated Bitstream security based on node locking
WO2017173136A1 (en) * 2016-03-30 2017-10-05 The Athena Group, Inc. Key update for masker keys
US10010801B2 (en) * 2016-03-31 2018-07-03 Shenzhen Bell Creative Science and Education Co., Ltd. Connection structures of modular assembly system
EP3398109B1 (en) * 2016-04-07 2021-11-03 Nagravision S.A. Flexible cryptographic device
NL2016671B1 (en) * 2016-04-25 2017-11-07 Fugro N V GNSS Message Authentication.
DE102016107913A1 (de) * 2016-04-28 2017-11-16 Deutscher Genossenschafts-Verlag Eg Verfahren zur Übertragung von vertraulichen Nachrichten
US9916452B2 (en) 2016-05-18 2018-03-13 Microsoft Technology Licensing, Llc Self-contained cryptographic boot policy validation
CN106201352B (zh) * 2016-07-07 2019-11-29 广东高云半导体科技股份有限公司 非易失性fpga片上数据流文件的保密系统及解密方法
EP4131038A1 (en) 2016-07-25 2023-02-08 Apple Inc. System for and method of authenticating a component of an electronic device
US10116440B1 (en) 2016-08-09 2018-10-30 Amazon Technologies, Inc. Cryptographic key management for imported cryptographic keys
US10348502B2 (en) * 2016-09-02 2019-07-09 Blackberry Limited Encrypting and decrypting data on an electronic device
US10341102B2 (en) * 2016-09-02 2019-07-02 Blackberry Limited Decrypting encrypted data on an electronic device
US11496285B2 (en) * 2016-09-08 2022-11-08 International Business Machines Corporation Cryptographic side channel resistance using permutation networks
US10528765B2 (en) * 2016-09-16 2020-01-07 Intel Corporation Technologies for secure boot provisioning and management of field-programmable gate array images
CH712947B1 (fr) * 2016-09-23 2021-01-29 Vidoni Pierino Dispositif et méthode de sécurisation de transmission de données entre un émetteur et un récepteur.
US10318748B2 (en) * 2016-09-30 2019-06-11 Intel Corporation Techniques to protect fuses against non-destructive attacks
KR101825838B1 (ko) * 2016-10-14 2018-02-06 영남대학교 산학협력단 데이터의 부분 암호화 방법, 데이터의 부분 복호화 방법 및 부분 암호화된 데이터를 복호화하는 프로그램을 저장하는 저장매체
HUE042038T2 (hu) * 2016-10-27 2019-06-28 Hewlett Packard Development Co Cserélhetõ egység hitelesítése
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
US10547460B2 (en) 2016-11-18 2020-01-28 Qualcomm Incorporated Message-based key generation using physical unclonable function (PUF)
CN106712929A (zh) * 2016-12-30 2017-05-24 桂林电子科技大学 一种大数据的加密方法
US11190344B2 (en) * 2017-01-25 2021-11-30 Salesforce.Com, Inc. Secure user authentication based on multiple asymmetric cryptography key pairs
US20180234839A1 (en) 2017-02-13 2018-08-16 Futurewei Technologies, Inc. System and Method for User Equipment Identification and Communications
JP6894979B2 (ja) * 2017-02-24 2021-06-30 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー 分散型ブロックチェーンコンセンサスネットワークにおいて新しいブロックに署名する方法
CN106686008B (zh) * 2017-03-03 2019-01-11 腾讯科技(深圳)有限公司 信息存储方法及装置
GB2560587A (en) * 2017-03-17 2018-09-19 Univ Oxford Innovation Ltd Secure data exchange
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10984136B2 (en) * 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
US10924261B2 (en) 2017-05-22 2021-02-16 Arm Limited Efficient power distribution
US10997322B2 (en) 2017-05-22 2021-05-04 Arm Limited Efficient power distribution
US11290262B2 (en) * 2017-07-18 2022-03-29 Legic Identsystems Ag Method and devices for communicating securely between devices
US10469272B2 (en) * 2017-07-28 2019-11-05 Netapp, Inc. Methods for facilitating secure cloud compute environments and devices thereof
CN107609405B (zh) * 2017-08-03 2020-08-18 海光信息技术有限公司 一种外部安全内存装置及系统级芯片soc
US10540297B2 (en) * 2017-08-03 2020-01-21 Arm Limited Memory organization for security and reliability
US10733313B2 (en) 2018-02-09 2020-08-04 Arm Limited Counter integrity tree for memory security
US10397000B2 (en) 2017-08-14 2019-08-27 Raytheon Company Multi-level authentication for secure supply chain asset management
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
US10808280B2 (en) * 2017-09-14 2020-10-20 Colossio, Inc. Computational phylogenetic analysis
US10965456B2 (en) 2017-09-25 2021-03-30 The Boeing Company Systems and methods for facilitating data encryption and decryption and erasing of associated information
US10924263B2 (en) 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption
US10860403B2 (en) 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
CN107911210B (zh) * 2017-10-20 2019-01-22 广东省南方数字电视无线传播有限公司 视频切片加密、解密方法及相应装置
CN109726363B (zh) * 2017-10-31 2020-05-29 阿里巴巴集团控股有限公司 一种数据统计方法和装置
CN108063756B (zh) * 2017-11-21 2020-07-03 阿里巴巴集团控股有限公司 一种密钥管理方法、装置及设备
DE102018100357A1 (de) 2018-01-09 2019-07-11 Infineon Technologies Ag Chip und verfahren zum sicheren speichern von geheimen daten
US10706179B2 (en) * 2018-01-10 2020-07-07 General Electric Company Secure provisioning of secrets into MPSoC devices using untrusted third-party systems
FR3076925B1 (fr) 2018-01-16 2020-01-24 Proton World International N.V. Fonction cryptographique
US10719607B2 (en) * 2018-03-19 2020-07-21 Nxp B.V. Data integrity verification in a non-volatile memory
CN108521325B (zh) * 2018-03-27 2021-09-21 林喆昊 一种适用于系统数据全生命周期的防侧信道攻击方法
US10826694B2 (en) 2018-04-23 2020-11-03 International Business Machines Corporation Method for leakage-resilient distributed function evaluation with CPU-enclaves
US10673617B1 (en) * 2018-04-24 2020-06-02 George Antoniou Methods, system and point-to-point encryption device microchip for AES-sea 512-bit key using identity access management utilizing blockchain ecosystem to improve cybersecurity
US10404454B1 (en) 2018-04-25 2019-09-03 Blockchain Asics Llc Cryptographic ASIC for derivative key hierarchy
EP3791304A4 (en) * 2018-05-11 2022-03-30 Lattice Semiconductor Corporation FAILURE CHARACTERIZATION SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC DEVICES
WO2019217925A1 (en) 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Key provisioning systems and methods for programmable logic devices
US11496445B2 (en) * 2018-05-23 2022-11-08 Sideassure, Inc. Electronic device for secure communications with an automobile
US10892903B2 (en) * 2018-05-29 2021-01-12 Ememory Technology Inc. Communication system capable of preserving a chip-to-chip integrity
CN108830207A (zh) * 2018-06-06 2018-11-16 成都邑教云信息技术有限公司 一种互联网教育告警系统
US11005663B2 (en) * 2018-08-13 2021-05-11 Seagate Technology Llc Secure audit scheme in a distributed data storage system
CN111492353B (zh) * 2018-08-15 2023-07-18 华为技术有限公司 一种安全的数据转移装置、系统和方法
CN109460309B (zh) * 2018-09-26 2020-09-22 华南理工大学 一种基于FPGA的Keccak算法故障检测系统
CN109471675B (zh) * 2018-10-30 2021-11-19 北京无限自在文化传媒股份有限公司 一种对于硬件执行改变的方法及其系统
RU2710669C1 (ru) * 2018-11-06 2019-12-30 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ шифрования данных
US11240025B2 (en) * 2018-11-09 2022-02-01 Ares Technologies, Inc. Systems and methods for distributed key storage
CN109286501B (zh) * 2018-11-13 2021-07-13 北京深思数盾科技股份有限公司 用于加密机的认证方法以及加密机
CN109558759B (zh) * 2018-11-20 2021-05-14 电子科技大学 一种用于非接触式智能卡电磁攻击的模拟信号调理电路
EP3661243A1 (en) * 2018-11-29 2020-06-03 Nagravision S.A. Secure beacons
CN109617867B (zh) * 2018-12-04 2020-08-14 海南高信通科技有限公司 一种用于家居设备控制的智能网关系统
KR102567097B1 (ko) * 2018-12-05 2023-08-14 삼성전자주식회사 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
ES2941787T3 (es) * 2018-12-20 2023-05-25 Merck Patent Gmbh Métodos y sistemas para preparar y realizar una autenticación de objeto
US11055409B2 (en) * 2019-01-06 2021-07-06 Nuvoton Technology Corporation Protected system
EP3697020A1 (de) * 2019-02-15 2020-08-19 Siemens Aktiengesellschaft Verfahren zum betreiben von im zähler-modus betriebenen schlüsselstromgeneratoren zur sicheren datenübertragung, schlüsselstromgenerator mit zähler-modus-betrieb zur sicheren datenübertragung und computer-programm-produkt zur schlüsselstromerzeugung
KR102621645B1 (ko) * 2019-03-12 2024-01-05 삼성전자주식회사 보안 집적 회로를 포함하는 전자 장치
DE102019109341B4 (de) * 2019-04-09 2023-07-20 Nicolai Roider Verfahren zum sicheren Austausch von verschlüsselten Nachrichten
US11128471B2 (en) * 2019-04-25 2021-09-21 Microsoft Technology Licensing, Llc Accessibility controls in distributed data systems
CN110213228B (zh) * 2019-04-25 2021-09-07 平安科技(深圳)有限公司 一种认证通信的方法、装置、存储介质及计算机设备
US10554637B1 (en) * 2019-05-01 2020-02-04 Cyberark Software Ltd. Secure and reconstructible distribution of data among network resources
CN110321737B (zh) * 2019-06-28 2020-12-11 兆讯恒达科技股份有限公司 一种数据加密标准协处理器防注入式攻击的方法
US11645393B2 (en) 2019-06-28 2023-05-09 Seagate Technology Llc Secure booting in a data storage device with front end bus
EP3767849A1 (en) 2019-07-18 2021-01-20 Nagravision SA A hardware component and a method for implementing a camouflage of current traces generated by a digital system
WO2021041793A2 (en) * 2019-08-29 2021-03-04 Carnegie Mellon University Method for securing logic circuits
TWI720694B (zh) * 2019-11-18 2021-03-01 中華電信股份有限公司 具時間序列演算之燒錄認證裝置及方法
US11582021B1 (en) * 2019-11-20 2023-02-14 Xilinx, Inc. Protection against differential power analysis attacks involving initialization vectors
KR102094705B1 (ko) * 2020-01-17 2020-03-30 주식회사 에프엔에스벨류 블록 체인을 기반으로 한 다중 노드 인증 방법 및 이를 위한 장치
US11403433B2 (en) 2020-01-17 2022-08-02 Visa International Service Association System, method, and computer program product for encrypting sensitive data using a field programmable gate array
WO2021144654A1 (en) * 2020-01-19 2021-07-22 Mobileye Vision Technologies Ltd. Anonymous collection of data from a group of entitled members
EP3860035A1 (en) * 2020-01-29 2021-08-04 Sebastien Armleder Storing and determining a data element
FR3106909B1 (fr) * 2020-01-31 2022-02-18 St Microelectronics Grenoble 2 Circuit intégré configuré pour réaliser des opérations de chiffrement symétrique avec protection de clé secrète
US11265144B2 (en) 2020-03-09 2022-03-01 International Business Machines Corporation Consistent ciphertext creation
EP3893431A1 (de) * 2020-04-06 2021-10-13 Siemens Aktiengesellschaft Authentifizierung einer konfiguration einer feldprogrammierbaren logikgatter-anordnung
US11573929B2 (en) * 2020-04-09 2023-02-07 Kyndryl, Inc. Deduplication of encrypted data using multiple keys
WO2021212339A1 (en) * 2020-04-21 2021-10-28 Citrix Systems, Inc. Secure translation of sensitive content
US11368287B2 (en) 2020-05-19 2022-06-21 International Business Machines Corporation Identification of a creator of an encrypted object
US20210367794A1 (en) * 2020-05-21 2021-11-25 Cryptotronix, LLC Device provisioning system
US11416621B2 (en) 2020-06-18 2022-08-16 Micron Technology, Inc. Authenticating software images
US11599679B2 (en) * 2020-06-23 2023-03-07 Arm Limited Electromagnetic and power noise injection for hardware operation concealment
US11416639B2 (en) * 2020-06-29 2022-08-16 Nuvoton Technology Corporation PQA unlock
US11789565B2 (en) 2020-08-18 2023-10-17 Intel Corporation Lid controller hub architecture for improved touch experiences
CN112333698B (zh) * 2020-11-18 2021-08-24 深圳大师科技有限公司 一种手游终端加密认证方法及装置
US11809493B2 (en) * 2021-01-19 2023-11-07 Micro Focus Llc System and method for tokenization of data
US11501027B2 (en) * 2021-02-08 2022-11-15 Micron Technology, Inc. Mechanism to support writing files into a file system mounted in a secure memory device
US11539503B2 (en) 2021-03-03 2022-12-27 Red Hat, Inc. Container management for cryptanalysis attack protection
US11929992B2 (en) * 2021-03-31 2024-03-12 Sophos Limited Encrypted cache protection
US11394308B1 (en) 2021-05-05 2022-07-19 Arm Limited Apparatuses and methods for power isolation
US11574079B2 (en) 2021-05-27 2023-02-07 Nuvoton Technology Corporation Multi-stage provisioning of secret data
US11494330B2 (en) * 2021-06-22 2022-11-08 Intel Corporation Fuse recipe update mechanism
CN113591089A (zh) * 2021-08-12 2021-11-02 上海观安信息技术股份有限公司 一种数据混淆加密方法
CN113703838B (zh) * 2021-08-30 2024-01-05 远景智能国际私人投资有限公司 设备控制方法、装置、设备及存储介质
US11783043B2 (en) * 2021-11-23 2023-10-10 ZT Group Int'l, Inc. Methods for authentication of firmware images in embedded systems
US20230269065A1 (en) * 2022-02-24 2023-08-24 FortifyIQ, Inc. Carry-based differential power analysis and its application to testing for vulnerability of sha-2 and hmac-sha-2 to side channel attack
TWI819516B (zh) * 2022-03-09 2023-10-21 瑞昱半導體股份有限公司 基於消息驗證的金鑰擴展的處理方法與電路
TWI806577B (zh) * 2022-04-28 2023-06-21 瑞昱半導體股份有限公司 數位簽章方法及數位簽章的驗證方法
US20240004556A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Asynchronous operation completion notification
CN115361140B (zh) * 2022-08-19 2023-11-24 广州万协通信息技术有限公司 安全芯片密钥验证方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002520905A (ja) * 1998-07-02 2002-07-09 クリプターグラフィー リサーチ インコーポレイテッド 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
JP2009524153A (ja) * 2006-01-18 2009-06-25 ヴォーメトリック インコーポレイテッド セキュリティ保護されたデジタルデータのアーカイビング及びアクセス監査システム及び方法

Family Cites Families (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20338A (en) * 1858-05-25 Window-spring
US4694491A (en) 1985-03-11 1987-09-15 General Instrument Corp. Cryptographic system using interchangeable key blocks and selectable key fragments
US4972472A (en) 1985-03-15 1990-11-20 Tandem Computers Incorporated Method and apparatus for changing the master key in a cryptographic system
JPH01114995A (ja) 1987-10-29 1989-05-08 Toppan Printing Co Ltd Icカード
JP2698588B2 (ja) 1987-11-13 1998-01-19 株式会社東芝 携帯可能電子装置
US5115133A (en) 1990-04-19 1992-05-19 Inomet, Inc. Testing of body fluid constituents through measuring light reflected from tympanic membrane
JPH04251186A (ja) 1991-01-08 1992-09-07 Kobe Steel Ltd 液体処理用マイクロ波溶融炉
US5268962A (en) * 1992-07-21 1993-12-07 Digital Equipment Corporation Computer network with modified host-to-host encryption keys
US5297207A (en) 1993-05-24 1994-03-22 Degele Steven T Machine generation of cryptographic keys by non-linear processes similar to processes normally associated with encryption of data
US5454037A (en) 1993-10-28 1995-09-26 Grayline International Limited Portable secure-telephone communications module
US5513261A (en) * 1993-12-29 1996-04-30 At&T Corp. Key management scheme for use with electronic cards
US5491749A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for entity authentication and key distribution secure against off-line adversarial attacks
CA2176032A1 (en) * 1994-01-13 1995-07-20 Bankers Trust Company Cryptographic system and method with key escrow feature
US5511123A (en) 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5754659A (en) 1995-12-22 1998-05-19 General Instrument Corporation Of Delaware Generation of cryptographic signatures using hash keys
FR2745924B1 (fr) 1996-03-07 1998-12-11 Bull Cp8 Circuit integre perfectionne et procede d'utilisation d'un tel circuit integre
US6901509B1 (en) * 1996-05-14 2005-05-31 Tumbleweed Communications Corp. Apparatus and method for demonstrating and confirming the status of a digital certificates and other data
US6587563B1 (en) 1997-02-15 2003-07-01 Apple Computer, Inc. Cryptographic system using chaotic dynamics
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
US5978475A (en) * 1997-07-18 1999-11-02 Counterpane Internet Security, Inc. Event auditing system
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
WO1999035782A1 (en) * 1998-01-02 1999-07-15 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
US6049878A (en) * 1998-01-20 2000-04-11 Sun Microsystems, Inc. Efficient, secure multicasting with global knowledge
US7809138B2 (en) * 1999-03-16 2010-10-05 Intertrust Technologies Corporation Methods and apparatus for persistent control and protection of content
ATE548819T1 (de) 1998-06-03 2012-03-15 Cryptography Res Inc Symmetrisches kryptographisches rechenverfahren und vorrichtung zur verlustminimierung bei chipkarten und anderen verschlüsselungssystemen
ATE418099T1 (de) 1998-06-03 2009-01-15 Cryptography Res Inc Gesicherte moduläre potenzierung mit leckminimierung für chipkarten und andere kryptosysteme
CA2333095C (en) 1998-06-03 2005-05-10 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
WO1999063696A1 (en) 1998-06-03 1999-12-09 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
US6816968B1 (en) * 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
US6385727B1 (en) * 1998-09-25 2002-05-07 Hughes Electronics Corporation Apparatus for providing a secure processing environment
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6188987B1 (en) * 1998-11-17 2001-02-13 Dolby Laboratories Licensing Corporation Providing auxiliary information with frame-based encoded audio information
US6917685B1 (en) * 1999-02-04 2005-07-12 Meteora System Co., Ltd. IP key management mechanism with divergence barrier increasing entropy against computational crypto-analyses
US6654889B1 (en) 1999-02-19 2003-11-25 Xilinx, Inc. Method and apparatus for protecting proprietary configuration data for programmable logic devices
US6735313B1 (en) * 1999-05-07 2004-05-11 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
EP1075108A1 (en) * 1999-07-23 2001-02-07 BRITISH TELECOMMUNICATIONS public limited company Cryptographic data distribution
US6289455B1 (en) * 1999-09-02 2001-09-11 Crypotography Research, Inc. Method and apparatus for preventing piracy of digital content
US7434046B1 (en) * 1999-09-10 2008-10-07 Cisco Technology, Inc. Method and apparatus providing secure multicast group communication
US6724894B1 (en) 1999-11-05 2004-04-20 Pitney Bowes Inc. Cryptographic device having reduced vulnerability to side-channel attack and method of operating same
CN1779689A (zh) * 2000-01-21 2006-05-31 索尼公司 数据处理设备和数据处理方法
JP2001211153A (ja) * 2000-01-25 2001-08-03 Murata Mach Ltd 秘密鍵生成方法
CA2298990A1 (en) * 2000-02-18 2001-08-18 Cloakware Corporation Method and system for resistance to power analysis
JP4622064B2 (ja) * 2000-04-06 2011-02-02 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
RU2002100081A (ru) * 2000-04-06 2003-07-27 Сони Корпорейшн (JP) Система и способ обработки информации
US7089240B2 (en) * 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
JP2001358707A (ja) * 2000-06-15 2001-12-26 Sony Corp 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体
MXPA02001533A (es) * 2000-06-15 2002-07-02 Sony Corp Sistema de procesamiento de informacion y metodo que utiliza bloque de claves de criptografiado.
JP4660899B2 (ja) * 2000-07-24 2011-03-30 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム提供媒体
US7539313B1 (en) * 2000-09-13 2009-05-26 Nortel Networks Limited System and method for key management across geographic domains
US6993138B1 (en) * 2000-09-14 2006-01-31 Nortel Networks Limited Spatial key trees for key management in wireless environments
US6931543B1 (en) 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US7117373B1 (en) 2000-11-28 2006-10-03 Xilinx, Inc. Bitstream for configuring a PLD with encrypted design data
US20020141593A1 (en) * 2000-12-11 2002-10-03 Kurn David Michael Multiple cryptographic key linking scheme on a computer system
JP4710132B2 (ja) * 2000-12-26 2011-06-29 ソニー株式会社 情報処理システム、および情報処理方法、並びにプログラム記録媒体
US7039803B2 (en) * 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
JP4019303B2 (ja) 2001-02-02 2007-12-12 日本電気株式会社 電子透かしに含めた暗号鍵を用いた暗号化装置及び復号化装置並びにそれらの方法
US20020131592A1 (en) * 2001-03-16 2002-09-19 Harris Hinnant Entropy sources for encryption key generation
US7028191B2 (en) * 2001-03-30 2006-04-11 Michener John R Trusted authorization device
JP4976622B2 (ja) 2001-06-22 2012-07-18 東日本旅客鉄道株式会社 踏切制御装置及び踏切制御ネットワーク
JP4193380B2 (ja) * 2001-07-05 2008-12-10 Kddi株式会社 ストリーム転送における電子署名システム
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
GB0124670D0 (en) * 2001-10-15 2001-12-05 Hewlett Packard Co Method and apparatus for encrypting data
US7333616B1 (en) * 2001-11-14 2008-02-19 Omniva Corp. Approach for managing access to messages using encryption key management policies
US7543159B2 (en) * 2001-11-14 2009-06-02 International Business Machines Corporation Device and method with reduced information leakage
US7194633B2 (en) * 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
US7308583B2 (en) * 2002-01-25 2007-12-11 Matsushita Electric Industrial Co., Ltd. Data distribution system
US7340603B2 (en) * 2002-01-30 2008-03-04 Sony Corporation Efficient revocation of receivers
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US7545931B2 (en) * 2002-04-12 2009-06-09 Microsoft Corporation Protection of application secrets
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US8438392B2 (en) * 2002-06-20 2013-05-07 Krimmeni Technologies, Inc. Method and system for control of code execution on a general purpose computing device and control of code execution in a recursive security protocol
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
EP1540875A4 (en) * 2002-08-28 2011-01-26 Ntt Docomo Inc ENCRYPTION ON THE BASIS OF CERTIFICATES AND PUBLIC KEY INFRASTRUCTURE
KR100940202B1 (ko) * 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
KR100924773B1 (ko) * 2002-09-16 2009-11-03 삼성전자주식회사 메타데이터 암호화 및 복호화 방법과 암호화된 메타데이터관리 방법 및 그 시스템
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US20090319802A1 (en) * 2002-12-02 2009-12-24 Silverbrook Research Pty Ltd Key Genaration In An Integrated Circuit
US20050210179A1 (en) * 2002-12-02 2005-09-22 Walmsley Simon R Integrated circuit having random clock or random delay
US7121639B2 (en) * 2002-12-02 2006-10-17 Silverbrook Research Pty Ltd Data rate equalisation to account for relatively different printhead widths
US7613925B2 (en) * 2003-01-10 2009-11-03 Motorola, Inc. Method for authenticating a message
AU2003244970A1 (en) 2003-06-25 2005-01-04 Nokia Corporation Digital rights management
US7581094B1 (en) * 2003-07-09 2009-08-25 Hewlett-Packard Development Company, L.P. Cryptographic checksums enabling data manipulation and transcoding
GB2404538A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital content
GB2404486A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404487A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404488B (en) * 2003-07-31 2006-05-31 Sony Uk Ltd Access control for digital content
GB2404489A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404467A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital content
US7366302B2 (en) * 2003-08-25 2008-04-29 Sony Corporation Apparatus and method for an iterative cryptographic block
EP1519530A1 (en) * 2003-09-29 2005-03-30 STMicroelectronics S.r.l. Method for establishing an encrypted communication by means of keys
US20050091496A1 (en) * 2003-10-23 2005-04-28 Hyser Chris D. Method and system for distributed key management in a secure boot environment
US7996671B2 (en) * 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
CN1886712B (zh) * 2003-11-28 2010-09-08 松下电器产业株式会社 数据处理装置
KR100982515B1 (ko) * 2004-01-08 2010-09-16 삼성전자주식회사 해시 체인을 이용하여 디지털 컨텐츠의 접근 횟수를제한하는 장치 및 방법
US7607025B1 (en) * 2004-02-26 2009-10-20 Xilinx, Inc. Methods of intrusion detection and prevention in secure programmable logic devices
US20050210014A1 (en) * 2004-03-08 2005-09-22 Sony Corporation Information-processing method, decryption method, information-processing apparatus and computer program
US20050213751A1 (en) * 2004-03-26 2005-09-29 Apostolopoulos John J Methods and systems for generating transcodable encrypted content
JP2005286959A (ja) * 2004-03-31 2005-10-13 Sony Corp 情報処理方法、復号処理方法、および情報処理装置、並びにコンピュータ・プログラム
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7483906B2 (en) * 2004-04-14 2009-01-27 Microsoft Corporation Method and system for renaming consecutive keys in a B-tree
EP1745587A1 (en) * 2004-05-12 2007-01-24 Telefonaktiebolaget LM Ericsson (publ) Key management messages for secure broadcast
US9244979B2 (en) * 2004-07-02 2016-01-26 Oracle International Corporation Determining predicate selectivity in query costing
US20060021066A1 (en) * 2004-07-26 2006-01-26 Ray Clayton Data encryption system and method
US20120115455A1 (en) * 2004-07-26 2012-05-10 Bindu Rama Rao Secure bootstrap provisioning of electronic devices in carrier networks
US20060036627A1 (en) * 2004-08-06 2006-02-16 Roger Deran Method and apparatus for a restartable hash in a trie
US8750522B2 (en) * 2004-08-26 2014-06-10 Deutsche Telekom Ag Method and security system for the secure and unequivocal encoding of a security module
US20060059344A1 (en) * 2004-09-10 2006-03-16 Nokia Corporation Service authentication
KR100727387B1 (ko) * 2004-10-22 2007-06-12 삼성전자주식회사 네트워크 시스템에서의 키 관리방법
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
JP4794269B2 (ja) * 2004-11-08 2011-10-19 パナソニック株式会社 セキュアデバイスおよび中継端末
JP4496061B2 (ja) * 2004-11-11 2010-07-07 パナソニック株式会社 機密情報処理装置
US7987356B2 (en) * 2004-11-29 2011-07-26 Broadcom Corporation Programmable security platform
US8051052B2 (en) * 2004-12-21 2011-11-01 Sandisk Technologies Inc. Method for creating control structure for versatile content control
US20060242067A1 (en) * 2004-12-21 2006-10-26 Fabrice Jogand-Coulomb System for creating control structure for versatile content control
KR101167751B1 (ko) * 2005-01-12 2012-07-23 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 Rfid 트랜스폰더 보안 시스템 및 그 방법
US7689602B1 (en) * 2005-07-20 2010-03-30 Bakbone Software, Inc. Method of creating hierarchical indices for a distributed object system
US8190895B2 (en) * 2005-08-18 2012-05-29 Microsoft Corporation Authenticated key exchange with derived ephemeral keys
US8589688B2 (en) * 2005-11-04 2013-11-19 Nec Corporation Message authentication device, message authentication method, message authentication program and storage medium therefor
JP4876075B2 (ja) * 2005-11-08 2012-02-15 パナソニック株式会社 認証システム、署名生成装置、署名検証装置
JP4770494B2 (ja) * 2006-02-03 2011-09-14 株式会社日立製作所 暗号通信方法およびシステム
JP4795812B2 (ja) * 2006-02-22 2011-10-19 富士通セミコンダクター株式会社 セキュアプロセッサ
US7706538B1 (en) * 2006-04-14 2010-04-27 Oracle America, Inc. System, method and data storage device for encrypting data
US7339400B1 (en) 2006-06-09 2008-03-04 Xilinx, Inc. Interface port for electrically programmed fuses in a programmable logic device
US7424398B2 (en) * 2006-06-22 2008-09-09 Lexmark International, Inc. Boot validation system and method
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
US8261068B1 (en) * 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
EP2037388A4 (en) * 2006-07-03 2016-12-14 Panasonic Ip Man Co Ltd CERTIFICATION DEVICE, VERIFICATION DEVICE, VERIFICATION SYSTEM, COMPUTER PROGRAM, AND INTEGRATED CIRCUIT
CN101496341B (zh) * 2006-07-27 2011-11-30 松下电器产业株式会社 终端装置、服务器装置以及内容分发系统
JP4179563B2 (ja) * 2006-09-21 2008-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーション 暗号通信の暗号鍵を管理する技術
IL178488A0 (en) * 2006-10-05 2008-01-20 Nds Ltd Improved key production system
US8683212B2 (en) * 2006-10-06 2014-03-25 Broadcom Corporation Method and system for securely loading code in a security processor
KR101377455B1 (ko) * 2006-10-09 2014-04-02 삼성전자주식회사 브로드캐스트 암호화를 위한 암호화 키 생성 방법 및 장치
US8769275B2 (en) * 2006-10-17 2014-07-01 Verifone, Inc. Batch settlement transactions system and method
KR101213160B1 (ko) * 2006-11-16 2012-12-17 삼성전자주식회사 그룹 키 업데이트 방법 및 이를 이용한 그룹 키 업데이트장치
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
WO2008087734A1 (ja) * 2007-01-19 2008-07-24 Mitsubishi Electric Corporation 暗号文生成装置及び暗号通信システム及び群パラメータ生成装置
EP2122900A4 (en) * 2007-01-22 2014-07-23 Spyrus Inc PORTABLE DATA ENCRYPTION DEVICE WITH CONFIGURABLE SAFETY FUNCTIONS AND METHOD FOR FILING ENCRYPTION
KR101405915B1 (ko) * 2007-04-26 2014-06-12 삼성전자주식회사 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
US7876895B2 (en) * 2007-05-09 2011-01-25 International Business Machines Corporation System, method, and service for performing unified broadcast encryption and traitor tracing for digital content
KR100938262B1 (ko) * 2007-07-18 2010-01-22 한국전자통신연구원 비밀키 사전분배 방법
US8355982B2 (en) * 2007-08-16 2013-01-15 Verifone, Inc. Metrics systems and methods for token transactions
JP5053013B2 (ja) * 2007-09-25 2012-10-17 京セラ株式会社 受信装置、およびストリーム送信装置
JP2009145544A (ja) 2007-12-13 2009-07-02 Panasonic Corp プラズマディスプレイ装置
FR2926382B1 (fr) 2008-01-11 2010-02-26 Proton World Internat Nv Hierarchisation de cles cryptographiques dans un circuit electronique
JP5525133B2 (ja) 2008-01-17 2014-06-18 株式会社日立製作所 デジタル署名及び認証のためのシステム及び方法
JP4658150B2 (ja) * 2008-01-25 2011-03-23 Nttエレクトロニクス株式会社 暗号化方法および復号方法
US9729316B2 (en) * 2008-02-27 2017-08-08 International Business Machines Corporation Unified broadcast encryption system
CN101981864B (zh) * 2008-04-04 2015-07-22 三星电子株式会社 通信系统中用于使用加密密钥提供广播服务的方法和装置
KR101485460B1 (ko) * 2008-06-09 2015-01-23 삼성전자주식회사 브로드캐스트 암호화에서 디바이스 키를 추적하는 방법
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8595504B2 (en) * 2008-08-12 2013-11-26 Industrial Technology Research Institute Light weight authentication and secret retrieval
FR2935078B1 (fr) 2008-08-12 2012-11-16 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de protection du decryptage des fichiers de configuration de circuits logiques programmables et circuit mettant en oeuvre le procede
US7986158B2 (en) 2008-08-21 2011-07-26 OFID Microdevices, Inc. Methods, apparatuses, and products for a secure circuit
US8368517B2 (en) * 2008-08-22 2013-02-05 Hong Kong R&D Centre for Logistics and Supply Chain Management Enabling Technologies Limited RFID privacy-preserving authentication system and method
US9559842B2 (en) * 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
EP2336944A1 (en) * 2008-10-10 2011-06-22 Panasonic Corporation Information processing device, authentication system, authentication device, information processing method, information processing program, recording medium, and integrated circuit
US8095800B2 (en) 2008-11-20 2012-01-10 General Dynamics C4 System, Inc. Secure configuration of programmable logic device
US8359480B2 (en) * 2008-12-19 2013-01-22 University Of Washington Scalable RFID systems: a privacy preserving protocol with constant-time identification
US8190892B2 (en) * 2008-12-29 2012-05-29 King Fahd University Of Petroleum & Minerals Message authentication code with blind factorization and randomization
US20100169658A1 (en) * 2008-12-30 2010-07-01 Lahouari Ghouti Elliptic curve-based message authentication code
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
KR101062995B1 (ko) * 2009-01-19 2011-09-07 충남대학교산학협력단 Scada 시스템 통신 환경에 효율적인 키 관리 방법
US8280056B2 (en) * 2009-01-29 2012-10-02 Fortress Applications Ltd. System and methods for encryption with authentication integrity
US9112862B2 (en) * 2009-02-02 2015-08-18 Adobe Systems Incorporated System and method for parts-based digital rights management
US20120099948A1 (en) 2010-10-21 2012-04-26 Digi-Star, LLC, a Wisconsin Limited Liability Company Automatic start / stop controls for agricultural load and transfer equipment
US8194858B2 (en) * 2009-02-19 2012-06-05 Physical Optics Corporation Chaotic cipher system and method for secure communication
WO2010121020A1 (en) * 2009-04-15 2010-10-21 Interdigital Patent Holdings, Inc. Validation and/or authentication of a device for communication with a network
US20100278338A1 (en) * 2009-05-04 2010-11-04 Mediatek Singapore Pte. Ltd. Coding device and method with reconfigurable and scalable encryption/decryption modules
WO2011037665A2 (en) * 2009-08-04 2011-03-31 Carnegie Mellon University Methods and apparatuses for user-verifiable trusted path in the presence of malware
WO2011034456A1 (en) * 2009-09-16 2011-03-24 Lsi Corporation Hash processing using a processor with a plurality of arithmetic logic units
EP2520044B1 (en) * 2009-09-29 2016-11-09 Memjet Technology Limited Communication system, method and device with limited encryption key retrieval
US9094195B2 (en) * 2009-10-02 2015-07-28 Andrew LEPPARD Protecting de-duplication repositories against a malicious attack
EP2497057A1 (en) * 2009-11-06 2012-09-12 Emue Holdings Pty Ltd A method and a system for validating identifiers
JP5552541B2 (ja) * 2009-12-04 2014-07-16 クリプトグラフィ リサーチ, インコーポレイテッド 検証可能な耐漏洩性暗号化および復号化
US8261085B1 (en) 2011-06-22 2012-09-04 Media Patents, S.L. Methods, apparatus and systems to improve security in computer systems
US9552493B2 (en) * 2015-02-03 2017-01-24 Palo Alto Research Center Incorporated Access control framework for information centric networking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002520905A (ja) * 1998-07-02 2002-07-09 クリプターグラフィー リサーチ インコーポレイテッド 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
JP2009524153A (ja) * 2006-01-18 2009-06-25 ヴォーメトリック インコーポレイテッド セキュリティ保護されたデジタルデータのアーカイビング及びアクセス監査システム及び方法

Also Published As

Publication number Publication date
US20110138192A1 (en) 2011-06-09
EP2507708B1 (en) 2019-03-27
US11074349B2 (en) 2021-07-27
US20170177874A1 (en) 2017-06-22
KR20120098764A (ko) 2012-09-05
TWI440351B (zh) 2014-06-01
US9367693B2 (en) 2016-06-14
JP5552541B2 (ja) 2014-07-16
WO2011068996A1 (en) 2011-06-09
US20160048684A1 (en) 2016-02-18
EP3537653A1 (en) 2019-09-11
US8977864B2 (en) 2015-03-10
US9940463B2 (en) 2018-04-10
US8386800B2 (en) 2013-02-26
US10262141B2 (en) 2019-04-16
EP2507708A4 (en) 2016-01-06
US8707052B2 (en) 2014-04-22
IL219906A0 (en) 2012-07-31
TW201141173A (en) 2011-11-16
JP2014131354A (ja) 2014-07-10
US20220083665A1 (en) 2022-03-17
EP3537653B1 (en) 2022-06-01
JP2013513312A (ja) 2013-04-18
US20180004957A1 (en) 2018-01-04
CN102725737B (zh) 2016-04-20
EP2507708A1 (en) 2012-10-10
US20160026826A1 (en) 2016-01-28
US9569623B2 (en) 2017-02-14
CN102725737A (zh) 2012-10-10
JP5805249B2 (ja) 2015-11-04
US20150280907A1 (en) 2015-10-01
US9576133B2 (en) 2017-02-21
US20140247944A1 (en) 2014-09-04
IL219906A (en) 2017-05-29
US20190377879A1 (en) 2019-12-12
US20130173928A1 (en) 2013-07-04
US11797683B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
US11797683B2 (en) Security chip with resistance to external monitoring attacks
US10482291B2 (en) Secure field-programmable gate array (FPGA) architecture
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
US8909932B2 (en) Method and apparatus for security over multiple interfaces
EP1763719A1 (en) Systems and methods for binding a hardware component and a platform
JP2015534419A (ja) 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
US8774407B2 (en) System and method for executing encrypted binaries in a cryptographic processor
US11861597B1 (en) Database encryption wallet

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: 20200225

Year of fee payment: 4