JP2005505069A - メモリ暗号化 - Google Patents

メモリ暗号化 Download PDF

Info

Publication number
JP2005505069A
JP2005505069A JP2003533509A JP2003533509A JP2005505069A JP 2005505069 A JP2005505069 A JP 2005505069A JP 2003533509 A JP2003533509 A JP 2003533509A JP 2003533509 A JP2003533509 A JP 2003533509A JP 2005505069 A JP2005505069 A JP 2005505069A
Authority
JP
Japan
Prior art keywords
address
word
encrypted
hashed
block cipher
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.)
Pending
Application number
JP2003533509A
Other languages
English (en)
Other versions
JP2005505069A5 (ja
Inventor
リンスウォウ サンダー エム ヴァン
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2005505069A publication Critical patent/JP2005505069A/ja
Publication of JP2005505069A5 publication Critical patent/JP2005505069A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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
    • 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/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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Abstract

暗号化器20が、二つの暗号化ステップを使用して関連するアドレスAの制御下でデータワードDを暗号化する。ハッシュ関数部B1が、アドレスAをハッシュされたアドレスB1(A)に変換する。XOR関数部のような結合器24が、データワードDをハッシュされたアドレスB1(A)に結合させる。この結果が、ブロック暗号部B2を使用して更に暗号化される。書き込み器30が、アドレスAの制御下でメモリ60に暗号化されたワードD'を書き込む。復号化器40が、関連するアドレスAの制御下でメモリ60から読み出されている暗号化されたワードD'を復号化する。ハッシュ関数部B1が、関連するアドレスAをハッシュされたアドレスB1(A)に変換する。逆ブロック暗号部B2−1が、暗号化されたワードD'を中間形態に復号化する。XORのような分離器が、ハッシュされたアドレスB1(A)に、復号化されている暗号化されたワードB2−1(D')を結合させることによって平文データワードDを生成する。

Description

【技術分野】
【0001】
本発明は、データワードが各々のアドレスによって特定されるメモリにおける暗号化された記憶のための暗号化/復号化データワードに関する。
【背景技術】
【0002】
暗号化技術(cryptography)は、ますます重要な技術となっている。主な領域はコンテンツ暗号化/復号化(content encryption/decryption)及びアクセス管理機能(access management function)である。提供するデバイス(rendering device)におけるコンテンツの実際の使用と共に、CDのような記憶媒体上の供給又はネットワークを介した送信を含む全サプライチェーン(supply chain)を保護することは重要である。このことは、スマートカード又は提供するデバイスの半導体素子のランダムアクセスメモリ(solid state random access memory)におけるデータの記憶も保護される必要があることも意味している。基本的に、ブロック暗号に基づく暗号化は、このような保護に対して使用され得る。暗号上強いブロック暗号(cryptographically strong block cipher)は、一つよりも多くのワードのコンポーネント(通常コンポーネントはバイト)を同時に暗号化する。当該ワードは通常、ブロック、すなわち名称、ブロック暗号と称されている。例えば、DESは8バイトを一緒に暗号化し、AESは16バイトを一緒に暗号化する。非常に小さなブロック暗号でさえ、一つのブロックでまだ4バイトを暗号化し得る。複数のバイトを一緒に暗号化することは、それにより可能なコードブックワード(codebook word)の数がより多くなると共に統計分布(stastical distribution)が平坦化されるため必要となる。DESは最もよく知られているブロック暗号のうちの一つであり、16暗号ラウンドを使用する。ECBモード(Electronic Code Book mode)においてDESを使用することによって、8バイトの各々の平文ワードは個別に暗号化され、暗号化された8バイトワードがもたらされる。
【0003】
用途レベルにおいて、例えば提供するデバイスに対して、多くの単純なデバイスが同時に一つのバイトに作用する。従来のECBモードにおいてブロック暗号を使用することは、当該システムにとって不利となる。ワードのバイトの一つへの変更は、暗号化されたワードの全てのバイトへの変更を結果的にもたらす。それ故に、暗号化されたワードのバイトのうちのたった一つを変更することは直接的に不可能となる。まず平文形態におけるワードの全ての他のバイトを取り出すことが必要となる。8バイトブロック暗号の場合、このことは、バイトの一つを変更するステップが、メモリから対応する暗号化された8バイトワードを読み出すステップと、ワードを復号化するステップと、8バイトのうちの一つを変更するステップと、更新されたワードを再暗号化(re−encrypting)するステップとを含んでいることを示している。DESの場合、これは32回消費する暗号ラウンド(thirty−two time consuming cryptographic round)を含んでいる。結果として、暗号化されたメモリへのアクセスは、暗号化されていないメモリへのアクセスよりもかなり低速である。このことは、価格の圧力(price pressure)が、更なるハードウエアによって更なる遅延を低減するか、又は克服することを困難にする民生電子デバイスにとって特に問題となる。更に、消費電力を低く保つことも所望される。それ故に、高速メモリアクセスを必要とする用途の場合、ラウンドの数は低減されることが必要となり得る。結果として、より弱い保護がもたらされる。
【0004】
いわゆるカウンタモード(CTR(counter mode))においてブロック暗号を使用してメモリ暗号化を実行することが知られている。これは図1に示されている。各々のワードDは、各々のアドレスAによって特定される。アドレスAは、ECBモードにおけるブロック暗号Bを使用して、暗号化されたアドレスA’=B(A)に暗号化される。データワードDは、暗号化されたワードD’をもたらすために、暗号化されたアドレスA’と結合される。当該結合は、XOR関数、すなわちD’=XOR(D,B(A))を使用して実行される。ECBモードにおけるブロック暗号の代わりに、他の好適な一方向関数(one way function)(ハッシュ)が使用されてもよい。アドレスは、ワードの(バイトのような)全てのコンポーネントを特定するため、ハッシュされたアドレスは全てのコンポーネントに対して有効となる。一つのコンポーネントの変更は、暗号化されたアドレスA’=B(A)を再計算(recalculate)し、元のデータワード(D=XOR(D’,B(A))を取り出し、新たな平文ワードD1をもたらすワードのコンポーネントを変更し、D1を暗号化されたアドレス(D1’=XOR(D1,B(A))と再結合(recombine)することによってなされ得る。当該方式において、たった一つの暗号化ステップが行われる(DESの場合、16ラウンドが必要とされる)。しかしながら、CTRモードは、ランダムアクセスメモリの暗号化に対して使用されると暗号化上弱いことが知られている。通常4バイトワードの場合、総当たり攻撃(brute force attack)のために全部で256対のワードとそれらの暗号化されたカウンタ部分とが収集される必要があるが、この場合個々のバイトが攻撃され得る。その結果、前記システムは、たった4*256対を収集することによって破壊され得る。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の目的は、十分な安全性を維持する一方、高速アクセスを可能にするメモリ暗号化アーキテクチャを提供することにある。更なる目的は、民生電子用途における広範な使用を可能にするソフトウエア及びハードウエアに当該アーキテクチャが効率的に実現され得ることにある。
【課題を解決するための手段】
【0006】
本発明の目的を満たすために、前記システムは請求項1に記載の暗号化器及び復号化器を含む。アドレスをスクランブルするためにハッシュ関数が使用され、スクランブルされたアドレスとデータワードとの結合体が、ブロック暗号を使用して更に暗号化される。この最後のステップが、CTRモードメモリ暗号化の弱さを克服する。二つのステップの暗号化(アドレスハッシュ及び結合体の暗号化)を使用することによって、最後の転置(permutation)の暗号化強さは低減され得るので、CTRモードの速度の利点の多くが維持され得る。
【0007】
従属請求項2の手段によれば、前記アーキテクチャが、読み出しのための二つの暗号化ステップのパラレル装置を可能にする。これにより、メモリアクセスの速度が増大させられる。多くのシステムにおいて、バックグランドで行われている書き込みの間、処理は継続させられ得るが、データが読み出されるまで処理は停止させられる必要があり得るため、読み出し速度が増大させられ得ることは更なる利点である。
【0008】
請求項3の手段によれば、ハッシュされたアドレスを有するデータのスクランブルとアドレスハッシュとの両方に対して同じブロック暗号ラウンドが使用される。このことはたった一つの暗号化関数しか実施される必要がないという利点を有する。
【0009】
従属請求項4の手段によれば、所定のブロック暗号(例えばDESは16ラウンドを使用する)の既定数のラウンドが、ハッシュされたアドレスとデータワードとの結合体の暗号化及びアドレスのハッシュを介して分割される。CTRに匹敵する暗号強度が増大される一方、全数のラウンド自体は、メモリ暗号化のCTRモードにおいて使用される数と同じに保たれ得る。
【0010】
従属請求項5の手段によれば、アドレスのハッシュと、データワード及びハッシュされたアドレスの結合の暗号化との両方の演算は、少なくとも3ラウンドを使用する。これにより適当なレベルの転置が保証される。
【0011】
従属請求項6に記載の好ましい実施例において、両方の演算は同数のラウンドを使用する。これにより、最適なことに特に並列演算が高速になる。
【0012】
従属請求項7の手段によれば、前記アーキテクチャが、ワードの一つ又はそれより多くのコンポーネントの高速更新を可能にする。ここで全ワードは平文形態において利用可能ではない。
【0013】
本発明の目的は、独立請求項8及び9にそれぞれ記載の暗号化器及び復号化器と、独立請求項10乃至13に記載の各々の方法及びコンピュータプログラム製品とによっても満たされる。
【0014】
本発明のこれら及び他の態様は、図面に示されている実施例から明らかであり、図面に示されている実施例を参照して説明される。
【発明を実施するための最良の形態】
【0015】
図2は、本発明による暗号システム(cryptographic system)を示している。 前記システムは、復号化器(decryptor)40及び暗号化器(encryptor)20を備える暗号ユニット10を含んでいる。ユニット10は通常、暗号化された態様でデータを記憶するためのダイレクトアクセスメモリ(direct access memory)60に接続される。プログラム(すなわち実行可能なコードのような、何れかの形態におけるコンピュータ命令(computer instruction))もデータで表されることは評価されるであろう。本記載において、メモリは読み出し及び書き込み型であることが仮定されている。しかしながら、前記システムは読み出しのみのためにも使用され得る。好ましくは、暗号ユニット10は、不正変更(tampering)の機会を低減させるために暗号化されたモジュール(secure module)で実現される。
【0016】
暗号化器20は、入力部26を介して処理ユニットから、複数のコンポーネントから構成されるデータワードDを受信する。通常、コンポーネントはバイトであるが、ニブル(1/2バイト(nibble))又は16ビットコンポーネントのような他のサイズも使用され得る。暗号化器20は、メモリ60におけるワードの記憶位置を特定する入力部22を介してアドレスAも受信する。好ましくは、アドレスA及びワードDを供給する処理ユニットが、同じ暗号化されたモジュールにも組み込まれる。暗号化器20は、アドレスをハッシュされたアドレスB1(A)に変換するためのハッシュ関数(hashing function)部B1を含んでいる。好ましくは、ハッシュ関数部B1は、ブロック暗号のラウンド(round of block cipher)の形態で実現されるキーによるハッシュ関数となる。DES又はTEAはよく知られていると共に、本発明によるシステムにおいて使用されるべき好適な暗号である。暗号化器20は、ハッシュされたアドレスB1(A)を受信ワードDに結合するための結合器(combiner)24も含んでいる。好ましくは、結合器24はビット形式のXOR(排他的論理和(exclusive OR))関数として実現される。これにより、XOR(D,B1(A))の中間結果がもたらされる。結合器24の出力は、暗号化されたワードD’をもたらす暗号化器20のブロック暗号器B2を介して入力される。書き込み器(writer)30は、アドレスAの制御下で暗号化されたワードD’をメモリに書き込む。前記書き込みは、アドレスAの直接制御下でなされてもよい。しかしながら、特にメモリ60が前記暗号化されたモジュール外にもたらされている場合、アドレスAを、メモリ60にアクセスするために使用されるスクランブルされたアドレスA’にスクランブルするための更なるスクランブル関数(scrambling function)部28を暗号器が含んでいることは好ましい。スクランブルされたアドレスA’は、アドレスAの代わりにそれから書き込み器30に供給される。暗号化されたモジュールからの情報漏れがないことを保証するために、スクランブル関数部はハッシュ関数部B1と同じになるべきではない。通常アドレスがワードの個々のコンポーネントを特定することは評価されるであろう。ワードアドレスは、コンポーネントアドレスから(例えば、一つのワード内に4バイトがもたらされている場合、バイトレベルアドレスの二つの最下位ビットを無視することによって)通常簡単な態様でもたらされ得る。
【0017】
復号化器40は、暗号化器20の逆の演算(operation)を行う。入力部42を介して、復号化器40は処理ユニットからアドレスAを受信する。復号化器は、メモリ60にアクセスするために使用されるアドレスA’にアドレスAをスクランブルするためのスクランブル関数部48をオプションとして含んでいる。スクランブル関数部48は、暗号化器20のスクランブル関数部28と同じである。読み出し器(reader)50は、アドレスA(又はオプションとして、スクランブルされたアドレスA’)の制御下でメモリ60から暗号化されたワードD’を読み出す。暗号化されたワードD’は、B2の逆関数部である復号化器B2−1を介して入力される。フェイステルブロック暗号(Feistel block cipher)のような多くのブロック暗号の場合、逆暗号(inverse cipher)のラウンドは、暗号化する暗号(encrypting cipher)のラウンドと同じになる。ここでラウンドキー(round key)は、逆の順序で供給される。アドレスAは、前記アドレスをハッシュされたアドレスB1(A)に変換するための暗号化器20によって使用されるものと同じハッシュ関数部B1を介して入力される。分離器(decomposer)44は、ハッシュされたアドレスB1(A)を使用して部分的に復号化されたワードB2−1(D’)から平文ワード(プレーンテキストワード(plaintext word))Dを取り出すために使用される。好ましい実施例において、XOR関数部24は、分離器44のためのXOR関数を使用してもミラー(mirror)される。前記分離はそのとき、D=XOR(B2−1(D’),B1(A))となる。Dは、出力部46を介して処理ユニットに供給される。
【0018】
処理ユニットは通常、暗号関数部B1及びB2のための一つのキー又は複数のキーを暗号化器/復号化器にも供給する。
【0019】
暗号化及び復号化が時間シーケンシャル(time−sequential)に行われるシステムにおいて、暗号化器及び復号化器の対応する演算は一度しか実施される必要がないことは評価されるであろう。特に、B1及びB2が同じブロック暗号の暗号ラウンドを使用することは好ましい。B2が(逆順で供給されるラウンドキー(round key)で)自身の逆関数となっている場合、暗号化と復号化との両方をサポートするために、たった一つのラウンドキーしか実施される必要がない。
【0020】
好ましい実施例において、復号化器40は、逆の演算B2−1とアドレスハッシュ(address hashing)B1とを並行して行う。B2−1とB1とが同じラウンド関数に基づいている場合、このことは、当該関数が二度実施される必要のあることを示しているが、それにより、復号化のために必要とされる期間は低減される。
【0021】
好ましくは、ハッシュ関数部B1は、既定数のnラウンド(k<n)の場合、kラウンドの所定のブロック暗号を使用し、暗号化器(B1)のブロック暗号は、n−kラウンドの所定のブロック暗号を使用する。このように、nラウンドは、アドレスをハッシュするB1演算と、中間結果XOR(D,B1(A))を暗号化するB2(又は読み出しの場合、B2−1演算)とに分割される。十分な強度を維持する一方、読み出しは、記載のパラレル装置を使用して高速に実行される。パラレル装置において、読み出しはmax(k,n−k)ラウンドを実行するための期間を必要とする。一方従来システムにおいてこれはnラウンドをとる。特にn=kの場合、パラレル装置は演算期間を半減させ、それ故に消費電力もかなり低減させ得る(又は、同レベルの消費電力を維持する一方、より多くのラウンドを使用することによって安全性を向上させ得る)。
【0022】
B2によって行われる暗号化及びB1によって行われるアドレスのハッシュはかなり強い(strong)ため、通常合計16ラウンドを使用する、DESのような従来のブロック暗号に対してk>=3及びn−k>=3となることは好ましい。既存のブロック暗号で少なくとも3ラウンドを使用するよい暗号化の理由(good cryptographic reason)はあるが、問題の特定のブロック暗号でスクランブルの適切なレベルを保証する概して多くのラウンドが使用されるべきことは評価されるであろう。
【0023】
好ましい実施例において、アドレスハッシュB1及び暗号化/復号化B2は、同数のラウンド(n=k)を使用する。二つの部分に渡る暗号強度(cryptographic strength)の均衡をとることに加えて、上記のように、このことは読み出し速度を最適化する。
【0024】
本発明によるアーキテクチャを使用することにより、ニブル、バイト、又は16ビット部分のような、より大きな合成ワード(composite word)(ブロック)の個々のコンポーネントの迅速な更新が可能になる。例として、ワードDは四つのコンポーネントd乃至dから構成されると共にコンポーネントdは更新される必要があると仮定する。まずワードDのアドレスAがロードされる(通常処理ユニットによってもたらされる)。次に読み出し器50が、前記ワードに関連するアドレスAの制御下でメモリから、対応する暗号化されたワードD’を読み出すために使用される。オプションのアドレススクランブルが使用される場合、メモリ60にアクセスするために使用される、スクランブルされたアドレスA’を生成するためにアドレススクランブラー(address scrambler)48が使用される。次に前記ワードのアドレスAをハッシュされたアドレスB1(A)に変換するためにハッシュ関数部B1が使用される。ブロック暗号B2−1は、暗号化されたワードD’を中間形態に復号化する。始めに記載されているように、当該呼び出し動作(read activity)に対して、B1及びB2−1は、好ましくは並列に実行される。この場合、成分(B1(A)、B2−1(D’)、及びd)は、更新された中間結果を形成するために全てもたらされている。当該更新は、ハッシュされたアドレス(B1(A))の制御下で新たなコンポーネント値(d’)を復号化されている暗号化されたワード(B2−1(D’))に結合させるコンポーネント更新器(component updater)によって実行される。これにより、更新された結合ワード/ハッシュされたアドレスが形成される。コンポーネント更新器は図に示されていない。好ましい実施例において、合成(composition)24は、XOR演算によって実行される。当該システムの場合、コンポーネントdの更新は、ハッシュされたアドレスB1(A)から最下位コンポーネント(least significant component)を抽出すると共に、当該コンポーネントをコンポーネントワイドXOR関数(component wide XOR function)を使用して新たな値d’と結合させることによって実行され得る。結果としてもたらされる結合コンポーネント値(combined component value)はそれからB2−1(D’)の最下位コンポーネント位置にロードされる。当該コンポーネント更新が完了された後、ブロック暗号B2は、更新された結合されたワード(combined word)/ハッシュされたアドレス(hashed address)を更新された暗号化されたワード(encrypted word)に暗号化するために使用される。当該ワードは、それから書き込み器30を使用してメモリ60に書き込まれる。オプションのアドレススクランブルが使用された場合、最初ワードを読み出すために使用された同じスクランブルアドレスが、この場合ここでも更新されたワードを書き込むために使用され得る。
【0025】
メモリ暗号化が好ましくは専用の暗号化/復号化デバイスを使用して実現されることは評価されるであろう。記載の暗号演算は、専用のハードウエアにおいて実現されてもよく、暗号化プロセッサによって実行されてもよい。前記プロセッサは、従来のプロセッサコアに基づいていてもよいが、暗号演算のために最適化される命令(instruction)を備える専用の暗号処理コアに基づいていてもよい。前記プロセッサは、本発明によるアルゴリズムのステップを実行するための好適なプログラム(ファームウエア(firmware))の制御下で通常動作される。当該コンピュータプログラム製品が、本発明によるメモリ暗号システム(memory encryption system)に暗号化された態様で組み込まれることは好ましい。所望ならば、当該製品はハードディスク又はROMのようなバックグランド記憶部(background storage)からロードされてもよい。当該記憶部においてプログラムは好ましくは暗号により(例えばDESを使用して)悪意のあるユーザから保護される。コンピュータプログラム製品は、公共のインタネットのようなネットワークを介して、又はCD−ROMのような記憶媒体(storage medium)に分配された後、バックグランド記憶部に記憶され得る。暗号キー(encryption key)のような敏感な情報(sensitive information)は好ましくは暗号化された態様で分配されると共に記憶される。そうするための技術は一般に知られており、更には記載されない。暗号システムは、部分的又は全体的にスマートカード(smart−card)上に実現されてもよい。
【図面の簡単な説明】
【0026】
【図1】従来技術のCTRメモリ暗号化アーキテクチャを示している。
【図2】本発明によるメモリ暗号化アーキテクチャを示している。

Claims (13)

  1. 暗号化された形態でメモリにデータワードを記憶するためのシステムであって、前記データワードは各々の関連するアドレスによって特定され、前記システムは、
    前記関連するアドレスの制御下でデータワードを暗号化するための暗号化器
    を含み、前記暗号化器は、
    ハッシュされたアドレスに前記関連するアドレスを変換するためのハッシュ関数部と、
    前記ハッシュされたアドレスに前記データワードを結合させるための結合器と、
    暗号化されたワードに前記結合されたワード/ハッシュされたアドレスを暗号化するためのブロック暗号部と、
    前記関連するアドレスの制御下で前記メモリに前記暗号化されたワードを書き込むための書き込み器と、
    前記ワードに関連するアドレスの制御下でメモリから暗号化されたワードを読み出すための読み出し器と、
    前記関連するアドレスの制御下で前記読み出された暗号化されたワードを復号化するための復号化器と
    を含み、前記復号化器は、
    前記暗号化器によって使用されるものと同じであり、ハッシュされたアドレスに前記関連するアドレスを変換するためのハッシュ関数部と、
    前記暗号化器の前記ブロック暗号部の逆関数であり、前記暗号化されたワードを復号化するためのブロック暗号部と、
    前記ハッシュされたアドレスに前記復号化されている暗号化されたワードを結合させることによってデータワードを取り出すための分離器と
    を含むシステム。
  2. 前記復号化器において、前記ハッシュ関数部及び前記ブロック暗号部が並列に構成される請求項1に記載のシステム。
  3. 前記暗号化器の前記ブロック暗号部及び前記ハッシュ関数部が、同じ所定のブロック暗号部のラウンドを使用する請求項1に記載のシステム。
  4. 前記所定のブロック暗号部が、既定数のnラウンドを有し、前記ハッシュ関数部が、前記所定のブロック暗号部のkラウンドを使用し、1<=k<nであり、前記暗号化器の前記ブロック暗号部は、前記所定のブロック暗号部のn−kラウンドを使用する請求項3に記載のシステム。
  5. k>=3及びn−k>=3となる請求項4に記載のシステム。
  6. n=kとなる請求項4に記載のシステム。
  7. 前記データワードが複数のコンポーネントを含み、前記システムは、
    前記データワードに関連するアドレスの制御下でメモリから暗号化されたワードを読み出すために前記読み出し器を使用するステップと、
    ハッシュされたアドレスに前記関連するアドレスを変換するために前記ハッシュ関数部を使用するステップと、
    前記暗号化されたワードを復号化するために前記復号化器の前記ブロック暗号部を使用するステップと、
    前記ハッシュされたアドレスの制御下で前記新たなコンポーネント値を前記復号化されている暗号化されたワードに結合させるためにコンポーネント更新器を使用し、更新されている結合されたワード/ハッシュされたアドレスを形成するステップと、
    更新されている暗号化されたワードに、前記更新されている結合されたワード/ハッシュされたアドレスを暗号化するための前記暗号化器の前記ブロック暗号部を使用するステップと
    によって新たなコンポーネント値に前記データワードのコンポーネントを更新するように動作する請求項1に記載のシステム。
  8. 請求項1に記載される、メモリに暗号化された形態でデータワードを記憶させるためのシステムにおける使用のための暗号化器であって、前記各々のデータワードは各々関連するアドレスによって特定され、前記暗号化器は、
    データワードに関連するアドレスをハッシュされたアドレスに変換するためのハッシュ関数部と、
    前記ハッシュされたアドレスに前記データワードを結合させるための結合器と、
    暗号化されたワードに前記結合されたワード/ハッシュされたアドレスを暗号化するためのブロック暗号部と
    を含む暗号化器。
  9. 請求項1に記載される、メモリに暗号化された形態でデータワードが記憶されるシステムにおける使用のための復号化器であって、前記各々のデータワードは各々関連するアドレスによって特定され、前記復号化器は、
    前記メモリにおけるデータワードに関連するアドレスをハッシュされたアドレスに変換するためのハッシュ関数部と、
    前記関連するアドレスの制御下で前記メモリから読み出されている暗号化されたワードを復号化するためのブロック暗号部と、
    前記ハッシュされたアドレスに前記復号化されている暗号化されたワードを結合させることによって平文データワードを取り出すための分離器と
    を含む復号化器。
  10. 暗号化された形態でのメモリにおける記憶のためにデータワードを暗号化する方法であって、前記各々のデータワードは各々関連するアドレスによって特定され、前記方法は、
    データワードに関連するアドレスをハッシュされたアドレスに変換するステップと、
    前記ハッシュされたアドレスに前記データワードを結合させるステップと、
    前記メモリにおける後続する記憶のために、暗号化されたワードに前記結合されたワード/ハッシュされたアドレスを暗号化するためのブロック暗号部を使用するステップと
    を含む方法。
  11. 暗号化された形態でメモリに記憶されるデータワードを復号化する方法であって、前記各々のデータワードは各々関連するアドレスによって特定され、前記方法は、
    前記メモリにおいて記憶される暗号化されたデータワードに関連するアドレスをハッシュされたアドレスに変換するステップと、
    前記関連するアドレスの制御下で前記メモリから読み出されている前記暗号化されたワードを中間形態に復号化するためのブロック暗号部を使用するステップと、
    前記ハッシュされたアドレスに前記中間形態を結合させることによって平文データワードを取り出すステップと
    を含む方法。
  12. 請求項10に記載の方法をプロセッサに実行させるように動作するコンピュータプログラム製品。
  13. 請求項11に記載の方法をプロセッサに実行させるように動作するコンピュータプログラム製品。
JP2003533509A 2001-10-03 2002-09-09 メモリ暗号化 Pending JP2005505069A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01203740 2001-10-03
PCT/IB2002/003692 WO2003030441A2 (en) 2001-10-03 2002-09-09 Memory encryption system and method

Publications (2)

Publication Number Publication Date
JP2005505069A true JP2005505069A (ja) 2005-02-17
JP2005505069A5 JP2005505069A5 (ja) 2006-01-05

Family

ID=8181005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003533509A Pending JP2005505069A (ja) 2001-10-03 2002-09-09 メモリ暗号化

Country Status (7)

Country Link
US (1) US20030084308A1 (ja)
EP (1) EP1440535B1 (ja)
JP (1) JP2005505069A (ja)
CN (1) CN100379194C (ja)
AT (1) ATE494692T1 (ja)
DE (1) DE60238853D1 (ja)
WO (1) WO2003030441A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170495A (ja) * 2009-01-26 2010-08-05 Fujitsu Semiconductor Ltd プロセッサ
JP2012507949A (ja) * 2008-10-30 2012-03-29 クゥアルコム・インコーポレイテッド 短い待ち時間のブロック暗号

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600131B1 (en) 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US8386797B1 (en) * 2002-08-07 2013-02-26 Nvidia Corporation System and method for transparent disk encryption
US7434043B2 (en) 2002-12-18 2008-10-07 Broadcom Corporation Cryptography accelerator data routing unit
US20040123123A1 (en) * 2002-12-18 2004-06-24 Buer Mark L. Methods and apparatus for accessing security association information in a cryptography accelerator
US20040123120A1 (en) * 2002-12-18 2004-06-24 Broadcom Corporation Cryptography accelerator input interface data handling
US7568110B2 (en) 2002-12-18 2009-07-28 Broadcom Corporation Cryptography accelerator interface decoupling from cryptography processing cores
US7472285B2 (en) * 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
DE10352401A1 (de) * 2003-11-10 2005-06-16 Micronas Gmbh Verfahren zur Speicherung von Daten in einem Wahlzugriffspeicher und Verschlüsselungs- und Entschlüsselungsvorrichtung
US20060005047A1 (en) * 2004-06-16 2006-01-05 Nec Laboratories America, Inc. Memory encryption architecture
JP2006023957A (ja) * 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
US20060136717A1 (en) 2004-12-20 2006-06-22 Mark Buer System and method for authentication via a proximate device
US8295484B2 (en) 2004-12-21 2012-10-23 Broadcom Corporation System and method for securing data from a remote input device
US20070110225A1 (en) * 2005-11-16 2007-05-17 Sub-Crypto Systems, Llc Method and apparatus for efficient encryption
US8473754B2 (en) 2006-02-22 2013-06-25 Virginia Tech Intellectual Properties, Inc. Hardware-facilitated secure software execution environment
US7929549B1 (en) * 2006-03-06 2011-04-19 Advanced Micro Devices, Inc. Method and apparatus for scrambling data for control of high-speed bidirectional signaling
DE102007026977B4 (de) * 2006-06-07 2012-03-08 Samsung Electronics Co., Ltd. Kryptographisches System und zugehöriges Betriebsverfahren und Computerprogrammprodukt
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
US7882358B2 (en) * 2007-01-15 2011-02-01 Microsoft Corporation Reversible hashing for E-signature verification
US20090055889A1 (en) * 2007-04-12 2009-02-26 Trustwave Corporation System and method for detecting and mitigating the writing of sensitive data to memory
US8539250B2 (en) * 2007-09-29 2013-09-17 Intel Corporation Secure, two-stage storage system
US9710623B2 (en) 2008-03-05 2017-07-18 Irdeto B.V. Cryptographic system
US8402448B2 (en) * 2008-09-18 2013-03-19 Infineon Technologies Ag Compiler system and a method of compiling a source code into an encrypted machine language code
US8555015B2 (en) * 2008-10-23 2013-10-08 Maxim Integrated Products, Inc. Multi-layer content protecting microcontroller
WO2010109516A1 (ja) * 2009-03-23 2010-09-30 富士通株式会社 データ処理装置及びデータ処理方法
EP2334005A1 (en) * 2009-12-11 2011-06-15 Nxp B.V. Integrated circuit and method of producing same
GB2497464A (en) * 2010-10-05 2013-06-12 Hewlett Packard Development Co Scrambling an address and encrypting write data for storing in a storage device
FR2969343B1 (fr) * 2010-12-21 2013-07-05 Oberthur Technologies Dispositif et procede de controle d'acces a une memoire de masse amovible
CN102541762A (zh) * 2010-12-27 2012-07-04 北京国睿中数科技股份有限公司 用于外部存储器的数据保护器和数据保护方法
US9170843B2 (en) 2011-09-24 2015-10-27 Elwha Llc Data handling apparatus adapted for scheduling operations according to resource allocation based on entitlement
US9460290B2 (en) 2011-07-19 2016-10-04 Elwha Llc Conditional security response using taint vector monitoring
US8813085B2 (en) 2011-07-19 2014-08-19 Elwha Llc Scheduling threads based on priority utilizing entitlement vectors, weight and usage level
US9443085B2 (en) 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US9558034B2 (en) 2011-07-19 2017-01-31 Elwha Llc Entitlement vector for managing resource allocation
US9098608B2 (en) 2011-10-28 2015-08-04 Elwha Llc Processor configured to allocate resources using an entitlement vector
US9575903B2 (en) 2011-08-04 2017-02-21 Elwha Llc Security perimeter
US9465657B2 (en) 2011-07-19 2016-10-11 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US9798873B2 (en) 2011-08-04 2017-10-24 Elwha Llc Processor operable to ensure code integrity
US9298918B2 (en) 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US8943313B2 (en) 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US9471373B2 (en) 2011-09-24 2016-10-18 Elwha Llc Entitlement vector for library usage in managing resource allocation and scheduling based on usage and priority
US8726037B2 (en) * 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
US8874933B2 (en) * 2012-09-28 2014-10-28 Intel Corporation Instruction set for SHA1 round processing on 128-bit data paths
US8819455B2 (en) * 2012-10-05 2014-08-26 Intel Corporation Parallelized counter tree walk for low overhead memory replay protection
CN104063672B (zh) * 2013-03-23 2016-12-28 北京万协通信息技术有限公司 数据安全存储方法
US9213653B2 (en) * 2013-12-05 2015-12-15 Intel Corporation Memory integrity
US9405919B2 (en) * 2014-03-11 2016-08-02 Qualcomm Incorporated Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
US9990249B2 (en) 2015-12-24 2018-06-05 Intel Corporation Memory integrity with error detection and correction
US10594491B2 (en) 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
CN106599735B (zh) * 2017-02-13 2023-10-24 珠海格力电器股份有限公司 数据保护装置、方法以及存储控制器
DE102018102386A1 (de) * 2018-02-02 2019-08-08 Infineon Technologies Ag Verfahren zum Senden von Daten, Verfahren zum Empfangen von Daten, Master-, Slave-, und Master-Slave-System
CN109656926A (zh) * 2018-12-24 2019-04-19 杰信软件科技(苏州)有限公司 数据库的管理方法
US11646870B2 (en) 2019-01-23 2023-05-09 International Business Machines Corporation Securing mobile device by RAM-encryption

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JP3747520B2 (ja) * 1996-01-30 2006-02-22 富士ゼロックス株式会社 情報処理装置及び情報処理方法
EP0940037B1 (en) * 1996-07-16 2005-09-14 Koninklijke Philips Electronics N.V. Detecting a watermark embedded in an information signal
GB2319705B (en) * 1996-11-21 2001-01-24 Motorola Ltd Arrangement for encryption/decryption of data and data carrier incorporating same
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
JP4519963B2 (ja) * 1999-06-21 2010-08-04 富士通株式会社 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム
WO2001098908A1 (en) * 2000-06-16 2001-12-27 Koninklijke Philips Electronics N.V. Watermark detector

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012507949A (ja) * 2008-10-30 2012-03-29 クゥアルコム・インコーポレイテッド 短い待ち時間のブロック暗号
JP2014160256A (ja) * 2008-10-30 2014-09-04 Qualcomm Incorporated 短い待ち時間のブロック暗号
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP2010170495A (ja) * 2009-01-26 2010-08-05 Fujitsu Semiconductor Ltd プロセッサ
US8578156B2 (en) 2009-01-26 2013-11-05 Fujitsu Semiconductor Limited Device including processor and encryption circuit

Also Published As

Publication number Publication date
WO2003030441A2 (en) 2003-04-10
CN100379194C (zh) 2008-04-02
WO2003030441A3 (en) 2003-09-18
CN1565102A (zh) 2005-01-12
EP1440535B1 (en) 2011-01-05
EP1440535A2 (en) 2004-07-28
ATE494692T1 (de) 2011-01-15
DE60238853D1 (de) 2011-02-17
US20030084308A1 (en) 2003-05-01

Similar Documents

Publication Publication Date Title
EP1440535B1 (en) Memory encrytion system and method
US10256972B2 (en) Flexible architecture and instruction for advanced encryption standard (AES)
US10554387B2 (en) Architecture and instruction set for implementing advanced encryption standard (AES)
US7058805B2 (en) Systems and methods for protecting data secrecy and integrity
JP3747520B2 (ja) 情報処理装置及び情報処理方法
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
US8428251B2 (en) System and method for stream/block cipher with internal random states
EP0802652A2 (en) Data encryptor having a scalable clock
US7841014B2 (en) Confidential information processing method, confidential information processor, and content data playback system
WO2008121734A1 (en) Method and apparatus for advanced encryption standard (aes) block cipher
US20050138403A1 (en) Data encryption in a symmetric multiprocessor electronic apparatus
KR20060110383A (ko) 네트워크 보안 프로세서의 다중모드 암호화 장치
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
Rayarapu et al. Securing files using AES algorithm
KR20050002103A (ko) 암호 프로세서를 내장한 휴대용 저장장치
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050908

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050908

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070323

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090303

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090728