JP6046360B2 - 機密データの暗号化および記憶 - Google Patents

機密データの暗号化および記憶 Download PDF

Info

Publication number
JP6046360B2
JP6046360B2 JP2012063044A JP2012063044A JP6046360B2 JP 6046360 B2 JP6046360 B2 JP 6046360B2 JP 2012063044 A JP2012063044 A JP 2012063044A JP 2012063044 A JP2012063044 A JP 2012063044A JP 6046360 B2 JP6046360 B2 JP 6046360B2
Authority
JP
Japan
Prior art keywords
data storage
physical
data
storage location
circuit
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.)
Active
Application number
JP2012063044A
Other languages
English (en)
Other versions
JP2012199922A (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 JP2012199922A publication Critical patent/JP2012199922A/ja
Application granted granted Critical
Publication of JP6046360B2 publication Critical patent/JP6046360B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データ処理の分野に関し、具体的には、安全なデータ処理の間のデータの記憶を提供することに関する。
データおよびそのデータの処理が、外部に不可視であるように、処理の間、データを安全かつ機密に維持することは、極秘データを処理するシステムにおいて既知の問題である。例えば、スマートカードは、ユーザにアクセス可能であってはならない機密データを暗号化するために使用される、暗号キーを記憶してもよい。その動作の間、システムの差分電力解析、すなわち、DPA等の技法の使用は、システム内に記憶された暗号キー等の安全なデータに関する情報を人的に判定することができるようにする場合があるデータを提供する可能性があることが見出されている。
種々の技法が、システムのセキュリティに対するそのような攻撃を阻止する試みとして考案されている。例えば、Mayらによる「Random Register Renaming to foil DPA」は、レジスタリネーミングの間に、選択された一連の利用可能なレジスタからランダムに選択されたレジスタの使用が、どのようにDPAの使用を可能とし、記憶されたデータ記憶の有効性が低いことを判定することができるかについて説明している。例えば、レジスタへの書き込み時、使用される電力の量は、反転されるビットの数に依存し、したがって、電力シグネチュアの分析およびレジスタに元々何が記憶されていたかを知っていることは、ユーザに、記憶されていた最終値に関する情報を判定可能にする場合がある。上書きされるべき値を記憶するレジスタが、複数の利用可能なレジスタからランダムに選択される場合、上書きされる値は、予め判定されず、この値を知っていることを伴わずには、DPAは、有効性が低い。
機密データを処理するシステム内における高められたセキュリティを提供することが望ましい。
第1の態様から見ると、本発明は、データを記憶するための複数のデータ記憶場所を備える、データ記憶と、前記データ記憶にアクセスするための要求を受信するための入力と、前記データ記憶内の物理データ記憶場所への前記アクセス要求に指定されるアーキテクチャデータ記憶場所をマッピングするためのリネーミング回路と、前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号化キーを生成するように構成される、復号回路と、を備える、データ記憶回路を提供する。
本発明は、記憶されたデータの暗号化が、システムのセキュリティを向上させるのに役立ち、異なるキーが各暗号化のために使用される場合、データへのアクセスをより困難にするだけではなく、記憶プロセスが、異なる量の電力を必要とし、システムのあらゆる有用な差分電力解析を阻止するであろうことを認識する。しかしながら、また、各暗号化のための異なるキーの生成および記憶は、特に、データ記憶のタイミング制約内において、行うことが困難であることも認識する。
本発明は、リネーミング回路を使用するシステムでは、次に、そこにアーキテクチャデータ記憶場所がマッピングされてもよい、物理データ記憶場所が、マッピング毎に変化することを認識する。これは、値が記憶される毎に変化するのに伴って、物理データ記憶場所に関する情報を、暗号化においてキーとして使用するために適切にし、後でデータ値にアクセスするために、いずれの場合にも、記憶される必要がある。したがって、これは値を復号するために利用可能となるであろう。したがって、システム内に既に存在する論理を利用して、暗号化のためのキーを生成するために使用することができる値を提供および記憶し、それによって、よりセキュアなシステムを提供する、システムが提供される。
物理記憶場所の識別が、キーを生成するために使用されるが、他の情報もまた、この値に加え、使用されてもよいことに留意されたい。
データ記憶は、いくつかの実施形態では、いくつかの形態をとってもよいが、前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える。
多くの処理装置では、レジスタは、データ記憶場所に迅速かつ容易にアクセスするように提供される。概して、いくつかのレジスタが処理装置内に存在し、いくつかのレジスタは、命令セット内の命令によって指定される。コンパクトなエンコーディングを有するために、ほとんどのプロセッサ命令セットは、直接ネーミングすることができる小さい組のレジスタ場所を有する。したがって、概して、レジスタバンクに存在する物理レジスタの数は、命令によって識別可能なレジスタの数を上回る。したがって、シリコン内に存在するレジスタのすべてを利用するために、レジスタのリネーミンが、レジスタリネーミング回路を使用して、処理の間に行われる。
いくつかの実施形態では、前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化キーおよび復号キーは、前記物理アドレスから生成される。
データ記憶場所は、いくつかの方法で識別されてもよく、この識別は、暗号化キーおよび復号キーを生成するために使用されてもよいが、いくつかの実施形態では、使用される物理アドレスである。
いくつかの実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、アルゴリズムに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶しているデータ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
リネーミング回路は、アルゴリズムに従って、アーキテクチャデータ記憶場所をマップすべき物理データ記憶場所を判定してもよい。これは、決定論的な方法で行われるが、選択された物理データ記憶場所は、アルゴリズムが使用する、利用可能な物理データ記憶場所に応じて、変動するであろう。これは、選択された物理データ記憶場所を暗号化キーを生成する際の使用にさらに適切にする。
他の実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、ランダムまたは疑似ランダムプロセスに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
物理記憶場所をランダムまたは疑似ランダム的に選択することが好ましい場合がある。値を完全にランダムに選択することは、行うことが困難である場合があり、疑似ランダム選択は、差分電力解析を阻止するために十分なノイズを提供するのに概して十分となるであろうことに留意されたい。先行技術の段落に記載のように、値を記憶するためのレジスタのランダム選択は、差分電力解析を阻止し、したがって、これは記憶されたデータの暗号化に加え、その中に記憶される記憶場所がランダム的にまたは少なくとも疑似ランダム的に選択される場合、システムのセキュリティをさらに向上させる場合がある。
ランダムまたは疑似ランダム選択は、リネーミング回路に入力される、外部生成された信号を使用することによって行われてもよく、またはデータ記憶回路自体内のランダムイベント生成器または疑似ランダムイベント生成器によって行われてもよい。
いくつかの実施形態では、利用可能な物理データ記憶場所を選択する場合、利用可能な物理記憶場所は、有効データを現在記憶していない物理データ記憶場所である。言い換えると、それらは、アーキテクチャ記憶場所に現在マッピングされておらず、データを記憶するために自由に使える、物理データ記憶場所である。
代替として、前記利用可能な物理データ記憶場所はすべて、前記データ記憶内の物理データ記憶場所であって、前記リネーミング回路は、前記現在マッピングされている物理記憶場所が選択される場合、現在マッピングされている物理データ記憶場所に記憶されたデータを別の物理データ記憶場所に書き込み、前記別の物理データ記憶場所のためのマッピングを記憶するように構成される。
いくつかの実施形態では、有効データを現在記憶していない物理データ記憶場所を使用するだけではなく、リネーミング回路は、物理データ記憶場所のいずれかを選択し、その中にデータを記憶してもよい。それらが、現在マッピングされている物理データ記憶場所を選択する場合、その中に記憶されたデータは、別の物理データ記憶場所に書き込まれ、マッピングテーブルが、この新しいマッピングを記憶するように更新されなければならない。その際、記憶されたデータは、記憶場所の物理アドレスから生成される暗号化キーによって暗号化される。したがって、それを異なる場所に記憶する前に、復号され、次いで、新しい場所のアドレスから生成されるキーによって暗号化されなければならない。次いで、選択された物理データ記憶場所は、到着した新しいデータ値を記憶するために使用され、これに対するマッピングが記憶される。このシステムが、使用される場合、明らかに、有効データを現在記憶していない物理データ記憶場所が、使用される場合より多くの電力が消費される。しかしながら、これは、システムに導入されるより多くのノイズが存在し、外部の人物が、現在行われていることを分析するのがより困難となることを意味する。
いくつかの実施形態では、前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される。
ノイズを生成する付加的方法は、リネーミング回路が、自動的に、現在マッピングされている物理データ記憶場所のアーキテクチャデータ記憶場所へのリマッピングを行うことである。リネーミング回路は、データアクセス要求に応答して、これを行ってもよく、または周期的に行ってもよく、または何らかの他の要因に応じて、これを行うように構成されてもよい。ランダムリマッピングは、付加的電力シグネチュアを導入し、システムをさらにより分析困難にする。記憶されたデータの復号および再暗号化は、物理アドレス、ひいては暗号化キーが変化する場合、要求されることに留意されたい。
いくつかの実施形態では、前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答し、有効データを記憶していないものとして更新される、前記値を現在記憶する前記物理データ記憶場所をマーキングし、前記物理データ記憶場所のためのマッピングを削除し、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶する。
値を更新するための要求が受信される場合、この値をこのアーキテクチャレジスタに既にマッピングされている物理データ記憶場所に書き込むのではなく、新しいマッピングが行われ、このアーキテクチャレジスタのための以前のマッピングは、削除される。ここでも、これは、システムを外部分析するのを困難にする。
本発明の第2の態様は、対応する物理アドレスの組によって識別される物理的なレジスタの組を備える、本発明の第1の態様に従うデータ記憶回路と、アーキテクチャのレジスタの組を指定する、命令の組からの命令に応答して、データを処理するためのプロセッサと、前記アーキテクチャの組からのレジスタを前記物理セット内のレジスタにマッピングするリネーミング回路と、を備える、データ処理装置を提供する。
本発明の第3の態様は、前記データ記憶にアクセスするための要求を受信するステップと、前記要求が、データを記憶するための要求である場合、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップと、前記物理データ記憶場所に応じて生成される暗号化キーを使用して、前記マッピングから、前記データを前記物理データ記憶場所へ記憶することに先立って、前記データを暗号化するステップと、または前記要求が、データを読み取るための要求である場合、マッピングの記憶から、前記アクセス要求に指定されるアーキテクチャデータ記憶場所に対応する物理データ記憶場所を判定するステップと、前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記マッピングから、前記物理データ記憶場所から読み取られたデータを復号するステップを含む、複数のデータ記憶場所を備える、データ記憶内にデータを記憶する方法を提供する。
本発明の第4の態様は、複数のデータ記憶場所を備えるデータを記憶するための手段と、前記データ記憶にアクセスするための要求を受信するための入力手段と、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング手段と、前記データの前記データ記憶内への記憶に先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、前記データ記憶から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号回路と、を備える、データ記憶回路を提供する。
本発明の前述および他の目的、特徴、ならびに利点は、付随の図面と併せて読み取られる、例証的実施形態の以下の発明を実施するための形態から明白となるであろう。
本発明の実施形態に従う、データ記憶回路を示す図である。 本発明の実施形態に従う、データ処理装置を示す図である。 本発明の実施形態に従う、リネーミングテーブルを図式的に示す図である。 本発明の実施形態に従う、方法におけるステップを例証する、流れ図である。
図1は、リネーミング回路18によって生成される、リネーミングテーブル20を備える、データ記憶回路10を示す。このリネーミングテーブルは、命令によって指定されたアーキテクチャレジスタのシリコン内に存在する物理レジスタへのマッピングを記憶する。これらのマッピングは、外部ランダムイベント生成器から入力されるランダムイベントに応答して、リネーミング回路18によって生成される。このランダムイベント信号は、レジスタバンク内からレジスタをランダムに選択し、そのレジスタにアクセスするための命令に応答して、そこにアーキテクチャレジスタをマッピングするために使用される。
したがって、書込要求に応答して、アーキテクチャレジスタを示す書込アドレスが、リネーミング回路18の書込ポートアドレス入力で受信される。このアドレスは、レジスタバンク30内の物理レジスタのアドレスにマッピングされ、マッピングが、リネーミングテーブル20に記憶される。次いで、この物理アドレスは、レジスタバンクデータ記憶制御回路32および暗号化回路35に伝送される。
書込要求に対応する書込データおよびリマッピングされた物理アドレスである書込アドレスは、暗号化回路35に入力され、書込データは、この物理アドレスから生成される暗号化キーを使用して暗号化される。この暗号化キーは、物理アドレスまたは物理アドレスの少なくとも一部から直接生成されてもよく、または物理およびアーキテクチャもしくは仮想アドレスまたは物理アドレスおよびデータ自体などのようないくつかのものから生成されてもよい。暗号化は、レジスタバンク内のデータの記憶を遅延させないように、概して、非常に単純な暗号化プロセスである。
次いで、記憶制御回路32は、暗号化されたデータを物理アドレスによって識別されたレジスタに書き込むように作用する。
読み取り要求が受信される場合、読み取られるアーキテクチャレジスタの仮想アドレスが、リネーミングテーブル20で受信され、レジスタバンク30内のレジスタの対応する物理アドレスが、このリネーミングテーブル内に記憶されたマッピングから判定される。次いで、このアドレスは、読み取り制御回路42および復号回路45に伝送される。読み取り制御回路42は、アドレスによって示されるレジスタを選択し、選択されたレジスタに記憶されたデータを復号回路45に出力する。復号回路45は、このデータを受信し、リネーミングテーブル20から入力された読み取りアドレスから復号キーを生成する。次いで、読み取りデータは、データ記憶回路10から出力される。
前述のように、暗号化および復号キーは、リネーミングテーブルに記憶されたデータから生成される。このデータは、レジスタ毎に異なり、レジスタバンク30内でデータにアクセス可能にするために、記憶される必要がある。したがって、暗号化キーのための理想的ソースである。
リネーミング回路18が、ランダムイベントに応答して、物理レジスタを選択するため、選択は、ランダムであって、したがって、暗号化キーもまた、暗号化毎にランダムに変化する。これは、システムにノイズを導入し、誰かが、システムにハッキングし、有用情報を導出しようとするのを困難にする。したがって、暗号化システムは、データの記憶を遅延させないように単純であってもよいが、レジスタ選択のランダム性によって、セキュリティの向上は、実質的ものとなる。
この場合、ランダムイベントは、利用可能なレジスタを選択するために使用されるが、いくつかの実施形態では、アルゴリズムを使用した決定的方法で行われてもよいことに留意されたい。これはまた、物理レジスタの場所が、アルゴリズムおよび利用可能なレジスタに応じて変動し、したがって、ノイズがシステムに追加されるであろうため、容認可能なレベルのセキュリティを提供する場合がある。
また、これは、疑似ランダムイベントに応答して行われてもよい。そのようなイベントは、実際、完全にランダムなイベントは、生成が困難であるため、完全にランダムではない、イベントであるが、しかしながら、本質的に非常にランダムであって、したがって、非常に予測が困難である、イベントである。
その中にデータを記憶するためのレジスタを選択する際、リネーミング回路は、現在マッピングされていないそれらのレジスタから選択されてもよく、または存在するいずれかのレジスタを選択してもよい。後者を行う場合、データは、現在マッピングされているレジスタから異なるレジスタに移動される必要があり、新しいマッピングが、記憶される必要がある。これは、図3に関して、より詳細に説明される。
図2は、本発明の実施形態に従う、データ処理装置50を示す。データ処理装置50は、フェッチ段階と、デコード段階と、実行段階と、を備える、プロセッサ60を有する。フェッチ段階は、命令キャッシュ70から命令をフェッチし、デコード段階は、これらの命令をデコードする。次いで、実行段階は、デコードされた命令を実行するであろう。実行段階はまた、レジスタバンク30からデータを受信してもよい。実行段階はまた、データをレジスタバンク30に出力してもよく、またはデータを外部出力ポート52に出力してもよい。
データ処理装置50は、ランダム信号生成器82を伴うリネーミング回路80と、リネーミングテーブル20と、を含む。リネーミング回路は、プロセッサ60の実行段階から仮想アドレスまたはアーキテクチャアドレスを受信する。これらは、プロセッサ60によって処理される命令に指定されるアドレスである。次いで、リネーミング回路80は、これらの仮想アドレスをレジスタバンク30内のレジスタの物理アドレスにマッピングする。これは、リネーミングテーブル20内に現在のマッピングを記憶する。次いで、これらのマッピングからのアドレスは、レジスタバンク30ならびに暗号化回路35および復号回路45に出力される。データアクセス要求が記憶要求である場合、記憶されるデータは、実行段階から出力され、暗号化回路35に入力される。リネーミング回路は、マッピングから物理アドレスを出力し、暗号化回路は、このアドレスを使用して、暗号化キーを生成し、受信したデータを暗号化するであろう。次いで、この暗号化されたデータは、リネーミング回路80から出力されたアドレスによって指定されたアドレスにおいて、レジスタバンク30に記憶されるであろう。
実行されるデータアクセス要求が読み取り要求である場合、これに対するアドレスが、リネーミング回路80に入力され、この仮想アドレスに対応する物理アドレスが、リネーミングテーブル20を使用して見つけられる。次いで、このアドレスは、復号回路45およびレジスタバンク30に出力される。次いで、レジスタバンク30は、そのアドレスに記憶されたデータを出力する一方、復号回路45は、物理アドレスから復号キーを生成する。次いで、レジスタバンクから出力されたデータが、復号キーを使用して復号され、出力される。
このデータは、プロセッサ60の実行段階に逆出力されてもよく、または出力ポート52を介して出力されてもよい。
図3は、本発明の実施形態に従う、リネーミングテーブル20を図式的に示す。このリネーミングテーブルは、現在のマッピングのリストを記憶し、現在マッピングされていないレジスタのリストを記憶してもよく、または現在のマッピングのリストからこれを判定してもよい。レジスタを選択し、記憶要求に応答して、それに仮想アドレスをマッピングする際、リネーミング回路は、現在マッピングされていないレジスタから選択してもよく、またはすべてのレジスタから選択してもよい。現在のマッピングの一部であるレジスタから選択する場合、以下の実施例は、何が行われるかを示す。
レジスタR5にデータを記憶するための記憶要求が受信され、ランダム生成器81に応答して選択された物理レジスタがP1である場合、別のマッピングが、R0をさらなる物理レジスタにマッピングするように行われることが必要となることになる。
したがって、さらなるレジスタは、ランダム生成器に応答して選択され、これが、現在マッピングされていないレジスタに対するものであるとすれば、P1に現在記憶されているデータは、P1アドレスから生成されたキーを使用して復号され、次いで、このデータは、選択されたさらなるレジスタのアドレスから生成されたキーを使用して暗号化され、次いで、暗号化されたデータは、このレジスタに書き込まれ、マッピングが記憶される。例えば、選択された新しいレジスタがP6であった場合、P1に記憶されたデータ(復号および再暗号化後)は、P6に書き込まれ、マッピングP6 R0が記憶されるであろう。次いで、新しく受信されたデータは、P1に書き込まれ、マッピングP1 R5が記憶されるであろう。
いくつかの実施形態では、リネーミング回路はまた、それに関するいくつかのマッピングを周期的にスワップするように構成されてもよい。したがって、リマッピング信号に応答して、現在のマッピングのうちの1つをランダムに選択し、それを異なる物理レジスタにリマッピングし、その異なる物理レジスタにデータを記憶するであろう。例えば、現在のマッピングP4 R3および物理レジスタP15を選択してもよく、次いで、P4に記憶された値をP15に書き込み(物理アドレスから生成されたキーを使用して、データを復号し、次いで、再暗号化している)、次いで、テーブルからP4 R3マッピングを削除し、P15 R3マッピングを記憶するであろう。このようにして、ノイズが、システムに追加され、システムをより分析困難にする。
そのような周期的リマッピングに加え、リネーミング回路はまた、記憶された値を更新するための要求に応答して、物理レジスタに記憶された値が上書きされず、むしろ、新しい物理レジスタが選択され、そのマッピングが記憶され、値がそのレジスタに書き込まれるように、リマッピングを行うようにも構成されてもよい。例えば、以下の2つの命令は、これを例証する。
LDR R0,addr
ADDS r0,r0,#0
第1の命令は、リネーミングにより、P3であって、データをP3のアドレスによって暗号化する、アーキテクチャレジスタr0に加算器のコンテンツを書き込む。第2の命令は、r0を更新することを所望するが、しかしながら、我々は、ここで、r0を別のレジスタ、例えば、P6にリマッピングし、次いで、このデータをP6のアドレスによって暗号化する。この場合、P6に含有されるデータは、異なる暗号化キーにより、P3に含有されるものと異なる。次いで、r0のP3へのマッピングが削除可能となる。
前述のように、暗号化キーおよび復号キーは、物理アドレス自体から生成可能であるが、それらはまた、データと物理アドレスとの組み合わせ、もしくはデータと仮想アドレスとの組み合わせ、またはこれらのそれぞれの一部だけから生成されてもよい。
図4は、本発明の実施形態に従う方法におけるステップを例証する流れ図を示す。この方法では、アーキテクチャレジスタにアクセスするためのデータアクセス要求が受信される。このデータアクセスは、ロードまたは記憶アクセス要求であってもよい。それがデータを記憶するための要求である場合、アーキテクチャレジスタが現在マッピングされているかどうかが判定される。そうではない場合、利用可能なレジスタのうちの1つが、ランダムイベントに応じて選択され、マッピングが記憶される。本実施形態では、利用可能なレジスタは、現在マッピングされていないものである。前述のように、すべてのレジスタを選択することができ、その場合、現在のマッピングの一部であるレジスタが選択された場合、この方法におけるさらなるステップが行われる必要があるであろう。しかしながら、本実施形態では、フリーレジスタが選択され、マッピングが記憶される。アーキテクチャレジスタが、現在マッピングされている場合、マッピングは削除され、削除されたマッピングの物理レジスタが、利用可能としてマーキングされる。
次のステップは、選択されたレジスタのアドレスからの暗号化キーの生成を伴い、次いで、データは、この暗号化キーを使用して暗号化される。次いで、暗号化されたデータは、選択されたレジスタに記憶される。
データアクセスが、記憶アクセスではないが、むしろ、読み取りアクセスである場合、データを現在記憶している物理レジスタが、リネーミングテーブルに記憶されたマッピングから読み出される。次いで、データが、物理レジスタから読み出され、その復号キーが、物理アドレスから生成される。次いで、物理レジスタから読み出されたデータは、この復号キーを使用して復号される。
本発明の例証的実施形態が、付随の図面を参照して、本明細書で詳細に説明されたが、本発明は、それらの特定の実施形態に限定されず、種々の変更および修正を、添付の特許請求の範囲によって定義されるように、本発明の範囲および精神から逸脱することなく、当業者によってそれらの中にもたらすことができることを理解されたい。

Claims (11)

  1. データ記憶回路であって、
    データを記憶するための複数のデータ記憶場所を備える、データ記憶と、
    前記データ記憶にアクセスするための要求を受信するための入力と、
    前記アクセス要求において指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング回路と、
    前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、
    前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、暗号化キーを生成するように構成される、復号回路と、
    を備え、
    前記リネーミング回路は、前記複数の物理データ記憶場所のいずれが、アクセス要求において指定されるデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングし、かつ、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶するために、前記利用可能な物理データ記憶場所のうちの1つを選択することによって、前記マッピングを行うように構成され、
    前記利用可能な物理データ記憶場所は、前記データ記憶内のすべての物理データ記憶場所を含み、
    前記リネーミング回路は、前記リネーミング回路が、前記利用可能な物理データ記憶場所の中から現在マッピングされている第1の物理データ記憶場所を選択する場合、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第1の物理データ記憶場所と異なる第2の物理データ記憶場所を選択し、前記第1の物理データ記憶場所に記憶されているデータを前記第2の物理データ記憶場所に書き込み、前記第2の物理データ記憶場所のためのマッピングを記憶し、前記アクセス要求において指定される前記データを前記第1の物理データ記憶場所に記憶するように構成される、
    データ記憶回路。
  2. 前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える、請求項1に記載のデータ記憶回路。
  3. 前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化および復号キーは、前記物理アドレスから生成される、請求項1に記載のデータ記憶回路。
  4. 前記リネーミング回路は、疑似ランダム的に生成された信号を受信するための入力をさらに備え、前記リネーミング回路は、前記疑似ランダム的に生成された信号に応じて、前記利用可能な物理データ記憶場所のうちの前記1つを選択するように構成される、請求項1に記載のデータ記憶回路。
  5. 前記データ記憶回路は、疑似ランダムイベント生成器をさらに備え、前記データ記憶回路は、前記疑似ランダムイベント生成器によって生成されたイベントに応じて、前記利用可能な物理データ記憶場所のうちの前記1つを選択するように構成される、請求項1に記載のデータ記憶回路。
  6. 前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される、請求項1に記載のデータ記憶回路。
  7. 前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答して
    前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶し、
    前記物理データ記憶場所のためのマッピングを削除する、
    請求項1に記載のデータ記憶回路。
  8. 前記データ記憶が、対応する物理アドレスの組によって識別される、レジスタの物理的な組を備える、請求項1から請求項7のいずれか1項に記載のデータ記憶回路と、
    レジスタのアーキテクチャの組を指定する命令の組からの命令に応答して、データを処理するためのプロセッサとを備え、
    前記リネーミング回路は、前記アーキテクチャのレジスタの組からのレジスタを前記物理的な組の中のレジスタにマッピングする、データ処理装置。
  9. 複数のデータ記憶場所を備えるデータ記憶を有するデータ記憶回路内にデータを記憶する方法であって、
    前記データ記憶回路が、前記データ記憶にアクセスするための要求を受信するステップと、
    前記要求が、データを記憶するための要求である場合、
    前記データ記憶回路が、前記複数の物理データ記憶場所のいずれが、その中にデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングするために、前記データ記憶内のすべての物理データ記憶場所を含む利用可能な物理データ記憶場所のうちの1つを前記データ記憶回路が選択することによって、前記アクセス要求において指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップ、
    前記利用可能な物理データ記憶場所の中から現在有効データを記憶している第1の物理データ記憶場所を選択することに応答して、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第1の物理データ記憶場所と異なる第2の物理データ記憶場所を前記データ記憶回路が選択し、前記有効データを前記第2の物理データ記憶場所に前記データ記憶回路が書き込み、前記第2の物理データ記憶場所のためのマッピングを前記データ記憶回路が記憶するステップ、および
    前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記データの前記マッピングからの前記物理データ記憶場所への記憶に先立って、前記データ記憶回路が前記データを暗号化するステップ、または
    前記要求が、データを読み取ることである場合、
    マッピングの記憶から、前記アクセス要求において指定されたアーキテクチャデータ記憶場所に対応する物理データ記憶場所を前記データ記憶回路が判定するステップ、および
    前記物理データ記憶場所に応じて生成された復号キーを使用して、前記マッピングからの前記物理データ記憶場所から読み取られたデータを前記データ記憶回路が復号するステップと、
    含む、方法。
  10. 前記データ記憶に現在記憶されている値を更新するための要求に応答して、
    前記値を現在記憶している前記物理データ記憶場所を、有効データを記憶しておらず、前記物理データ記憶場所のための前記マッピングを削除するとして更新されるよう、前記データ記憶回路がマーキングするステップと、
    前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所に前記データ記憶回路がマッピングするステップと、
    前記マッピングを前記データ記憶回路が記憶するステップと、
    をさらに備える、請求項9に記載の方法。
  11. データ記憶回路であって、
    複数のデータ記憶場所を含む、データを記憶するための手段と、
    データを記憶するための前記手段にアクセスするための要求を受信するための入力手段と、
    前記アクセス要求において指定されたアーキテクチャデータ記憶場所を、データを記憶するための前記手段内の物理データ記憶場所にマッピングするためのリネーミング手段と、
    前記データを、データを記憶するための前記手段へ記憶することに先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、
    データを記憶するための前記手段から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号手段と、
    を備え、
    前記リネーミング手段は、前記複数の物理データ記憶場所のいずれが、アクセス要求において指定されるデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングし、かつ、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶するために、前記利用可能な物理データ記憶場所のうちの1つを選択することによって、前記マッピングを行うように構成され、
    前記利用可能な物理データ記憶場所は、データを記憶するための前記手段内のすべての物理データ記憶場所を含み、
    前記リネーミング手段は、前記リネーミング手段が、前記利用可能な物理データ記憶場所の中から現在マッピングされている第1の物理データ記憶場所を選択する場合、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第1の物理データ記憶場所と異なる第2の物理データ記憶場所を選択し、前記第1の物理データ記憶場所に記憶されているデータを前記第2の物理データ記憶場所に書き込み、前記第2の物理データ記憶場所のためのマッピングを記憶し、前記アクセス要求において指定される前記データを前記第1の物理データ記憶場所に記憶するように構成される、
    データ記憶回路。
JP2012063044A 2011-03-22 2012-03-21 機密データの暗号化および記憶 Active JP6046360B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1104803.0 2011-03-22
GB1104803.0A GB2489405B (en) 2011-03-22 2011-03-22 Encrypting and storing confidential data

Publications (2)

Publication Number Publication Date
JP2012199922A JP2012199922A (ja) 2012-10-18
JP6046360B2 true JP6046360B2 (ja) 2016-12-14

Family

ID=44012960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012063044A Active JP6046360B2 (ja) 2011-03-22 2012-03-21 機密データの暗号化および記憶

Country Status (4)

Country Link
US (1) US9280675B2 (ja)
JP (1) JP6046360B2 (ja)
CN (1) CN102750233B (ja)
GB (1) GB2489405B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012024856A1 (de) * 2012-12-19 2014-06-26 Giesecke & Devrient Gmbh Verfahren zum Betreiben eines Sicherheitsmoduls sowie ein solches Sicherheitsmodul
US9317718B1 (en) 2013-03-29 2016-04-19 Secturion Systems, Inc. Security device with programmable systolic-matrix cryptographic module and programmable input/output interface
US9355279B1 (en) 2013-03-29 2016-05-31 Secturion Systems, Inc. Multi-tenancy architecture
US9374344B1 (en) 2013-03-29 2016-06-21 Secturion Systems, Inc. Secure end-to-end communication system
US9524399B1 (en) * 2013-04-01 2016-12-20 Secturion Systems, Inc. Multi-level independent security architecture
US20140310536A1 (en) * 2013-04-16 2014-10-16 Qualcomm Incorporated Storage device assisted inline encryption and decryption
US9483664B2 (en) * 2014-09-15 2016-11-01 Arm Limited Address dependent data encryption
GB2538237B (en) * 2015-05-11 2018-01-10 Advanced Risc Mach Ltd Available register control for register renaming
US11283774B2 (en) 2015-09-17 2022-03-22 Secturion Systems, Inc. Cloud storage using encryption gateway with certificate authority identification
US10708236B2 (en) 2015-10-26 2020-07-07 Secturion Systems, Inc. Multi-independent level secure (MILS) storage encryption
FR3045184B1 (fr) * 2015-12-15 2018-07-20 Idemia France Procede d’ecriture dans une memoire non-volatile d’une entite electronique et entite electronique associee
EP3267354A1 (en) * 2016-07-04 2018-01-10 Gemalto Sa Secure loading of secret data to non-protected hardware registers
KR102510451B1 (ko) * 2018-05-09 2023-03-16 삼성전자주식회사 집적 회로 장치 및 집적 회로 장치의 동작 방법
CN109727333A (zh) * 2019-01-31 2019-05-07 上海易点时空网络有限公司 基于地址分身的数据处理方法及装置
TWI728367B (zh) * 2019-05-23 2021-05-21 樹德科技大學 巨量亂數產生裝置及其方法
CN110443049B (zh) * 2019-07-17 2023-05-23 南方电网科学研究院有限责任公司 一种安全数据存储管理的方法、系统及安全存储管理模块
CN110602146A (zh) * 2019-09-30 2019-12-20 北京大米科技有限公司 数据加密、解密方法、可读存储介质和电子设备
US11709786B2 (en) * 2021-04-29 2023-07-25 Renesas Electronic Corporation Device and method of secure decryption by virtualization and translation of physical encryption keys
CN114329361B (zh) * 2022-03-03 2022-05-27 北京芯愿景软件技术股份有限公司 存储装置和数据读取方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405304B1 (en) * 1998-08-24 2002-06-11 Compaq Information Technologies Group, L.P. Method for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list
JP2004510367A (ja) * 2000-09-15 2004-04-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 暗号化キーとしてのデータ塊アドレスによる保護
WO2002054228A1 (en) * 2000-12-06 2002-07-11 University Of Bristol Register renaming
DE10115118A1 (de) 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
JP4045777B2 (ja) 2001-10-30 2008-02-13 株式会社日立製作所 情報処理装置
US7107459B2 (en) * 2002-01-16 2006-09-12 Sun Microsystems, Inc. Secure CPU and memory management unit with cryptographic extensions
TW200705183A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc High-privacy non-sequential hidden block memory confidential data protection method for a mass storage device
US7523288B2 (en) * 2006-09-06 2009-04-21 Microsoft Corporation Dynamic fragment mapping
US20080155273A1 (en) * 2006-12-21 2008-06-26 Texas Instruments, Inc. Automatic Bus Encryption And Decryption
US9207876B2 (en) * 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
US9152381B2 (en) * 2007-11-09 2015-10-06 Psyleron, Inc. Systems and methods employing unique device for generating random signals and metering and addressing, e.g., unusual deviations in said random signals
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
CN101794214B (zh) * 2009-02-04 2013-11-20 世意法(北京)半导体研发有限责任公司 使用多块物理寄存器映射表的寄存器重命名系统及其方法
US8176295B2 (en) * 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
CN101901629B (zh) 2009-05-25 2013-12-25 杭州士兰微电子股份有限公司 非易失性存储器保护系统和保护方法

Also Published As

Publication number Publication date
CN102750233B (zh) 2017-05-31
JP2012199922A (ja) 2012-10-18
US20120246489A1 (en) 2012-09-27
CN102750233A (zh) 2012-10-24
GB2489405A (en) 2012-10-03
GB201104803D0 (en) 2011-05-04
US9280675B2 (en) 2016-03-08
GB2489405B (en) 2018-03-07

Similar Documents

Publication Publication Date Title
JP6046360B2 (ja) 機密データの暗号化および記憶
US11010310B2 (en) Convolutional memory integrity
US10691620B2 (en) Encryption of executables in computational memory
US8726040B2 (en) Memory randomization for protection against side channel attacks
US10896267B2 (en) Input/output data encryption
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US7694151B1 (en) Architecture, system, and method for operating on encrypted and/or hidden information
US8095802B2 (en) System and method for securely saving a program context to a shared memory
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
WO2019109967A1 (en) Storage apparatus and method for address scrambling
US20060288235A1 (en) Secure processor and system
TW201723920A (zh) 硬體強制單向密碼學
US8745407B2 (en) Virtual machine or hardware processor for IC-card portable electronic devices
US20220182232A1 (en) Efficient side-channel-attack-resistant memory encryptor based on key update
CN111566650A (zh) 管理加密系统中的密码术密钥集合
JP2022512051A (ja) メモリ完全性チェックのための完全性ツリー
Liu et al. An energy-efficient encryption mechanism for NVM-based main memory in mobile systems
US9003201B2 (en) Hardware protection for encrypted strings and protection of security parameters
WO2015157842A1 (en) Secured memory system and method therefor
JP2011175464A (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161007

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161117

R150 Certificate of patent or registration of utility model

Ref document number: 6046360

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