JP2014131354A - 検証可能な耐漏洩性暗号化および復号化 - Google Patents

検証可能な耐漏洩性暗号化および復号化 Download PDF

Info

Publication number
JP2014131354A
JP2014131354A JP2014065462A JP2014065462A JP2014131354A JP 2014131354 A JP2014131354 A JP 2014131354A JP 2014065462 A JP2014065462 A JP 2014065462A JP 2014065462 A JP2014065462 A JP 2014065462A JP 2014131354 A JP2014131354 A JP 2014131354A
Authority
JP
Japan
Prior art keywords
key
encrypted data
value
hash
message
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2014065462A
Other languages
English (en)
Other versions
JP5805249B2 (ja
Inventor
C Kocher Paul
コッヘル,ポール,シー.
Rohatgi Pankaj
ロハギ,パンカジ
M Jaffe Joshua
ジャッフェ,ジョシュア,エム.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cryptography Research Inc
Original Assignee
Cryptography Research Inc
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 Cryptography Research Inc filed Critical Cryptography Research Inc
Publication of JP2014131354A publication Critical patent/JP2014131354A/ja
Application granted granted Critical
Publication of JP5805249B2 publication Critical patent/JP5805249B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/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

【課題】外部監視攻撃に対するセキュリティを提供する形で機密データを暗号化および復号化する。
【解決手段】暗号化装置は、復号化装置にも同様に周知のベース秘密暗号値(鍵)へのアクセスを有する。機密データは、セグメントに分解され、各セグメントは、ベース鍵およびメッセージ識別子から導出された別個の暗号鍵で暗号化され、暗号化されたセグメントのセットを生成する。暗号化装置は、ベース暗号値を用いて、バリデータ、すなわち、このメッセージ識別子用の暗号化されたセグメントが、ベース鍵へのアクセスを備えた装置によって生成されたことを証明するバリデータを生成する。復号化装置は、暗号化されたセグメントを受信すると、バリデータを用いて、メッセージ識別子と、暗号化されたセグメントが変更されていないことと、を検証する。
【選択図】図7

Description

関連出願の相互参照
本出願は、2010年12月2日出願の米国特許出願第12/958,570号および2009年12月4日出願の米国仮特許出願第61/266,948号に対する優先権を主張し、これらの出願は、それらに対するこの言及により、その全体において本明細書に援用される。
本特許は、暗号化されたデータ入力を処理するための技術に関し、より具体的には、かかるシステムおよびデータを外部監視攻撃から保護することに関する。
機密データを処理するシステムは、攻撃者による、かかるデータの無許可アクセス、開示または変更に対して保護する必要がある。暗号鍵および他の秘密へのアクセスを取得した攻撃者は、機密データを盗むかまたは改竄し、無許可コマンドの導入および秘密または専有情報の暴露を介して、システムの重要な動作の破壊などの厳しい結果に至る可能性がある。また、1つの感染した要素が、さらなる攻撃を展開するために用いられて、システムの他の要素を危険にさらす可能性がある。より具体的には、以前の研究は、攻撃者が、動作タイミング、電力消費および/または電磁放射などの装置の外部特徴を監視でき、かつこの追加情報を用いて、装置内で用いられている秘密鍵を抽出できることを示した。例えば、Kocher et al (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 Update"という名称の米国特許第6539092号は、共有マスター鍵およびインデックス値(例えばカウンタ)をトランザクション鍵に変換するための方法を提供し、この場合に、導出は、外部監視攻撃から保護される。これらの方法は、外部監視攻撃から保護されている装置が、トランザクション鍵の導出に寄与できる用途でうまく働く。例えば、’092特許は、スマートカードが、どのように、各トランザクションと共に増分するインデックスカウンタを維持し、次に鍵導出においてインデックスカウンタを使用できるかを説明する。
しかしながら、’092特許に説明されているように、プロトコルの参加者が、外部監視攻撃から保護されるべきだが、しかしシーケンスカウンタおよび更新鍵を記憶する能力を欠く用途が存在する。例えば、暗号文を順序不同で復号化するために繰り返し用いられる固定された不変の埋め込み鍵を含む装置などの装置が、同じ入力データを規則的に処理する必要のある場合を検討する。ファームウェア暗号化は、かかる用途の例である。ヒューズに埋め込み鍵を有するマイクロプロセッサを製造してもよく、マイクロプロセッサは、全てのリブートにおいて、信頼できない外部フラッシュからロードされたファームウエアイメージを再復号化する必要がある。ファームウエアイメージは、ときどき更新してもよいが、同じ暗号文はまた、繰り返し復号化される可能性がある。したがって、用途要件および物理的製造制約(鍵を保持するためのワンタイムプログラマブルヒューズの使用にゆえに、記憶された鍵を変更できないことなど)によって、復号化鍵が使用される回数を装置が制限することが非実用的になる可能性がある。ファームウェア発行者は、新しい暗号化されたファームウエアイメージがリリースされるたびに、新しいインデックス値で’092特許に説明された方法を用いることが可能だが、しかし復号化装置は、各リブートにおいて異なるインデックス値を用いることができない。なぜなら、暗号化装置によって用いられる値以外の値へとインデックス値を変更することが、不正確な復号化に帰着することになるであろうからである。したがって、攻撃者は、潜在的に、復号化装置に改竄されたデータセットを供給し、次に、装置がこれらの暗号文を処理する(例えば復号化する等)間に、外部特徴を監視することによって秘密鍵を回復しようと試みることができる。差分電力解析(DPA)などの統計的サイドチャネル攻撃は、異なる入力値(前述の例において、異なるファームウェア暗号文、または同じファームウェア暗号文の改竄されたバージョンなど)を処理するために装置が同じ鍵を繰り返し用いる場合に収集された測定値セットから秘密鍵を推定することができる。単一の長いメッセージ(例えば、多くのブロック暗号入力を含む)または正当なメッセージの収集(多数のファームウェアバージョンなど)からの測定値がまた、たとえ暗号文メッセージが改竄されていなくても、サイドチャネル攻撃用の十分なデータを提供する可能性がある。
もちろん、装置が全てのトランザクション用に同じ鍵を用いるいくつかの状況において、装置は、理論的にはロックアウト(例えば、トランザクションまたは失敗閾値が超過された場合に自動消滅することによる)を実行して、敵対者が観察できるトランザクション数を制限することが可能である。しかしながら、ロックアウト機構は、信頼性の心配、および失敗カウンタを記憶することに関連する困難(例えば、多くの半導体製造プロセスは、安全なオンチップ不揮発性記憶装置を欠き、オフチップ記憶装置は、セキュリティ保護するのが難しい)など、多数の実際的な問題を持ち込む。
前述の全てを考慮すると、外部監視攻撃からの保護を伴って装置がデータを通信および交換できる検証可能で安全なやり方と、装置が偽造データを拒絶する能力と、を提供する方法が有利であろう。
本特許は、秘密暗号鍵を利用する装置を外部監視攻撃からセキュリティ保護するための、同様に装置の内部演算に関連する情報を収集する従来の暗号解析および他の攻撃(外部監視攻撃のDPAおよび他の形態など)に対してセキュリティの改善を提供するための方法を提供する。機密データを暗号化するための様々な例示的な実施形態が、本明細書において開示される。
これらの様々な実施形態は、それらの詳細においてかなり異なる場合もあるが、それらは、全て、本明細書に示す様々な実施形態に関連して容易に検証可能であるように、以下の一般的な技術内に含まれる。暗号化に関し、暗号化されるデータの各セットが、メッセージ識別子(トランザクション/メッセージカウンタ、平文のハッシュ、ランダム値、または別の一意もしくは半一意値など)に関連付けられる。暗号化装置は、メッセージ識別子、および復号化装置と共有される初期の秘密内部状態を用いて、メッセージ鍵を導出する。この導出は、共有秘密内部状態の少なくとも一部からスタートしてメッセージ鍵に至る1つまたは複数の中間鍵の連続を介した繰り返し法で実行され、各繰り返しにおいて、次の鍵は、少なくとも1つの先行鍵およびメッセージ識別子の少なくとも一部に依存する。平文は、1つまたは複数のセグメントに分解してもよい。各平文セグメントは、メッセージ鍵またはメッセージ鍵からさらに導出された鍵を含むことができる1つまたは複数の秘密鍵で暗号化され、対応する暗号化されたセグメントを生成する。典型的には、異なる鍵(または異なる鍵セット)が、各セグメント用に用いられる。
次に、暗号化装置は、復号化装置と共有される秘密鍵(メッセージ鍵、秘密の内部秘密、異なる鍵、前述のものから導出された鍵など)を用いて、少なくとも1つのバリデータを計算する。バリデータの導出は、メッセージ鍵を生成するために用いられるプロセスと似た繰り返しプロセスを用いて実行してもよく、それによって、(例えば、各中間値の生成が、その親値をハッシュすることを含む場合に)一連の変形が秘密鍵に適用されて連続値を生成する。
暗号化装置は、1つまたは複数の暗号化されたセグメントおよび1つまたは複数のバリデータを出力する。受信者がメッセージ識別子を決定できるようにする必要があるときに、追加情報もまた出力してもよい。
対応する復号化プロセス中に、復号化装置が、1つまたは複数の暗号化されたセグメント、1つまたは複数のバリデータ、および暗号化されたセグメントに対応するメッセージ識別子を受信する。次に、復号化装置は、1つまたは複数のバリデータを用いて、復号化される少なくとも第1の暗号化されたセグメントが変更されていないことを検証する。バリデータの検証には、暗号化装置と共有される秘密からスタートする一連の連続中間値であって、各中間値がその親のハッシュであり、(かつ特定のハッシュ演算が、前記暗号化されたセグメントの一部に依存する)中間値を計算することを含んでもよい。典型的には、暗号化されたセグメント用の復号化プロセスは、セグメントが変更されていないことが検証された場合にだけ進むことを許される。検証が成功した場合に、復号化装置は、同じ繰り返し鍵導出プロセス(暗号化装置が後に続く)に従うことによって、それが暗号化装置と共有する秘密内部状態を用いてメッセージ鍵(まだ導出されていない場合に)を計算する(すなわち、共有秘密内部状態の少なくとも一部からスタートし、一連の中間鍵を介して最終メッセージ鍵に至るが、各ステップにおいて、次の鍵は、メッセージ識別子の少なくとも一部および少なくとも1つの先行鍵に依存する)。各暗号化されたセグメント(変更されていないと判定された場合)は、メッセージ鍵から導出された1つまたは複数の対応する秘密鍵で復号化され、対応する平文セグメントを回復する。
鍵および暗号文ハッシュ連鎖を用いた検証可能な耐漏洩性暗号化用の全体的プロセスの例示的な実施形態を示す。 共有暗号秘密KSTARTからスタートし、経路P...Pを通して継続する耐漏洩性で鍵ツリーベースの鍵導出プロセスの例示的な実施形態を示す。図2の鍵導出プロセスは、図1および3の第1の例示的な暗号化プロセスならびに図4の第1の例示的な復号化プロセスに関連して使用可能である。それはまた、図5、11および13における他の例示的な暗号化プロセスならびに図6、12および14における他の例示的な復号化プロセスに関連して使用可能である。 暗号化用の耐漏洩性鍵および暗号文ハッシュ連鎖プロセス(例えば図1に示す全体的暗号化プロセスの一部を含む)の例示的な実施形態を示す。 図1(および図3)の暗号化プロセスに対応する、鍵および暗号文ハッシュ連鎖を用いる検証可能な耐漏洩性復号化プロセスの例示的な実施形態を示す。 鍵および平文ハッシュ連鎖を用いる検証可能な耐漏洩性暗号化プロセスの例示的な実施形態を示す。 図5の暗号化プロセスに対応する、鍵および平文ハッシュ連鎖を用いる検証可能な耐漏洩性復号化プロセスの例示的な実施形態を示す。 検証可能な耐漏洩性暗号演算が、チップ上のシステムにファームウェアをロードするために用いられる環境を示す。 検証可能な耐漏洩性暗号演算が、安全なCPUチップ内で用いられる環境であって、フラッシュおよび/またはRAMなどの外部記憶装置が信頼できない環境を示す。 検証可能な耐漏洩性暗号演算が、ビットストリームイメージをフィールドプログラマブルゲートアレイ上にロードするために用いられる環境を示す。 検証可能な耐漏洩性暗号演算が、パケットベースのネットワーク通信装置において用いられる環境を示す。 図10と同様に他の実施形態に示す環境で使用できる検証可能なパケットレベルの耐漏洩性暗号化プロセスの例示的な実施形態を示す。 図11に示す暗号化プロセスに対応する、検証可能なパケットレベルの耐漏洩性復号化プロセスの例示的な実施形態を示す。 イントラセグメント鍵変更を伴う暗号ブロック連鎖(CBC)を用いる例示的なENC()演算の例示的な実施形態を示す。 図13の暗号化演算に対応し、イントラセグメント鍵変更()を伴う暗号ブロック連鎖(CBC)を用いる例示的なDEC()演算の例示的な実施形態を示す。
本特許で説明する技術によって、パーティは、外部監視攻撃に対する向上したセキュリティを伴って、暗号で保護された機密データを通信することが可能になる。典型的には「暗号化装置」および「復号化装置」と呼ばれる2つのパーティを含む例示的な実施形態が説明されるが、用語「装置」は、便宜上選択され、システム設計におけるどんな特定の役割にも必ずしも直接対応する必要はない。装置は、要求されるわけではないが、異なるフォームファクタまたはインプリメンテーションを用いてもよい。例えば、暗号化装置および復号化装置は、両方とも携帯ハードウェア装置とすることが可能である。代替として、暗号化装置は、施設において動作するサーバ上を走行するソフトウェアアプリケーションとすることが可能であり、一方で復号化装置は、携帯ハードウェア装置とすることが可能である(逆もまた同様である)。さらに、ほとんどの暗号演算は、2つのパーティを含むが、本特許の技術は、もちろん、ただ1つのパーティを含む環境において(両方の役割が、1つのパーティおよび/もしくは装置の管理下にある安全なメモリまたは記憶システムにおいて、例えば図8に示す例示的な環境においてなど)、または2を超えるパーティおよび/もしくは装置を含む環境(図10に示す例示的な実施形態など)において適用することができる。
エントロピー再分布演算
本明細書で用いられるように、「エントロピー再分布演算」(または「エントロピー分布演算」)は、入力ビットに関する未知の情報が出力ビット間で再分布されるように、その入力を混合する演算である。例えば、xビット暗号鍵Kが、各i>1に対して鍵K=f(Ki−1)であるように、エントロピー再分布演算fで繰り返し処理されると仮定する。次に、敵対者が、鍵Kを解くための十分すぎるほどの情報を提供する、nの異なる鍵Kのそれぞれに関するyビットの情報を取得する(例えば、試みられた外部監視攻撃の一部として取得する)と仮定する(例えば、yn>x)。エントロピー分布演算fの使用によって、かかる解法を計算的に実行不可能にすることができる。暗号ハッシュ関数Hが、エントロピー再分布演算として使用可能な演算の例である。例えば、256ビットの結果を生成する強いハッシュ関数Hを検討する。ランダムな256ビット初期鍵Kが与えられたとし、各i>1に対してK=H(Ki−1)とする。(例えば)各K...K999,999の最下位ビットの知識を持った敵対者は、Kに関連するデータの1,000,000ビットを有する。無限の計算能力を備えた仮説的な敵対者は、K用の全ての可能な2256の値をテストして、最下位ビットの周知のシーケンスと一致する値を識別することによって、Kを見つけることが可能である。しかしながら、実際の敵対者は、有限の利用可能な計算能力を有するので、エントロピー再分布演算は、試みられた外部監視攻撃を介して漏洩された情報を仮定して、K(または任意の他のK)を解くための計算的に実際的な方法が存在するのを防ぐ。
エントロピー再分布演算は、限定するわけではないが、暗号ハッシュ関数、ブロック暗号(AESなど)を用いて構成された演算、擬似ランダム変換、擬似ランダム置換、他の暗号演算、またはこれらの組み合わせを用いて実行してもよい。便宜上、ハッシュに関してある例示的な実施形態を説明するが、しかし当業者は、前述に従って、代わりにまたは追加として他のエントロピー再分布関数もまた使用可能であることを理解されよう。
また、ベース演算から多数のエントロピー再分布演算を構成することができる。例として、2つの256ビットエントロピー再分布演算f()およびf()が必要とされる場合に、f()には、f()への入力と連結された演算識別子列「f0」に、SHA−256暗号ハッシュ関数を適用することを含むことが可能であり、一方でf()には、f()への入力と連結された演算識別子列「f1」にSHA−256を適用することを含むことが可能である。エントロピー再分布演算は、周知のAESブロック暗号を用いて解釈することができる。例えば、f()...fb−1()を実行するために、各f()は、その入力をAES−256鍵として用いて、0...b−1内におけるiの選択に対して一意である128ビット入力ブロックペアを暗号化して、256ビットの出力を生成する。ブロック暗号ベースの種々様々なハッシュ関数およびMAC構成がまた、背景技術において周知であり、かつまた使用可能である。
共有暗号値および演算
このセクションは、本特許で説明するように検証可能な耐漏洩性暗号演算を実行するために用いられる、暗号化装置およびその対応する復号化装置の両方によって共有されるある暗号値および/または演算を説明する。
暗号化装置および復号化装置は、それぞれが、KROOTと呼ばれる秘密鍵などのベース共有秘密暗号状態値へのアクセスを有するように設定される。この秘密状態は、例えば、EEPROM、フラッシュ、ヒューズ、または耐改竄性チップ上の他の記憶装置の1つまたは複数に記憶してもよく、かつ他の値もしくはプロセスから全体的にか部分的に導出してもよく、または外部から取得してもよい。これらの装置のそれぞれがKROOTを取得する方法には、限定するわけではないが、それぞれがKROOTを備えて製造されることと、装置が、物理的鍵インターフェースを介してKROOTを受信することによって、互いにまたは第三者を介して(例えば、RSA、ディフィー−ヘルマン、または他の公開鍵暗号技術、または対称技術を利用するプロトコルを用いて)直接KROOTを取り決めることと、ランダムにKROOTを生成することと(例えば、暗号化装置および復号化装置が同じである場合)等を含むことが可能である)。
さらに、暗号化装置および復号化装置はまた、両方とも非線形暗号エントロピー再分布演算セットf()、f()、...、fb−1()を計算でき、ここでb>1は、正の整数である。これらのbエントロピー再分布関数は、ツリー構造で構成することができる。例えば、高さQの単純なb分木構造(すなわち、0からQまでQ+1のレベルを有する)を、bの別個のエントロピー分布関数f()...fb−1()を用いることによって生成し、ツリーの各ノードにおいて、このb分木のbの可能なブランチを表すことができ、各ノードは、可能な導出鍵を表す。かかるツリーにおいて、ルート暗号鍵KSTART(レベル0にある)からスタートして、レベル1において、bの可能な導出鍵を計算することができる。すなわち、左端ブランチ用のf(KSTART)、次のブランチ用のf(KSTART)、および右端ブランチ用のfb−1(KSTART)まで継続して計算することができる。レベル2において、bの可能な鍵を導出することができる。なぜなら、f()...fb−1()のそれぞれを、bの可能なレベル1鍵のそれぞれに適用することが可能であるからである。もちろん、特定のレベル2ノードの計算には、bではなく、2つの計算を必要とするだけである(すなわち、経路上にないノードは計算されない)。ツリーは、連続的なレベル1〜Q用に継続し、ここで、先行レベルの各可能な鍵(すなわち異なるノード)は、f()...fb−1()を適用することによって処理し、今度はbの追加の可能な導出鍵を導出することができる。鍵ツリー全体は、Q+1レベルを有し、レベル0の単一ノードでスタートして、レベルiにおいてbノードで継続し、レベルQにおいてbノードで終了する。したがって、レベル0のルートノードからレベルQにおけるb最終ノードまで、bの可能な経路が存在する。異なるレベルに適用される一意の関数シーケンスに対応するかかる各可能な経路は、Q整数のシーケンスとして表すことができ、各整数は、(0...b−1)から選択される。
例えば、例示的な実施形態においてb=2である。したがって、2つのエントロピー再分布演算f()およびf()が用いられる(かつこれらの演算は、例えば上記のようにベース演算から構成してもよい)。Q=128(すなわち、高さが128である)の場合に、2128の経路が可能であり、128のエントロピー再分布関数計算が、レベル0ノード(すなわち開始鍵)からレベルQ鍵を導出するために必要とされる。
変形として、実施形態は、レベル間でbの値を変化させること、および/または特定のレベルへと取られる経路に基づいてbを変化させることなど、bの選択の際に、より多くの多様性を含むことができる。同様に、エントロピー再分布演算もまた、エントロピー再分布演算f()を様々なレベルで相違させるか、またはこれらの演算を、特定のレベルへと取られるシーケンスに依存させることなどによって、変化させることができる。
暗号化装置および復号化装置はまた、暗号の非線形的な鍵連鎖演算g()を実行でき、この演算g()は、(必ずしもではないが)関数f()とは別個であってもよい。例えば、一実施形態において、g()は、暗号ハッシュ演算からなる。様々な実施形態は、(例えば、カウンタまたはg()の適用を表す別の値で入力データをハッシュすることによって)ベース関数から構成された変形を含めて、g()の様々な適用のために異なる関数を用いることができる。
暗号化装置および復号化装置はまた、(例えば、セグメントハッシュ関数として用いられる)暗号の衝突困難性一方向ハッシュ関数h()を有し、この関数h()は、(必ずしもではないが)演算f()およびg()とは別個であってもよい。
例示的な実施形態において、演算f()、g()およびh()のそれぞれは、演算識別子および入力データの暗号ハッシュとして各演算を計算することによって、共通の暗号ハッシュ関数から構成される。演算識別子は、例えば「f#」、「g」、または「h」からなる、ゼロ終端列であってもよく、ここで#は、f()用の演算識別子が「f0」になるように、所与のf()用の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()として使用するにはそれほど魅力的ではない。
さらに他の実施形態は、エントロピー再分布演算f...b−1()を実施する際に、軽量で潜在的には暗号的に弱いストリーム暗号を潜在的に含むストリーム暗号を利用してもよい。例えば、ストリーム暗号RC4を用いてもよく、この場合に、エントロピー再分布演算入力が、RC4鍵として用いられ、RC4出力バイトが、エントロピー再分布演算出力として用いられる(またはエントロピー再分布演算出力を形成するために用いられる)。
暗号化装置および復号化装置は、対応する復号化関数DEC()を備えた秘密鍵暗号化関数(または関数セット)ENC()を有する。固定長メッセージを備えた実施形態などのいくつかの実施形態において、ENC()およびDEC()は、ECBまたはCBCモードにおけるAESなどの従来の暗号構成を用いてもよい。他の実施形態用のENC()およびDEC()の構成は、図13および図14に関連して後でそれぞれ説明する。
図1および2における例示的な実施形態
このセクションは、検証可能な耐漏洩性暗号化および復号化用の一般的技術の例示的な実施形態を説明する。この第1の例示的な実施形態は、鍵連鎖および暗号文ハッシュ連鎖を用いる。
暗号化
便宜上、暗号法における従来の命名法に従って、暗号化されるデータを呼ぶために用語「平文」を用いる。当業者が理解するように、これは、入力データが人間に判読可能であることを必ずしも意味せず、実際には、かかるデータが、本特許の技術で保護される前に、圧縮され、符号化され、暗号化さえされるのを妨げるものではない。同様に、当業者は、用語「データ」が、処理されている任意の量を含み、かつ限定するわけではないが、コンテンツ、データ、ソフトウェア、符号および任意の他のタイプの情報を含み得ることを理解されよう。
保護すべき機密平文データメッセージDが与えられ、共有ベース秘密暗号値KROOTの知識を備えていると、暗号化装置は、図1に概説するように以下のステップを実行する。第1に、暗号化装置は、機密平文データDをセグメントD、...、Dのシーケンスに分解するが(ステップ100)、ここで(L≧1)であり、セグメントのそれぞれは、受信機において着信セグメント用のメモリに入るほど十分に小さい。さらに、これらのセグメントのそれぞれにおけるサイズは、用途およびインプリメンテーションの漏洩要件を満たすように十分に小さくするべきである。セグメントは、必ずではないが、同じサイズとすることができる。さらに、他の変形がまた、(例えばENC()およびDEC()内で)鍵を変更することによって、無制限のサイズのセグメントをサポートすることができるが、これは、図13および14に関連して以下で示す。
暗号化装置はまた、(以下で示すように)Dの暗号化に関連して使用するためのメッセージ識別子(またはその先駆体)として使用可能なノンスNを生成する(ステップ101)。例えば、ノンスは、真の乱数発生器、擬似乱数発生器、真および擬似乱数発生器のある組み合わせ、カウンタ値もしくは他の(好ましくは一意もしくはめったに繰り返さない)パラメータを用いてか、または暗号化装置にとって利用可能な鍵および/もしくはデータ(例えば、Dの一部もしくは全てのハッシュにNを設定することによるDを限定ではなく含む)からNを導出することによって、生成することが可能である。図1において、所与のKROOTに対して、特定のメッセージを暗号化するために用いられるNの値は、どんな他のメッセージを暗号化するためにも用いないのが好ましい(または用いるにしても、再使用は、少しも起こらないように制限されるか、かつ/またはめったにないように制限されるべきである。
後続の例示的な実施形態において、メッセージ識別子Hが、ノンスNを用いて形成される。Nがメッセージ識別子として働く最も単純明快なインプリメンテーションにおいて、Hは、単にNと等しくてもよい。Nがメッセージ識別子に対する先駆体として働く別の例として、暗号化装置は、関数h()を用い、NのハッシュとしてHを計算することが可能である(ステップ102)。ハッシングは、例えば、計算効率のためにより少ない量を処理しながらより長いデータ値(テキスト列など)の組み込みを可能にするためにか、または計算的な単純性のために可変長データ値を均一な長さのメッセージ識別子に変換するためにか、または敵対者が有している可能性がある、Hの選択に影響を及ぼすどんな能力も低減するために、固定サイズのメッセージ識別子を生成したいと思う状況において有用である。もちろん、ハッシングは、メッセージ識別子を生成する単に1つの方法であり、当業者は、Hを生成するために、h以外の関数を用いてもよいことを理解されよう。
を計算した後で、暗号化装置は、共有ベース秘密暗号値KROOTおよびHを用い、耐漏洩性で鍵ツリーベースの鍵導出プロセスへの入力としてメッセージ鍵KMESSAGEを計算する(103)。説明の便宜上、鍵導出プロセスは、本明細書では、(例えば、暗号化装置によって実行される)暗号化の文脈において、より具体的には図1における第1の例示的な暗号化プロセスの文脈において示される。しかしながら、同じ鍵導出プロセスはまた、図4における第1の例示的な復号化プロセスにおいて用いられ、その場合に、それは、復号化装置によって実行される。同様に、鍵導出プロセスはまた、図5、11および13の例示的な暗号化プロセスならびに図6、12および14の例示的な復号化プロセスを含む他のプロセスに関連して用いられる。
例示的な鍵導出プロセスが、図2に図解されている。プロセスは、KSTART(201)と表示されたツリーの出発点および経路P...P(202)から開始する。例えば、上記の図1のステップ103において、KSTARTは、共有秘密鍵KROOTの値であり、経路P...P(202)は、Hによって決定される。(P...PへのHの変換は、以下で説明する。)経路は、KSTARTに適用される一連のエントロピー再分布演算を指定する。
例示的なインプリメンテーションにおいて、メッセージ識別子Hは、Qの部分P、P、...、Pに分解される。例示的な分解において、各部分Pは、0から(b−1)までの整数である(例えば、b=4の場合に、各Pは、2ビット値(0、1、2、または3)である)。同様に、b=2の場合に、各Pは、単一ビット(0または1)である。したがって、経路部分P...Pは、関数f()、f()、...、fb−1()を適用することによって、KSTARTからKSTART、PATHまでの特定の経路を指定するために用いられ、以下のようにKSTART、PATHにつながる複数の中間鍵を生成することができる。第1に、関数
Figure 2014131354

がKSTART(203)に適用されて中間鍵
Figure 2014131354

を生成し、その後
Figure 2014131354


Figure 2014131354

に適用して中間鍵
Figure 2014131354

(204)を生成する等であり、ついには
Figure 2014131354


Figure 2014131354

(205)に最終的に適用して最終導出鍵
Figure 2014131354

(206)を生成する。各中間鍵の導出が、少なくとも1つの先行鍵(例えば図2の場合には、その中間親)およびメッセージ識別子の関連部分に依存することに留意されたい。便宜上、この最終導出鍵を、KSTART、PATH(KSTARTからスタートしPATHをたどって到達された鍵を示す)の表記で示す。同様に、図1のステップ103の場合に、最終導出鍵(KMESSAGEに割り当てられるメッセージ鍵)は、
Figure 2014131354

で示される。なぜなら、開始鍵が、実際にKROOTにあり、経路が、実際に、単にHの分解であるP、P、...、Pであるからである。(代替実施形態において、KMESSAGEは、例えば
Figure 2014131354

をハッシュすることによって
Figure 2014131354

から導出してもよい。どちらにしても、KMESSAGEは、
Figure 2014131354

に基づいている。)
ステップ104において、データセグメントは、前記メッセージ鍵KMESSAGEに基づいた少なくとも1つの暗号鍵を用いて暗号化され、暗号文E=E、...、Eを入力セグメントD=D、...、Dから生成する。ステップ104用の例示的な実施形態が、図3に示されているが、図3は、暗号化されたセグメントE、...、Eの計算に関与するステップおよび状態を示す。
図3のプロセスは、KMESSAGEを用いて、Lの個別セグメント暗号化鍵K(i=1〜L)を計算し、各鍵は、秘密メッセージデータDの対応するセグメントD(i=1〜L)を暗号化するために用いられる。第1に、関数g()は、KMESSAGEに適用されて、第1のセグメント用に用いられる暗号化鍵のK(302)を生成する。次に、関数g()は、鍵Kに適用されて、第2のセグメント(303)用の暗号化鍵であるKを生成する等である。最後に、関数g()は、鍵KL−1に適用されて、最終セグメント(305)用の暗号化鍵であるKを生成する。このタイプのプロセスを鍵連鎖と呼ぶ。なぜなら、暗号化鍵が、互いに連鎖されるからである。
Lセグメントを暗号化するためのL鍵K、...、Kが決定された後で、セグメントの暗号化は、以下のように進む。最終(L番目)セグメントが、最初に処理されるが、この場合に、ENC()関数への平文入力(306)は、平文D...D全体を暗号的にハッシュすることによって計算されたメッセージ完全性値と連結されたL番目のデータセグメントDである。(D...Dのハッシュを含むことは、オプションである。実施形態は、これを省略するか、または「0」シーケンスのバイトもしくは他のあるパディング形態などの他のデータを連結してもよい)。このL番目の平文セグメントは、鍵Kによって暗号化され、暗号化されたセグメントE(307)を生成する。
次に、L−1番目のセグメントが、ハッシュ関数h()をEに適用し、このハッシュ値をデータセグメントDL−1に付加し、かつ結果を、L−1番目のセグメントへの暗号化入力として用いることによって、(308)において処理される。次に、(309)において、次に、L−1番目の平文セグメントが、鍵KL−1を用いて暗号化され、暗号化されたセグメントEL−1を生成する。このプロセスは、他のセグメント用に繰り返される。例えば、第2の平文セグメントに対応する暗号化入力(310)は、第2のデータセグメントD、すなわち第3の暗号化されたセグメントのハッシュであるh(E)が後続する第2のデータセグメントDから構成され、次に、入力(310)が鍵Kを用いて暗号化され、暗号化されたセグメントE(311)を生成する。最後に、第1の平文セグメントに対応する暗号化入力(312)は、第1のデータセグメントDであって、第2の暗号化されたセグメント(311)のハッシュであるh(E)が後続する第1のデータセグメントDから構成され、次に、入力(311)が、鍵Kを用いて暗号化され、暗号化されたセグメントE(313)を生成する。(前述の変形として、後続のセグメントハッシュは、暗号化される必要はない。例えば、Eは、Dを暗号化し、次に暗号化結果をEi+1のハッシュと連結することによってを形成することが可能である。)
暗号化されたセグメントE...Eは、暗号文Eを形成する。次に、図1におけるステップ104が完了される。Eの計算において各Ei+1のハッシュを用いることにより、暗号化された値は効果的に一緒に連鎖され、これは、復号化装置が、欠陥セグメントを復号化する前に、変更された(または欠陥のある)暗号文セグメントを検出できるようにする役目をする。これを「暗号文ハッシュ連鎖」と呼ぶ。上記で示す例において、各暗号文セグメントE(1<i<L)は、次の暗号文セグメントのハッシュに依存する。例えば、バリデータVが、第1の暗号文セグメント(E)のハッシュを認証するために用いられ、次にEは、Eの予想ハッシュを生成する(必要ならばDへの復号化の後で)。同様に、Eは、セグメントEのハッシュを生成する(必要ならば復号化の後で)等である。
全てのデータが1つのセグメント(すなわちL=1)にある図3のプロセスが、やはり実行可能であること(例えば、入力メッセージが小さいか、または図13に示すプロセスなどの暗号化プロセスENC()が用いられるからである)に留意されたい。L=1の場合に関して、Kだけが必要とされ、K=g(KMESSAGE)である。代替として、KMESSAGEをKとして直接用いてもよく、その場合に、演算g()は、全て省略することができる。上記のように、D...D(この場合には、L=1なので単にDである)のハッシュを含むことは、オプションである。プロセスの結果は、E=Eである。なぜなら、これがただ一つのセグメントであるからである。
再び図1を参照すると、データセグメントDが計算された後で、バリデータV、すなわち暗号化されたメッセージの許可された受信者が、復号化に先立って暗号文を認証できるようにするバリデータVが計算される。最初に、値Hが、第1の暗号化されたセグメントEのハッシュとして計算される(105)。第1のセグメントEが、他の全てのセグメントのハッシュを組み込むことを想起されたい。したがって、Eのハッシュは、実際には、セグメントEを含む全てのセグメントの内容を反映し、かつセグメントのどれも変更されていないことを検証するために用いることができる。(オプションとして、Eに加えて、Hを生成するハッシュへの入力にはまた、長さ、バージョン番号、送信者の身元、Nの値など、メッセージに関する追加情報を含んでもよい)。
次に、暗号化装置は、秘密鍵を用いてVを計算する(106)が、Vは、メッセージ識別子および暗号文セグメントEのバリデータである。バリデータVは、少なくとも1つの暗号文セグメントのハッシュ(例えば、ハッシュH=h(E))および初期秘密(例えば、KMESSAGE、または以下のパラグラフで説明するような他の値)を用いて計算される。Vの計算は、図2で説明する耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いて実行してもよく、開始鍵KSTARTはKMESSAGEであり、経路はHを用いて決定される(106)。したがって、Vの導出には、Vに至る複数の連続的な中間値を計算することが含まれ、この場合に各中間値は、少なくとも1つの先行値(例えば図2の場合には、その親値)およびハッシュ(例えばH)の関連部分に依存する。関数f()、値b等が、(要求されないが)(103)で用いられたのと同じであってもよいことに留意されたい。このプロセスは、バリデータVである(またはバリデータVを形成するためにさらに処理される)鍵
Figure 2014131354

の導出に帰着する。
前述の説明は、バリデータを導出する際にKMESSAGEで始まったが、しかし代替実施形態は、異なる値で始まってもよい。例えば、ステップ104における鍵KMESSAGEおよびステップ106における鍵KMESSAGEは、互いに異なってもよいが、しかし両方とも
Figure 2014131354

から導出される。同様に、ステップ106で用いられる鍵は、ステップ104で用いられるKMESSAGEから導出してもよく、逆も同様であり、または(KROOTに加えて)異なるベース鍵をKSTARTとして用いてもよい。もちろん、KROOT自体さえも、KSTARTとして用いてもよい(例えば、Hが、Nおよび/またはHならびに1つまたは複数の暗号文セグメントのハッシュである場合に)。
本特許において用いられるように、バリデータは、検証可能な暗号証明、すなわち、ある推定暗号文が、特定のメッセージ識別子に関連するいくらかの平文メッセージデータの暗号化の未変更バージョンであり、かつ秘密暗号値にアクセス可能なエンティティによって生成されたという検証可能な暗号証明である。ステップ106において構成されるバリデータは、便利なことに、差分電力解析および関連する外部監視攻撃に対する弱さを回避するような方法で、復号化装置などの受信者によって検証することができる。さらにまた、バリデータ生成プロセス(すなわちステップ106の実行)によって、暗号化装置は、差分電力解析および関連する外部監視攻撃に対する弱さを回避することが可能になる。
バリデータを計算した後で、暗号化プロセスは完了する。ステップ107において、結果が出力される。出力データは、受信者が、メッセージ識別子、バリデータV、および暗号化された結果E(暗号化されたセグメントE、...、Eを含む)を導出できるようにする情報(もしあれば、例えばノンスN)からなる。鍵連鎖および暗号文ハッシュ連鎖を組み合わせることによって、このタイプの暗号化プロセスは、暗号化装置に対する差分電力解析および関連する攻撃を容易にする形での、暗号化装置にある秘密鍵の再使用を回避しながら、メッセージ認証を備えた暗号的に強い出力を生成することができる。暗号化結果は、復号化装置に対する差分電力解析および関連する攻撃を容易にするような形で秘密鍵を再使用することなく、復号化装置が復号化を実行できるようにする形態で生成される。鍵ツリープロセスは、KMESSAGEおよびバリデータVの形成において鍵の再使用を制限し、一方で暗号文ハッシュ連鎖法は、データ暗号化において用いられる鍵の使用を制限する。
次のセクションは、復号化装置によって出力データをどのように連続的に復号化できるかを説明する。
復号化
図4は、図1および3の例示的な暗号化プロセスに対応する例示的な復号化プロセスを示す。前に説明したように、これには、復号化装置および暗号化装置の両方が、同じメッセージ識別子(例えば、各装置が、Hを計算できるノンスNを知っているからである)、ベース秘密暗号値KROOT、暗号関数f()、g()およびh()を導出する能力を有することを必要とする。例示的な復号化プロセスは、図2に示すのと同じ鍵導出プロセス(および鍵連鎖)を用いる。
例示的な復号化プロセスは、ステップ400において、暗号化の推定結果(すなわちメッセージ識別子(例えばノンスN)、バリデータV、およびセグメントE、...、Eを含む暗号化された結果E)を、(例えば、信頼できないデジタルインターフェースを通じて)取得することで始まる。ステップ401において、装置は、次に、受信したノンスNをハッシュすることによって値Hを計算する。ノンスが不正確に受信された場合を除いて、導出されたHは、暗号化プロセスで用いられるHと等しいことに留意されたい。ステップ402において、復号化装置は、セグメントE(および以前に暗号化中に用いられた場合には、Hの導出に組み込まれたメッセージに関する他の情報)をハッシュすることによって、値Hを計算する。ステップ403において、装置は、KSTART=KROOTおよびPATH=Hと共に、図2で説明した耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いて、メッセージ鍵KMESSAGEを計算する。ステップ404において、装置は、暗号化装置と同じ耐漏洩性で鍵ツリーベースの鍵導出プロセス(例えば、鍵KSTART=KMESSAGEおよびPATH=Hを用いる、図2におけるプロセス)を用いることによって、予想バリデータV’を計算する。ステップ405において、計算値V’は、受信されたバリデータVと比較される。予想バリデータV’が、提供されたバリデータVと一致しない場合に、プロセスはエラーで終了する(ステップ406)。なぜなら、提供されたデータが、破損されたか、故意に変更されたか、または他のあるエラーが発生した可能性があるからである。
ステップ405におけるチェックが成功した場合に、プロセスはステップ407に進み、そこでカウンタiが、値1に初期化され、鍵レジスタKが、g(KMESSAGE)を計算した結果に初期化されるが、このg(KMESSAGE)は、第1の暗号化されたセグメントEを復号化するための鍵(すなわち、図3において302とラベル付けされたKの値)である。またステップ407において、変数Hが、Hに初期化される。次に、後続の演算は、図4に示すようなループにおいて実行される。第1に、復号化される次の暗号文セグメントのハッシュ(すなわちh(E))が計算されて、予想ハッシュHと比較される(ステップ408)。比較が失敗した場合、暗号化されたセグメントは変更されたのであり、したがってプロセスはエラーで終了し(409)、さらなる復号化は実行されない。ステップ408において比較が成功した場合に、セグメントEは、ステップ410において、鍵Kと共に復号化関数DEC()を用いて復号化され、復号化されたセグメントを生成するが、この復号化されたセグメントは、平文D、すなわち次の暗号文セグメントの推定ハッシュが後に続く平文Dを含むと解釈される。Hは、この推定ハッシュ値に設定される。次に、ステップ411において、全てのLセグメントが復号化されたかどうか(すなわち、カウンタiがLと等しいかどうか)を確かめるために、チェックが実行される。カウンタがまだLに達していない場合に、ステップ412において、カウンタiは増分され、レジスタKは、K=g(K)を計算することによって、次のセグメント用の復号化鍵に更新され、プロセスは、ステップ408から先へ繰り返される。iがLに達したとステップ411が判定した場合に、Hが、予想パッドデータ(例えばD...Dのハッシュ)と等しいかどうか確かめるために、ステップ413においてチェックが実行される。このチェックが失敗した場合に、復号化は、失敗状態で終了する(414)。チェックが成功した場合に、復号化プロセスは成功であり、回復された復号化出力D=D、...、Dが、ステップ415で返される。
この実施形態において、復号化プロセスは、ストリーミング法で行うことができ(すなわち、復号化装置は、最初にN、VおよびEを取得し、次に、残るセグメントE、...、Eを1つずつ受信することが可能である)、かつやはり上記で概説したステップを実行することができる。例えば、ストリーミング演算は、復号化装置が全メッセージを保持するための十分なメモリを欠く場合か、または復号化されたデータの最初の部分が、全てのデータが受信され復号化されてしまう前に利用可能でなければならない場合に、有用である。
第2の例示的な実施形態
このセクションは、検証可能な耐漏洩性暗号化および復号化用の一般的技術の第2の例示的な実施形態を説明する。暗号文ハッシュ連鎖を用いた第1の例示的な実施形態とは対照的に、第2の例示的な実施形態は、平文ハッシュ連鎖を用いる。しかしながら、両方の場合において、鍵の再使用は、差分電力解析および関連する攻撃を防ぐために、暗号化装置および復号化装置の両方において管理される。
暗号化
暗号化装置による暗号化の第2の例示的な実施形態を図5に示すが、図5は、簡潔にするために、プロセス図および状態図の組み合わせとして示されている。暗号化装置は、暗号化すべきメッセージDと、カウンタ、ランダムに生成された値、平文ハッシュ等であってもよいメッセージ識別子Nと、を生成または取得する。
入力メッセージDは、セグメントD、...、D(L=1が可能であるが)のシーケンスに分割され、これらのセグメントは、以下のように平文セグメントB、...、Bを生成するために用いられる。第1に、セグメントB(501)が、メッセージセグメントDを、任意の所望のメッセージデータ(長さL、メッセージ識別子N、トランザクション識別子またはカウンタなどの要素を含むことが可能であり、Xとして示した)のハッシュと連結することによって形成される。次に、B(502)が、Dをh(B)(すなわちBのハッシュ)と連結することによって形成される。次に、各後続のB〜BL−1が、DをBi−1のハッシュと連結することによって形成される。最後に、最終平文セグメントB(504)が、Dをh(BL−1)と連結することによって形成される。
プロセスの次のステップ(505−508)は、第1の例示的な実施形態と同様に、各暗号化鍵がメッセージ鍵に直接または間接に基づくように、鍵連鎖プロセスを用いて、平文セグメントのそれぞれのための暗号化鍵を生成する。第2の例示的な実施形態において、第1の暗号化鍵Kは、KSTART=KROOTおよびPATH=h(N)と共に、図2で説明するような耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いて、h(N)および次にK=KMESSAGE=KROOT、h(N)を計算することによって導出された(505)メッセージ鍵KMESSAGEの値に単に設定される。i>1用の鍵Kは、g(Ki−1)、ここではg()として計算される。したがって、第2の鍵Kは、g(K)を計算した結果である(506)。このプロセスは、L−1番目の鍵(KL−1)が、g(KL−2)として計算されるように繰り返され(507)、最終セグメント鍵Kは、g(KL−1)として計算される(508)。したがって、全ての鍵Kは、メッセージ鍵KMESSAGEに基づいている(例えば、メッセージ鍵KMESSAGEに等しいか、またはそれを用いて導出される)。
プロセスにおける次のステップは、対応する鍵K、...、Kを用いて平文セグメントB、...、Bを暗号化し、暗号化されたセグメントE、...、Eを生成することである。例えば、暗号化されたセグメントEは、KでBを暗号化することによって生成され(509)、Eは、KでBを暗号化することによって生成される(510)等であり、EL−1は、KL−1でBL−1を暗号化することによって生成され(511)、Eは、KでBを暗号化することによって生成される(512)。暗号化された結果Eは、セグメントE、...、Eからなる。
プロセスにおける次のステップは、暗号化用のバリデータVの計算である(513)。最初に、ハッシュ関数h()が、h(N||E||...||E)||h(B)を計算するために用いられ、ここで「||」は連結を示す。次に、Z=h(N||E||...||E||h(B))が計算され、次にKROOT、Zが、(例えば、図2に示すように、KSTART=KROOTおよびPATH=Zと共に)耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いて計算される。次に、バリデータVは、鍵ツリー結果のハッシュ(すなわちh(KROOT、Z))として計算される。最後に、N、h(B)、EおよびバリデータVを含む暗号化プロセスの結果が提供される(514)。
上記の暗号化プロセスは、入力データDがストリーミングによって到着するか、または他の理由でDが(例えばメモリ制限ゆえに)突然処理され得なくなるシステムにおいて用いることができる。この場合に、暗号化装置は、N、h(X)およびKを取得することによって開始する。さらに、実行中のハッシュ計算が、Nで初期化される。
1. Nを生成または取得する
2. 実行中のハッシュ計算を初期化する
3. H=h(X)とする
4. K=KROOT、h(N)とする
5. 実行中のハッシュ計算をNで更新する
6. i=1とする
7. 入力データDを受信する(例えば、ストリーミングで)
8. B=DおよびHの連結を生成する
9. H=h(B)とする
10. E=ENC(K、D)を生成する
11. 実行中のハッシュ計算をEで更新する
12. Eを出力する
13. iを増分する
14. より多くの入力データがある場合に、ステップ7に進む
15. 実行中のハッシュ計算をHで更新する
16. 実行中のハッシュ計算を完結させてZに記憶する
17. V=h(KROOT、Z)を計算する
18. H(h(B)、N、Vと等しいを出力する)
復号化
復号化プロセスを図6に示す。ステップ600において、復号化装置は、(典型的には信頼できないインターフェースから)暗号化プロセスの推定結果、すなわちE、h(B)、ノンスN、バリデータVを受信する。復号化装置は、EをE、...、Eに分割し、カウンタiを1に初期化し、かつレジスタHを、受信値ハッシュh(B)に設定する。メッセージの長さLもまた、受信または決定される(例えば、1キロバイトのセグメントサイズが、1キロバイト未満でもよい最終セグメント以外の全てのセグメント用に用いられる場合に、Lは、切り上げたキロバイトにおけるメッセージ長さである)。ステップ605において、復号化装置は、Z=h(N||E||...||E||H)を計算し、ここで「||」は、連結を示す。ステップ(610)において、復号化装置は、図2に示す耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いてKROOT、Zの値を計算し(ルートはKSTART=KROOTであり、PATH=Zである)、次に、結果をハッシュしてh(KROOT、Z)を生成する。ステップ620において、復号化装置は、計算されたh(KROOT、Z)を、受信されたバリデータVと比較する。結果がVと等しくない場合には、データ破損があり、プロセスは、どんな復号化も実行せずに、ステップ611で停止される。チェックが成功した場合に、ステップ620において、復号化装置は、h(N)を計算し、次に、KSTART=KROOTおよびPATH=h(N)と共に、図2に示す耐漏洩性で鍵ツリーベースの鍵導出プロセスを用いてKROOT、h(N)を計算した結果で鍵レジスタKを初期化し、カウンタiを1に設定する。
次に、後続の演算は、ループにおいて実行される。ステップ630において、セグメントEは、鍵レジスタKにおける鍵で復号化され、データセグメントDおよびハッシュ値からなる平文セグメントBを生成する。ステップ640において、復号化された現在のセグメントからのハッシュがチェックされる。第1のセグメント(すなわちi=1)に関して、ハッシュは、h(X)と比較されるが、ここでXは、暗号化中のXと同じフィールドからなる。第1のセグメント後のセグメント(すなわちi>1)に関して、Bからのハッシュが、先行セグメントのハッシュ(すなわちh(Bi−1))と比較される。比較が失敗した場合に、復号化プロセスは、ステップ641で働かなくなる。そうでなければ、ステップ650において、Bのメッセージ部分(すなわちD)は、(例えばRAMにおける)出力バッファに追加され、鍵レジスタKは、g(K)を計算して次に結果をKに記憶することによって、次のセグメント鍵に進められる。カウンタiもまた、1だけ増分される。ステップ660において、iの値は、Lと比較され、iの値がLを超過しない場合に、復号化プロセスは、ステップ630にループバックする。そうでなければ、復号化プロセスは完了し、ステップ670において、最後の平文セグメントのハッシュ(すなわちh(B))が、受信されたハッシュHと比較される。ステップ670における比較が失敗した場合には(すなわち、値が等しくない)、エラーが発生したのであり、復号化は失敗する(ステップ671)。そうでなければ、結果データD、...、Dが、ステップ680において出力される。
この実施形態において、平文のハッシュは連鎖され、平文セグメントBには、平文Bi−1のハッシュが含まれる。この連鎖は、耐漏洩性のために厳密には必要でないが、復号化プロセス中に発生するどんな失敗も検出できるという追加的な特性を提供する。なぜなら、平文が、暗号化されたものと同じであると検証されるからである。したがって、この実施形態は、復号化プロセスにおける破損の可能性が存在する環境で用いるのに有利である。
システム、用途および変形
この時点まで、本特許は、耐漏洩性暗号化および復号化用の一般的な技術を、その技術のいくつかの例示的な実施形態と共に説明した。このセクションは、前述ものを利用できるいくつかの例示的なシステムおよび/または用途と同様に、上記の例示的な実施形態における態様の追加的な変形を説明する。
安全なファームウェアローディング
図7は、例えば、いわゆるシステムオンチップ(SoC)の一部として、機密ファームウェアを中央処理装置(CPU)上に安全にロードするための検証可能な耐漏洩性暗号法の適用を示す。便宜上、文脈に依存して、参照数字は、プロセスにおけるステップ、および/またはかかるプロセスステップによって用いられる(もしくは生成される)量を指す場合がある。この実施形態において、SoCは、CPU(703)および様々なタイプのメモリを含む単一の集積回路(700)からなる。メモリには、限定するわけではないが、コードが実行可能となる起点のランダムアクセスメモリ(RAM)(701)と、信頼できるブートストラップコードを含む読み出し専用メモリ(ROM)(704)と、共有暗号秘密KROOTを保持する秘密状態記憶メモリ(702)と、を含んでもよい。鍵記憶メモリは、限定するわけではないが、ヒューズ/アンチヒューズ、バッテリバックアップRAM、およびEEPROMなどの様々な技術を用いて実現することが可能である。SoCは、(例えば、潜在的には敵対者の管理および/または観察下にある)信頼できない電源から電力を受信する可能性がある外部電源入力部(707)を有してもよい。また、外部から供給されるクロック(708)を受信してもよく(かつPLLと共に用いて追加クロックを形成してもよい)。SoCは、データ暗号化および復号化用のAESエンジンと、限定するわけではないがSHA−1もしくはSHA−256またはAESベースのハッシュ関数エンジンなどのハッシュ関数エンジンと、図2に基づいた耐漏洩性で鍵ツリーベースの鍵導出プロセスのインプリメンテーションとを、ハッシュ関数および/またはAES関数またはそれらの変形を用いて実現された関数f()、...、fb−1()と共に備えた暗号ハードウェアコンポーネント(705)を有する。他の実施形態において、暗号ハードウェアコンポーネント(705)またはそのあるサブセットの機能全体が、ソフトウェアによって(例えばCPUによって)実行可能であることが、当業者には明白であるに違いない。
ROMにおける信頼されたブートストラップコードからのブートストラップに基づいて、SoCは、この実施形態ではフラッシュメモリ(709)である外部の信頼できない記憶装置から、信頼できないインターフェース(706)を通じて、自身の機密ソフトウェア/データをロードする。開示または無許可変更から機密ソフトウェア/データを保護するために、それらは、共有秘密暗号値KROOTを用いる装置メーカーまたは他のコード発行者によって、(例えば、図1または5に示すような)検証可能な耐漏洩性技術を用いて暗号化される。暗号化結果は、フラッシュメモリ(709)に記憶される。SoCは、最初に、暗号化されたコード/データを、フラッシュメモリ(709)から自身の内部RAM(701)にロードする。次に、SoCは、(例えば図4に示すように)耐漏洩性復号化を実行するが、この場合に、プロセスは、ROM(704)における信頼できるブートストラップコード記憶、暗号ハードウェアコンポーネント(705)において実行され、かつ鍵ストア(702)からの共有秘密鍵KROOTを用いて実行される。成功の場合に、このプロセスは、検証され復号化された機密コード/データイメージをRAMメモリ(701)内に生成し、その後、この機密コード/データイメージは、実行可能である。復号化プロセスが失敗した場合に、RAMにおける暗号化されたコード/データ(およびあらゆる部分的に復号化されたコード/データ)は廃棄され、演算は、必要な場合に最初から再開される。
この実施形態に対するオプションの拡張において、セキュリティは、ソフトウェアがロードされることになるヒューズ、バッテリバックアップメモリ、または装置における他のローカル記憶装置に最小受理可能ソフトウェアバージョン番号を記憶することよって補足される。装置にロードされる全てのソフトウェアは、バージョン番号を保持することになり、装置は、最小値より大きいバージョン番号を備えたソフトウェアだけを受理することになる。さらに、いくつかのソフトウェアバージョンは、特に、最小受理可能ソフトウェアバージョン番号を更新するようにSoCに命じてもよく、それによって、受理できないと見なされた先行バージョンへの、ソフトウェアの故意のロールバックを防いでもよい。前述のアンチロールバック法は、検証可能な耐漏洩性演算と無関係に(すなわち、その付加物として)実現することが可能である。代替として、アンチロールバック法は、検証可能な耐漏洩性演算において用いられるメッセージ識別子、バリデータ、または他のセキュリティ保護された量の一部として実現することが可能である。
当業者は、SoCの適用が、本明細書で示す特定のアーキテクチャに限定されないこと、ならびに図7に示す実施形態とは異なる内部アーキテクチャおよび/またはコンポーネントを備えたSoCもしくは他の装置が保護可能であることを、容易に理解されよう。
例えば、図8は、セキュアプロセッサアーキテクチャ(800)への、検証可能な耐漏洩性暗号法の適用を示す。便宜上、文脈に依存して、参照数字は、プロセスにおけるステップを、かつ/またはかかるプロセスステップによって用いられる(または生成される)量を指す。この設定において、装置には、CPUと、ベース秘密暗号鍵KROOTを含む、内部秘密状態を保持する鍵ストアと、が含まれる。限定するわけではないがヒューズ(801)などの不揮発性記憶装置を、内部秘密状態を記憶するために用いてもよい。暗号ハードウェアサブコンポーネント(804)は、オンチップデータ/命令キャッシュ(803)から外部の安全でないRAMメモリ(806)へ移動する全てのデータを暗号化および/または完全性保護および/または中継保護し、かつ外部の安全でないRAMメモリからフェッチされている全てのデータを復号化および/または完全性チェックおよび/または中継チェックする。さらに、全てのコードは、暗号化および完全性保護された形態で安全でないフラッシュ(805)に記憶され、かつオンチップデータ/命令キャッシュ(803)に運ばれるときに復号化および完全性チェックされる。検証可能な耐漏洩性暗号法の追加を通してセキュリティを改善することが可能な背景技術における例示的なプロセッサアーキテクチャには、限定するわけではないが、IBMのセキュアブルー設計("IBM Extends Enhanced Data Security to Consumer Electronics Products"という表題のIBMのプレスリリース(2006年4月6日付け)で発表)、およびMITのAEGIS設計(AEGIS: Architecture for Tamper-evident and Tamper-resistant Processing, Proceedings of the 17th Annual International Conference on Supercomputing, pages 160 − 171, 2003に記載)が含まれる。
検証可能な耐漏洩性暗号法の使用は、監視攻撃に対する保護を提供することによって既存のプロセッサ設計のセキュリティを実質的に改善する。特に、この実施形態は、ハッシュ関数と、既存のセキュアプロセッサ設計の(例えばAES)暗号化能力を再使用する鍵ツリー処理関数と、を含む暗号ハードウェアサブコンポーネント(804)を向上させ、かつ第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は、鍵ストア(902)、すなわち、内部秘密状態を記憶し、かつ限定するわけではないが、ヒューズ、バッテリバックアップRAM(902、903)、EEPROM、フラッシュなどの技術を用いて実現可能な鍵ストア(902)に維持される。FPGA(900)は、暗号化されたビットストリームを、インターフェース(906)を通じて受信する。このビットストリームは、例えば、第1の実施形態または第2の例示的な実施形態(図1および5に対応する)のどちらかを用いて、暗号化された可能性がある。
図1の実施形態が、暗号化用に用いられた場合に、FPGAは、最初に、ノンスN、バリデータV、長さL、および最初のEを受信する。Eは、暗号化されたセグメントバッファ(905)に記憶される。上記の耐漏洩性復号化プロセス(例えば、図4を参照)を用いて、Eのハッシュが計算され、バリデータVは、KROOT、Lおよびハッシュで検証され、(成功した場合に)KMESSAGEを、または(プロセスが停止した場合に)致命的エラーをもたらす。成功した場合に、FPGAは、セグメント復号化処理コンポーネント(904)を用い、Eに対して耐漏洩性復号化プロセスを実行する。Eの復号化は、セグメントEのハッシュを生成し、このハッシュは、ロードされ、検証され、復号化される。プロセスは、最終セグメントが復号化および検証されるまで、1つずつセグメントを続行する。エラーが生じた場合に、プロセスは停止し、全ての部分的なFPGA復号化データは、消去される。(失敗すると、プロセスは、最初から再び開始することができる。)1つまたは複数の状態レジスタ910が、ビットストリームローディングプロセスの状態を追跡するために用いられる(例えば、プロセスが、進行中か、失敗したか、または完了したかどうかを追跡する)。状態はまた、診断目的および外部コンポーネントによる使用のために、エクスポートすることができる。ひとたび全てのセグメントが成功裡にロードされると、FPGAは、今や構成されており、用いることができる(例えば、FPGAは、今や、ロードされたビットストリームイメージにI/O、クロック等を適用可能にすることができる)。FPGA演算は、(例えば、不完全なFPGAイメージに関する情報の暴露を回避するために、かつ不正確なFPGA構成から発生する全体的回路の予測不能の挙動を回避するために)ビットストリームが完全にロードされるまで阻止することができる。
図5の第2の実施形態が、暗号化用に用いられた場合に、FPGAは、最初にE、V、Nおよびh(B)を受信し、Eをバッファに記憶する。次に、FPGAのセグメント復号化処理コンポーネント904は、図6に示す方法を用いて、供給された、暗号化されたセグメントを検証および復号化する。状態レジスタ910は、ビットストリームローディングの状態、検証、および復号化プロセスを追跡するために用いられ、どんな重大なエラーも、プロセスの停止およびあらゆる部分的に復号化されたデータの消去に帰着する。
ネットワーク通信および他のパケットベースの用途
図10は、外部監視攻撃からのネットワーク通信の保護に、検証可能な耐漏洩性暗号法を適用することを示す。この実施形態において、装置A(1000)、装置B(1030)および装置C、D、Eなど(1040)の多数のネットワーク装置が、ネットワーク(1020)を通じて互いに通信する。これらの通信のいくつかまたは全ては、機密情報を含んで、データを暗号化および認証することが有用になる可能性がある。さらに、これらの装置のいくつか(この実施形態では装置Aなど)は、それらの暗号計算および鍵を外部監視攻撃から保護するように要求される。
装置Aは、それが通信する必要のある他の装置との共有暗号ルート鍵のテーブルを記憶する鍵ストア(1001)を有する。これらの鍵は、前もって記憶されている場合もあり、または(例えば公開鍵暗号法を用いて)取り決めてもよい。公開鍵暗号法を用いて鍵を取り決めるための方法は、背景技術において周知であり、SSLおよびIPSECなどのプロトコルにおいて利用される。この実施形態は、これらまたは他のプロトコルに容易に統合することが可能である。
暗号化される発信パケットまたはデータセグメントは、アプリケーション、オペレーティングシステム、ドライバ、または他のコンポーネント(1002)から生じ、平文パケットバッファ(1003)に入る。次に、各パケットは、セグメント暗号化/復号化処理コンポーネント(1004)を用いて処理されるが、この場合に、各パケットは、(例えば図1に示すような)検証可能な耐漏洩性暗号化方法を用いて暗号化される。この暗号化用のルート鍵は、装置Aと宛先装置との間の共有鍵であり、鍵ストア(1001)から取得される。この処理のために、メッセージ識別子ノンスNは、カウンタを含む任意の(好ましくは)一意の値であってもよい。例えば、ノンスは、パケット識別子、オーバーフローを防ぐために恐らく追加の最上位ビットを組み込んだTCPシーケンス番号、値のハッシュ、ランダム値等と等しくてもよい。各パケットに対して、耐漏洩性暗号化演算は、暗号化されたセグメントおよびバリデータVを生成する。ノンスは、送信してもよく、または(例えば、前に受信されたパケット数に基づいて)暗黙的であってもよい。暗号化されたセグメント、V、および任意の他の要求されたデータは、発信パケットに組み立てられ、かつネットワークインターフェースコンポーネント(1006)へ、次に適切な宛先装置へのルーティング用にネットワーク(1020)へ移動される。
暗号化された着信パケットに対して、送信装置が上記のように暗号化を実行したと仮定される。これらのパケットは、ネットワークインターフェースコンポーネント(1006)によってネットワーク(1020)から受信され、次に、暗号文パケットバッファ(1005)へ移動される。次に、各パケットは、セグメント暗号化/復号化処理コンポーネント(1004)によって処理されるが、この場合に(例えば図4に示すような)耐漏洩性復号化プロセスが実行される。この復号化プロセスに関して、(i)受信および送信装置間の共有鍵(例えば、KROOTまたはKROOTを導出するために用いられる先駆体)は、鍵ストア(1001)から取得され、(ii)ノンスNは、パケットから回復されるか、さもなければ決定され、(iii)バリデータは、Nおよび暗号化されたパケットに対して検証され、(iv)バリデータが正確な場合に、パケットデータは復号化される。装置Aと送信装置との間の共有暗号秘密は、KROOTとして用いてもよい。復号化または検証が失敗した場合に、パケットは廃棄される。そうでなければ、復号化の成功に基づいて、復号化結果は、アプリケーション、オペレーティングシステム、ドライバなどに供給することができる。
このプロセスは、図11および12で概説される。図11は、検証可能なパケットレベルの耐漏洩性暗号化プロセスを示し、図12は、対応する復号化プロセスを示す。検証可能なパケットレベルの耐漏洩性暗号化プロセスは、以下の通りである。ソースおよび宛先がベース暗号値KROOTを共有する入力パケットデータD(1100)が与えられたとすると、メッセージ識別子Nが、ステップ1101で生成される(例えば、パケットDに存在するランダムソースおよび/もしくは情報、ならびに/または通信プロトコルに関連するシーケンス番号など、あるパケット識別子を用いて)。TCP/IP通信に関して、Nは、セッション識別子、(オプションとして、ロールオーバーを防ぐために付加された追加の最上位ビットを備えた)シーケンス番号、ソースポート、宛先ポート、および/または他の値から構成することができる。次に、ステップ1102において、Nのハッシュが計算される。(オプションとして、このステップは省略してもよく、KMESSAGEを導出する際にh(N)の代わりに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を回復できるようにするために必要とされる任意の他の情報)を含む出力パケットが形成される(1107)。次に、出力データEは、遠隔装置(インターネットを通じた遠隔コンピュータなど)にパケットで転送される。
オプションの最適化として、暗号化装置が、送信用に多数のパケットをバッファする場合に、暗号化装置は、全てのパケット用に単一のバリデータだけが必要とされるように、多数のパケットを同時に暗号化することができる。例えば、暗号化プロセスは、図3に示すように実行してもよく、この場合に各セグメントDは、パケットである。このようにパケットを組み合わせることによって、送信者および受信者の両方に必要とされる鍵ツリー演算数が低減される。
対応する検証可能なパケットレベルの耐漏洩性復号化プロセスが、図12に示されている。V、E、N(またはNを回復するのに十分なデータ、例えばシーケンス番号)および共有暗号秘密KROOT(1200)を含む暗号化されたパケットが与えられたとすると、復号化プロセスは、以下のように進む。第1に、h(N)の値が計算される(1201)(または、暗号化装置がNを直接用いる場合には、このステップは省略される)。次に、Eのハッシュが計算される(1202)。次にKMESSAGE=KROOT、h(N)が、ステップ1203において、KSTART=KROOTおよびPATH=h(N)と共に、図2に図解する耐漏洩性で鍵ツリーベースのアプローチを用いて計算される。次にV’=KMESSAGE、h(E)が、KSTART=KMESSAGEおよびPATH=h(E)と共に、図2に概説する耐漏洩性鍵ツリープロセスを用いて計算される(1204)。続いて、復号化装置は、V’=V(1205)かどうかをチェックする。それらが等しくない場合に、処理は、このパケットに対して停止され、パケットは廃棄される(1206)。チェックが成功した場合に、Eは、(例えば、図14に示すDEC()プロセスを用いて)KMESSAGEで復号化され、D、すなわち平文パケットを生成する(1207)。
スマートカード用途
検証可能な耐漏洩性暗号化および復号化は、スマートカードにおいて実施することができる(例えば、スマートカードが、差分電力解析および関連する外部監視攻撃から安全な方法で暗号化および/または復号化を実行するように要求されるプロトコルに関連して)。かかるシステムおよびプロトコルの例には、限定するわけではないが、有料テレビ放送信号、支払い(オフラインの支払いを含む)、本人確認/ネットワークログイン、携帯電話SIMカード、および交通パスの復号化用の鍵(制御語)の導出が含まれる。本特許において開示する例示的な暗号技術は、スマートカード内の秘密鍵が、かかるプロトコルを実行する間に外部監視攻撃から保護されることを保証するために用いることができる。スマートカード(または他のセキュリティチップ)はまた、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()の変形において、暗号鍵は、さらに大きなセキュリティ用に頻繁に変更される。具体的には、追加の暗号鍵更新が、EへのデータセグメントDの暗号化内で行われる(逆も同様である)。したがって、これらの変形をイントラセグメント鍵変更の実行と呼ぶ。
ENC()およびDEC()への変更以外、第1および第2の例示的な実施形態における演算の残りは、前述のように実行することができる。例えば、限定するわけではないが、初期メッセージ鍵KMESSAGE、バリデータVなどを含む演算は、変更する必要がない。
図13は、データセグメントを暗号化するためのENC()演算の例示的な実施形態を示す。図14は、DEC()演算の対応する例示的な実施形態を示す。この実施形態において、これらの演算は、暗号ブロック連鎖(CBC)モードにおいてブロック暗号AESを用いて構築されるが、しかし他のブロック暗号か、暗号化/復号化プリミティブか、または暗号化モードが同様に使用可能であることが、当業者には明らかであるに違いない。
セグメントi用の暗号化プロセスへの入力は、セグメント鍵K(1301)およびデータセグメントD(1310)である。入力データセグメントD(1310)は、サブセグメントDi、1(1311)、Di、2(1312)等に分割される。図13および14は、3AESブロックのサブセグメントに分割されたデータセグメントDを示すが、他のサイズもまた用いることができ、もちろんAES以外のアルゴリズムもまた用いてもよい。(より小さなサブセグメントは、計算オーバーヘッドを増加させ、一方でより大きなサブセグメントは、鍵がより多くの演算で用いられるようにして、情報が漏洩する可能性を増加させる。)セグメント鍵Kは、ハッシュ演算m()で変形され、第1のサブセグメントDi、1用の鍵であるKi、1(1302)を生成する。初期化ベクトル(IV)(1314)が用いられることになる場合に、それは、Di、1の第1のAESブロックで排他的論理和をとられる。(IVが用いられることにならない場合に、このXORステップは、省略してもよい。IVが用いられる場合に、それは、例えば、それをバリデータ計算に組み込むことによってか、またはメッセージ識別子などの検証された値からIVを導出することによって、認証することができる。)(D XOR IV)第1のビットは、セグメント鍵Ki、1(1302)を用いてAES(1315)で暗号化され、暗号文サブセグメントEi、1(1320)の第1の部分を形成する。この暗号文部分もまた、サブセグメントDi、1(1311)の次のビットで排他的論理和をとられ、セグメント鍵Ki、1(1302)を用いて続いて暗号化された別のAES入力を生成し、サブセグメントDi、1(1311)の次の部分を生成する。類似の暗号ブロック連鎖演算が実行されて、同様に鍵Ki、1で実行される第3のAES暗号化への入力を形成する。3つのAES演算の結果が、暗号文サブセグメントEi、1(1320)である。第4のAES演算が、次のデータサブセグメントDi、2(1312)の第1のブロックに対して実行され、新しい鍵、特にKi、2(1303)が用いられるが、Ki、2(1303)は、m()をKi、1(1302)に適用することによって導出される。Di、1の処理の最後の暗号文は、Di、2(1312)の第1の部分用のIV(1317)になる。暗号化プロセスは、sの全てのデータサブセグメントにおける全てのブロックが暗号化されるまで継続し、最終的に、暗号化されたサブセグメントにEi、2(1321)、...Ei、s(1322)を生成し、かつこの場合に、新しい鍵が、m()を用いて各サブセグメント用に導出される。最後に、暗号文サブセグメントは、組み立てられて最終暗号文セグメントE(1330)を形成する。
図14を参照すると、復号化プロセスDEC()は、ENC()プロセスの逆である。サブ鍵Ki、1(1402)、Ki、2(1403)等が、上記の暗号化用と同じプロセスを介しm()を用いて、セグメント鍵K(1401)から導出される。暗号化されたセグメントEは、サブセグメントに分割され、各サブセグメントには、1つまたは複数のAES入力が含まれ、これらの入力は、サブ鍵で復号化される。各復号化演算後に、適切なIV(もしあれば)または先行暗号文が、データで排他的論理和をとられる。最終データが、組み立てられてサブセグメント(1420、1421、1432、等)を形成し、今度は、これらのサブセグメントが、組み立てられてD(1430)を形成する。
上記のENC()およびDEC()プロセスは、より大きな漏洩耐性を提供するために迅速な鍵変更を含む例である。ECB、CBCまたはカウンタ(例えばガロアカウンタ)モードにおいて、ストリーム暗号および/またはブロック暗号(RC4、SEAL、AES、DES、トリプルDESなど)の適用を含む他のセグメント暗号化および復号化方法を用いることができる。同じ鍵が、セグメントにおける全てのデータに対して適用されるかかる演算に関して、各鍵で実行される演算数を制限するために、暗号化に先立って(例えば、図3に示すように、データをサブセグメントに分割することによって)各セグメントのサイズを制限し、それによって、敵対者が観察可能な、各鍵で実行される演算数を低減することが、有利になり得る。
通信チャネル
本明細書で説明するデータ交換は、広範囲の可能な方法で達成可能である。例えば、限定するわけではないが、従来のバス/インターフェース(I2C、JTAG、PCI、シリアルI/O(USBを含む)、PCIエクスプレス、イーサネット(登録商標)など)、無線プロトコル(802.11ファミリ、ブルートゥース、携帯電話プロトコル、ISO14443など)、およびイントラチップ接続(APB、他のフリップフロップとの直接接続など)は、全て使用可能である。前述のそれぞれに対して、送信装置および受信装置は、(必要に応じて)送信、受信、または送受信できる適切なインターフェース(例えば、前述のタイプのインターフェース)を有することになろう。
復号化に先立つデータ検証の代替形態
これまでに示した例示的な実施形態は、(例えば図2に示すような)耐漏洩性鍵ツリーベースの鍵導出プロセスを用いて、復号化の前に、安全に検証できる暗号文のバリデータを計算した。このプロセスは広範囲の用途によく適しているが、同様の役割を果たすことが可能な値を生成するための他の技術が、ある設定において適切になり得る。例えば、いくつかの実施形態において、暗号化プロセスは、外部監視に耐性であるようには要求されず(しかし復号化プロセスはかかる耐性を必要とする)、かつ/または公開鍵デジタル署名プロセス用のアルゴリズムレベルの対抗策(米国特許第6,304,658号に説明されているものなど)が存在し得る。これらのシステム用に、デジタル署名演算を用いて、暗号文が未変更であることを保証するために復号化時に検証できる値を構成してもよい。例えば、デジタル署名は、メッセージ識別子および少なくとも1つの暗号化されたセグメントを認証することが可能である。公開鍵デジタル署名アルゴリズムの例には、限定するわけではないが、RSA、DSA、および楕円曲線DSA変形(限定するわけではないがEC−DSAを含む)が含まれる。デジタル署名の検証は、どんな機密情報も必要とせず、したがって復号化の前に実行してもよい。しかしながら、この柔軟性は、暗号化装置内の公開鍵署名論理、および復号化装置内の公開鍵検証論理を必要とするという代償で得られる。バリデータ(またはバリデータの代わり)を、多数の対称バリデータ、公開鍵署名または他の要素で構成することがまた可能である。
不連続セグメント鍵導出
セグメント鍵(例えば、図3におけるK、K、...、K)およびサブセグメント鍵(図13におけるKi、1、Ki、2等)は、連続して導出される必要はない。例えば、鍵は、階層的ツリーパターンで導出することができ、またはより一般的には各鍵は、任意の先行鍵の関数とすることができるか、もしくは鍵ツリー構成を用いてKROOTから独立して導出することが可能か、または鍵は、他の鍵および鍵ツリー構成のある組み合わせを用いて導出することが可能である。
データ伝送および計算の再順序付け
データ伝送および演算の順序付けは、変更することができる。例えば図1、3および4に示す第1の例示的な実施形態は、最終セグメントDから第1のセグメントDに進む暗号化プロセスを示し、各セグメントDには、i+1番目のセグメントの暗号化結果Ei+1のハッシュが含まれる。別個のバリデータが、第1の暗号化されたセグメントE用に計算される(例えば、ステップ106を参照)。このアプローチは、図4に示すような復号化装置には有利になり得る。なぜなら、復号化装置が、復号化前に暗号化結果全体をバッファする必要がないのに対して、暗号化装置は、バッファしなければならないからである。
代替として、暗号化装置は、DからスタートしてDで終了するセグメントを暗号化することが可能であり、各セグメントDi+1には、前のセグメントの暗号化Eのハッシュが含まれる。この例において、セグメントDは、(例えば)それが第1のセグメントであることを示すために、ハッシュ関数の出力長さと等しいサイズの0列によって拡張される。次に、鍵ツリーを用いて生成されたバリデータが、PATH=h(E)を用いて計算される。この変形に関して、復号化プロセスは、図4と同様であるが、しかし最後の暗号化されたセグメントからスタートして第1のセグメントまで逆方向に進む。したがって、暗号化装置は、もはやデータセグメントをバッファする必要がないが、しかし今や復号化装置は、バッファする必要がある。
ハッシュ用の追加バリデータの置き換え
いくつかの例が、後続の暗号化されたセグメントを認証する、データセグメントにおけるハッシュを示すが、後続のセグメントは、代替として、それら自体の独立したバリデータを備えることができる。例えば、図3は、セグメントEが変更されなかったことを検証するためのハッシュh(E)を備えた第1のデータセグメント(312)を示す。しかしながら、かかるハッシュは、必ずしも必要とされるわけではなく、場合によっては省略が可能である(例えば、代わりに次のセグメントがバリデータを備えている場合に)。これは、暗号化をいくらか単純にするが、しかしより多くのバリデータを計算およびチェックする必要があるので、計算時間を増加させる。ストリーミング用途において、または記憶装置/メモリが制限されている場合に、追加の計算量は、後続のデータを利用可能にし、かつバッファする必要性を回避する利益が与えられれば、正当化し得る。
ハッシングにおける変形
いくつかの図において、図3におけるh()などの単一の演算が、何度も適用され、かつ/または異なる用途に用いられる。これらの全てが同じ関数であることは、一般には必要とされない。例えば、異なるステップが、異なるハッシュ関数を用いることが可能である。
ハッシュ関数の出力は、トランケートするか、他のハッシュ関数出力と組み合わせるか、さもなければ後処理を介して修正してもよい。例えば、SHA−2は、256ビット出力ハッシュを生成するが、しかしより短いメッセージ識別子(160、128、80または64ビットなど)が望ましい場合もある。関数h()は、内部でSHA−2を用いて、その結果の多少のビットだけを返してもよい。
演算順序における変形
例示的な実施形態のいくつかは、データ要素が連結されるかまたは組み合わされる特定の順序を指定する。例えば、図3のステップ303−312において、データDは、ハッシュh(Ei+1)と連結される。データセグメントが、ハッシュされる前に順々に連結される他の例には、図3のステップ306における図5の要素501−504および513が含まれる。これらの特定の順序付けは、可能な順序付けの単に1つの例であり、代替実施形態において、様々な他のデータ順序付けが利用可能である。
ツリーベースの鍵導出における変形
演算(fなど)が可逆的である場合に、開始値としてツリーのトップ以外の値を用いることが可能である。同様に、計算された値をキャッシュすることができる(例えば、メッセージ識別子がカウンタである場合に、初期演算は、通常、あるメッセージから次のメッセージへと変化せず、したがって再計算する必要がない)。
エラー検出および/または訂正
暗号装置の演算に故障を注入した結果として生成された不正確な出力が、機密データおよび鍵に関する情報を生成する可能性があることは、当該技術分野において周知である。実際的な場合に、暗号演算は、秘密を危険にさらす可能性がある不正確な計算の放出の防止を支援するために、チェックすることができる。例えば、単純かつ効果的な技術は、2度、すなわち、両方(または全て)が同一の結果を生成することを検証するコンパレータを用いて、理想的には2つの(またはより多くの)独立したハードウェアプロセッサおよびインプリメンテーションを用いて、暗号演算を2度実行することである。ユニットによって生成された結果が一致しない場合に、コンパレータは、結果が用いられるか、かつ/または他のエラー状態をトリガすることを防止する。個別の暗号演算(ハッシングステップなど)内において、エラー検出および/またはエラー訂正論理もまた、暗号演算が不正確に実行される状況の防止または検出を支援ために用いることができる。
本特許で開示する技術は、さらに、暗号化および復号化プロセスに対するあるタイプの故障注入攻撃に対するある固有の耐性を提供し得る。暗号化プロセス中において、鍵ツリーベースの鍵導出プロセス中に注入された限られたまたは部分的な故障は、このプロセス内のエントロピー再分布関数の使用ゆえに、ランダムで予測不能な結果を生むことになろう。特に、破損した中間値は、典型的には、後続のエントロピー再分布関数によって混合され、これは、欠陥のある結果を利用する攻撃を仕かける敵対者の能力を制限する。
同様に、復号化中に、暗号文またはメッセージ識別子処理内に注入された故障またはエラーは、一般に、バリデータが拒絶されることに帰着する。平文ハッシュ連鎖を伴う第2の実施形態は、さらなる耐性を提供する。なぜなら、平文セグメントが、出力される前に、正確性のために独立して認証されるからである。もちろん、演算のチェックおよび他の周知の故障検出技術をさらに利用してもよい。
POST(パワーオンセルフテスト)および乱数テストなどの自己診断関数もまた、暗号関数および乱数発生能力が破損されていないことを検証するために組み込んでもよい。
追加ホスト環境およびフォームファクタ
検証可能な耐漏洩性暗号法の利用のためのいくつかの例示的なシステムおよび適用を上記で説明した。しかしながら、当業者が理解するように、上記の技術は、特定のホスト環境にもフォームファクタにも限定されない。もっと正確に言えば、それらは、限定するわけではないが、特定用途向け集積回路(ASIC)と、フィールドプログラマブルゲートアレイ(FPGA)と、システムオンチップ(SoC)と、マイクロプロセッサと、セキュアプロセッサと、安全なネットワーク装置と、全ての種類の暗号スマートカード(限定するわけではないが、ISO7816−1、ISO7816−2およびISO7816−3(「ISO7816準拠スマートカード」)にほぼ準拠するスマートカードを含む)と、非接触で近接度に基づいたスマートカードおよび暗号トークン(限定するわけではないが、ISO14443にほぼ準拠するスマートカードを含む)と、ストアードバリューカードおよびシステムと、暗号でセキュリティ保護されたクレジットおよびデビッドカードと、顧客ロイヤルティカードおよびシステムと、暗号認証クレジットカードと、暗号アクセラレータと、ギャンブルおよび賭博システムと、安全な暗号チップと、耐改竄性マイクロプロセッサと、ソフトウェアプログラム(限定するわけではないが、パーソナルコンピュータ、サーバ等で使用するためのプログラム、および暗号装置上にロードできるかまたは暗号装置内に埋め込むことができるプログラムを含む)と、鍵管理装置と、銀行取引鍵管理システムと、安全なウェブサーバと、防衛システムと、電子支払いシステムと、少額決済システムおよびメータと、プリペイドテレホンカードと、暗号身分証明書および他の身元検証システムと、電子資金決済用システムと、現金自動預け払い機と、POS端末装置と、証明書発行システムと、電子バッジと、ドアエントリシステムと、暗号鍵を用いる全ての種類の物理的ロックと、テレビ信号を復号化するためのシステム(限定するわけではないが、放送テレビ、衛星テレビおよびケーブルテレビを含む)と、暗号化された音楽および他のオーディオコンテンツ(コンピュータネットワークを通じて配信される音楽を含む)を復号化するためのシステムと、全ての種類のビデオ信号を保護するためのシステムと、コンテンツ保護およびコピー保護システム(映画、オーディオコンテンツ、コンピュータプログラム、ビデオゲーム、イメージ、テキスト、データベース等の不正コピーまたは使用を防ぐために用いられるシステムなど)と、携帯電話スクランブリングおよび認証システム(電話認証スマートカードを含む)と、安全な電話(かかる電話用の鍵記憶装置を含む)と、暗号PCMCIAカードと、携帯暗号トークンと、暗号データ監査システムと、を含む種々様々の用途において用いることができる。
前述の全ては、検証可能な耐漏洩性暗号法の例示的な実施形態および用途を示し、これらの実施形態および用途から、関連する変形、改善および修正が、本開示の趣旨および範囲の文脈において明白であろう。したがって、本特許によって保護された発明は、前述の開示に限定されるべきではなく、より正確に言えば本明細書に添付の特許請求の範囲によって解釈されるべきである。

Claims (68)

  1. 暗号鍵の再使用を制限しながら、内部秘密状態を備えた装置によって平文データを暗号化するための方法であって、
    (a) 複数の連続中間鍵を計算することによって、前記内部秘密状態およびメッセージ識別子からメッセージ鍵を導出することであって、前記内部秘密状態の少なくとも一部からスタートして前記メッセージ鍵に至り、各連続鍵が、前記メッセージ識別子および先行鍵の少なくとも一部に基づいて導出されることと、
    (b) 少なくとも前記メッセージ鍵に基づく前記1つまたは複数の暗号鍵を用いて、前記平文データの1つまたは複数のセグメントを暗号化し、1つまたは複数の暗号化されたデータセグメントを生成することと、
    (c) 前記暗号化されたデータセグメントの1つまたは複数に少なくとも基づいた、かつそれらを検証するために使用可能な暗号検証値を計算するために秘密鍵を用いることと、
    (d) 前記1つまたは複数の暗号化されたデータセグメントおよび前記暗号検証値を出力することと、
    を含む方法。
  2. 前記ステップ(c)が、(i)少なくとも1つの前記暗号化されたデータセグメントから暗号ハッシュを計算することと、(ii)少なくとも秘密値および前記暗号ハッシュからバリデータを導出することであって、前記導出が、前記秘密値からスタートして複数の連続中間値を計算することを含み、各連続値が、前記値の先行値および前記暗号ハッシュの一部に少なくとも基づくことと、を含む請求項1に記載の方法。
  3. (a)における各前記中間鍵の前記導出が、エントロピー分布演算を選択し、次に前記エントロピー分布演算を前記先行鍵に適用することを含む、請求項2に記載の方法。
  4. 前記メッセージ識別子が複数の部分に分解され、各前記部分が、適用される特定のエントロピー分布演算を決定する、請求項3に記載の方法。
  5. 前記エントロピー分布演算が、少なくとも(i)前記先行鍵と、(ii)前記メッセージ識別子の少なくとも一部に対応する値と、に依存する暗号ハッシュ演算である、請求項4に記載の方法。
  6. (b)における前記暗号鍵が、鍵連鎖を用いて前記メッセージ鍵から導出される、請求項2に記載の方法。
  7. (a)における前記メッセージ鍵が、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記メッセージ識別子を含む、請求項2に記載の方法。
  8. 前記バリデータが、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記暗号化されたデータセグメントに基づいたハッシュを含む、請求項7に記載の方法。
  9. (b)が、複数のエントロピー分布演算を実行することによって、前記メッセージ鍵から複数の前記暗号鍵を導出することを含み、さらに、(i)前記暗号鍵の1つが、エントロピー分布関数を前記メッセージ鍵に適用することによって計算され、(ii)複数の連続暗号鍵のそれぞれが、エントロピー分布関数を前記暗号鍵の先行鍵に適用することによって計算される、請求項2に記載の方法。
  10. (i)前記平文データが、複数のセグメントを含み、(ii)前記暗号鍵にそれぞれが、ただ1つの平文セグメントを暗号化する際に用いられて、暗号化されたデータセグメントを生成し、(iii)前記暗号化されたデータセグメントの全てに基づいた暗号ハッシュが計算される、請求項2に記載の方法。
  11. (iii)における前記暗号ハッシュが、ハッシュ連鎖を用いて計算される、請求項10に記載の方法。
  12. 前記ハッシュ連鎖において、前記暗号化されたデータセグメントが、前記暗号化されたデータセグメントが出力される順序と逆の順序でハッシュされる、請求項11に記載の方法。
  13. (b)において、(i)前記平文データが、複数のセグメントを含み、各セグメントが、複数のサブセグメントを含み、(ii)各平文サブセグメントに関し、前記暗号鍵の新しい鍵が、前記サブセグメントを暗号化するために用いられる、請求項2に記載の方法。
  14. ハッシュ連鎖を用いて、前記暗号化されたデータセグメントの全てに基づいた暗号ハッシュを計算することをさらに含む、請求項13に記載の方法。
  15. (b)において、(i)前記平文データが、複数のセグメントを含み、(ii)暗号鍵更新が、イントラセグメントに基づいて行われ、(iii)各前記暗号化されたデータセグメントが、前記更新された暗号鍵の少なくとも1つを用いることによって生成される、請求項2に記載の方法。
  16. 各前記連続中間値が、(1)前記連続中間値の中間親値と、(2)前記暗号化されたデータセグメントハッシュの1または2ビットと、によってのみ入力が決定される暗号ハッシュ演算の結果である、請求項2に記載の方法。
  17. ただ1つの平文データセグメントおよびただ1つの暗号化されたデータセグメントだけが存在し、かつ前記暗号ハッシュ計算が、データセグメント長さをさらに含む、請求項2に記載の方法。
  18. 前記メッセージ識別子がランダムに生成される、請求項2に記載の方法。
  19. 前記メッセージ識別子がカウンタである、請求項2に記載の方法。
  20. 前記装置が、データパケットを復号化装置に送信するネットワーク通信装置である、請求項2に記載の方法。
  21. 暗号化されたデータを復号化装置に送信する前に前記復号化装置を認証することをさらに含む、請求項2に記載の方法。
  22. 前記暗号検証値が、前記暗号化されたデータセグメントの少なくとも1つを認証するデジタル署名である、請求項1に記載の方法。
  23. 暗号鍵の再使用を制限しながら、内部秘密状態を備えた装置によってデータを復号化するための方法であって、
    (a) 1つまたは複数の暗号化されたデータセグメントおよび暗号検証値を受信し、それらに対応するメッセージ識別子を取得することと、
    (b) 前記暗号検証値を検証して、前記メッセージ識別子または前記暗号化されたデータセグメントの少なくとも1つが変更されたかどうかを判定することと、
    (c) 複数の連続中間鍵を計算することによって、前記内部秘密状態および前記メッセージ識別子からメッセージ鍵を導出することであって、前記内部秘密状態の少なくとも一部からスタートして前記メッセージ鍵に至り、各連続鍵が、前記メッセージ識別子および先行鍵の少なくとも一部に基づいて導出されることと、
    (d) 少なくとも前記メッセージ鍵に基づいた前記1つまたは複数の暗号鍵を用いて、前記暗号化されたデータの1つまたは複数の検証されたセグメントを復号化して1つまたは複数の平文データセグメントを生成することと、
    を含む方法。
  24. 前記ステップ(b)が、(i)少なくとも1つの前記暗号化されたデータセグメントから暗号ハッシュを計算することと、(ii)少なくとも秘密値および前記暗号ハッシュから予想バリデータを導出することであって、前記導出が、前記秘密値からスタートして複数の連続中間値を計算することを含み、各連続値が、前記値の先行値および前記暗号ハッシュの一部に少なくとも基づいていることと、(iii)前記導出された予想候補バリデータを前記受信された暗号検証値と比較することと、を含む、請求項23に記載の方法。
  25. (c)における各前記中間鍵の前記導出が、エントロピー分布演算を選択し、次に前記エントロピー分布演算を前記先行鍵に適用することを含む、請求項24に記載の方法。
  26. 前記メッセージ識別子が複数の部分に分解され、各前記部分が、適用される特定のエントロピー分布演算を決定する、請求項25に記載の方法。
  27. 前記エントロピー分布演算が、少なくとも(i)前記先行鍵と、(ii)前記メッセージ識別子の少なくとも一部に対応する値と、に依存する暗号ハッシュ演算である、請求項26に記載の方法。
  28. (d)における前記暗号鍵が、鍵連鎖を用いて前記メッセージ鍵から導出される、請求項24に記載の方法。
  29. (c)における前記メッセージ鍵が、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記メッセージ識別子を含み、前記バリデータが、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記暗号化されたデータセグメントに基づいたハッシュを含む、請求項24に記載の方法。
  30. (d)が、複数のエントロピー分布演算を実行することによって、前記メッセージ鍵から複数の前記暗号鍵を導出することを含む、請求項24に記載の方法。
  31. (i)前記暗号鍵の1つが、エントロピー分布関数を前記メッセージ鍵に適用することによって計算され、(ii)複数の連続暗号鍵のそれぞれが、エントロピー分布関数を前記暗号鍵の先行鍵に適用することによって計算される、請求項30に記載の方法。
  32. (i)前記暗号化されたデータが、複数のセグメントを含み、(ii)最後のセグメントを除いて、各暗号化されたデータセグメントが、次の暗号化されたデータセグメントの暗号ハッシュの表現を含み、(iii)第1の暗号化されたデータセグメントを復号化する前に、その暗号ハッシュが、計算および検証され、(iv)各後続のセグメントを復号化する前に、その暗号ハッシュが、計算されて、前記前の暗号化されたデータセグメントにおいて表現された前記ハッシュと比較され、(v)前記暗号鍵のそれぞれが、ただ1つの暗号化されたデータセグメントを復号化する際に用いられる、請求項24に記載の方法。
  33. (d)において、(i)前記暗号化されたデータが、複数のセグメントを含み、各セグメントが、複数のサブセグメントを含み、(ii)各暗号化されたサブセグメントに関して、前記暗号鍵の新しい鍵が、前記サブセグメントを復号化するために用いられる、請求項24に記載の方法。
  34. 前記ハッシュが、前記暗号化されたデータセグメントの全てに依存する、請求項24に記載の方法。
  35. (b)において、(i)前記暗号化されたデータが、複数のセグメントを含み、(ii)暗号鍵更新が、イントラセグメントに基づいて行われ、(iii)各前記平文データセグメントが、前記更新された暗号鍵の少なくとも1つを用いることによって生成される、請求項24に記載の方法。
  36. 各前記連続中間値が、暗号ハッシュ演算であって、その入力が、(A)親値と、(B)前記暗号化されたデータセグメントハッシュの少なくとも一部に対応する前記親値の値と、を含む暗号ハッシュ演算の結果である、請求項24に記載の方法。
  37. 前記暗号ハッシュ演算への前記入力が、(1)前記連続中間値の中間親値と、(2)前記暗号化されたデータセグメントハッシュの1または2ビットと、によってのみ決定される、請求項36に記載の方法。
  38. ただ1つの平文データセグメントおよびただ1つの暗号化されたデータセグメントだけが存在し、前記暗号ハッシュ計算が、データセグメント長さをさらに含む、請求項24に記載の方法。
  39. 前記予想バリデータが、ハッシュを検証し、(i)前記ハッシュが、第2の暗号化されたデータセグメントのハッシュを組み込む第1の暗号化されたデータセグメントに依存し、(ii)前記第2および後続の暗号化されたデータセグメントが、次の暗号化されたデータセグメントのハッシュをそれぞれ組み込む、請求項24に記載の方法。
  40. 前記メッセージ識別子がカウンタである、請求項24に記載の方法。
  41. 前記メッセージ識別子が、前記平文データの少なくとも一部における暗号ハッシュである、請求項24に記載の方法。
  42. 前記平文データが、FPGAビットストリームを含む、請求項24に記載の方法。
  43. プロセッサを用いて前記平文データの少なくとも一部を実行する追加ステップを含む、請求項24に記載の方法。
  44. プロセッサを含むチップによって、外部メモリからオンチップキャッシュにロードされているデータをセキュリティ保護するために用いられる、請求項24に記載の方法。
  45. 前記装置が、復号化装置からデータパケットを受信するネットワーク通信装置である、請求項24に記載の方法。
  46. アンチロールバック保護をさらに含む、請求項24に記載の方法。
  47. 前記暗号検証値が、前記暗号化されたデータセグメントの少なくとも1つを認証するデジタル署名である、請求項23に記載の方法。
  48. 暗号鍵の再使用を制限しながら平文データを暗号化するための装置であって、
    (a) 複数の連続中間鍵を計算することによって、内部秘密状態およびメッセージ識別子からメッセージ鍵を導出することであって、前記内部秘密状態の少なくとも一部からスタートして前記メッセージ鍵に至り、各連続鍵が、前記メッセージ識別子および先行鍵の少なくとも一部に基づいて導出されることであるように、
    (b) 少なくとも前記メッセージ鍵に基づいた前記1つまたは複数の暗号鍵を用いて、前記平文データの1つまたは複数のセグメントを暗号化し、1つまたは複数の暗号化されたデータセグメントを生成するように、
    (c) 前記暗号化されたデータセグメントの1つまたは複数に少なくとも基づいた、かつそれらを検証するために使用可能な暗号検証値を計算するために秘密鍵を用いるように、
    (d) 前記1つまたは複数の暗号化されたデータセグメントおよび前記暗号検証値を出力するように、
    構成される装置。
  49. 前記(c)が、(i)少なくとも1つの前記暗号化されたデータセグメントから暗号ハッシュを計算するように、かつ(ii)少なくとも秘密値および前記暗号ハッシュからバリデータを導出することであって、前記導出が、前記秘密値からスタートして複数の連続中間値を計算することを含み、各連続値が、前記値の先行値および前記暗号ハッシュの一部に少なくとも基づいていることであるように構成される、請求項48に記載の装置。
  50. (a)における各前記中間鍵の前記導出が、エントロピー分布演算の選択と、次に前記先行鍵への前記エントロピー分布演算の適用と、を含むように構成される、請求項49に記載の装置。
  51. 前記エントロピー分布演算が、少なくとも(i)前記先行鍵と、(ii)前記メッセージ識別子の少なくとも一部に対応する値と、に依存する暗号ハッシュ演算であるように構成される、請求項50に記載の装置。
  52. (a)における前記メッセージ鍵が、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記メッセージ識別子を含むように構成される、請求項49に記載の装置。
  53. (b)が、複数のエントロピー分布演算を実行することによって、前記メッセージ鍵から複数の前記暗号鍵を導出することを含むように構成され、かつ(i)前記暗号鍵の1つが、エントロピー分布関数を前記メッセージ鍵に適用することによって計算されるように、(ii)複数の連続暗号鍵のそれぞれが、エントロピー分布関数を前記暗号鍵の先行鍵に適用することによって計算されるように構成される、請求項49に記載の装置。
  54. 各前記連続中間値が、(1)前記連続中間値の中間親値と、(2)前記暗号化されたデータセグメントハッシュの1または2ビットと、によってのみ入力が決定される暗号ハッシュ演算の結果であるように構成される、請求項49に記載の装置。
  55. 前記暗号検証値が、前記暗号化されたデータセグメントの少なくとも1つを認証するデジタル署名であるように構成される、請求項48に記載の装置。
  56. 暗号鍵の再使用を制限しながらデータを復号化するための装置であって、
    (a) 1つまたは複数の暗号化されたデータセグメントおよび暗号検証値を受信し、それらに対応するメッセージ識別子を取得するように、
    (b) 前記暗号検証値を検証して、前記メッセージ識別子または前記暗号化されたデータセグメントの少なくとも1つが変更されたかどうかを判定するように、
    (c) 複数の連続中間鍵を計算することによって、前記内部秘密状態および前記メッセージ識別子からメッセージ鍵を導出することであって、前記内部秘密状態の少なくとも一部からスタートし、前記メッセージ鍵に至り、各連続鍵が、前記メッセージ識別子および先行鍵の少なくとも一部に基づいて導出されることであるように、
    (d) 少なくとも前記メッセージ鍵に基づいた前記1つまたは複数の暗号鍵を用いて、前記暗号化されたデータの1つまたは複数の検証されたセグメントを復号化して1つまたは複数の平文データセグメントを生成するように、
    構成される装置。
  57. 前記(b)が、(i)少なくとも1つの前記暗号化されたデータセグメントから暗号ハッシュを計算するように、(ii)少なくとも秘密値および前記暗号ハッシュから、予想バリデータを導出することであって、前記導出が、前記秘密値からスタートして複数の連続中間値を計算することを含み、各連続値が、前記値の先行値および前記暗号ハッシュの一部に少なくとも基づくことであるように、(iii)前記導出された予想候補バリデータを前記受信された暗号検証値と比較するように構成される、請求項56に記載の装置。
  58. (c)における各前記中間鍵の前記導出が、エントロピー分布演算の選択と、次に前記先行鍵への前記エントロピー分布演算の適用と、を含むように構成される、請求項57に記載の装置。
  59. 前記エントロピー分布演算が、少なくとも(i)前記先行鍵と、(ii)前記メッセージ識別子の少なくとも一部に対応する値と、に依存する暗号ハッシュ演算であるように構成される、請求項58に記載の装置。
  60. (c)における前記メッセージ鍵が、鍵ツリーを通る経路に従うことによって計算され、前記経路が、前記メッセージ識別子を含むように構成される、請求項57に記載の装置。
  61. (d)が、複数のエントロピー分布演算を実行することによって、前記メッセージ鍵から複数の前記暗号鍵を導出することを含むように構成され、かつ(i)前記暗号鍵の1つが、エントロピー分布関数を前記メッセージ鍵に適用することによって計算されるように、(ii)複数の連続暗号鍵のそれぞれが、エントロピー分布関数を前記暗号鍵の先行鍵に適用することによって計算されるように構成される、請求項57に記載の装置。
  62. 各前記連続中間値が、(1)前記連続中間値の中間親値と、(2)前記暗号化されたデータセグメントハッシュの1または2ビットと、によってのみ入力が決定される暗号ハッシュ演算の結果であるように構成される、請求項57に記載の装置。
  63. ただ1つの平文データセグメントおよびただ1つの暗号化されたデータセグメントだけが存在し、かつ前記暗号ハッシュ計算が、データセグメント長さをさらに含むように構成される、請求項57に記載の装置。
  64. 前記予想バリデータが、ハッシュを検証するように構成され、(i)前記ハッシュが、第2の暗号化されたデータセグメントのハッシュを組み込む第1の暗号化されたデータセグメントに依存することになり、(ii)前記第2および後続の暗号化されたデータセグメントが、次の暗号化されたデータセグメントのハッシュをそれぞれ組み込むように構成される、請求項57に記載の装置。
  65. 前記装置が、FPGAであり、前記装置が、前記平文データがFPGAビットストリームを含むように構成される、請求項57に記載の装置。
  66. 前記平文データの少なくとも一部を実行するために、前記装置に含まれるプロセッサを用いるようにさらに構成される、請求項57に記載の装置。
  67. 前記装置が、プロセッサを含むチップであり、前記装置が、外部メモリからオンチップキャッシュへと前記チップによってロードされたデータをセキュリティ保護するように構成され、前記データが、前記チップによって予め暗号化されるようにロードされる、請求項57に記載の装置。
  68. 前記暗号検証値が、前記暗号化されたデータセグメントの少なくとも1つを認証するデジタル署名であるように構成される、請求項56に記載の装置。
JP2014065462A 2009-12-04 2014-03-27 検証可能な耐漏洩性暗号化および復号化 Active JP5805249B2 (ja)

Applications Claiming Priority (4)

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

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2012542196A Division JP5552541B2 (ja) 2009-12-04 2010-12-02 検証可能な耐漏洩性暗号化および復号化

Publications (2)

Publication Number Publication Date
JP2014131354A true JP2014131354A (ja) 2014-07-10
JP5805249B2 JP5805249B2 (ja) 2015-11-04

Family

ID=44083176

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012542196A Active JP5552541B2 (ja) 2009-12-04 2010-12-02 検証可能な耐漏洩性暗号化および復号化
JP2014065462A Active JP5805249B2 (ja) 2009-12-04 2014-03-27 検証可能な耐漏洩性暗号化および復号化

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2012542196A Active JP5552541B2 (ja) 2009-12-04 2010-12-02 検証可能な耐漏洩性暗号化および復号化

Country Status (8)

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

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
US8386800B2 (en) 2009-12-04 2013-02-26 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
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
US9143324B2 (en) * 2010-06-07 2015-09-22 Protected Mobility, Llc Secure messaging
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
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
US9602277B2 (en) 2010-06-07 2017-03-21 Protected Mobilty, Llc User interface systems and methods for secure 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
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
US9203613B2 (en) 2011-09-29 2015-12-01 Amazon Technologies, Inc. Techniques for client constructed sessions
US9553725B2 (en) * 2011-11-21 2017-01-24 Combined Conditional Access Development And Support, Llc System and method for authenticating data
US10797864B2 (en) 2011-11-21 2020-10-06 Combined Conditional Access Development And Support, Llc System and method for authenticating data while minimizing bandwidth
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
US10360106B2 (en) 2011-12-12 2019-07-23 International Business Machines Corporation Throttled real-time writes
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
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
WO2013095547A1 (en) * 2011-12-22 2013-06-27 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 고려대학교 산학협력단 데이터베이스 암호화 시스템 및 방법
US9544075B2 (en) 2012-02-22 2017-01-10 Qualcomm Incorporated Platform for wireless identity transmitter and system using short range wireless broadcast
US10419907B2 (en) 2012-02-22 2019-09-17 Qualcomm Incorporated Proximity application discovery and provisioning
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
US8892865B1 (en) 2012-03-27 2014-11-18 Amazon Technologies, Inc. Multiple authority key derivation
US8739308B1 (en) 2012-03-27 2014-05-27 Amazon Technologies, Inc. Source identification for unauthorized copies of content
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
US10621044B2 (en) 2012-04-25 2020-04-14 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
US10795766B2 (en) 2012-04-25 2020-10-06 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
US9571289B2 (en) * 2012-11-12 2017-02-14 Cryptography Research, Inc. Methods and systems for glitch-resistant cryptographic 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 キヤノン株式会社 ハッシュ値生成装置
WO2014140698A1 (en) * 2013-03-11 2014-09-18 Indian Institute of Technology Kharagpur Improved 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 (주)씽크에이티 전화인증 기반의 정보유출 방지방법 및 시스템
FR3007168B1 (fr) * 2013-06-18 2016-10-07 Stmicroelectronics Rousset Mecanisme de verification de l'authenticite d'un produit
FR3007169B1 (fr) 2013-06-18 2016-10-07 Stmicroelectronics Rousset Procede 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
TWI631462B (zh) * 2013-09-10 2018-08-01 系微股份有限公司 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體
US9311500B2 (en) 2013-09-25 2016-04-12 Amazon Technologies, Inc. Data security using request-supplied keys
US9218235B2 (en) * 2013-09-25 2015-12-22 Lexmark International, Inc. Systems and methods of verifying operational information associated with an imaging device
US9237019B2 (en) 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
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
WO2015144764A1 (de) * 2014-03-26 2015-10-01 Continental Teves Ag & Co. Ohg Verfahren und system zur verbesserung der datensicherheit bei einem kommunikationsvorgang
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
CN106663389A (zh) * 2014-06-18 2017-05-10 詹姆斯·科利尔 用于密码术的方法和装置
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
US10061738B2 (en) 2014-09-30 2018-08-28 Jonker Llc Ephemeral peripheral device
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
WO2016053792A1 (en) 2014-10-03 2016-04-07 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
CA2968038C (en) * 2014-12-03 2024-01-09 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
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
JP6273226B2 (ja) * 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
US9832022B1 (en) 2015-02-26 2017-11-28 Altera Corporation Systems and methods for performing reverse order cryptographic operations on data streams
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
CN108064381B (zh) * 2015-03-30 2021-06-18 爱迪德技术有限公司 用于数据保护的方法
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
WO2017038761A1 (ja) * 2015-08-31 2017-03-09 日本電気株式会社 秘密計算システム、秘密計算装置、および、秘密計算方法
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
EP3391584B1 (en) 2015-12-16 2020-11-04 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 주식회사 코인플러그 파일에 대한 노터리 서비스를 제공하고 상기 노터리 서비스를 사용하여 기록된 파일에 대한 검증을 수행하는 방법 및 서버
EP3220304B1 (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
US20190305927A1 (en) * 2016-03-18 2019-10-03 University Of Florida Research Foundation Incorporated Bitstream security based on node locking
US9946890B2 (en) 2016-03-18 2018-04-17 Uber Technologies, Inc. Secure start system for an autonomous vehicle
WO2017173136A1 (en) * 2016-03-30 2017-10-05 The Athena Group, Inc. Key update for masker keys
US10300399B2 (en) * 2016-03-31 2019-05-28 Shenzhen Bell Creative Science and Education Co., Ltd. Modules registration and status update of modular assembly system
ES2899005T3 (es) * 2016-04-07 2022-03-09 Nagravision Sa Dispositivo criptográfico flexible
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片上数据流文件的保密系统及解密方法
WO2018020383A1 (en) * 2016-07-25 2018-02-01 Mobeewave, 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
US10341102B2 (en) * 2016-09-02 2019-07-02 Blackberry Limited Decrypting encrypted data on an electronic device
US10348502B2 (en) * 2016-09-02 2019-07-09 Blackberry Limited Encrypting and decrypting 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 영남대학교 산학협력단 데이터의 부분 암호화 방법, 데이터의 부분 복호화 방법 및 부분 암호화된 데이터를 복호화하는 프로그램을 저장하는 저장매체
EP3338143B1 (en) * 2016-10-27 2019-02-20 Hewlett-Packard Development Company Replaceable item authentication
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
WO2018153486A1 (en) * 2017-02-24 2018-08-30 NEC Laboratories Europe GmbH Method for signing a new block in a decentralized blockchain consensus network
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
EP3656081A1 (en) * 2017-07-18 2020-05-27 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
US10733313B2 (en) 2018-02-09 2020-08-04 Arm Limited Counter integrity tree for memory security
US10540297B2 (en) * 2017-08-03 2020-01-21 Arm Limited Memory organization for security and reliability
CN107609405B (zh) * 2017-08-03 2020-08-18 海光信息技术有限公司 一种外部安全内存装置及系统级芯片soc
US10397000B2 (en) 2017-08-14 2019-08-27 Raytheon Company Multi-level authentication for secure supply chain asset management
WO2019043921A1 (ja) * 2017-09-01 2019-03-07 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
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
US10860403B2 (en) 2017-09-25 2020-12-08 The Boeing Company Systems and methods for facilitating truly random bit generation
US10924263B2 (en) * 2017-09-25 2021-02-16 The Boeing Company Systems and methods for facilitating iterative key generation and data encryption and decryption
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
US10256974B1 (en) * 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
WO2019217931A1 (en) 2018-05-11 2019-11-14 Lattice Semiconductor Corporation Asset management systems and methods for programmable logic devices
EP3791307A4 (en) * 2018-05-11 2022-03-30 Lattice Semiconductor Corporation SECURE BOOTING SYSTEMS AND METHODS FOR PROGRAMMABLE LOGIC CIRCUITS
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
EP3809271B1 (en) * 2018-08-15 2022-06-22 Huawei Technologies Co., Ltd. Secure data transfer apparatus, system and method
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 삼성전자주식회사 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법
FI3890367T3 (fi) * 2018-12-20 2023-07-18 Merck Patent Gmbh Menetelmiä ja järjestelmiä esineen todennuksen valmisteluun ja suorittamiseen
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
CN110213228B (zh) * 2019-04-25 2021-09-07 平安科技(深圳)有限公司 一种认证通信的方法、装置、存储介质及计算机设备
US11128471B2 (en) * 2019-04-25 2021-09-21 Microsoft Technology Licensing, Llc Accessibility controls in distributed data systems
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
US20220284132A1 (en) * 2019-08-29 2022-09-08 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
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
KR102094705B1 (ko) * 2020-01-17 2020-03-30 주식회사 에프엔에스벨류 블록 체인을 기반으로 한 다중 노드 인증 방법 및 이를 위한 장치
CN114041173A (zh) * 2020-01-19 2022-02-11 移动眼视觉科技有限公司 对来自有资格的成员的群组的数据的匿名收集
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 广州万协通信息技术有限公司 安全芯片密钥验证方法及装置

Family Cites Families (179)

* 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
DK0739560T3 (da) 1994-01-13 2001-10-01 Certco Inc Kryptografisk system og fremgangsmåde med nøgledeponeringsfunktion
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
US6327661B1 (en) 1998-06-03 2001-12-04 Cryptography Research, Inc. Using unpredictable information to minimize leakage from smartcards and other cryptosystems
US7587044B2 (en) 1998-01-02 2009-09-08 Cryptography Research, Inc. Differential power analysis method and apparatus
CA2316227C (en) * 1998-01-02 2009-08-11 Cryptography Research, Inc. Leak-resistant cryptographic 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
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
EP1088295B1 (en) 1998-06-03 2007-08-15 Cryptography Research Inc. Balanced cryptographic computational method and apparatus for leak minimization in smartcards and other cryptosystems
ATE418099T1 (de) 1998-06-03 2009-01-15 Cryptography Res Inc Gesicherte moduläre potenzierung mit leckminimierung für chipkarten und andere kryptosysteme
EP1092297B1 (en) 1998-07-02 2007-04-25 Cryptography Research Inc. Leak-resistant cryptographic indexed key update
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
JP2002536915A (ja) * 1999-02-04 2002-10-29 メテオ―ラ・システム株式会社 コンピュータによる暗号解読に対しエントロピーを増大させる発散バリアを備えたip鍵管理メカニズム
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
NZ513862A (en) * 2000-01-21 2001-09-28 Sony Corp Data authentication system
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
US7505599B2 (en) * 2000-04-06 2009-03-17 Sony Corporation Information processing system and method for managing encrypted data with tag information
JP4622064B2 (ja) * 2000-04-06 2011-02-02 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
US7089240B2 (en) * 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
CN100490369C (zh) * 2000-06-15 2009-05-20 索尼公司 使用了加密密钥组的信息处理系统及方法
JP2001358707A (ja) * 2000-06-15 2001-12-26 Sony Corp 暗号鍵ブロックを用いた情報処理システムおよび情報処理方法、並びにプログラム提供媒体
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
US7117373B1 (en) 2000-11-28 2006-10-03 Xilinx, Inc. Bitstream for configuring a PLD with encrypted design data
US6931543B1 (en) 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
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
WO2002079960A1 (en) * 2001-03-30 2002-10-10 Enterprises Solutions, Inc. 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
US7194633B2 (en) * 2001-11-14 2007-03-20 International Business Machines Corporation Device and method with reduced information leakage
CN100390695C (zh) * 2001-11-14 2008-05-28 国际商业机器公司 更少信息泄露的设备与方法
US7333616B1 (en) * 2001-11-14 2008-02-19 Omniva Corp. Approach for managing access to messages using encryption key management policies
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
US7657748B2 (en) * 2002-08-28 2010-02-02 Ntt Docomo, Inc. Certificate-based encryption 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 松下電器産業株式会社 プログラム更新方法
US7399043B2 (en) * 2002-12-02 2008-07-15 Silverbrook Research Pty Ltd Compensation for uneven printhead module lengths in a multi-module printhead
US20050210179A1 (en) * 2002-12-02 2005-09-22 Walmsley Simon R Integrated circuit having random clock or random delay
US20090319802A1 (en) * 2002-12-02 2009-12-24 Silverbrook Research Pty Ltd Key Genaration In An Integrated Circuit
US7613925B2 (en) * 2003-01-10 2009-11-03 Motorola, Inc. Method for authenticating a message
ATE383614T1 (de) 2003-06-25 2008-01-15 Nokia Corp Verwaltung digitaler rechte
US7581094B1 (en) * 2003-07-09 2009-08-25 Hewlett-Packard Development Company, L.P. Cryptographic checksums enabling data manipulation and transcoding
GB2404467A (en) * 2003-07-31 2005-02-02 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
GB2404486A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
GB2404538A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital content
GB2404488B (en) * 2003-07-31 2006-05-31 Sony Uk Ltd Access control for digital content
GB2404487A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium 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
KR101037006B1 (ko) * 2003-11-28 2011-05-25 파나소닉 주식회사 데이터 처리장치
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
CN1954538B (zh) * 2004-05-12 2012-06-20 艾利森电话股份有限公司 用于安全广播的密钥管理消息
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
EP1784756B1 (de) * 2004-08-26 2018-11-14 Deutsche Telekom AG Verfahren und sicherheitssystem zur sicheren und eindeutigen kodierung eines sicherheitsmoduls
US20060059344A1 (en) * 2004-09-10 2006-03-16 Nokia Corporation Service authentication
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
KR100727387B1 (ko) * 2004-10-22 2007-06-12 삼성전자주식회사 네트워크 시스템에서의 키 관리방법
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
JP4735644B2 (ja) * 2005-11-04 2011-07-27 日本電気株式会社 メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体
WO2007055104A1 (ja) * 2005-11-08 2007-05-18 Matsushita Electric Industrial Co., Ltd. 認証システム、署名生成装置、署名検証装置
US20070174362A1 (en) 2006-01-18 2007-07-26 Duc Pham System and methods for secure digital data archiving and access auditing
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
WO2008004524A1 (fr) * 2006-07-03 2008-01-10 Panasonic Corporation Dispositif de certification, dispositif de vérification, système de vérification, programme informatique et circuit intégré
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
WO2009145495A2 (en) 2008-04-04 2009-12-03 Samsung Electronics Co., Ltd. Method and apparatus for providing broadcast service using encryption key in a communication system
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 시스템 통신 환경에 효율적인 키 관리 방법
EP2382536B1 (en) * 2009-01-29 2018-04-25 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
TWI450556B (zh) * 2009-04-15 2014-08-21 Interdigital Patent Holdings 外部通信實體可認證的裝置及方法
US20100278338A1 (en) * 2009-05-04 2010-11-04 Mediatek Singapore Pte. Ltd. Coding device and method with reconfigurable and scalable encryption/decryption modules
EP2462507B1 (en) * 2009-08-04 2019-07-24 Carnegie Mellon University Methods and apparatuses for user-verifiable trusted path in the presence of malware
US8447988B2 (en) * 2009-09-16 2013-05-21 Lsi Corporation Hash processing using a processor
CA2767189C (en) * 2009-09-29 2015-02-10 Silverbrook Research Pty Ltd 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
US8386800B2 (en) * 2009-12-04 2013-02-26 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
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

Also Published As

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

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
Guajardo et al. Physical unclonable functions and public-key crypto for FPGA IP protection
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
JP6366595B2 (ja) 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
US9762560B2 (en) Method for generating cryptographic “one-time pads” and keys for secure network communications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150901

R150 Certificate of patent or registration of utility model

Ref document number: 5805249

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250