JPWO2010109516A1 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
JPWO2010109516A1
JPWO2010109516A1 JP2011505648A JP2011505648A JPWO2010109516A1 JP WO2010109516 A1 JPWO2010109516 A1 JP WO2010109516A1 JP 2011505648 A JP2011505648 A JP 2011505648A JP 2011505648 A JP2011505648 A JP 2011505648A JP WO2010109516 A1 JPWO2010109516 A1 JP WO2010109516A1
Authority
JP
Japan
Prior art keywords
data
scramble
conversion
descrambling
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011505648A
Other languages
English (en)
Other versions
JP5541277B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2010109516A1 publication Critical patent/JPWO2010109516A1/ja
Application granted granted Critical
Publication of JP5541277B2 publication Critical patent/JP5541277B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

データ処理装置が、アドレスバス、スクランブル部、及びデータバスを有する。アドレスバスは、メモリ装置に与えるアドレスデータを出力する。スクランブル部は、アドレスデータで特定されるメモリ装置の記憶位置に対する書き込みデータをスクランブルして秘匿データを得る。データバスは、秘匿データを出力する。スクランブル部は、第1スクランブル部、第1変換部、及び第2スクランブル部を有している。第1スクランブル部は、アドレスデータに対応する第1マスクデータと書き込みデータとのビット毎の排他的論理和を求めて第1スクランブルデータとする。第1変換部は、第1スクランブルデータを一対一で換字変換する。第2スクランブル部は、アドレスデータに対応する第2マスクデータと、第1変換部による第1スクランブルデータの変換後のデータとのビット毎の排他的論理和を求め、得られた第2スクランブルデータを秘匿データとして出力する。

Description

本発明は、メモリ装置に格納されるデータを保護する技術に関する。
携帯電話などの組込機器は、有料コンテンツなどの価値のある資産を備えているため、これを不正に入手する攻撃の対象となっている。その攻撃のひとつに、データプロービングがある。データプロービングは、MPU(Micro Processor Unit)チップと外部RAM(Random Access Memory)との間の露出したデータバス配線から電気的にデータを読み出すという攻撃である。
このデータプロービングによる情報漏洩を防ぐ手法として、データスクランブルがある。データスクランブルは、データを、MPUチップから外に出る前にスクランブルデータに変換することで、当該データの内容を攻撃者から秘匿するというものである。
ここで図1について説明する。図1には、従来のデータスクランブルの一例が図解されている。
図1において、データ処理装置であるMPUチップ1はどちらもw−bitのビット幅であるアドレスバス11とデータバス12とを有しており、メモリ装置である外部RAM2にそれぞれ接続されている。更に、MPUチップ1は、プロセッサ100とスクランブル部200とを内部に有している。
アドレスバス11は、プロセッサ100が出力する、外部RAM2に与えるアドレスデータを出力する。
スクランブル部200は、プロセッサ100が出力する書き込みデータであって、アドレスバス11が出力するアドレスデータで特定される外部RAM2の記憶位置に対する当該書き込みデータをスクランブルして秘匿データを得る。
データバス12は、スクランブル部200が得た秘匿データを出力する。
図1に提示したスクランブル部200の構成について更に説明する。
スクランブル部200は、鍵レジスタ201、排他的論理和演算回路(以下、「XOR回路」と称することとする)202、換字関数処理部203、及びXOR回路204を備えて構成されている。
鍵レジスタ201は、w−bitのスクランブル鍵データKが格納されているレジスタである。
XOR回路202は、アドレスバス11が出力するものと同一のアドレスデータと、鍵レジスタ201に格納されているスクランブル鍵データとのビット毎の排他的論理和を求める。
換字関数処理部203は、XOR回路202から出力されるw−bitのデータの入力を、w−bitのビットで表現されるいずれかのデータに一意に対応付けて出力する換字変換処理を行う。
XOR回路204は、スクランブル動作時には、プロセッサ100が出力する書き込みデータと、換字関数処理部203から出力される、アドレスデータに対応するデータ(マスク値)とのビット毎の排他的論理和を求める。このXOR回路204から出力されるデータが、書き込みデータをスクランブルした秘匿データであり、データバス12から外部RAM2へと出力される。この秘匿データは、外部RAM2における、アドレスバス11が出力するアドレスデータで特定される記憶位置に記憶される。
MPUチップ1がこの秘匿データを外部RAM2から読み出す場合には、スクランブル部200はデスクランブル動作を行う。
MPUチップ1が秘匿データを外部RAM2から読み出したときにアドレスバス11が出力しているアドレスデータは、この秘匿データを書き込んだときのものと同一である。従って、鍵レジスタ201のスクランブル鍵データKと換字関数処理部203での換字変換Fとの両者がスクランブル動作時のものと同一であれば、秘匿データ読み出し時に換字関数処理部203から出力されるマスク値は、秘匿データ書き込み時のものと同一となる。
XOR回路204は、デスクランブル動作時には、外部RAM2から読み出した秘匿データと、換字関数処理部203から出力されるマスク値とのビット毎の排他的論理和を求める。ここで、秘匿データの書き込み時と読み出し時とでマスク値が同一であるので、秘匿データとマスク値との排他的論理和は元の書き込みデータとなる。こうして秘匿データのデスクランブルが完了し、得られた元の書き込みデータはプロセッサ100に読み込まれる。
このように、図1に提示した構成においては、MPUチップ1内部のスクランブル部200が外部RAM2への書き込みデータのスクランブルを行う。つまり、プロセッサ100とスクランブル部200との配線はMPUチップ1外部に露出していないので、スクランブルが施される前の書き込みデータをデータプロービングにより読み出すことはできない。
また、この図1に提示した構成では、一般に、データ処理を行うプロセッサ100は、書き込みデータを用意する前に、アドレスバス11にアドレスデータを用意することができるという特性を利用して、マスク値の事前計算を行っている。このようにして書き込みデータに対する処理をなるべく少なくすることで、プロセッサ100と外部RAM2との間で許容される遅延時間内にスクランブル処理を完了するという、高速応答性能を実現している。
一般に、メモリ装置への書き込みデータのスクランブルにおいて、マスク値を共通鍵ブロック暗号などで生成すれば安全性を向上させることができ、処理方式が公開されたとしても安全性が保たれる。しかしながら、共通鍵ブロック暗号は一般に処理が複雑であるため、共通鍵ブロック暗号を用いると、書き込みデータを伝送するデータバス12に求められる条件である、高速応答性能を満たすことが困難になる。
一方、図1に提示した構成を採用するスクランブルは、スクランブル部200をMPUチップ1内に埋め込んだことで、攻撃者がマスク値を生成するアルゴリズムを知ることが困難であることを安全性の担保としている。この構成を採用するスクランブルは、スクランブルのアルゴリズムが公開されてもなお安全である暗号処理を採り入れる場合よりも計算量が少ないので、高速に処理することができるという特徴を有している。
また、図1に提示した構成におけるデータスクランブル部200は、プロセッサ100から出力される書き込みデータとアドレスデータとの両方の情報を使ってスクランブルデータ(秘匿データ)を生成する。このように、アドレスデータにも依存したデータスクランブルアルゴリズムとすることで、例え書き込みデータが同一の場合であっても、外部RAM2に書き込まれるスクランブルデータがアドレスデータにより異なるものとなるので、解析耐性が向上する。
なお、この他の背景技術として、メモリユニット側でもデータのスクランブルを行う技術や、暗号化したデータを更に暗号化する二重暗号化の技術が知られている。
特開2001−109667号公報 特開2002−328844号公報 特開2004−110408号公報
前述したように、スクランブル部200をMPUチップ1内に備えることにより、データプロービングからデータを秘匿することが可能となった。しかしながら、攻撃者がスクランブルアルゴリズムを解析するという危険性は依然として残っている。スクランブルの安全性を確保するには、スクランブルアルゴリズムの安全性を評価する必要がある。
図1のスクランブル部200で採用されているような、スクランブル鍵データを使用してデータスクランブルを行うアルゴリズムである、鍵付きスクランブルアルゴリズムの安全性を評価する項目のひとつに、既知平文攻撃に基づく鍵全数探索攻撃への耐性がある。
この鍵全数探索攻撃では、スクランブル鍵データ、書き込みデータ、スクランブルデータ、及びアドレスデータと、スクランブルアルゴリズムを実装したハードウェアとの組のうち、スクランブル鍵データ以外のものが攻撃者に与えられる。攻撃者は、この場合に、スクランブル鍵データを任意に設定してスクランブルを実行する。そして、この実行を、与えられた組で使われたスクランブル鍵データを特定するまで繰り返すというものである。
この鍵全数探索攻撃への耐性は、スクランブル鍵データの鍵長が長いほど高くなる。また、この鍵全数探索攻撃に要する計算量が現実的な時間内では計算不可能となる値とすることで安全性が確保される。
図1のスクランブル部200で採用されている鍵付きスクランブルアルゴリズムは、スクランブル鍵データの鍵長(ビット長)を、プロセッサ100のワード長以上に長くすることができない。
例えば、現在の多くの組込機器向けプロセッサのワード長は32bit以下である。ここで、ワード長を32bitとした場合における、図1のスクランブル部200への鍵全数探索攻撃を考える。仮に、1秒間当たり1000回のスクランブルの実行が可能であるとすると、50日でスクランブル鍵データを探索できることになる。
また、鍵付きスクランブルアルゴリズムへの攻撃手法として、選択平文攻撃というものが知られている。この攻撃では、攻撃者は、スクランブル鍵データを知ることはできないものの、データとアドレスデータとを自由に設定してスクランブルデータを手に入れることができる場合を想定する。つまり、この攻撃は、攻撃者の能力を、鍵全数探索攻撃よりも高く仮定したものである。
図1のスクランブル部200では、攻撃者が、まず、全てのアドレスデータに対して書き込みデータとスクランブルデータとの対を作成する。そして、スクランブルデータと書き込みデータとの排他的論理和を計算すると、全てのスクランブルデータに対するマスク値を知ることができる。すると、攻撃者は、スクランブル鍵データを知らないまま、得られたマスク値を使用して任意のアドレスのスクランブルデータをデータへとデスクランブルすることができるようになってしまう。
本発明は上述した問題に鑑みてなされたものであり、その解決しようとする課題は、選択平文攻撃に耐性を有するデータスクランブル方式を提供することである。
本明細書で開示するデータ処理装置は、アドレスバスと、スクランブル部と、データバスとを有するものである。このうちで、アドレスバスは、メモリ装置に与えるアドレスデータを出力するものである。スクランブル部は、アドレスバスが出力するアドレスデータで特定されるメモリ装置の記憶位置に対する書き込みデータをスクランブルして秘匿データを得るものである。データバスは、スクランブル部が得た秘匿データを出力するものである。
なお、スクランブル部は、第1スクランブル手段と、第1変換手段と、第2スクランブル手段と、を有している。このうちで、第1スクランブル手段は、アドレスデータに対応する第1マスクデータとのビット毎の排他的論理和を求めることによって、書き込みデータをスクランブルして第1スクランブルデータを得るものである。第1変換手段は、この第1スクランブルデータを一対一で換字変換するものである。第2スクランブル手段は、アドレスデータに対応する第2マスクデータとのビット毎の排他的論理和を求めることによって、第1変換手段による第1マスクデータの変換後のデータをスクランブルして第2スクランブルデータを得るものである。なお、スクランブル部は、この第2スクランブルデータを秘匿データとする。
この装置では、第1スクランブル手段がスクランブルした書き込みデータを第1変換手段が換字変換した上で、第2スクランブル手段が更にスクランブルを行う。この第1変換手段により、書き込みデータに対する処理が、マスク値との単純な排他的論理和になってしまうことを防止する。つまり、この装置の構成によれば、スクランブル部の入出力における書き込みデータと秘匿データとの関係が、アドレスデータのみならず、書き込みデータにも依存する。従って、この装置で行うデータスクランブルは、選択平文攻撃に耐性を有している。
また、この装置では、書き込みデータに対するマスク値を求めるための手段として、第1スクランブル手段と第2スクランブル手段との2つのスクランブル手段を有している。ここで、アドレスデータと第1スクランブル鍵データとから第1マスクデータを求めるようにし、アドレスデータと第2スクランブル鍵データとから第2マスクデータを求めるようにすることで、スクランブル鍵データ全体としての鍵長を従来のものよりも長くすることができる。このようにすれば、鍵全数探索攻撃への耐性が、前述した従来のものよりも向上する。
また、この装置における第1スクランブル手段及び第2スクランブル手段では、アドレスデータからマスク値を得るための計算を事前に行っておくことができる。従って、この装置は、変換手段を高速とすれば、スクランブル動作に高速応答性能を実現させることが可能である。
なお、本明細書では、このデータ処理装置によってメモリ装置に記憶された秘匿データをデスクランブルして元の書き込みデータを得るデスクランブル装置についても開示している。このデスクランブル装置は、アドレスバスと、第1デスクランブル手段と、逆変換手段と、第2デスクランブル手段とを有するものである。
このうちで、アドレスバスは、メモリ装置に与えるアドレスデータを出力するものである。第1デスクランブル手段は、アドレスデータで特定されるメモリ装置の記憶位置から読み出される秘匿データを、前述した第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルして中間デスクランブルデータを得るものである。逆変換手段は、この中間デスクランブルデータに対し、前述した第1変換手段による換字変換の逆変換を行うものである。第2デスクランブル手段は、第1マスクデータとのビット毎の排他的論理和を求めることによって、逆変換手段による中間デスクランブルデータの逆変換後のデータをデスクランブルして、元の書き込みデータを得るものである。
このデスクランブル装置によれば、前述したデータ処理装置がメモリ装置に記憶させた秘匿データを読み出しデスクランブルして、元の書き込みデータを得ることができる。また、このデスクランブル装置の構成要素を、前述したデータ処理装置が有するように構成して、データ処理装置自身で秘匿データから元の書き込みデータを得られるようにすることは、もちろん可能である。
また、本明細書では、上述したデータ処理装置が行うデータ処理方法、及び、上述したデスクランブル装置が行うデスクランブル方法についても開示している。
本明細書で開示する装置及び方法によれば、選択平文攻撃に耐性を有するデータスクランブル方式を提供することができるという効果を奏する。
従来のデータスクランブルの一例が図解されている図である。 データ処理装置の全体構成図である。 図2に提示したスクランブル部の構成の第1の例が図解されている図である。 図2に提示したスクランブル部の構成の第2の例が図解されている図である。 デスクランブル部の構成図である。 換字関数及びその逆関数の第1の例である。 換字関数及びその逆関数の第2の例である。 図2に提示したスクランブル部の構成の第3の例が図解されている図である。 図2に提示したスクランブル部の構成の第4の例が図解されている図である。 図2に提示したスクランブル部の構成の第5の例が図解されている図である。
符号の説明
1 MPUチップ
2 外部RAM
11 アドレスバス
12 データバス
100 プロセッサ
200 スクランブル部
201、211、221−1、221−2、221−n 鍵レジスタ
202、204、212、214、
221−1、221−2、224−1、224−2、
222−n、224−n 排他的論理和演算回路
203、213、220、
223−1、223−2、230−1、230−2、
320、223−n、230−n 換字関数処理部
205、215 レジスタ
206 基本部
206−1 第1基本部
206−2 第2基本部
216 拡張部
216−1 第1拡張部
216−2 第2拡張部
300 デスクランブル部
以下、本発明の実施の形態を図面に基づいて説明する。
図2には、データ処理装置であるMPUチップ1の全体構成が図解されている。
図2において、MPUチップ1はどちらもw−bitのビット幅であるアドレスバス11とデータバス12とを有しており、メモリ装置である外部RAM2にそれぞれ接続されている。更に、MPUチップ1は、プロセッサ100とスクランブル部200とを内部に有している。
アドレスバス11は、プロセッサ100が出力する、外部RAM2に与えるアドレスデータを出力する。
スクランブル部200は、プロセッサ100が出力する書き込みデータであって、アドレスバス11が出力するアドレスデータで特定される外部RAM2の記憶位置に対する当該書き込みデータをスクランブルして秘匿データを得る。
データバス12は、スクランブル部200が得た秘匿データを出力する。
図2に提示したスクランブル部200の構成について更に説明する。図3には、このスクランブル部200の構成の第1の例が図解されている。
図3において、スクランブル部200は、鍵レジスタ201及び211、XOR回路202、204、212、及び214、並びに換字関数処理部203及び213を備えて構成されている。
鍵レジスタ201は、w−bitのスクランブル鍵データK0が格納されているレジスタである。この鍵レジスタ201に格納しておくスクランブル鍵データK0(以降の説明では、この鍵データK0を「第1スクランブル鍵データ」と称する場合もある)は変更可能である。
XOR回路202は、アドレスバス11が出力するものと同一のアドレスデータと、鍵レジスタ201に格納されている第1スクランブル鍵データとのビット毎の排他的論理和を求める。
換字関数処理部203は、XOR回路202から出力されるw−bitのデータの入力を、w−bitのビットで表現されるいずれかのデータに一意に対応付けて出力する換字変換処理を行う。この換字関数処理部203で行われる換字変換F0は、入出力の関係を非線形にするのが一般的である。なお、換字関数処理部203は、基本論理素子(論理積回路、論理和回路、否定回路等)を組み合わせて構成する。但し、処理速度が許容されるのであれば、例えば、記憶装置に記憶させておいた、入出力の対応関係を予め定義しておいたテーブルを参照して換字変換を行うようにすることもできる。なお、以降の説明では、この換字関数処理部203から出力されるデータである、アドレスデータに対応する当該データを、「第1マスクデータ」と称することとする。
XOR回路204は、プロセッサ100が出力する書き込みデータと、換字関数処理部203から出力される第1マスクデータとのビット毎の排他的論理和を求めることによって、当該書き込みデータのスクランブルを行う。
以降の説明では、鍵レジスタ201、XOR回路202及び204、並びに換字関数処理部203により行われるスクランブルを「第1スクランブル」と称することとする。また、この第1スクランブルによって得られるデータを「第1スクランブルデータ」と称することとする。
鍵レジスタ211は、w−bitのスクランブル鍵データK1が格納されているレジスタである。この鍵レジスタ211に格納しておくスクランブル鍵データK1(以降の説明では、この鍵データK1を「第2クランブル鍵データ」と称する場合もある)も変更可能である。
XOR回路212は、アドレスバス11が出力するものと同一のアドレスデータと、鍵レジスタ211に格納されている第2スクランブル鍵データとのビット毎の排他的論理和を求める。
換字関数処理部213は、XOR回路212から出力されるw−bitのデータの入力を、w−bitのビットで表現されるいずれかのデータに一意に対応付けて出力する換字変換処理を行う。この換字関数処理部213で行われる換字変換F1も、換字変換F0と同様、入出力の関係を非線形にするのが一般的である。この換字関数処理部213も、基本論理素子を組み合わせて構成するが、処理速度が許容されるのであれば、例えば、記憶装置に記憶させておいた、入出力の対応関係を予め定義しておいたテーブルを参照して換字変換を行うようにすることもできる。なお、以降の説明では、この換字関数処理部213から出力されるデータである、アドレスデータに対応する当該データを、「第2マスクデータ」と称することとする。
XOR回路214は、第1スクランブルによって得られた第1スクランブルデータと、換字関数処理部213から出力される第2マスクデータとのビット毎の排他的論理和を求めることによって、当該第1スクランブルデータのスクランブルを行う。
以降の説明では、鍵レジスタ211、XOR回路212及び214、並びに換字関数処理部213により行われるスクランブルを「第2スクランブル」と称することとする。また、この第2スクランブルによって得られるデータを「第2スクランブルデータ」と称することとする。
図3の構成では、この第2スクランブルによって得られる第2スクランブルデータが、プロセッサ100が出力する書き込みデータをスクランブルした秘匿データであり、データバス12から外部RAM2へと出力される。この秘匿データは、外部RAM2における、アドレスバス11が出力するアドレスデータで特定される記憶位置に記憶される。
このように、図3に提示したスクランブル部200の構成は、図1に提示した従来構成を縦列に2段接続したものである。従って、この構成により得られた秘匿データをデスクランブルして元の書き込みデータを得るには、図1に提示した従来構成でのデスクランブルを、図3とは逆の順序で行えばよい。
図3の構成では、どちらもw−bitの鍵長である第1スクランブル鍵データ及び第2スクランブル鍵データを用いて書き込みデータのスクランブルが行われる。よって、スクランブル部200全体としては、書き込みデータのスクランブルに使用されるスクランブル鍵データの鍵長は見かけ上2倍(2w−bit)となるが、図3の構成はそれと等価な図1の構成へ変換が可能であるため、図1と安全性は変わらない。
次に図4について説明する。図4は、図2に提示したスクランブル部200の構成の第2の例が図解されている。
図4において、図3に提示したものと同一の構成要素には同一の符号を付している。これらの構成要素については説明を一部省略する。
この図4に提示した構成は、図3に提示した構成の第1の例とは、第1スクランブルによって得られた第1スクランブルデータを一対一で換字変換する換字関数処理部220が追加されている点が異なっている。また、この図4に提示した構成における第2スクランブルでは、換字関数処理部220による第1スクランブルデータの変換後のデータを、第2マスクデータとのビット毎の排他的論理和をXOR回路214が求めることによってスクランブルして第2スクランブルデータを得る。そして、この第2スクランブルデータが、プロセッサ100が出力する書き込みデータをスクランブルした秘匿データとなる。
換字関数処理部220は、w−bitの第1スクランブルデータの入力を、w−bitのビットで表現されるいずれかのデータに一対一に対応付けて出力する換字変換処理を行う。この換字関数処理部220で行われる換字変換Gも、換字変換F0やF1と同様、入出力の関係を非線形にするのが一般的である。この換字関数処理部220は、基本論理素子を組み合わせて構成するが、処理速度が許容されるのであれば、例えば、記憶装置に記憶させておいた、入出力の対応関係を予め定義しておいたテーブルを参照して換字変換を行うようにすることもできる。但し、この換字関数処理部220は、外部RAM2へ書き込むデータの換字変換を行うので、変換処理が高速であることが好ましい。
この図4に提示した構成では、第1スクランブルでスクランブルした書き込みデータ(すなわち第1スクランブルデータ)を換字関数処理部220が換字変換した上で、第2スクランブルが更にスクランブルを行う。こうすることで、書き込みデータに対する処理がマスク値との単純な排他的論理和になってしまうことが防止される。つまり、この図4に提示した構成によれば、スクランブル部200の入出力における書き込みデータと秘匿データとの関係が、アドレスデータのみならず、書き込みデータにも依存する。従って、図4に提示した構成を有するスクランブル部200が行うデータスクランブルは、選択平文攻撃に耐性を有している。また、換字関数処理部220の入出力がスクランブル部から外に露出しないことで、換字関数処理部220に対する攻撃が防止される。つまり、換字関数処理部220を204の左側もしくは214の右側に設置した場合には、換字関数処理部220に対する単純な差分攻撃に脆弱な構成となる。よって、図4に提示した構成では、換字関数処理部220を、204と214の間に設置する必要がある。
更に、この図4に提示した構成では、スクランブル部200全体として、書き込みデータのスクランブルに使用されるスクランブル鍵データの鍵長が2倍(2w−bit)となっている。従って、鍵全数探索攻撃への耐性が、図1の従来構成よりも向上している。
次に、この図4に提示した構成のスクランブル部200を有するMPUチップ1によって外部RAM2に記憶された秘匿データのデスクランブルについて説明する。図5は、この秘匿データをデスクランブルするデスクランブル部の構成図である。
図5の構成では、データ処理装置である図2のMPUチップ1内部に、デスクランブル部300が備えられている。このように構成する代わりに、MPUチップ1とは別体であるデスクランブル装置に、デスクランブル部300を備えるように構成することも勿論可能である。
図5において、図4に提示したものと同一の構成要素には同一の符号を付している。これらの構成要素については説明を一部省略する。
図5に提示したデスクランブル部300は、鍵レジスタ201及び211、XOR回路202、204、212、及び214、並びに換字関数処理部203、213、及び320を備えて構成されている。なお、アドレスバス11は、図4に提示したものと同様、プロセッサ100が出力する、外部RAM2に与えるアドレスデータを出力する。
XOR回路214は、アドレスデータで特定される外部RAM2の記憶位置から読み出される秘匿データ(すなわち、前述の第2スクランブルデータ)を、前述した第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルする。すると、前述した、換字関数処理部220による変換後の第1スクランブルデータが得られる。ここでは、このデスクランブルを「第1デスクランブル」と称することとし、この第1デスクランブルにより得られるデータを、「中間デスクランブルデータ」と称することとする。
換字関数処理部320は、XOR回路214が得た中間デスクランブルデータに対し、換字関数処理部220による換字変換Gの逆変換G-1を行う。すると、前述した第1スクランブルデータが得られる。
ここで図6Aについて説明する。図6Aは、換字関数G及びその逆関数G-1の第1の例である。なお、この図6Aの換字関数Gの例は、入出力のワード長が4−bit(“0”(2進数で「0000」)〜“f”(2進数で「1111」)の16値)のものである。
図6Aには、換字関数Gに例えば“8”が入力されると“0”が出力されることが表現されている。また、この換字関数Gの出力である“0”が逆関数G-1に入力されると、換字関数Gへの入力であった“8”が出力されることが表現されている。図6Aにおいて、この換字関数Gとその逆関数G-1との入出力の関係が“0”〜“f”の全ての値で成立していることは、明らかである。また、この換字関数Gの入出力関係が一対一対応であることも明らかである。
なお、換字関数処理部320も、換字関数処理部220と同様、基本論理素子を組み合わせて構成する。ここで、処理速度が許容されるのであれば、例えば、記憶装置に記憶させておいた、入出力の対応関係を予め定義しておいたテーブルを参照して換字変換を行うようにすることもできる。但し、この換字関数処理部320は、外部RAM2から読み出すデータの換字変換を行うので、変換処理が高速であることが好ましいことも、換字関数処理部220と同様である。
図5の説明に戻る。
XOR回路204は、前述した第1マスクデータとのビット毎の排他的論理和を求めることによって、換字関数処理部320による中間デスクランブルデータの逆変換後のデータをデスクランブルする。すると、スクランブル部200によるスクランブル動作時にプロセッサ100が出力していた、元の書き込みデータが得られる。ここでは、このデスクランブルを「第2デスクランブル」と称することとする。
図5に構成を提示したデスクランブル部300によるデスクランブル動作は、以上のようにして行われる。
ここで、図4のスクランブル部200の構成と図5のデスクランブル部300の構成とを対比する。すると、XOR回路204は、どちらの構成においても、入力されたデータ(スクランブル部200では書き込みデータ、デスクランブル部300では、中間デスクランブルデータの逆変換後のデータ)と前述した第1マスクデータとの排他的論理和を求めている。従って、スクランブル部200における第1スクランブルとデスクランブル部300における第2デスクランブルとでXOR回路204を共用するようにしてもよい。また、XOR回路214は、どちらの構成においても、入力されたデータ(スクランブル部200では第1スクランブルデータ、デスクランブル部300では、外部RAM2から読み出された秘匿データ)と前述した第2マスクデータとの排他的論理和を求めている。従って、スクランブル部200における第2スクランブルとデスクランブル部300における第1デスクランブルとでXOR回路204を共用するようにしてもよい。このようにしてXOR回路204及び214をスクランブル部200によるスクランブル動作とデスクランブル部300によるデスクランブル動作とで共用することで、MPUチップ1の回路規模を削減することができる。
更に、鍵レジスタ201、XOR回路202、及び換字関数処理部203からなる第1マスクデータを得るための構成は、スクランブル部200とデスクランブル部300とで同一である。また、鍵レジスタ211、XOR回路212、及び換字関数処理部213からなる第2マスクデータを得るための構成も、スクランブル部200とデスクランブル部300とで同一である。従って、スクランブル部200とデスクランブル部300とを単一のMPUチップ1内部に共存させる場合には、鍵レジスタ201及び211、XOR回路202及び212、並びに換字関数処理部203及び213を共用することができる。これらの構成要素をスクランブル部200によるスクランブル動作とデスクランブル部300によるデスクランブル動作とで共用することでも、MPUチップ1の回路規模を削減することができる。
また、換字関数処理部220と換字関数処理部320とにおいて、入力されたデータを一対一で換字変換し、その換字変換の順変換とその逆変換とが同型であるもの(ここでは「同型換字変換」と称することとする)を共用するようにしてもよい。
ここで図6Bについて説明する。図6Bは、換字関数G及びその逆関数G-1の第2の例である。なお、この図6Bの換字関数Gの例も、図6Aに提示した第1の例と同様、入出力のワード長が4−bit(“0”(2進数で「0000」)〜“f”(2進数で「1111」)の16値)のものである。
図6Bには、換字関数Gに例えば“0”が入力されると“3”が出力されることが表現されている。また、この換字関数Gの出力である“3”が逆関数G-1に入力されると、換字関数Gへの入力であった“0”が出力されることが表現されている。図6Bにおいて、この換字関数Gとその逆関数G-1との入出力の関係が“0”〜“f”の全ての値で成立していることは、明らかである。また、この換字関数Gの入出力関係が一対一対応であることも明らかである。
更に、図6Bの例では、換字関数Gにおける入力と出力との対応関係が、その逆関数G-1における対応関係と同一であることも明らかである。従って、この図6Bの換字関数は、順変換Gとその逆変換G-1とが同型である。
このような同型換字変換を行う関数処理部を構成すれば、これを換字関数処理部220と換字関数処理部320とで共用することができる。つまり、同型換字変換を行う関数処理部をスクランブル部200における換字関数処理部220とデスクランブル部300における換字関数処理部320とで共用することで、MPUチップ1の回路規模を削減することができる。
次に、図4に提示したスクランブル部200によるスクランブルの安全性について検討する。
例えば、プロセッサのワード長(すなわち、アドレスデータ及び書き込みデータのビット幅)を32−bitとした場合を考える。このとき、第1スクランブル鍵データ及び第2スクランブル鍵データはどちらも32−bitとすることができる。このとき、スクランブル鍵データ全体の鍵長は64−bitとなる。この場合、前述した鍵付きスクランブルアルゴリズムに対する鍵全数探索攻撃は、仮に、1秒間に1000回のスクランブル動作が可能であるとすると、584,942,417年を要することになる。また、1秒間に1,000,000,000回のスクランブル動作が可能であるとしても、584年を要することとなる。従って、スクランブル鍵データを現実的な時間内に見つけ出すことは非常に困難である。
なお、プロセッサ100にとって、外部RAM2へのアクセスは高速である方が好ましい。従って、スクランブル部200によるスクランブル動作及びデスクランブル部300によるデスクランブル動作に要する時間は少ない方が好ましい。ここで、換字変換若しくはその逆変換を行う換字関数処理部203、213、220、及び320を、例えば以下のように構成すると、この時間の短縮が可能である。
すなわち、ワード長を32−bitとする場合に、換字関数処理部203、213、220、及び320を、単純に32−bitの換字関数として構成する代わりに、例えば、32−bitの置換関数と8個の4−bit換字関数との組合せで代替する。一般に、換字関数は、ワード長が長くなるほど構成の複雑さが指数的に増し、変換に要する時間も長くなる。従って、ビットの並び替えを行うのみであるため構成が極めて容易であり変換時間が短い置換関数と、ワード長の短い換字関数とを組み合わせてワード長の長い換字関数の代用とすることで、換字変換に要する時間を短縮することができる。なお、代替として用いる換字関数は4−bitのワード長のものに限定されるものではなく、例えば、2個の6−bit換字関数と4個の5−bit換字関数とを用いるようにし、あるいは4個の8−bit置換関数を用いるようにしてもよい。
また、換字関数処理部203及び213は、同型換字変換を行うものである必要はなく、非同型のものでよい。非同型の換字変換を行う回路は、同型のものよりも処理が高速の場合がある。
次に図7について説明する。図7には、図2に提示したスクランブル部200の構成の第3の例が図解されている。
図7において、図4に提示したものと同一の構成要素には同一の符号を付している。これらの構成要素については説明を一部省略する。
図7に提示したスクランブル部200の構成は、スクランブル部200を同期動作させる場合に好適なものであり、図3に提示した構成の第1の例とは、レジスタ205及び215が追加されている点において異なっている。
レジスタ205には、換字関数処理部203から出力される第1マスクデータが格納されて保持される。また、レジスタ215には、換字関数処理部213から出力される第2マスクデータが格納されて保持される。
図7に提示した構成では、データ処理を行うプロセッサ100は、書き込みデータを用意する前に、アドレスバス11にアドレスデータを用意することができるという一般的な特性を利用するものである。
すなわち、まず、XOR回路202及び204によるアドレスデータと第1スクランブル鍵データ及び第2スクランブル鍵データとの排他的論理和演算と、その演算結果の換字関数処理部203及び213による換字変換とを行う。そして得られた第1マスクデータ及び第2マスクデータを、レジスタ205及び215にそれぞれ格納しておく。その後、プロセッサ100から書き込みデータが出力されたときに、XOR回路204による排他的論理和演算、その演算結果の換字関数処理部220による換字変換、及び、XOR回路214による排他的論理和演算を実行する。そして、その実行結果として得られる秘匿データをRAM2へ出力する。
なお、図7に提示した構成のスクランブル部200によるスクランブルにより得られた秘匿データのデスクランブルは、例えば、図5に提示した構成のデスクランブル部300を用いて行うことができる。
次に図8について説明する。図8には、図2に提示したスクランブル部200の構成の第4の例が図解されている。
図8において、図4に提示したものと同一の構成要素には同一の符号を付している。これらの構成要素については説明を一部省略する。なお、図4に示したスクランブル部200の構成、すなわち、鍵レジスタ201及び211、XOR回路202、204、212、及び214、並びに換字関数処理部203、213、及び220からなる構成を、ここでは基本部と称することとする。すなわち、図8に提示したスクランブル部200の構成において、鍵レジスタ201、XOR回路202及び204、並びに換字関数処理部203からなる構成を、第1基本部206−1と称することとする。また、図8において、鍵レジスタ211、XOR回路212及び214、並びに換字関数処理部213及び220からなる構成を、第2基本部206−2と称することとする。
一方、図8において、鍵レジスタ221−1、XOR回路222−1及び224−1、並びに換字関数処理部223−1及び230−1からなる構成を、第1拡張部216−1と称することとする。そして、図8において、鍵レジスタ221−2、XOR回路222−2及び224−2、並びに換字関数処理部223−2及び230−2からなる、第1拡張部216−1と同一の構成を、第2拡張部216−2と称することとする。
つまり、図8に提示したスクランブル部200は、第1基本部206−1及び第2基本部206−2と、どちらも対象データをスクランブルしてスクランブルデータを出力する第1拡張部216−1及び第2拡張部216−2とを備えて構成されている。
ここで、第2基本部206−2には、第1基本部206−1により行われる前述した第1スクランブルによって得られるデータ(すなわち、第1スクランブルデータ)が、対象データとして入力される。そして、第2基本部206−2は、前述した第2スクランブルを行い、前述した第2スクランブルデータを出力する。
第1拡張部216−1には、対象データとして、第2基本部206−2が出力するスクランブルデータ(第2スクランブルデータ)が入力される。第1拡張部216−1では、この対象データを換字関数処理部230−1が一対一で換字変換すると共に、鍵レジスタ221−1、XOR回路222−1、及び換字関数処理部223−1が、アドレスデータに対応するマスクデータを生成する。そして、XOR回路224−1が、換字関数処理部230−1による換字変換後のデータと、このマスクデータとのビット毎の排他的論理和を求める。第1拡張部216−1は、第2基本部206−2が出力するスクランブルデータの更なるスクランブルを、このようにして行う。
第2拡張部216−2には、対象データとして、第1拡張部216−1が出力するスクランブルデータが入力される。第2拡張部216−2では、この対象データを換字関数処理部230−2が一対一で換字変換すると共に、鍵レジスタ221−2、XOR回路222−2、及び換字関数処理部223−2が、アドレスデータに対応するマスクデータを生成する。そして、XOR回路224−2が、換字関数処理部230−2による換字変換後のデータと、このマスクデータとのビット毎の排他的論理和を求める。第2拡張部216−2は、第1拡張部216−1が出力するスクランブルデータの更なるスクランブルを、このようにして行う。
図8に提示したスクランブル部200は、第2拡張部216−2が出力するスクランブルデータを、秘匿データとして、データバス12から外部RAM2へと出力する。
このように、図8に提示したスクランブル部200の構成は、図4に提示した第2の構成において、基本部に続く拡張部を縦列に2段接続したものである。従って、この構成により得られた秘匿データをデスクランブルして元の書き込みデータを得るには、拡張部についてのデスクランブルを逆順に2回行い、その後に基本部についてのデスクランブルを行えばよい。
図8に提示したスクランブル部200は、4つの鍵レジスタ201及び211並びに221−1及び221−2に格納される4つのスクランブル鍵データを用いて書き込みデータのスクランブルが行われる。よって、スクランブル部200全体としては、書き込みデータのスクランブルに使用されるスクランブル鍵データの鍵長は4倍(4w−bit)となる。従って、図8の構成を採用することにより、鍵全数探索攻撃への耐性が、図4の構成よりも更に向上する。
次に図9について説明する。図9は、図2に提示したスクランブル部200の構成の第5の例が図解されている。この第5の例は、図8に提示した第4の例における拡張部の縦列接続の数をn段に拡張したものである。
図9において、スクランブル部200は、基本部206と、対象データをスクランブルしてスクランブルデータを出力するn個(但し、nは少なくとも1以上の整数)の拡張スクランブル部を備える拡張部216とを有している。
ここで、第n拡張スクランブル部は、鍵レジスタ221−n、XOR回路222−n及び224−n、並びに換字関数処理部223−n及び230−nを備えて構成されている。ここで、換字関数処理部230−nは、この第n拡張スクランブル部でのスクランブルの対象とする対象データを一対一で換字変換する。一方、鍵レジスタ221−n、XOR回路222−n、及び換字関数処理部223−nは、プロセッサ100が出力するアドレスデータに対応するマスクデータ(追加マスクデータ)を求める。そして、XOR回路224−nは、この追加マスクデータとのビット毎の排他的論理和を求めることによって、換字関数処理部230−nによる対象データの換字変換後のデータをスクランブルしてスクランブルデータ(追加スクランブルデータ)を出力する。なお、このときの対象データは、第(n−1)の拡張スクランブル部が出力する追加スクランブルデータ(但し、n=1のときは基本部206が出力するスクランブルデータ)である。
図9のスクランブル部200は以上のように構成されており、第n拡張スクランブル部が得た追加スクランブルデータを、秘匿データとして、データバス12から外部RAM2へと出力する。
このように、図9に提示したスクランブル部200の構成は、図4に提示した第2の構成において、基本部に続く拡張部を縦列にn段接続したものである。従って、この構成により得られた秘匿データをデスクランブルして元の書き込みデータを得るには、拡張部についてのデスクランブルを逆順にn回行い、その後に基本部についてのデスクランブルを行えばよい。
図9に提示したスクランブル部200は、n+2個の鍵レジスタ201、211、、221−1、…、221−nに格納されるn+2個のスクランブル鍵データを用いて書き込みデータのスクランブルが行われる。よって、スクランブル部200全体としては、書き込みデータのスクランブルに使用されるスクランブル鍵データの鍵長は(n+2)倍((n+2)w−bit)となる。従って、図9の構成を採用することにより、鍵全数探索攻撃への耐性が、図4の構成よりも更に向上する。
なお、図9の構成において、許容される安全性の範囲内で、高速化のために、換字関数処理部230−nをn個未満まで省いてもよい。
また、本発明は、これまでに説明した実施の形態に限定されるものではなく、実施段階では、その要旨を変更しない範囲で種々変形することが可能である。

Claims (14)

  1. メモリ装置に与えるアドレスデータを出力するアドレスバスと、
    該アドレスバスが出力するアドレスデータで特定される該メモリ装置の記憶位置に対する書き込みデータをスクランブルして秘匿データを得るスクランブル部と、
    該スクランブル部が得た秘匿データを出力するデータバスと、
    を有し、
    該スクランブル部は、
    該アドレスデータに対応する第1マスクデータとのビット毎の排他的論理和を求めることによって、該書き込みデータをスクランブルして第1スクランブルデータを得る第1スクランブル手段と、
    該第1スクランブルデータを一対一で換字変換する第1変換手段と、
    該アドレスデータに対応する第2マスクデータとのビット毎の排他的論理和を求めることによって、該第1変換手段による該第1スクランブルデータの変換後のデータをスクランブルして第2スクランブルデータを得る第2スクランブル手段と、
    を有しており、該第2スクランブルデータを該秘匿データとする、
    ことを特徴とするデータ処理装置。
  2. 該第1スクランブル手段は、該アドレスデータと第1スクランブル鍵データとのビット毎の排他的論理和を換字変換して該第1マスクデータを求め、
    該第2スクランブル手段は、該アドレスデータと第2スクランブル鍵データとのビット毎の排他的論理和を換字変換して該第2マスクデータを求める、
    ことを特徴とする請求項1に記載のデータ処理装置。
  3. 該アドレスデータで特定される該メモリ装置の記憶位置から読み出される該秘匿データを、該第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルして中間デスクランブルデータを得る第1デスクランブル手段と、
    該中間デスクランブルデータに対し、該第1変換手段による換字変換の逆変換を行う逆変換手段と、
    該第1マスクデータとのビット毎の排他的論理和を求めることによって、該逆変換手段による該中間デスクランブルデータの逆変換後のデータをデスクランブルして該書き込みデータを得る第2デスクランブル手段と、
    を更に有することを特徴とする請求項1に記載のデータ処理装置。
  4. 入力されたデータと該第1マスクデータとのビット毎の排他的論理和を求める第1論理回路と、
    入力されたデータと該第2マスクデータとのビット毎の排他的論理和を求める第2論理回路と、
    を更に有し、
    該第1スクランブル手段でのスクランブルと該第2デスクランブル手段でのデスクランブルとに該第1論理回路を共用し、
    該第2スクランブル手段でのスクランブルと該第1デスクランブル手段でのデスクランブルとに該第2論理回路を共用する、
    ことを特徴とする請求項3に記載のデータ処理装置。
  5. 入力されたデータを一対一で換字変換し、該換字変換の順変換と逆変換とが同型である同型換字変換を、該第1変換手段での換字変換と該逆変換手段での逆変換とに共用することを特徴とする請求項3に記載のデータ処理装置。
  6. 該スクランブル部は、対象データをスクランブルする少なくとも1つの拡張スクランブル部を更に有しており、
    該拡張スクランブル部は、
    該対象データを一対一で換字変換する追加変換手段と、
    該アドレスデータに対応する追加マスクデータとのビット毎の排他的論理和を求めることによって、該追加変換手段による該対象データの変換後のデータをスクランブルして追加スクランブルデータを得る追加スクランブル手段と、
    をそれぞれ有し、
    該拡張スクランブル部には、対象データとして、該第2スクランブルデータが入力され、
    該スクランブル部は、該第2スクランブルデータに代えて、該拡張スクランブル部が得た追加スクランブルデータを該秘匿データとする、
    ことを特徴とする請求項1に記載のデータ処理装置。
  7. 請求項1に記載のデータ処理装置によって該メモリ装置に記憶された該秘匿データをデスクランブルして該書き込みデータを得るデスクランブル装置であって、
    メモリ装置に与えるアドレスデータを出力するアドレスバスと、
    該アドレスデータで特定される該メモリ装置の記憶位置から読み出される該秘匿データを、該第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルして中間デスクランブルデータを得る第1デスクランブル手段と、
    該中間デスクランブルデータに対し、該第1変換手段による換字変換の逆変換を行う逆変換手段と、
    該第1マスクデータとのビット毎の排他的論理和を求めることによって、該逆変換手段による該中間デスクランブルデータの逆変換後のデータをデスクランブルして該書き込みデータを得る第2デスクランブル手段と、
    を有することを特徴とするデスクランブル装置。
  8. メモリ装置に与えるアドレスデータをアドレスバスから出力するアドレスデータ出力ステップと、
    該アドレスバスが出力するアドレスデータで特定される該メモリ装置の記憶位置に対する書き込みデータをスクランブルして秘匿データを得るスクランブルステップと、
    該スクランブルステップにより得た秘匿データをデータバスから出力する秘匿データ出力ステップと、
    を有し、
    該スクランブルステップは、
    該アドレスデータに対応する第1マスクデータとのビット毎の排他的論理和を求めることによって、該書き込みデータをスクランブルして第1スクランブルデータを得る第1スクランブルステップと、
    該第1スクランブルデータを一対一で換字変換する第1変換ステップと、
    該アドレスデータに対応する第2マスクデータとのビット毎の排他的論理和を求めることによって、該第1変換ステップによる該第1スクランブルデータの変換後のデータをスクランブルして第2スクランブルデータを得る第2スクランブルステップと、
    を有しており、該第2スクランブルデータを該秘匿データとする、
    ことを特徴とするデータ処理方法。
  9. 該第1スクランブルステップは、該アドレスデータと第1スクランブル鍵データとのビット毎の排他的論理和を換字変換して該第1マスクデータを求め、
    該第2スクランブルステップは、該アドレスデータと第2スクランブル鍵データとのビット毎の排他的論理和を換字変換して該第2マスクデータを求める、
    ことを特徴とする請求項8に記載のデータ処理方法。
  10. 該アドレスデータで特定される該メモリ装置の記憶位置から読み出される該秘匿データを、該第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルして中間デスクランブルデータを得る第1デスクランブルステップと、
    該中間デスクランブルデータに対し、該第1変換ステップによる換字変換の逆変換を行う逆変換ステップと、
    該第1マスクデータとのビット毎の排他的論理和を求めることによって、該逆変換ステップによる該中間デスクランブルデータの逆変換後のデータをデスクランブルして該書き込みデータを得る第2デスクランブルステップと、
    を更に有することを特徴とする請求項8に記載のデータ処理方法。
  11. 入力されたデータと該第1マスクデータとのビット毎の排他的論理和を求める第1論理回路を、該第1スクランブルステップでのスクランブルと該第2デスクランブルステップでのデスクランブルとに共用し、
    入力されたデータと該第2マスクデータとのビット毎の排他的論理和を求める第2論理回路を、該第2スクランブルステップでのスクランブルと該第1デスクランブルステップでのデスクランブルとに共用する、
    ことを特徴とする請求項10に記載のデータ処理方法。
  12. 入力されたデータを一対一で換字変換し、該換字変換と該換字変換の逆変換とが同型である換字関数部を、該第1変換ステップでの該換字変換と該逆変換ステップでの該逆変換とに共用することを特徴とする請求項10に記載のデータ処理方法。
  13. 該スクランブルステップは、対象データをスクランブルする少なくとも1つの拡張スクランブルステップを有しており、
    該拡張スクランブルステップは、
    該対象データを一対一で換字変換する追加変換ステップと、
    該アドレスデータに対応する追加マスクデータとのビット毎の排他的論理和を求めることによって、該追加変換ステップによる該対象データの変換後のデータをスクランブルして追加スクランブルデータを得る追加スクランブルステップと、
    をそれぞれ有し、
    該拡張スクランブルステップは、該第2スクランブルデータを対象データとしてスクランブルし、
    該スクランブルステップは、該第2スクランブルデータに代えて、該拡張スクランブルステップにより得られる追加スクランブルデータを該秘匿データとする、
    ことを特徴とする請求項8に記載のデータ処理方法。
  14. 請求項8に記載のデータ処理方法によって該メモリ装置に記憶された該秘匿データをデスクランブルして該書き込みデータを得るデスクランブル方法であって、
    メモリ装置に与えるアドレスデータをアドレスバスから出力するアドレスデータ出力ステップと、
    該アドレスデータで特定される該メモリ装置の記憶位置から読み出される該秘匿データを、該第2マスクデータとのビット毎の排他的論理和を求めることによってデスクランブルして中間デスクランブルデータを得る第1デスクランブルステップと、
    該中間デスクランブルデータに対し、該第1変換ステップによる換字変換の逆変換を行う逆変換ステップと、
    該第1マスクデータとのビット毎の排他的論理和を求めることによって、該逆変換ステップによる該中間デスクランブルデータの逆変換後のデータをデスクランブルして該書き込みデータを得る第2デスクランブルステップと、
    を有することを特徴とするデスクランブル方法。
JP2011505648A 2009-03-23 2009-03-23 データ処理装置及びデータ処理方法 Active JP5541277B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/001276 WO2010109516A1 (ja) 2009-03-23 2009-03-23 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
JPWO2010109516A1 true JPWO2010109516A1 (ja) 2012-09-20
JP5541277B2 JP5541277B2 (ja) 2014-07-09

Family

ID=42780231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011505648A Active JP5541277B2 (ja) 2009-03-23 2009-03-23 データ処理装置及びデータ処理方法

Country Status (5)

Country Link
US (1) US8707057B2 (ja)
EP (1) EP2413305B1 (ja)
JP (1) JP5541277B2 (ja)
CN (1) CN102356418B (ja)
WO (1) WO2010109516A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170943A (zh) * 2013-09-25 2016-11-30 汤姆逊许可公司 使用部分同态加密和掩码的隐私保护岭回归
US10592433B1 (en) * 2015-12-10 2020-03-17 Massachusetts Institute Of Technology Secure execution of encrypted software in an integrated circuit
FR3055734B1 (fr) * 2016-09-05 2018-09-28 STMicroelectronics (Grand Ouest) SAS Procede et dispositif d'attenuation d'interferences electromagnetiques lors d'un transfert de donnees depuis ou vers une memoire.
US11275515B1 (en) * 2020-08-27 2022-03-15 Micron Technology, Inc. Descrambling of scrambled linear codewords using non-linear scramblers

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744375A (ja) * 1993-07-29 1995-02-14 Nec Corp 暗号化データ処理装置
JPH09258655A (ja) * 1996-03-27 1997-10-03 Matsushita Electric Ind Co Ltd データ暗号化装置
JP2000076144A (ja) * 1998-09-02 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法
JP2001109667A (ja) * 1999-10-13 2001-04-20 Nec Ic Microcomput Syst Ltd データ処理方法および装置
JP2002091828A (ja) * 2000-09-18 2002-03-29 Sharp Corp データ処理装置および記憶装置、並びに、それらを使用したデータ転送システム
JP2006277411A (ja) * 2005-03-29 2006-10-12 Toshiba Corp プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP2007328789A (ja) * 2006-06-07 2007-12-20 Samsung Electronics Co Ltd 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法
JP2008058829A (ja) * 2006-09-01 2008-03-13 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US6968467B2 (en) * 2000-10-26 2005-11-22 Matsushita Electric Industrial Co., Ltd. Decentralized power management system for integrated circuit using local power management units that generate control signals based on common data
US20020112193A1 (en) * 2001-02-09 2002-08-15 International Business Machines Corporation Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
DE10115118A1 (de) 2001-03-27 2002-10-10 Philips Corp Intellectual Pty Verfahren zur Übertragung von Daten über einen Datenbus
JP2003087240A (ja) * 2001-09-11 2003-03-20 Matsushita Electric Ind Co Ltd 暗号化装置、復号化装置、暗号復号化装置及びプログラム記録媒体
EP1440535B1 (en) * 2001-10-03 2011-01-05 Nxp B.V. Memory encrytion system and method
JP2004110408A (ja) 2002-09-18 2004-04-08 Hitachi Communication Technologies Ltd 電子貸し金庫システム
JP2006527865A (ja) * 2003-06-16 2006-12-07 エレクトロニクス アンド テレコミュニケーションズ リサーチ インスチチュート ラインドールブロック暗号化装置、及びその暗号化並びに復号化方法
KR100837270B1 (ko) 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744375A (ja) * 1993-07-29 1995-02-14 Nec Corp 暗号化データ処理装置
JPH09258655A (ja) * 1996-03-27 1997-10-03 Matsushita Electric Ind Co Ltd データ暗号化装置
JP2000076144A (ja) * 1998-09-02 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法
JP2001109667A (ja) * 1999-10-13 2001-04-20 Nec Ic Microcomput Syst Ltd データ処理方法および装置
JP2002091828A (ja) * 2000-09-18 2002-03-29 Sharp Corp データ処理装置および記憶装置、並びに、それらを使用したデータ転送システム
JP2006277411A (ja) * 2005-03-29 2006-10-12 Toshiba Corp プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP2007328789A (ja) * 2006-06-07 2007-12-20 Samsung Electronics Co Ltd 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法
JP2008058829A (ja) * 2006-09-01 2008-03-13 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP5541277B2 (ja) 2014-07-09
EP2413305A1 (en) 2012-02-01
EP2413305A4 (en) 2015-04-29
US8707057B2 (en) 2014-04-22
CN102356418B (zh) 2014-12-03
CN102356418A (zh) 2012-02-15
WO2010109516A1 (ja) 2010-09-30
US20120008782A1 (en) 2012-01-12
EP2413305B1 (en) 2019-06-26

Similar Documents

Publication Publication Date Title
TWI402675B (zh) 低等待時間的區塊密碼術
US8290148B2 (en) Encryption processing apparatus, encryption processing method, and computer program
US8428251B2 (en) System and method for stream/block cipher with internal random states
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
JP2002366029A (ja) Dpaに対して安全な暗号化
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
US11258579B2 (en) Method and circuit for implementing a substitution table
JP2012215815A (ja) データ処理装置、およびデータ処理方法、並びにプログラム
JP5541277B2 (ja) データ処理装置及びデータ処理方法
EP1351430B1 (en) Expansion key generating device, encryption device and encryption system
KR100456599B1 (ko) 병렬 디이에스 구조를 갖는 암호 장치
Srilaya et al. Performance evaluation for des and AES algorithms-an comprehensive overview
JP2006510067A (ja) ラインドールのサブバイトファンクションの小さなハードウェア実現
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
US11431478B2 (en) Encryption and decryption system, encryption device, decryption device and encryption and decryption method
JPWO2008117804A1 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
US20180054307A1 (en) Encryption device
US20040071287A1 (en) Encryption circuit arrangement and method therefor
JP2009169287A (ja) 暗号処理装置及び復号処理装置及びプログラム
JPH0744375A (ja) 暗号化データ処理装置
US8358780B2 (en) Execution unit for performing the data encryption standard
Camacho et al. Design and low power vlsi implementation of triple-des algorithm
Courtois et al. Understanding the ZK-Crypt-a Hash/Stream Cipher for (Almost) all Reasons
JP2004117429A (ja) 暗号/復号器およびこれを用いた暗号化/復号化装置
JP2008107636A (ja) 暗号化装置、プログラム及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140312

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140312

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5541277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150