JP5306465B2 - セキュアなメモリに応用するメッセージ認証コードの事前計算 - Google Patents

セキュアなメモリに応用するメッセージ認証コードの事前計算 Download PDF

Info

Publication number
JP5306465B2
JP5306465B2 JP2011524982A JP2011524982A JP5306465B2 JP 5306465 B2 JP5306465 B2 JP 5306465B2 JP 2011524982 A JP2011524982 A JP 2011524982A JP 2011524982 A JP2011524982 A JP 2011524982A JP 5306465 B2 JP5306465 B2 JP 5306465B2
Authority
JP
Japan
Prior art keywords
data
block
rijndael
read
authentication code
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.)
Expired - Fee Related
Application number
JP2011524982A
Other languages
English (en)
Other versions
JP2012501579A (ja
Inventor
ガライ,フアン・ア
コレスニコフ,ウラジミール
マクレラン,ヒユーバート・レイ
Original Assignee
アルカテル−ルーセント ユーエスエー インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント ユーエスエー インコーポレーテッド filed Critical アルカテル−ルーセント ユーエスエー インコーポレーテッド
Publication of JP2012501579A publication Critical patent/JP2012501579A/ja
Application granted granted Critical
Publication of JP5306465B2 publication Critical patent/JP5306465B2/ja
Expired - Fee Related 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/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
    • 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
    • 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
    • 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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、セキュアなメモリに応用する、認証コードを事前計算するための方法および装置を対象とする。
消費者製品、業務用製品、および軍用機器さえも、日に日にコンピュータシステムに依存するようになっている。製品がコンピューティング装置を組み込むとき、人々はその製品を無料で利用するために、またはその製品を妨害するために、製品の弱点を悪用しようとする可能性がある。コンピューティングの世界では、ハッカー、著作権侵害者、または敵対者が、機器のメモリを改ざんすることにより、コンピューティング機器を使用する製品を悪用しようとする可能性がある。一般に、コンピューティングの完全性(インテグリティ)を保護することに関しては、ソフトウェアベースとハードウェアベースの、2つの主要なセキュリティ領域がある。ソフトウェアベースのセキュリティは、ソフトウェアの完全性に関係する。ハードウェアベースのセキュリティは、ハッカーがコンピューティングシステムにフルアクセスし、オシロスコープおよびロジックアナライザを使用してコンピューティングシステムを監視することができるとされる。
チップ上に回路を非常に大規模に集積化することが進歩し、チップ上に完全なシステム(Systems on a Chip(SoC))を集積化することによって、耐タンパー性ハードウェアのコンピューティングシステムがもたらされた。このように、コンピューティングシステム全体をチップ上に集積化することにより、敵対者の攻撃を阻止することができる。しかしながらほとんどの実際の状況では、オンチップメモリの不足が、この解決法を実現不可能にしている。プログラムおよびデータは、オフチップメモリに格納されなければならない。これは、敵対者がオフチップメモリを改ざんすることによってコンピューティング機器に障害を生じさせる道を開く。
メモリに署名し、暗号化することは、敵対者がオフチップメモリを成功裏に改ざんすることを阻止するための一方法である。メッセージの署名は、メモリの一部が前回読み出されてから変わっていないことを検証するために使用されることが可能であるチェックサムと同様である。データがオフチップメモリに書き込まれるとき、署名が生成され、データと共に格納される。データがオフチップメモリから読み出されるとき、署名が検証されて、データが変わっていないことを確認する。署名の生成は、高価な操作となる可能性がある。署名を生成するには多くのクロックサイクルが使用される場合がある。したがって、メモリの署名を生成し、チェックすることは、効率的でなければならない。
メッセージの認証が、大量の研究の主題となった。最も自然なMAC方式は、冗長データ(32個のゼロの列など)と連結されたメッセージに擬似ランダム置換(PRP)の単純な値を求める(evaluation)ことを含むが、このような方式は、事前計算に向いていない。
MAC計算の別の手法は、万能ハッシュ関数(UHF)を使用する。UHFからMACを取得する考えは、最初にCarterおよびWegmanによって提案された(Wegman、Carter、New Hash Functions and Their Use in Authentication and Set Equality、JCSS、22:265、1981)。後にBrassardが、擬似ランダム生成器を使用して、MAC鍵のサイズを縮小することを提案した(Gilles Brassard、On computationally secure authentication tags requiring short secret shared keys、Crypto’82,79−86)。その結果の構成は、次のとおりである:Mac(m,r)=h(m)XOR F(r)、ただしhはUHFであり、Fは擬似ランダム生成器である。それ以来、相当量の研究は、使用される関数hおよびFの速度およびその他の改善に集中した。
MACの事前計算の構成は、以前に提案された構成とは異なり、事前計算を用いた短いメッセージの認証には特に望ましい特性を持っている。
Wegman、Carter、New Hash Functions and Their Use in Authentication and Set Equality、JCSS、22:265、1981 Gilles Brassard、On computationally secure authentication tags requiring short secret shared keys、Crypto’82,79−86
1つの実施形態における方法は、擬似ランダム関数(PRF)および擬似ランダム置換(PRP)のうちの少なくとも1つを実行することによってデータ入力からデータのランダム置換を作成するステップと、データのランダム置換を受信された第2のデータブロックと結合すること、およびε差分一様(ε−DU)置換を実行することによって第1のデータブロックを作成するステップとを含む。秘密鍵を使用してε−DU関数の値を求めた結果をXOR演算し、第1のデータブロックを第1のメッセージ認証コードに縮小する。
別の実施形態におけるシステムは、MACコンピュータを含み、MACコンピュータが擬似ランダム関数(PRF)および擬似ランダム置換(PRP)のうちの少なくとも1つを実行することによってデータ入力からデータのランダム置換を作成し、MACコンピュータがデータのランダム置換を受信された第2のデータブロックと結合する、およびε差分一様(ε−DU)置換を実行することによって第1のデータブロックを作成し、MACコンピュータが秘密鍵を使用してε−DUの値を求めた結果をXOR演算し、MACコンピュータが第1のデータブロックを第1のメッセージ認証コードに縮小する。
本発明の例示的実装の特徴は、説明、特許請求の範囲、および添付の図面から明らかになるであろう。
MACの事前計算のための装置および方法があるコンピュータシステムの見本のブロック図である。 MACの事前計算を使用してデータを読み書きする際に使用することができる方法の一例を示す図である。 MACの事前計算を使用してデータをメモリに書き込む方法を示す図である。 MACの事前計算を使用してメモリからデータを読み出して認証する方法を示す図である。 MACの事前計算を行うための装置を含むことができるシステムの一実施形態を示す図である。
先に述べたように、コンピュータセキュリティの弱点部分はオフチップメモリである。敵対者は、オフチップメモリに含まれている情報を変える、または再生して、コンピュータシステムを破壊させる可能性がある。敵対者を減らす1つの方法は、オフチップメモリに署名し、暗号化することである。メモリ上の署名を計算することは、メッセージ認証コード(MAC)を生成することを伴うことがある。鍵およびメモリもしくはデータのブロックを入力として使用してMACアルゴリズムが実行される。MACアルゴリズムは、署名またはMACを出力することができる。MACは値であることが可能である。MACは、16ビットまたは32ビットであることが可能である。しかしながらMACは、より大きいまたはより小さいことが可能である。オフチップメモリに書き込まれたデータを使用して、第1のMACが計算される。第1のMACは、データと共に格納される。データがオフチップメモリから読み出されるとき、読み出されるデータから第2のMACが生成される。第1のMACが第2のMACと一致しない場合、システムはデータをリセットおよび/または廃棄することができる。
図1を見ると、これは、MACの事前計算のための装置および方法が備わっていることが可能であるシステム100の見本のブロック図である。システム100の主要構成要素は、オンチップか、オフチップである。システムのオフチップ構成要素は、ダイナミックランダムアクセスメモリ(DRAM)115の形態のメモリである。DRAMは、システムのオンチップ部分にあるソフトウェアまたはプログラムによって使用されるデータを格納することができる。この実施形態ではDRAMを示しているが、このシステム100においてオフチップデータを格納するために、DRAM、ランダムアクセスメモリ、または他のいかなるメモリもしくはデータを格納する方法も使用することができる。
オンチップにある構成要素には、DRAMコントローラ120、暗号化認証ユニット125、バスインタフェースロジック130、バス135、中央処理ユニット140およびキャッシュ145、ならびにダイレクトメモリアクセス(DMA)エンジン150が含まれる。
CPU140およびDMAエンジン150は、バス135を介してバスインタフェースロジック130と通信することができる。バスインタフェースロジック130は、EAU125と通信可能に結合されることが可能である。EAU125は、さらにDRAMコントローラ120と通信可能に結合されることが可能である。DRAMコントローラは、DRAM115と通信可能に結合されることが可能である。
CPU140およびDMA150は、DRAM115に対してデータの読み書きを行うことができる。CPU140またはDMA150がDRAM115に対して読み書きを行うとき、読み書きされるデータは、バスインタフェースロジック130、EAU125、およびDRAMコントローラ120を通って流れる。データを読み書きする際に、バスインタフェースロジック130はあらゆるサイズのトランザクションを処理する。しかしながらEAU125は、オフチップのDRAM115に対して固定サイズのデータのブロックを読み書きする。固定サイズのブロックは、暗号化ブロックまたはデータブロックと呼ばれることが可能である。一実施形態では、データブロックは256ビットを含む。暗号化ブロックは、メモリ115に読み書きされる最小単位のデータとすることができる。バスインタフェースロジック130はあらゆるサイズのトランザクションを処理するので、EAU125は、暗号化ブロックより大きいまたは小さいデータを読み書きする要求を管理しなければならない。
一実施形態では、メッセージ認証コードの事前計算のための方法およびシステムは、EAU125にあることが可能である。EAU125は、DRAM115から読み書きされるデータの暗号化/復号化および認証を行うことができる。書き込みトランザクションは、DRAM115に向かう途中で暗号化されることが可能である。読み出しトランザクションは、情報がDRAM115から読み出されるとき認証されて、復号化されることが可能である。したがって、EAU125がメモリから読み書きするいかなるデータブロックも、暗号化されたデータを含むことができる。
データまたはメモリを認証するとき、EAU125は、EAU125がメモリに書き込むデータブロック用の第1のMACを生成することができる。次に第1のMACは、このデータブロックと関連付けられる。このデータブロックがメモリから読み出されるとき、EAU125は読み出されるデータに基づいて第2のMACを生成することができる。第2のMACは、第1のMACと比較されることが可能である。第1のMACおよび第2のMACが一致しない場合、メモリは破損した、または損なわれた可能性がある。メモリが破損している場合、EAU125はメモリ破損プロシージャを実行することができる。これは、システムをリセットすること、またはCPUにメッセージを送信してメモリの異常をCPUに知らせることを伴うことができる。次にCPUは、システムをリセットする、または他のなんらかの予防アクションを起こすことができる。
一般には、EAU125がメモリトランザクションのアドレスを受信した後に、メモリトランザクションと関連付けられたデータが届く。したがって、データを暗号化すること、およびMACを生成することを含む計算の大部分は、データが届く前に行われることが可能である。
図2を見ると、これは、セキュアなメモリに応用するMAC事前計算を使用してデータを読み書きする際に使用されることが可能である方法200の1つの例である。この方法200は、暗号化認証ユニット125上にあることが可能である。この方法は、まず要求を処理する210。要求は、データを読み書きする要求であることが可能である。要求は、バスインタフェースロジック130を介して届くことが可能である。バスインタフェースロジック130がデータを読み書きする要求を送信するとき、バスインタフェースロジック130は方法200へアドレスを渡すことができる。要求が書き込み要求である場合、アドレスは、データが書き込まれる予定のアドレスであることが可能である。要求が読み出し要求である場合、アドレスは、データが読み出される予定のアドレスであることが可能である。
次に方法200は、要求が書き込み要求であるかどうかを判断する215。要求が書き込み要求である場合、方法200は書き込みハンドラを呼び出す220。これは書き込み要求であるので、バスインタフェースロジック130は、書き込みアドレスを方法200に渡すことができる。方法200が書き込みハンドラを呼び出すと、方法200はアドレスまたは書き込みアドレスを書き込みハンドラに渡すことができる。書き込みハンドラが要求の処理を行われた後、方法200は要求の処理210を続ける。
入来する要求が書き込み要求ではない場合、方法200は、要求が読み出し要求であるかどうかを判断する225。要求が読み出し要求ではない場合、方法200は要求の処理210に戻る。要求が読み出し要求である場合、方法200は読み出しハンドラを呼び出すことができる230。方法200が読み出しハンドラを呼び出すと、方法200はアドレスまたは読み出しアドレスを読み出しハンドラに渡すことができる。
図3を見ると、MAC事前計算を使用してDRAM115へデータを書き込むことができる、1つの例の方法である。書き込みハンドラの方法または書き込みハンドラ300は、EAU125の一部としてオンチップにあることが可能である。EAU125がデータを受信すると、EAU125はMACを生成することができ、またデータを暗号化することもできる。このプロセスは、書き込みハンドラがアドレスを受信すると始まる310。アドレスは、EAU125がデータを書き込むことになっているDRAM115の中の位置であることが可能である。アドレスは、32ビットのアドレス、16ビットのアドレス、またはDRAM115をアドレス指定するために使用されることが可能である他のいかなるサイズのアドレスとすることもできる。説明のために、アドレスは32ビット長であると仮定する。この時点では、データは到着していない可能性がある。
この時、アドレスは利用できるので、MAC計算は開始可能である。方法300は、データが到着するのを待ってMAC計算を始める必要がない。EAU125は、208ビットのゼロ(パッド)、32ビットのアドレス、および16ビットのノンス(ゼロ、アドレス、およびノンス)を連結することによって、256ビットのデータブロックを作成することができる。256ビットのデータブロックは、データ入力であることが可能である。MACを計算することの一部は、データ入力を使用してPRFまたはPRPまたはランダム性の値を求めることを含むことができる。PRF/PRPは、理想化されたブロック暗号であり、その暗号はランダム性から識別することができないビットパターンになることを、当業者であれば容易に理解するであろう。またMACを計算することの一部は、イプシロン差分一様(ε−DU)関数の値を求めることを含むことができる。ε−DU関数が、ランダムビットパターンをもたらすブロック暗号でありうることは、当業者には容易に理解されるであろう。しかしながら、ε−DU関数によって作り出されるビットパターンのランダム性は、PRPによって生成されるビットパターンのランダム性ほどすぐれていない。したがって、ε−DUによって生成されたビットパターンは、PRPによって生成されたビットパターンほど安全ではない可能性がある。ノンス、または一度使用された数は、滅多に繰り返されることのない数であることも、当業者は容易に理解するであろう。この実施形態では、ノンスは、書き込みが行われるたびにインクリメントされるカウンタとすることができる。
ノンス、アドレス、およびゼロを暗号化する際に必要とされるレベルのランダム性を作り出すために、PRPまたはPRF関数Fが使用されることが可能である。方法300は、Rijndael(または、その最も普及している具体例である、次世代暗号化標準、すなわちAES)Fを実行することができる320。方法300は、データ入力(ゼロ、アドレス、およびノンス)にRijndaelの14ラウンドを実行し、256ビットのランダム性を達成することができる。256ビットのランダム性は、Rijndael書き込みブロックまたはRijndaelブロックであることが可能である。ランダム値またはランダム性は、例えば一連の1および0であることが可能である。一部の実施形態では、PRP Fは、2組の128ビットにRijndaelのAESバージョンの10ラウンドを実行することによって達成されることが可能であることに留意されたい。2組の128ビットは連結されて、256ビットのブロックを形成する。Rijndaelを実行するとき、方法300はランダムキー、k1を選択する。Rijndaelアルゴリズムは、Rijndaelアルゴリズムへの入力として鍵k1を使用することができる。ランダムキーまたは秘密鍵は、ランダムに選択される鍵である。例えば、乱数生成器が使用されて、ランダムキーを選択することが可能である。他の形態のランダム生成器が使用されて、ランダムキーを選択することも可能である。
方法300は、書き込みデータを受信する330。方法300が書き込みデータを受信すると、方法300はこのデータを暗号化することができる。方法300は、AES、またはデータを暗号化する他のいかなる方法を使用することによってもデータを暗号化することができる。暗号化されたデータは、Rijndael書き込みブロックを使用してXOR演算されることが可能である335。その結果は、XOR演算されたRijndael書き込みブロックとなることが可能である。XOR演算されたRijndael書き込みブロックは、256ビットを含むことができる。
方法300は、ε−DU関数族の関数Gを計算することができる。方法300は、ε−DU関数族への入力として使用されることが可能である第2のランダムキー、K2を選択することができる。ε−DU関数Gは、XOR演算されたRijndael書き込みブロックで実行されることが可能である340。関数Gは、結果として256ビットのG書き込みブロックとなる、XOR演算されたRijndael書き込みブロックでRijndaelの2または4ラウンドの値を求めることであることが可能である。G書き込みブロックは、256ビットの鍵、k3でXOR演算されることが可能であり345、結果として256ビットのMブロックとなる。Mブロックは、XORツリーを使用することによって、256ビットから32ビットのMACまたは第1のMACに折り畳まれることが可能である350。暗号化されたデータブロックは、DRAMに格納されることが可能である360。32ビットの第1のMACおよびノンスもまた、DRAMに格納され360、暗号化されたデータブロックと関連付けられることが可能である。したがって暗号化されたデータが認証される必要があるとき、認証を行うために必要とされる情報は取り出されることが可能である。鍵k1、k2、およびk3は、EAUに格納されることが可能である。
この例では、データをメモリに書き込む際にMACを事前計算するための方法および装置が使用されたが、この方法および装置は、データを書き込むことまたは送信することを含むいかなる用途に使用されることも可能である。他の実施形態では、メモリアドレスを使用してMACを事前計算するのではなく、他の値を使用してMACを計算することができる。例えば、この方法および装置がメッセージの用途に使用される場合、アドレスの代わりにメッセージコンテキスト識別子を使用することができる。さらに、アドレス、ノンス、および他の変数のサイズは、ユーザの必要およびこの方法が使用される用途に応じて変わる可能性がある。
図4を見ると、これは、DRAM115からデータを読み出すことができる1つの例における方法400である。DRAM115からデータを読み出すプロセスにおいて、方法400はデータを認証することができる。データを認証することは、格納されたデータに基づいて第2のMACを生成すること、および第2のMACを、データと共にもともと格納されていた第1のMACと比較することを伴うことができる。方法400は、バスインタフェースロジック130からアドレスまたは読み出しアドレスを受信することができる410。
方法400は、データを認証するために必要とされる情報を取り出すことができる420。この情報は、鍵k1、k2、k3のような、オンチップにあることが可能である情報を含むことができる。さらにこの情報は、読み出しアドレスにある第1のMAC、ノンス、および読み出しデータのような、オフチップにあることが可能である情報を含むことができる。読み出しデータは、暗号化されたデータであることが可能である。
方法400は、図3に関して説明したように、アドレス、ノンス、およびゼロ(ゼロパッド)にPRP Fを計算することができる430。鍵k1は、PRP Fを計算するために必要とされる。データを認証するまたは読み出すときにPRP Fを計算するために使用される鍵k1は、データを書き込むときにPRP Fを計算するために使用された同じ鍵k1であることが可能であることに留意されたい。前述のように、PRP Fは、ノンス、アドレス、および208ビットのゼロにRijndaelの14ラウンドを実行することによって達成されることが可能である430。14ラウンドのRijndaelの結果は、Rijndaelブロックであることが可能である、256ビットのランダム性となることが可能である。またFは、Rijndaelの10ラウンドの128ビットAESバージョンの2インスタンスを並行して実行することによって達成されることが可能である。データを読み出すとき、Rijndaelブロックは、Rijndael読み出しブロックと呼ばれることがある。
Gを計算する440際に、Rijndael読み出しブロックは、読み出しデータを使用してXOR演算されることが可能である。結果は、XOR演算されたRijndaelブロック、またはXOR演算されたRijndael読み出しブロックであることが可能である。Gは、XOR演算されたRijndael読み出しブロックに2または4ラウンドのRijndaelを実行して達成されることが可能である。Gを計算した440結果は、256ビットのGブロックまたはG読み出しブロックであることが可能である。G書き込みブロックを計算するために使用された同じ鍵k2が、G読み出しブロックを計算するために使用されることが可能であることに留意されたい。
G読み出しブロックは、鍵k3を使用してXOR演算され、256ビットのM読み出しブロックに到達することができる。M読み出しブロックは、XORツリーによって32ビットの第2のMACに縮小されることが可能である450。第2のMACは、第1のMACと比較されることが可能である470。第1のMACは、データがもともとDRAM115に書き込まれたときに生成されたことを思い出す。第1のMACおよび第2のMACが等しくない場合、データは破損した、または損なわれた可能性がある。方法400は、メモリ破損応答プロシージャを実行することによってミスマッチを処理する490。第1のMACおよび第2のMACが等しい場合、方法400は読み出しデータをバスインタフェースロジック130に戻すことができる。データは、MACの破壊がシステムリセットを招く可能性があるので、MACの検証前にCPUに渡されることも可能である。記載した方法300、400は、shallow MACまたはshMACとして知られている場合がある。
図5を見ると、これはMACの事前計算を行うための装置を含むことができるシステム550の一実施形態を示している。システム500は、バスインタフェースロジックユニット130、DRAMコントローラ120、およびEAU125からなることが可能である。EAU125はさらに、データハンドラ530、MACコンピュータ535、およびデータ暗号器540からなることが可能である。さらにMACコンピュータ535は、MAC PRP F計算機545、およびε−DU計算機550からなることが可能である。
前述のように、EAU125は、DRAMコントローラ120およびバスインタフェースロジック130と通信可能に結合されることが可能である。DRAMコントローラ120およびバスインタフェースロジック130は、データハンドラ530と通信可能に結合されることが可能である。データハンドラ530は、EAU125の外部にあるデータを読み書きすることができるノードまたは構成要素であることが可能である。ノードまたは構成要素は、ソフトウェア、ファームウェア、ハードウェア、または計算を行うことができる他のいかなるタイプの装置とすることもできる。
またデータハンドラ530は、MACコンピュータ535およびデータ暗号器540と通信可能に結合されることが可能である。MACコンピュータ535は、MACを事前計算することができるノードまたは構成要素であることが可能である。データ暗号器540は、データを暗号化することができるノードまたは構成要素であることが可能である。
さらにMACコンピュータ535は、PRP F計算機545、およびε−DU550計算機からなることが可能である。PRP F計算機545は、PRP F関数を計算することができる構成要素またはノードである。ε−DU550計算機は、ε−DU関数を計算することができる構成要素である。
バスインタフェースロジック130は、DRAM115からデータを読み書きする要求を送信することができる。データハンドラ530は、この要求を受信することができる。データを書き込む要求は、2つの部分として届くことが可能である。まず、バスインタフェースロジック130は、データハンドラ530にアドレスを送信することができる。一般的なシステムでは、2以上のクロックサイクル後に、データハンドラ530はこのアドレスと関連する書き込みデータを受信することができる。データを読み出すと、バスインタフェースロジック130は、読み出しアドレスを送信することができる。データハンドラは、読み出したデータをバスインタフェースロジック130に送信することによって応答することができる。
データハンドラ530が書き込み要求を受信する場合、データハンドラ530は、書き込みアドレスをMACコンピュータ535およびデータ暗号器540に転送することが可能である。一部の実施形態では、書き込みアドレスは32ビットであることが可能である。データ暗号器540は、データを暗号化するプロセスの一部として書き込みアドレスを使用することができる。MACコンピュータ535は、書き込みアドレスおよびノンスをPRP F計算機545に転送することができる。一部の実施形態では、ノンスは16ビットであることが可能である。PRP F計算機545は、Rijndael関数を実行する際に使用するために、ランダムキー、K1を生成することができる。PRP F計算機は、K1を使用して、256ビットのデータ入力に14ラウンドのRijndael(またはRijndaelの2ラウンドの128ビットAESバージョンの2つの並行するインスタンス)を実行することができる。データ入力は、208ビットのゼロ、32ビットのアドレス、および16ビットのノンスから構成されることが可能である。データ入力にRijndaelの14ラウンドを実行する出力は、256ビットのランダムデータであることが可能であり、これはRijndaelブロックまたはRijndael書き込みブロックと呼ばれることが可能である。PRP F計算機545は、Rijndael書き込みブロックをε−DU計算機550に渡すことができる。一部の実施形態では、書き込みデータはこの時点でまだ到着していない。それにもかかわらず、PRP F計算機545はRijndaelを実行し、Rijndael書き込みブロックを作成した。
書き込みデータが到着すると、データハンドラ530は書き込みデータをデータ暗号器540に転送することができる。データ暗号器540はデータを暗号化し、暗号化したデータをε−DU計算機550に渡すことができる。ε−DU計算機550は、暗号化されたデータを、Rijndael書き込みブロックを使用してXOR演算することができる。その結果は、256ビットのXOR演算されたRijndaelブロックまたはXOR演算されたRijndael書き込みブロックとなることが可能である。ε−DU計算機550は、初期化時に、ランダムキー、K2を生成または選択することができる。ε−DU計算機550は、XOR演算されたRijndael書き込みブロックに2または4ラウンドのRijndaelを実行する際にK2を使用することができる。XOR演算されたRijndael書き込みブロックに4ラウンドのRijndaelを実行した結果は、256ビットのG書き込みブロックとなることが可能である。G書き込みブロックは、256ビットの鍵、K3でXOR演算され、256ビットのMブロックに到達することができる。
256ビットのMブロックは、XORツリーによって32ビットのMACまたは第1のMACに折り畳まれることが可能である。暗号化されたデータは、DRAM115に書き込まれることが可能である。またノンスおよび第1のMACは、オフチップに格納されて、DRAM115に書き込まれる暗号化されたデータと関連付けられることも可能である。
データハンドラ530が読み出し要求を受信するとき、データハンドラ530は読み出し要求と共に読み出しアドレスを受信することができる。データハンドラ530は、読み出しアドレスをMACコンピュータ535に渡すことができる。MACコンピュータ535は、オフチップのメモリから第1のMAC、ノンス、および読み出しデータを取り出すことができる。またMACコンピュータ535は、読み出しデータがDRAM115に書き込まれたときオンチップに格納された鍵、K1、K2、およびK3を取り出すこともできる。MACコンピュータ535は、鍵、第1のMAC、ノンス、および読み出しデータをPRP F計算機545に渡すことができる。PRP F計算機545は、K1を使用して、208ビットのゼロ(ゼロパッド)、32ビットのアドレス、および16ビットのノンスからなる256ビットのデータブロックに14ラウンドのRijndaelを実行することができる。あるいは、書き込みハンドラと相関的に、PRP F計算機545は、Rijndaelの2ラウンド128ビットAESバージョンの2つのインスタンスを並行して実行することができる。実行中のRijndaelの出力は、256ビットのランダムデータであることが可能であり、これはRijndaelブロックまたはRijndael読み出しブロックと呼ばれることが可能である。PRP F計算機545は、Rijndael読み出しブロックをε−DU計算機550に渡すことができる。
ε−DU計算機550は、暗号化された読み出しデータをRijndael読み出しブロックでXOR演算することができる。結果は、256ビットのXOR演算されたRijndaelブロックまたはXOR演算されたRijndael読み出しブロックであることが可能である。ε−DU計算機550は、XOR演算されたRijndael読み出しブロックに4ラウンドのRijndaelを実行する際にK2を使用することができる。2または4ラウンドのRijndaelを実行した結果は、256ビットのGブロックまたはG読み出しブロックとなることが可能である。G読み出しブロックは、256ビットの鍵、K3を使用してXOR演算されて、256ビットのMブロックまたはM読み出しブロックに到達することが可能である。
256ビットのM読み出しブロックは、XORツリーによって32ビットの第2のMACに折り畳まれることが可能である。第2のMACは、第1のMACと比較されることが可能である。第2のMACが第1のMACと等しくない場合、読み出されたデータは損なわれた、または破損した可能性がある。メモリが損なわれている、または破損している場合、MACコンピュータ535はメモリ破損応答プロシージャを実行することができる。
メッセージ認証コードの事前計算のためのシステムおよび方法は、ステートレスである可能性がある。ステートレスである認証および暗号化アルゴリズムは、リプレイアタックにメモリを公開する可能性がある。例えば、敵対者は、メモリのある場所を、以前メモリの同じ場所に格納されていた値と置き換えることができる。同様に、敵対者は、書き込みトランザクション中にDRAMを全く更新することはない。これらのアタックは、結果として、暗号解読および認証後に、有効と間違えられるメモリとなる可能性がある。
効率を良くするために、暗号化および認証鍵は、メモリ全体またはメモリの大部分に対して作成されることが可能である。前述のリプレイアタックを阻止する目的で、メモリと関連付けられた暗号化および認証鍵は、定期的にリフレッシュされることが可能である。
メモリの鍵リフレッシュの一実施形態は、メモリを2つの領域に分割することを含むことができる。メモリは、第1の領域と第2の領域に分割されることが可能である規則正しい配列である。第1の領域および第2の領域は、境界アドレスによって分けられることが可能である。第1の領域は、第1の組の鍵で暗号化され、認証されることが可能である。第2の領域は、第2の組の鍵で暗号化され、認証されることが可能である。リフレッシュ方法は、他の領域を消費してメモリの1つの領域を拡大することを含む。したがって、第2の領域は、第2の領域の境界がメモリの限界に達するまで拡大することが可能である。メモリの限界は、最も高いアドレス指定可能なアドレスまたは最も低いアドレス指定可能なアドレスであることが可能である。
データがメモリの第2の領域に書き込まれるとき、第2の組の鍵が使用されて、データを復号および認証することができる。境界がメモリの限界に達する、例えば境界が最も低いアドレス指定可能なアドレスに達するとき、メモリの第1の領域用の鍵は廃棄されることが可能であり、メモリの第1の領域に対して新しい第3の組の鍵が生成されることが可能である。データがメモリに書き込まれるとき、データはこの第3の組の鍵を使用して暗号化されて、認証され、メモリの第1の領域に配置される。メモリの第1の領域は、メモリの第2の領域を消費して拡大されることが可能である。これは、境界が再びメモリの限界、例えばメモリの最も高いアドレス指定可能なアドレスに達するまで続く。この方法は、第4の組の鍵を生成することによって継続する。新しいデータがメモリに書き込まれるとき、データは第4の組の鍵を使用して暗号化されて、認証され、メモリの第2の領域に配置される。メモリの領域を分けるように鍵を再生して書き込むこの方法は継続する。
1つの例におけるシステム500は、コンピュータソフトウェアコンポーネントの1つまたは複数のような複数の構成要素を含む。いくつかのそのような構成要素は、システム500の中で結合される、または分離されることが可能である。システム500の例示的構成要素は、当業者には理解されるように、いずれかのまたはいくつかのプログラミング言語で書かれるまたは実行される一組のおよび/または一連のコンピュータ命令を使用するおよび/または含む。1つの例におけるシステム500は、垂直配向を含み、本明細書の説明および図は、説明の目的で、システム500の1つの例示的配向を示している。
1つの例におけるシステム500は、1つまたは複数のコンピュータ可読信号搬送媒体を使用する。コンピュータ可読信号搬送媒体は、本発明の1つまたは複数の実装の1つまたは複数の部分を実行するためのソフトウェア、ファームウェア、および/またはアセンブリ言語を格納する。1つの例におけるシステム500のコンピュータ可読信号搬送媒体は、磁気、電気、光、バイオ、および原子によるデータ記憶媒体のうちの1つまたは複数を含む。例えば、コンピュータ可読信号搬送媒体は、フロッピー(登録商標)ディスク、磁気テープ、CD−ROM、DVD−ROM、ハードディスクドライブ、および電子メモリを含む。
本明細書に記載するステップまたは操作は、単なる例示である。これらのステップまたは操作には、システム500および方法200、300、400の趣旨を逸脱することのない、多くの変形形態がある可能性がある。例えば、諸ステップは、異なる順序で行われる場合があり、あるいは諸ステップは、追加、削除、または変更される場合がある。
システム500および方法200、300、400の例示的な実施について本明細書に詳細に示し、説明したが、様々な変更、追加、代用などが、方法200、300、400の趣旨を逸脱することなく行われることが可能であり、したがってこれらは次の特許請求の範囲で定義するシステム500および方法200、300、400の範囲内であるとみなされることは、当業者には明らかであろう。

Claims (9)

  1. 擬似ランダム関数および擬似ランダム置換のうちの少なくとも1つを行うことによって、データ入力からデータのランダム置換を作成するステップと、
    データのランダム置換を受信された第2のデータブロックと結合すること、および結合の結果にε差分一様関数を実行することによって第1のデータブロックを作成するステップと、
    秘密鍵を使用して第1のデータブロックをXOR演算するステップと、
    XOR演算された第1のデータブロックを第1のメッセージ認証コードに縮小するステップと
    を含み、
    データ入力はメモリアドレスを含み、データのランダム置換は受信された第2のデータブロックを用いずに作成されることを特徴とする、方法。
  2. データ入力がゼロパッド、およびノンスをさらに含み、第1のデータブロックがRijndaelのXOR演算されたブロックであり、受信された第2のデータブロックが暗号化されたデータブロックであり、
    データのランダム置換を作成するステップがさらに、アドレス、ノンス、およびゼロパッドに、14ラウンドのRijndael関数および10ラウンドの次世代暗号化標準関数の2つのインスタンスのうちの少なくとも1つを実行することによってRijndaelブロックを作成することを含み、
    第1のデータブロックを作成するステップがさらに、暗号化されたデータブロックを使用してRijndaelブロックをXOR演算することによってRijndaelのXOR演算されたブロックを作成することを含み、
    XOR演算されたRijndaelブロックにRijndael関数を2ラウンドと4ラウンドのうちの少なくとも一方を実行することによってRijndaelのXOR演算されたブロックにε差分一様関数を実行することによってGブロックが作成され、
    秘密鍵を使用して第1のデータブロックをXOR演算するステップが、Mブロックをもたらし、
    XOR演算された第1のデータブロックを第1のメッセージ認証コードに縮小するステップがさらに、XORツリーによってMブロックを第1のメッセージ認証コードに縮小するステップを含む、
    請求項1に記載の方法。
  3. 密鍵、第1のランダムキーおよび第2のランダムキー、第1のメッセージ認証コード、ならびにノンスを取り出すことによって読み出しデータブロックを認証すること
    秘密鍵、第1のランダムキーおよび第2のランダムキー、第1のメッセージ認証コード、ならびにノンスから第2のメッセージ認証コードを作成することと
    さらに含む、請求項2に記載の方法。
  4. 第2のメッセージ認証コードを作成するステップがさらに、
    アドレス、ノンス、およびゼロパッドにおいてRijndael関数を14ラウンドと次世代暗号化標準関数を10ラウンドの2インスタンスのうちの少なくとも一方を実行することによってRijndael読み出しブロックを作成することと、
    Rijndael読み出しブロックおよび暗号化された読み出しデータブロックをXOR演算することによってRijndaelのXOR演算された読み出しブロックを作成することと、
    XOR演算されたRijndaelブロックに4ラウドおよび2ラウドのRijndael関数のうちの少なくとも1つを実行することによってG読み出しブロックを作成することと、
    秘密鍵を使用してGブロックをXOR演算することによってM読み出しブロックを作成することと、
    XORツリーによってM読み出しブロックを第2のメッセージ認証コードに縮小することと
    を含む、請求項3に記載の方法。
  5. 読み出しデータブロックを認証するステップがさらに、第1のメッセージ認証コードを第2のメッセージ認証コードと比較し、第1のメッセージ認証コードが第2のメッセージ認証コードと等しくない場合、メモリ破損プロシージャを実行するステップを含む、請求項4に記載の方法。
  6. 似ランダム置換および擬似ランダム関数のうちの少なくとも1つを実行することによって、ゼロパッド、ノンス、およびメモリアドレスからなるデータ入力からデータのランダム置換を作成し、
    ータのランダム置換を受信された第2のデータブロックと結合すること、および結合の結果にε差分一様関数を実行することによって第1のデータブロックを作成し、
    密鍵を使用して第1のデータブロックをXOR演算し、
    XOR演算された第1のデータブロックを第1のメッセージ認証コードに縮小するように構成されたメッセージ認証コード(MAC)コンピュータを含み、
    MACコンピュータがPRP F計算機およびε−DU計算機、データハンドラおよびデータ暗号器を含み、
    MACコンピュータがPRP F計算機、ε−DU計算機、データハンドラ、およびデータ暗号器と通信可能に結合され、
    PRP F計算機がデータハンドラおよびε−DU計算機と通信可能に結合され、
    ε−DU計算機がデータハンドラおよびデータ暗号器と通信可能に結合され、
    データハンドラがPRP F計算機およびデータ暗号器にメモリアドレスを送信するように構成され
    PRP F計算機が、メモリアドレス、ノンス、およびゼロパッドにRijndael関数の14ラウンドを実行することによりRijndaelブロックを作成することによってデータのランダム置換を作成するように構成され
    データ入力はメモリアドレスを含み、データのランダム置換は受信された第2のデータブロックを用いずに作成されることを特徴とするシステム。
  7. データハンドラが第2のデータブロックをデータ暗号器に送信するように構成され
    データ暗号器が第2のデータブロックを暗号化し、暗号化されたデータブロックをε−DU計算機に送信するように構成され
    ε−DU計算機が、Rijndaelブロックおよび暗号化されたデータブロックをXOR演算することによってRijndaelのXOR演算されたブロックを作成するように構成され
    ε−DU計算機が、RijndaelのXOR演算されたブロックにRijndael関数の4ラウンドと2ラウンドのうちの少なくとも一方を実行することによってGブロックを作成するように構成され
    MACコンピュータが、秘密鍵を使用してGブロックをXOR演算することによってMブロックを作成するように構成され
    MACコンピュータが、XORツリーによってMブロックを第1のメッセージ認証コードに縮小するように構成される
    請求項6に記載のシステム。
  8. MACコンピュータは、
    密鍵、第1のランダムキーおよび第2のランダムキー、第1のメッセージ認証コード、ならびにノンスを取り出すことと、
    密鍵、第1のランダムキーおよび第2のランダムキー、第1のメッセージ認証コード、ならびにノンスをMACコンピュータのPRP F計算機に送信することと
    を介して読み出しデータブロックを認証するように構成される、請求項7に記載のシステム。
  9. 第2のメッセージ認証コードを生成することがさらに、
    PRP F計算機が、読み出しアドレス、ノンス、およびゼロパッドに、Rijndael関数の14ラウンドと10ラウンドの2つの並行ラウンドのうちの少なくとも一方を実行することによってRijndael読み出しブロックを作成するように構成されることと、
    PRP F計算機がRijndael読み出しブロックをε−DU計算機に渡すように構成されることと、
    ε−DU計算機が、Rijndael読み出しブロックおよび暗号化された読み出しデータブロックをXOR演算することによってRijndaelのXOR演算された読み出しブロックを作成するように構成されることと、
    ε−DU計算機が、XOR演算されたRijndaelブロックにRijndael関数の4ラウンドおよび2ラウンドのうちの少なくとも一方を実行することによってG読み出しブロックを作成するように構成されることと、
    MACコンピュータが、秘密鍵を使用してGブロックをXOR演算することによってM読み出しブロックを作成するように構成されることと、
    MACコンピュータが、XORツリーによってMブロックを第2のメッセージ認証コードに縮小するように構成されることと、
    読み出しデータブロックを認証することがさらに、MACコンピュータが第1のメッセージ認証コードを第2のメッセージ認証コードと比較するように構成されること、および第1のメッセージ認証コードが第2のメッセージ認証コードと等しくない場合、メモリ破損プロシージャを実行することを含むことと
    を含む、請求項8に記載のシステム。
JP2011524982A 2008-08-28 2009-08-25 セキュアなメモリに応用するメッセージ認証コードの事前計算 Expired - Fee Related JP5306465B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/229,987 US8452984B2 (en) 2008-08-28 2008-08-28 Message authentication code pre-computation with applications to secure memory
US12/229,987 2008-08-28
PCT/US2009/004820 WO2010024874A2 (en) 2008-08-28 2009-08-25 Message authentication code pre-computation with applications to secure memory

Publications (2)

Publication Number Publication Date
JP2012501579A JP2012501579A (ja) 2012-01-19
JP5306465B2 true JP5306465B2 (ja) 2013-10-02

Family

ID=41718390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011524982A Expired - Fee Related JP5306465B2 (ja) 2008-08-28 2009-08-25 セキュアなメモリに応用するメッセージ認証コードの事前計算

Country Status (6)

Country Link
US (2) US8452984B2 (ja)
EP (1) EP2329622B1 (ja)
JP (1) JP5306465B2 (ja)
KR (1) KR101324825B1 (ja)
CN (1) CN102138300B (ja)
WO (1) WO2010024874A2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8566593B2 (en) * 2009-07-06 2013-10-22 Intel Corporation Method and apparatus of deriving security key(s)
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
US8498410B2 (en) 2011-03-14 2013-07-30 Motorola Solutions, Inc. Methods for customizing a Rijndael block cipher
JP5824849B2 (ja) * 2011-04-22 2015-12-02 ソニー株式会社 情報処理装置および情報処理方法
US20140149729A1 (en) * 2011-07-18 2014-05-29 Ted A. Hadley Reset vectors for boot instructions
US9304944B2 (en) * 2012-03-29 2016-04-05 Broadcom Corporation Secure memory access controller
US20140044262A1 (en) * 2012-08-09 2014-02-13 Cisco Technology, Inc. Low Latency Encryption and Authentication in Optical Transport Networks
US9298947B2 (en) * 2013-02-07 2016-03-29 Qualcomm Incorporated Method for protecting the integrity of a fixed-length data structure
US9264222B2 (en) 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
CN103716231A (zh) * 2013-12-06 2014-04-09 广西科技大学 一种ZigBee-CAN网络网关
US9460312B2 (en) * 2014-03-11 2016-10-04 Qualcomm Incorporated Data integrity protection from rollback attacks for use with systems employing message authentication code tags
US9509665B2 (en) 2014-08-11 2016-11-29 Alcatel Lucent Protecting against malicious modification in cryptographic operations
US9438425B2 (en) * 2014-08-15 2016-09-06 Alcatel Lucent Robust MAC aggregation with short MAC tags
WO2016063512A1 (ja) * 2014-10-23 2016-04-28 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム記録媒体
JP6305642B2 (ja) * 2015-09-28 2018-04-04 三菱電機株式会社 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
US10511581B2 (en) 2015-11-17 2019-12-17 International Business Machines Corporation Parallelizable encryption using keyless random permutations and authentication using same
US10608822B2 (en) * 2017-04-26 2020-03-31 Nxp B.V. Efficient calculation of message authentication codes for related data
US10541845B2 (en) * 2017-09-25 2020-01-21 Kenneth Stuart Pseudo random multi-carrier method and system
KR102625275B1 (ko) * 2018-08-03 2024-01-12 엘지전자 주식회사 비휘발성 메모리를 구비하는 전자 기기
WO2020174291A1 (en) * 2019-02-25 2020-09-03 Telefonaktiebolaget Lm Ericsson (Publ) Hop by hop security in iab networks
US11263308B2 (en) * 2019-03-25 2022-03-01 Micron Technology, Inc. Run-time code execution validation
US11190339B2 (en) * 2019-05-14 2021-11-30 Baffle, Inc. System and method for performing equality and less than operations on encrypted data with quasigroup operations
US11637690B1 (en) 2021-10-08 2023-04-25 Baffle, Inc. Format preserving encryption (FPE) system and method for long strings

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020029200A1 (en) * 1999-09-10 2002-03-07 Charles Dulin System and method for providing certificate validation and other services
US6934388B1 (en) * 1999-11-12 2005-08-23 Itt Manufacturing Enterprises, Inc. Method and apparatus for generating random permutations
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
CN100340937C (zh) * 2004-04-12 2007-10-03 华为技术有限公司 一种软件保护方法及装置
JPWO2006019152A1 (ja) * 2004-08-19 2008-05-08 株式会社日立製作所 メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
WO2007052477A1 (ja) * 2005-11-04 2007-05-10 Nec Corporation メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体
EP1985061A1 (fr) * 2006-02-03 2008-10-29 ATT- Advanced Track & Trace S. A. Procede et dispositif d'authentification
US8687800B2 (en) * 2006-08-15 2014-04-01 Alcatel Lucent Encryption method for message authentication
US8107620B2 (en) * 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
US8660108B2 (en) * 2007-04-13 2014-02-25 Hart Communication Foundation Synchronizing timeslots in a wireless communication protocol
US8161271B2 (en) * 2007-07-11 2012-04-17 International Business Machines Corporation Store misaligned vector with permute
US7941663B2 (en) * 2007-10-23 2011-05-10 Futurewei Technologies, Inc. Authentication of 6LoWPAN nodes using EAP-GPSK
US20090187771A1 (en) * 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
MX2011001228A (es) * 2008-08-19 2011-03-25 Nxp Bv Metodo para generar un codigo de autenticacion de mensajes basados en el cifrado.
US8122190B1 (en) * 2009-05-29 2012-02-21 Itt Manufacturing Enterprises, Inc. Method and system for reconfigurable memory-based permutation implementation
EP2288195B1 (en) * 2009-08-20 2019-10-23 Samsung Electronics Co., Ltd. Method and apparatus for operating a base station in a wireless communication system

Also Published As

Publication number Publication date
US20130254557A1 (en) 2013-09-26
EP2329622B1 (en) 2019-07-31
KR20110036854A (ko) 2011-04-11
US20100058070A1 (en) 2010-03-04
CN102138300A (zh) 2011-07-27
EP2329622A2 (en) 2011-06-08
US8799679B2 (en) 2014-08-05
WO2010024874A2 (en) 2010-03-04
KR101324825B1 (ko) 2013-11-01
WO2010024874A3 (en) 2010-09-02
CN102138300B (zh) 2014-11-26
JP2012501579A (ja) 2012-01-19
US8452984B2 (en) 2013-05-28

Similar Documents

Publication Publication Date Title
JP5306465B2 (ja) セキュアなメモリに応用するメッセージ認証コードの事前計算
EP1440535B1 (en) Memory encrytion system and method
US11232718B2 (en) Methods and devices for protecting data
US8000467B2 (en) Data parallelized encryption and integrity checking method and device
US20180365451A1 (en) Input/output data encryption
JP2001514834A (ja) 安全決定性暗号鍵発生システムおよび方法
JPH10511778A (ja) 2つの処理装置の間における秘密鍵による通信プロトコルの実行方法
CN112887077B (zh) 一种ssd主控芯片随机缓存保密方法和电路
US9602281B2 (en) Parallelizable cipher construction
US20050138403A1 (en) Data encryption in a symmetric multiprocessor electronic apparatus
CN213876729U (zh) 一种ssd主控芯片随机缓存保密电路
CN113055155A (zh) 一种基于大数据平台的数据安全存储方法
CN108921561B (zh) 一种基于硬件加密的数字热钱包
CN108242997A (zh) 安全通信的方法与设备
CN107766725B (zh) 抗模板攻击的数据传输方法及系统
CA2327037A1 (en) Method to detect fault attacks against cryptographic algorithms
Krishnan et al. Modified AES with Random S box generation to overcome the side channel assaults using cloud
US7424111B2 (en) System and method of applying parity bits to protect transmitting and receiving data
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
US20240078151A1 (en) Data security method and data security system
US20210258167A1 (en) Systems and methods for providing a trusted keystore
CN115941203A (zh) 一种基于puf技术的私钥的安全存储方法及装置
CN115222393A (zh) 一种基于puf的数字货币防重复花费方法及系统
JP2023130311A (ja) サイドチャネル攻撃から電子コンピュータを保護する方法及び電子コンピュータ
CN117850739A (zh) 伪随机数生成方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130625

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees