JP2576385B2 - データ保護装置 - Google Patents

データ保護装置

Info

Publication number
JP2576385B2
JP2576385B2 JP5270718A JP27071893A JP2576385B2 JP 2576385 B2 JP2576385 B2 JP 2576385B2 JP 5270718 A JP5270718 A JP 5270718A JP 27071893 A JP27071893 A JP 27071893A JP 2576385 B2 JP2576385 B2 JP 2576385B2
Authority
JP
Japan
Prior art keywords
data
address
signal
decrypt
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5270718A
Other languages
English (en)
Other versions
JPH07129473A (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.)
NEC Corp
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5270718A priority Critical patent/JP2576385B2/ja
Priority to EP94117097A priority patent/EP0651532A3/en
Priority to KR1019940027859A priority patent/KR0137709B1/ko
Priority to US08/330,568 priority patent/US5544244A/en
Publication of JPH07129473A publication Critical patent/JPH07129473A/ja
Application granted granted Critical
Publication of JP2576385B2 publication Critical patent/JP2576385B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ保護装置に関
し、特にコンピュータの外部記憶装置に記憶された該コ
ンピュータの実行プログラムに対するデータ保護装置に
関する。
【0002】
【従来の技術】従来のコンピュータの外部記憶装置に記
憶されたデータの保護装置および保護方式は、図14に
示すように外部データ・バス4と内部データ・バス5の
間に復号化回路34を有している(例えば、特開昭61
−168061号公報参照)。
【0003】図14に示す従来例では、外部記憶装置2
にデータを書き込む場合、CPU3は暗号鍵回路36を
起動した後、暗号鍵を暗号化回路35にセットする。こ
れにより、CPU3から内部データ・バス5に出力され
た書き込みデータは暗号化回路35を通過するたびに暗
号化されて外部データ・バス4に出力され外部記憶装置
2に入力される。CPU3自体のプログラムを書き込む
場合には暗号鍵回路36、暗号化回路35を停止して暗
号化処理を行わないようにする。
【0004】外部記憶装置から読み出す場合には、暗号
鍵回路36を起動した後、暗号鍵を復号化回路34にセ
ットする。これにより、外部記憶装置2から外部データ
・バス4上に出力された暗号化データは復号化回路34
を通過するたびに元のデータに復号され、内部データ・
バス5をとおしてCPU3に入力される。CPU3のプ
ログラムを読み出す場合にはCPU3は命令フェッチ制
御線40により復号化回路34の動作を停止し、外部デ
ータ・バス4上のデータを、そのまま内部データ・バス
5に出力するように制御する。
【0005】暗号化回路35、復号化回路34、暗号鍵
回路36の構成は第三者に対して秘密に保持する必要が
ある。
【0006】以上説明したように図14に示す従来例で
は、データの暗号化のみでCPU3自体のプログラムの
暗号化を行わない。
【0007】CPU3自体のプログラムの暗号化を行う
例を図15に示す。外部データ・バス4と内部データ・
バス5の間に変換テーブル8を有している。
【0008】変換テーブル8は外部データ・バス4を入
力とし、外部データ・バス4の値を非線形変換または線
形変換した信号を内部データ・バス5に出力する。変換
テーブル8は、外部データ・バス4と同じビット長の非
線形演算または線形演算を行う演算器9と任意に設定可
能なデータである暗号鍵10とにより構成することがで
きる。例えば4ビット長の場合には図16に示すような
1対1の非線形変換を行うものとする。非線形演算器9
の例としては特開平03−254538号公報や特公昭
59−45269号公報がある。暗号鍵10を定数とす
れば変換テーブル8はあらかじめ各入力信号に対応する
出力信号を記憶させた記憶装置により構成することもで
きる。
【0009】外部記憶装置2には、図7に示すように、
あらかじめ図16の逆変換テーブルにより非線形変換さ
れた暗号化データが記憶されているものとする。アドレ
ス、データのビット長は説明のためそれぞれ4ビットと
する。以降、「」で挟まれた各データは特に断らない限
り2進数を表すものとする。
【0010】アドレス「0000」の元のデータ「10
01」は暗号化データ「1101」に変換される。同様
にアドレス「0001」の元のデータ「1110」は暗
号化データ「1000」に変換される。ここでアドレス
「0000」とアドレス「0011」の元のデータはと
もに「1001」なので暗号化データもともに「110
1」で同じになっている。
【0011】復号時の動作を図18に示す。
【0012】外部記憶装置2は、コンピュータ1から読
み出し信号6が入力されると外部アドレス・バス21の
アドレスに対応した暗号化データを、外部データ・バス
4に出力する。外部データ・バス4の暗号化データは変
換テーブル8により非線形変換されて元のデータとなり
CPU3に入力される。変換テーブル8の動作は第三者
に対して秘密に保持する必要がある。
【0013】1対1変換ではなく1対多の変換を行うデ
ータ秘匿方式の従来例は、図19に示すように変換テー
ブル8、信号選択回路11、記憶回路14、排他的論理
和回路7によりフィードバック・ループを構成する方式
を有している。
【0014】変換テーブル8は復号化バス42上の信号
を入力とし、非線形変換または線形変換を行った信号を
信号選択回路11に出力する。信号選択回路11は変換
テーブル8の出力信号と、初期値12と、制御回路43
からの選択信号13を入力とし、選択信号13が入力さ
れている場合は初期値12を、それ以外の場合は変換テ
ーブル8の出力信号を、記憶回路14に出力する。初期
値12は暗号化バス41と同じビット長の定数である。
記憶回路14は、信号選択回路11の出力信号と、制御
回路43からのラッチ信号44を入力とし、ラッチ信号
44が入力されている場合は信号選択回路11の出力信
号を、それ以外の場合は直前のラッチ信号44が入力さ
れていた時に記憶回路14が出力していた信号を、排他
的論理和回路7に出力する。排他的論理和回路7は暗号
化バス41と記憶回路14からの信号を入力とし、暗号
化バス41と記憶回路14の出力信号の排他的論理和演
算をした演算結果を復号化バス42に出力する。制御回
路43は復号動作開始時に選択信号13を信号選択回路
に出力し、暗号化バス41のデータの各1語を変換する
直前ごとにラッチ信号44を記憶回路14に出力する。
【0015】変換テーブル8は、暗号化バス41と同じ
ビット長の非線形演算または線形演算を行う演算器9と
任意に設定可能なデータである暗号鍵10とにより構成
することができる。例えば4ビット長の場合には図20
に示すような1対1の非線形変換を行うものとする。暗
号鍵10を定数とすれば変換テーブル8はあらかじめ各
入力信号に対応する出力信号を記憶させた記憶装置によ
り構成することもできる。
【0016】暗号化バス41の暗号化データ列の生成手
段を図21に示す。本例では、暗号化バスのビット幅と
して4ビット、変換テーブルとして図20の変換テーブ
ルを用い、元のデータ列の各1語に、時系列順に1、
2、3とデータ番号を便宜的に割り当てるものとする。
初期値12は定数「1101」とする。
【0017】データ番号1の元のデータ「1001」を
暗号化するときには、初期値12「1101」と排他的
論理和演算をし、「0100」を暗号化データとして得
る。データ番号2の元のデータ「1110」を暗号化す
るときには、データ番号1の元のデータ「1001」を
変換テーブルにより変換した値「1101」と、データ
番号2の元のデータ「1110」を排他的論理和演算を
し、「0011」を暗号化データとして得る。同様に、
データ番号3の元のデータ「0011」を暗号化すると
きには、データ番号2の元のデータ「1110」を変換
テーブルにより変換した値「1000」と、データ番号
3の元のデータ「0011」を排他的論理和演算をし、
「1011」を暗号化データとして得る。
【0018】つまりnを自然数としデータ番号nの元の
データ、暗号化データをそれぞれ元のデータ(n)、暗
号化データ(n)と表し、変換テーブルによる変数をf
で表すと、データ番号nの元のデータは次の式により暗
号化される。
【0019】暗号化データ(n)=元のデータ(n)
xor f(元のデータ(n−1)) 元のデータ(0)=初期値 ここで元のデータ(1)と元のデータ(4)はともに
「1001」で同じだが、暗号化データはそれぞれ「0
100」、「1110」と異なる値に変換されている。
【0020】図19の動作を図22を用いて説明する。
【0021】復号動作開始時には、制御回路43は選択
信号13を信号選択回路11に、ラッチ信号44を出力
する。これにより記憶回路14の記憶データは初期値1
2「1101」となる。
【0022】暗号化バス41上の暗号化データ(1)
「0100」は、記憶回路14の記憶データ「110
1」と排他的論理和回路7により排他的論理和演算さ
れ、演算の結果得られる元のデータ(1)である「10
01」が復号化バスに出力される。元のデータ(1)で
ある「1001」は変換テーブル8によりf(元のデー
タ(1))「1101」となる。暗号化バス41上の暗
号化データ(2)「0011」は、排他的論理和回路7
により記憶回路14の記憶データ「1101」と排他的
論理和演算され、演算の結果得られる元のデータ(2)
である「1110」が復号化バス42に出力される。元
のデータ(2)「1110」は変換テーブル8によりf
(元のデータ(2))「1000」に変換され、信号選
択回路11に入力される。
【0023】同様に、暗号化データ(3)の復号化を行
う前に制御回路43はラッチ信号44を記憶回路14に
出力し、記憶回路14の記憶データはf(元のデータ
(2))「1000」となる。暗号化バス41上の暗号
化データ(3)「1011」は、排他的論理和回路7に
より記憶回路14の記憶データ「1000」と排他的論
理和演算され、演算の結果得られる元のデータ(3)で
ある「0011」が復号化バス42に出力される。
【0024】つまり、暗号化データ(n)は次の式によ
り元のデータ(n)に復号される。
【0025】 元のデータ(n)=暗号化データ(n) xor f(元のデータ(n−1) ) ……(式1) 元のデータ(0)=初期値 式1に示すとおり、暗号化データ(n)を元のデータ
(n)に復号するには元のデータ(n−1)が必要だ
が、元のデータ(n−1)を得るには元のデータ(n−
2)が必要となる。つまり暗号化データ(n)を復号す
るにはn以前のすべての元のデータが必要となるため、
暗号化バス41上の暗号化データから元のデータを推測
することは非常に困難であり暗号強度は高い。
【0026】変換テーブル8の内容は第三者に対して秘
密に保持する必要がある。初期値12も秘密に保持する
ことが望ましいが、復号時には元のデータ(1)にしか
用いないため、公開しても暗号強度への影響は比較的小
さい。したがって初期値12は外部からディップ・スイ
ッチなどにより設定することも可能である。
【0027】
【発明が解決しようとする課題】図14に示す第一の従
来例では、プログラムの秘匿化ができないという問題点
があった。また、外部データバス4と内部データ・バス
5の間に復号化回路34が挿入されているため、次に説
明する図15に示す第二の従来例と同じ問題点を有す
る。
【0028】図15に示す第二の従来例では、外部デー
タ・バス4と内部データ・バス5の間に変換テーブル8
が挿入されているので信号処理に要する時間は変換テー
ブル8の参照時間が支配的となる。暗号鍵10を定数と
し、あらかじめ各入出力信号に対する出力信号を記憶さ
せた記憶装置により変換テーブル8を構成し、変換テー
ブル8を現在最先端の0.5μm〜0.8μmルールの
CMOSプロセスを用いて作成した場合でも、参照時間
は少なくとも20ns以上は必要である。
【0029】したがって外部記憶装置からの読み出し時
間が30ns〜100ns程度と高速な、近年の外部記
憶装置2とCPU3のシステム構成の場合には、変換テ
ーブル8の参照時間20nsが外部記憶装置2からの読
み出し時間に対して無視できなくなり、第二の従来例に
よりプログラムの秘匿化を行うにはCPU3にウエイト
をかける、または動作周波数を下げなければならず、結
果としてコンピュータ1の性能を大きく低下させるとい
う欠点があった。
【0030】また、外部データ・バス4上の暗号化デー
タと、内部データ・バス5上の元のデータが1対1に対
応しているため、プログラムの秘匿化の場合、各命令の
使用頻度に差があることを利用すると、第三者が外部デ
ータ・バス4上の暗号化データから元のデータを推測す
ることは、比較的容易である。例えば暗号化データ列中
で最も出現頻度の大きい暗号化データが、転送命令に対
応するだろうと推測することができる。したがって、外
部データ・バス4が8ビット幅程度のコンピュータ1の
場合、すべてを推測する計算量は非常に小さく暗号強度
は低いという問題点があった。
【0031】図19に示した第三の従来例の場合には、
1対多への変換であり第二の従来例の問題点はない。暗
号化バス41と復号化バス42の間には排他的論理和回
路7が挿入されているのみであり、排他的論理和回路7
の遅延時間は現在の0.5μm〜0.8μmルールのC
MOSプロセスで構成した場合数ns程度であり、近年
の高速な外部記憶装置2の読み出し時間に対しても無視
できる程度である。また、元のデータ(n)を得るため
に変換テーブル8に暗号化データ(n)を入力する第二
の従来例と異なり、第三の従来例では元のデータ(n)
を得るために変換テーブル8に入力するのは元のデータ
(n−1)である。したがって変換テーブル8の出力信
号を参照するのは変換テーブル8に入力してから1読み
出し周期後となり、変換テーブル8の遅延時間が外部記
憶装置2からの読み出し動作に影響を与えることはな
く、第二の従来例のようにCPU3の性能を低下させる
こともない。
【0032】ただし、第三の従来例の場合には、式1に
示すとおり、暗号化データ(n)を元のデータ(n)に
復号するには元のデータ(n−1)が必要だが、元のデ
ータ(n−1)を得るには元のデータ(n−2)が必要
となる。つまり例えば図22の暗号化データ(7)を復
号するには暗号化データ(1)から暗号化データ(6)
までのすべての暗号化データが、データ番号の順番で復
号されていなければならない。
【0033】これに対して、ほとんどのプログラムは分
岐命令を有しているため、外部記憶装置から読み出され
るデータはアドレスの順番で読み出されるとは限らない
ため、第三の実施例を適用することは非常に困難であ
る。
【0034】例えば図22のデータ番号をアドレスとみ
なし、アドレス4の元のデータがアドレス7への分岐命
令の場合、アドレス1、2、3、4と順番に暗号化デー
タを復号した後、アドレス5の暗号化データではなくア
ドレス7の暗号化データを復号しようとするが、アドレ
ス6の元のデータが記憶回路14に記憶されていないた
め正しく復号することができない。
【0035】したがって第三の実施例は、コンピュータ
のプログラムの秘匿化に適用することは非常に困難であ
るという問題点を有する。
【0036】
【課題を解決するための手段】本発明のデータ保護装置
およびデータ保護方式は、1以上のデータ系列の暗号化
データを記憶し指定されたアドレスに従って出力する外
部記憶装置と、外部記憶装置から暗号化データを入力し
データを号する号演算装置と、号演算装置により
号されたデータを入力し処理するCPUと、CPUか
ら入力されたアドレスを受けて外部記憶装置にアドレス
を出力するアドレス制御回路を備え、前記号演算装置
は各データ系列の先頭アドレスの暗号化データの号に
は初期化パラメータを用いて号を行い、先頭アドレス
以外の暗合化データの号には直前のアドレスの号さ
れたデータを基にパラメータを合成して号を行い、前
記アドレス制御回路は、CPUより入力したアドレスの
不連続を検出する検出手段と、前記アドレス不連続検出
により、CPUへの号データの入力を保留し、不連続
となった新たに指定するアドレスの属するデータ系列の
先頭アドレスから当該不連続アドレスまで順次暗号化デ
ータの読み出しと号を行わしめ、当該不連続アドレス
のデータの号完了後前記保留を解除し、CPUの
データの入力を再開させる制御手段を有する。
【0037】
【実施例】次に本発明について図面を参照して説明す
る。
【0038】図1は本発明の第一の実施例の構成を示す
ブロック図である。
【0039】変換テーブル8は内部データ・バス5上の
信号を入力とし、非線形変換または線形変換を行った信
号を信号選択回路11に出力する。信号選択回路11は
変換テーブル8の出力信号と、初期値12と、アドレス
制御回路15からの選択信号13を入力とし、選択信号
13が入力されている場合は初期値12を、それ以外の
場合は変換テーブル8の出力信号を、記憶回路14に出
力する。初期値12は外部データ・バス4と同じビット
長の定数である。記憶回路14は、信号選択回路11の
出力信号と、アドレス制御回路15からの読み出し信号
6を入力とし、読み出し信号6が有効のときには信号選
択回路11の出力信号を、読み出し信号6が無効のとき
には直前の読み出し信号6が有効のときに記憶回路14
が出力していた信号を、排他的論理和回路7に出力す
る。排他的論理和回路7は外部データ・バス4と記憶回
路14からの信号を入力とし、外部データ・バス4と記
憶回路14の出力信号の排他的論理和演算をした演算結
果を内部データ・バス5に出力する。アドレス制御回路
15はCPU3からの内部アドレス・バス16と内部読
み出し信号17と分岐信号18と読み出しクロック信号
19を入力とし、外部記憶回路2に外部アドレス・バス
21と読み出し信号6を出力し、記憶回路14に読み出
し信号6を出力し、CPU3に対しBUSY信号3を出
力する。
【0040】外部記憶装置2には一つまたは複数のデー
タ系列が暗号化されてあらかじめ記憶されている。各デ
ータ系列長は等しく、ここでは4とする。また各データ
系列の先頭データのアドレスのうち、データ系列長に相
当する下位ビットは互いに等しいものとする。ここでは
データ系列長を4としたので下位2ビットは互いに等し
いことになり、ここでは「00」とする。
【0041】CPU3は外部記憶装置2からのデータの
1語読み出し動作ごとに内部アドレス・バス16と内部
読み出し信号17を出力し、分岐命令を実行して内部ア
ドレス・バス16が不連続になると分岐信号18を出力
し、内部読み出し信号17に周期も等しく読み出し動作
保留中も出力される読み出しクロック信号19を出力す
る。また、CPU3はBUSY信号20が有効の時には
外部記憶装置2に対する読み出し動作を保留する。
【0042】アドレス制御回路15は内部アドレス・バ
ス16と外部アドレス・バスが等しくない期間BUSY
信号20を出力する。
【0043】分岐信号18が入力されると、外部記憶装
置2に記憶されている暗号データ系列の系列長に相当す
るビット数の外部アドレス・バス21の下位ビット数を
その暗号データ系列の先頭アドレスの系列長に相当する
下位ビットに変更して外部アドレス・バス21に出力す
るとともに選択信号13を出力する。ここでは分岐信号
18が入力されるごとに外部アドレス・バス21の下位
2ビットを「00」に変更する。また、内部読み出し信
号17または、BUSY信号20が有効の間は読み出し
クロック信号19を読み出し信号6として出力する。こ
れによりCPU3が読み出し動作を保留している期間も
外部記憶装置2からは暗号データ系列が読み出されるこ
とになる。
【0044】変換テーブル8は、外部データ・バス4と
同じビット幅の非線形演算または線形演算を行う演算器
9と任意に設定可能なデータである暗号鍵10とにより
構成することができる。例えば4ビット幅の場合には図
20に示すような1対1の非線形変換を行うものとす
る。暗号鍵10を定数とすれば変換テーブル8はあらか
じめ各入力信号に対応する出力信号を記憶させた記憶装
置により構成することもできる。
【0045】変換テーブル8、信号選択回路11、初期
値12、選択信号13、記憶回路14、排他的論理和回
路7の動作は第三の従来例と同様である。
【0046】アドレス制御回路15の一構成例を図2
に、信号波形図を図3に示す。ここでは暗号データ系列
の系列長は16、各系列の先頭アドレスの下位4ビット
は「0000」とし、外部アドレス・バス21のビット
幅は16とする。
【0047】4ビット・カウンタ22にはリセット信号
として分岐信号18が、カウント・読み出しクロック信
号として読み出し信号6が入力され、そのカウンタ出力
信号27を4ビット・セレクタ24に出力する。4ビッ
ト・セレクタ24は内部アドレス・バス16の下位4ビ
ットと、カウンタ出力信号27とBUSY信号20を入
力とし、BUSY信号20が有効のときにはカウンタ出
力信号27を、BUSY信号20が無効の時には内部ア
ドレス・バス16の下位4ビットを外部アドレス・バス
の下位4ビットに出力する。比較回路23は内部アドレ
ス・バス16の下位4ビットとカウンタ出力信号27を
入力とし、2つの入力信号が等しくない場合BUSY信
号を出力する。0判定回路25はカウンタ出力信号27
を入力とし、入力が0の場合には選択信号13を出力す
る。
【0048】1ビット・セレクタ26は内部読み出し信
号17と読み出しクロック信号19とBUSY信号20
を入力とし、BUSY信号20が有効の時には読み出し
クロック信号19を、無効の時には内部読み出し信号1
7を外部読み出し信号6に出力する。
【0049】図3の信号波形図を用いてアドレス制御回
路15の動作を説明する。以降、特に断らない限りHで
終わる数は16進数を表すものとする。
【0050】CPU3がアドレス1242Hで分岐命令
を実行し、アドレス3432Hに分岐した場合を例とし
て説明する。
【0051】アドレス1242Hまでは順次連続してデ
ータ系列を読み込むため分岐信号18は入力されず、カ
ウンタ出力信号27と内部アドレス・バス16の下位ビ
ットは一致している。アドレス1240Hになると新し
い暗号データ系列に移行するため選択信号13を出力す
る。
【0052】アドレス1242Hからアドレス3432
Hに分岐するとCPU3から分岐信号が入力され4ビッ
ト・カウンタ22が0にリセットされ選択信号13が出
力されるとともに、カウンタ出力信号27が内部アドレ
ス・バス16の下位4ビットと一致しなくなるためBU
SY信号20が発生する。外部アドレス・バス21は3
430Hとなり、以後は読み出し信号6により外部アド
レス・バス21は3431H、3432Hと変化してい
く。このとき外部記憶装置2から暗号化データ系列が読
み出されて行くが、3430H、3431Hのときには
BUSY信号20がCPU3に入力されているため内部
データ・バス5の値は読み込まれない。以降外部アドレ
ス・バス21が3432Hとなるとカウンタ出力信号2
7と内部アドレス・バス16の下位4ビットが一致する
ためBUSY信号20が無効となりCPUは読み出し動
作を再開する。
【0053】ここで、アドレス3432Hでなくアドレ
ス3430Hに分岐する場合には、カウンタ出力信号2
7と内部アドレス・バス16の下位4ビットが一致する
ためにBUSY信号20は発生せず、選択信号13のみ
が出力されることになる。
【0054】暗号化データ系列の生成手順を図4に示
す。図4の例では、アドレス、データのビット幅はとも
に4ビットとする。変換テーブルは図5の変換テーブル
を用いる。初期値12は定数「1101」とする。ま
つ、暗号データ系列の系列長は4、各系列の先頭アドレ
スの下位2ビットは「00」とする。
【0055】図4のとおり、アドレスの下位2ビットが
「00」になるたびに元のデータ系列と排他的論理和を
とるデータを初期値「1101」に変更することのみが
第三の従来例と異なり、系列長が4の暗号データ系列を
生成する動作は従来例と同様である。
【0056】本発明の第一の実施例の分岐命令を実行し
ない場合の動作を図6〜図8を用いて説明する。図6は
分岐命令を実行しない場合の信号波形図であり、図8は
このときのデータの流れを示す図である。
【0057】暗号化データ系列の生成時の動作の説明の
場合と同様、アドレス、データのビット幅はともに4ビ
ットとする。変換テーブルとして図7の変換テーブルを
用いる。初期値12は定数「1101」とする。また、
暗号データ系列の系列長は4、各系列の先頭アドレスの
下位2ビットは「00」とする。
【0058】分岐命令を実行しないため分岐信号18は
発生せず、CPU3が出力する内部アドレス・バス16
とアドレス制御回路15が出力する外部アドレス・バス
21の内容は常に一致している。このためアドレス制御
回路15はBUSY信号20を出力せず、CPU3は読
み出し動作を保留せず内部データ・バス5上の元のデー
タ系列を内部読み出し信号17に応じて読み込んでい
る。外部アドレス・バス21の下位2ビットが「00」
になるごとに選択信号13を信号選択回路13に出力
し、内部データ・バス5と排他的論理和をとるデータを
初期値「1101」に変更する。
【0059】図8より系列長4の各データ系列の中のデ
ータの流れは第三の従来例と同様であり、各暗号データ
系列がすべて正しく元のデータに復号されることが分か
る。
【0060】本発明の第一の実施例の分岐命令を伴う場
合の動作を図9〜図11を用いて説明する。図9は分岐
命令を伴う場合の信号波形図であり、図11はこのとき
のデータの流れを示す図である。ここでは、アドレス
「0000」からアドレス「0010」まで順次外部記
憶装置2から読み出し、アドレス「0010」で分岐命
令を実行する結果アドレス「0110」に分岐する場合
を例に説明する。
【0061】暗号化データ系列の生成時の動作の説明の
場合と同様、アドレス、データのビット幅はともに4ビ
ットとする。変換テーブルとして図10の変換テーブル
を用い、初期値12は定数「1101」とする。また、
暗号データ系列の系列長は4、各系列の先頭アドレスの
下位2ビットは「00」とする。
【0062】アドレス「0000」からアドレス「00
10」までは分岐命令を伴わずに順次読み出すため、分
岐信号18が発生せずCPU3が出力する内部アドレス
・バス16とアドレス制御回路15が出力する外部アド
レス・バス21の内容は常に一致している。図11から
この場合のデータの流れは第三の実施例と同じであり、
暗号化データが元のデータに正しく復号されていること
が分かる。
【0063】CPU3は内部データ・バス5からアドレ
ス「0010」の元のデータを読み込んだ後アドレス
「0110」への分岐命令を実行するため、分岐信号1
8を出力し、内部アドレス・バス16に「0110」を
出力し、外部記憶装置2からアドレス「0110」の暗
号化データを読み出そうとする。しかし、分岐信号18
により外部アドレス・バス21の下位2ビットは「0
0」となるため、アドレス制御回路15は外部アドレス
・バス21に「0100」を出力するとともに信号選択
回路11に選択信号13を出力する。また内部アドレス
・バス16と外部アドレス・バス21が一致しないので
アドレス制御回路15がCPU3にBUSY信号20を
出力するため、CPU3は読み出し動作を保留する。
【0064】選択信号13によって記憶回路14の記憶
データが演算器8の出力ではなく初期値12となってい
るため、下位2ビットが「00」から始まる新しい暗号
データ系列の先頭データであるところのアドレス「01
00」の暗号化データは排他的論理和回路7により正し
く元のデータに復号され内部データ・バスに出力され
る。
【0065】この後、CPU3は読み出し動作を保留状
態だが、アドレス制御回路15は読み出しクロック信号
19に従って外部アドレス・バス21に「0101」と
読み出し信号4を出力し、外部記憶装置2からの読み出
し動作を続行する。
【0066】CPU3が読み出し動作を保留している間
に内部データ・バス7上に出力されたアドレス「010
0」の元のデータと、アドレス「0101」の元のデー
タは、CPU3の動作に影響を与えることはなく、次の
暗号化データを復号するために演算器8に入力されるだ
けである。
【0067】アドレス制御回路15が読み出しクロック
信号19に従い外部アドレス・バス21に「0110」
を出力すると、外部アドレス・バス21と内部アドレス
・バス16が一致するためBUSY信号20が無効とな
りCPU3は読み出し動作を再開する。
【0068】ここで分岐命令による分岐先アドレス「0
110」の暗号化データは、すでにアドレス「010
1」の暗号化データが元のデータに復号されているため
に、第三の従来例の場合と異なり、正しく元のデータに
復号されて内部データ・バス5に出力され、読み出し動
作を再開したCPU3に読み込まれる。
【0069】以降の動作は次の分岐命令を実行するまで
の間、図6〜図8で前述した動作と同様である。
【0070】以上説明した通り、本発明のデータ保護回
路は分岐処理を伴う場合でも、従来例と異なり、暗号化
データ系列を元のデータ系列に正しく復号することがで
きる。
【0071】図12は本発明の第二の実施例の構成を示
すブロック図である。
【0072】本実施例では、アドレス制御回路15の替
わりにキャッシュ・コントローラ28とキャッシュ・メ
モリ29とCPUデータ・バス30を有しており、その
他は、第一の実施例と同様である。キャッシュ・コント
ローラ28はフェッチ・バイパス・リプレース動作を行
わないものとする。
【0073】外部記憶装置2には一つまたは複数のデー
タ系列が暗号化されてあらかじめ記憶されている。各デ
ータ系列長は等しく、また各系列の先頭アドレスはデー
タ系列長に相当する下位ビット数だけ等しい。
【0074】キャッシュ・コントローラ28は、CPU
3からの内部アドレス・バス16、内部読み出し信号1
7、分岐信号18、読み出しクロック信号19を入力と
し、外部アドレス・バス21と読み出し信号6とCPU
データ・バス30と選択信号13を出力する。またキャ
ッシュ・メモリ29に対して任意に読み書きが可能であ
る。CPU3が読み出し動作を行い内部アドレス・バス
16に読み出しアドレスを出力すると、キャッシュ・コ
ントローラ28はその読み出しアドレスの元のデータが
キャッシュ・メモリ29に記憶されているかどうかを判
別し、記憶されている場合には該当する元のデータをC
PUデータ・バス30に出力する。キャッシュ・メモリ
29に記憶されていない場合、キャッシュ・コントロー
ラ28は選択信号13を出力するとともに外部記憶装置
21から該当アドレスを含む暗号化データ系列をその系
列の先頭アドレスからその系列の最終アドレスまで読み
出す動作を行い、その間BUSY信号20を出力してC
PU3の読み出し動作を停止させる。このとき外部記憶
装置2から読み出された暗号化データ系列は第一の従来
例と同様に正しく元のデータ系列に復号されて内部デー
タ・バス5に出力され、キャッシュ・コントローラ28
によって順次キャッシュ・メモリ29に書き込まれる。
キャッシュ・コントローラ28は該当アドレスを含む暗
号化データ系列をその最終アドレスまで復号してキャッ
シュ・メモリ29に書き込むと、BUSY信号20を無
効にしてCPU3の読み出し動作を再開させる。このと
きは内部アドレス・バス16上のアドレスに対応する元
のデータがキャッシュ・メモリ29に記憶されているの
で、キャッシュ・コントローラ28は該当データをキャ
ッシュ・メモリから読み出し、CPUデータ・バス30
に出力する。
【0075】以上説明したように、キャッシュ・メモリ
29を有するコンピュータ1では、キャッシュ・コント
ローラ28の動作を活用することによりアドレス制御回
路15を特に有さなくとも本発明のデータ保護装置を構
成することができる。
【0076】図13は本発明の第三の実施例の構成を示
すブロック図である。
【0077】本実施例は、初期値12の替わりに第2の
変換テーブル31を有する他は、第一の実施例と同様で
ある。
【0078】第2の変換テーブル31は外部アドレス・
バス21上の信号を入力とし、非線形変換または線形変
換を行った信号を信号選択回路11に出力する。
【0079】第2の変換テーブル8は、外部データ・バ
ス4と同じビット幅の出力を有する非線形演算または線
形演算を行う第2の演算器32と任意に設定可能なデー
タである第2の暗号鍵33とにより構成することができ
る。第2の暗号鍵33を定数とすれば第2の変換テーブ
ル31はあらかじめ各入力信号に対応する出力信号を記
憶させた記憶装置により構成することもできる。
【0080】外部記憶装置2に記憶された各暗号化デー
タ系列の先頭データは、その先頭データのアドレスを第
2の変換テーブル31に入力したときの出力信号により
暗号化されているものとする。
【0081】各暗号化データ系列の先頭アドレスはそれ
ぞれ異なるため、各暗号化データ系列の先頭データはそ
れぞれ異なる信号により暗号化されることになる。
【0082】第三の実施例の動作は、信号選択回路11
が選択信号13が入力されている場合に出力する信号
が、初期値12ではなく、外部アドレス・バス21を入
力とした第2の変換テーブル31の出力信号であること
が異なる他は、第一の実施例と同様である。
【0083】第一の実施例、第二の実施例では、各暗号
化データ系列の先頭データは一定の初期値12と排他的
論理和演算をとることにより暗号化、復号化されていた
ため、各暗号化データ系列の先頭データの暗号化データ
と元のデータの間には従来例2と同様に1対1対応が存
在する。このため多数の暗号化データ系列を有する外部
記憶装置2の場合には暗号強度が低下する一因になり得
る。
【0084】しかし、第三の実施例では各暗号化データ
系列の先頭データは、それぞれ異なる先頭アドレスを入
力とした第2の変換テーブル31の出力信号で排他的論
理和されるため、各暗号化データ系列の先頭データの暗
号化データと元のデータの間には1対1対応がなく、1
対多対応となり、第一の実施例、第二の実施例に比べて
暗号強度を向上させることができる。
【0085】
【発明の効果】本発明による効用として次のものが挙げ
られる。
【0086】第一に、本発明の解読のための計算量と、
第一の従来例および第二の従来例の解読のための計算量
の比率は少なくとも次の値以上となる。
【0087】従来例に対する解読計算量の比率=(2の
(外部データ・バス4のビット幅)乗)の(暗号化デー
タ系列長−1)乗 例えば外部データ・バス4のビット幅が8で、暗号化デ
ータ系列長が4の場合、暗号強度は107 倍以上となり
実用上解読される心配はない。
【0088】第二に、本発明では、外部データ・バス4
と内部データ・バス5の間には排他的論理和回路7を一
段を挿入するのみであり、外部データ・バス4と内部デ
ータ・バス5の間の遅延は無視できるほど小さく、動作
クロックが50MHz以上の高速なCPU3に適用する
ことも容易である。
【0089】従来例では、外部データ・バス4と内部デ
ータ・バス5の間に変換テーブル8が挿入されていたた
め遅延時間が非常に大きく、せいぜい動作クロックが5
MHz程度のCPU3にしか適用できなかった。
【0090】第三に、本発明のデータ保護装置の回路規
模は、従来例と比べてほとんど増加していない。暗号鍵
10、第2の暗号鍵33を定数としてあらかじめ変換テ
ーブル8、第2の変換テーブル31を用意すれば、8ビ
ット・データ・バスの場合、512バイトのROMとお
よそ1000ゲート程度で構成できる。
【0091】暗号強度の観点から比較すると、本発明と
同程度の暗号強度を得るために、第2の従来例の変換テ
ーブル8に特開平03−254538号公報または特公
昭59−45269号公報を用いた場合には、構成に1
0万ゲート以上が必要である。
【0092】以上説明したとおり、本発明を用いれば外
部記憶装置の安全かつ高速なデータ保護装置を安価に構
成することができる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図。
【図2】図1に示すアドレス制御回路のブロック図。
【図3】図2に示すアドレス制御回路の動作を説明する
信号波形図。
【図4】図1に示す外部記憶装置に記憶されるデータの
暗号処理の動作を説明する流れ図。
【図5】図4で示した変換テーブルの一例。
【図6】図1に示す実施例の分岐命令を実行しない場合
の動作を説明する信号波形図。
【図7】図6の説明で用いる図1に示す変換テーブルの
一例。
【図8】図6の説明を補足するための流れ図。
【図9】図1に示す実施例の分岐命令を実行した場合の
動作を説明する信号波形図。
【図10】図9の説明で用いる図1に示す変換テーブル
の一例。
【図11】図9の説明を補足するための流れ図。
【図12】本発明の第二の実施例の構成を示すブロック
図。
【図13】本発明の第三の実施例の構成を示すブロック
図。
【図14】従来例の構成を示すブロック図。
【図15】第二の従来例の構成を示すブロック図。
【図16】図15の説明で用いる図15に示す変換テー
ブルの一例。
【図17】図15に示す外部記憶装置に記憶されている
データの暗号処理の動作を説明する流れ図。
【図18】図15の動作を説明する流れ図。
【図19】第三の従来例の構成を示すブロック図。
【図20】図19の説明に用いる図11aに示す変換テ
ーブルの一例。
【図21】図19に示す暗号化バス上の暗号化データの
作成手順を示す流れ図。
【図22】図19の動作を説明する流れ図。
【符号の説明】
1 コンピュータ 2 外部記憶装置 3 CPU 4 外部データ・バス 5 内部データ・バス 6 読み出し信号 7 排他的論理和回路 8 変換テーブル 9 演算器 10 暗号鍵 11 信号選択回路 12 初期値 13 選択信号 14 記憶回路 15 アドレス制御回路 16 内部アドレス・バス 17 内部読み出し信号 18 分岐信号 19 読み出しクロック信号 20 BUSY信号 21 外部アドレス・バス 22 4ビット・カウンタ 23 比較回路 24 4ビット・セレクタ 25 0判定回路 26 1ビット・セレクタ 27 カウンタ出力信号 28 キャッシュ・コントローラ 29 キャッシュ・メモリ 30 CPUデータ・バス 31 第二の変換テーブル 32 第二の演算器 33 第二の暗号鍵 34 復号化回路 35 暗号化回路 36 暗号鍵回路 37 暗号鍵回路制御線 38 暗号化回路起動線 39 復号化回路起動線 40 命令フェッチ制御線 41 暗号化バス 42 復号化バス 43 制御回路 44 トリガ信号

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 1以上のデータ系列の暗号化データを記
    憶し指定されたアドレスに従って出力する外部記憶装置
    と、外部記憶装置から暗号化データを入力しデータを
    号する号演算装置と、号演算装置により号された
    データを入力し処理するCPUと、CPUから入力され
    たアドレスを受けて外部記憶装置にアドレスを出力する
    アドレス制御回路とを備え、 前記号演算装置は各データ系列の先頭アドレスの暗号
    化データの号には初期化パラメータを用いて号を行
    い、先頭アドレス以外の暗合化データの号には直前の
    アドレスの号されたデータを基にパラメータを合成し
    号を行い、 前記アドレス制御回路は、CPUより入力したアドレス
    の不連続を検出する検出手段と、前記アドレス不連続検
    出により、CPUへの号データの入力を保留し、不連
    続となった新たに指定するアドレスの属するデータ系列
    の先頭アドレスから当該不連続アドレスまで順次暗号化
    データの読み出しと号を行わしめ、当該不連続アドレ
    スのデータの号完了後前記保留を解除し、CPUの
    号データの入力を再開させる制御手段を有することを特
    徴とするデータ保護装置。
  2. 【請求項2】 前記入力データ系列に対しデータデー
    対応で結合された非線形変換器または線形変換器を有
    することを特徴とする請求項1記載のデータ保護装置。
  3. 【請求項3】 前記制御手段がキャッシュ・コントロー
    ラにより構成されることを特徴とする請求項1又は2記
    載のデータ保護装置およびデータ保護方式。
  4. 【請求項4】記外部記憶装置へのアドレス信号出力
    の一部または全部に対して非線形変換または線形変換を
    施したデータを該初期化パラメータとする手段をさらに
    有することを特徴とする請求項1,2,又は3記載のデ
    ータ保護装置。
JP5270718A 1993-10-28 1993-10-28 データ保護装置 Expired - Lifetime JP2576385B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP5270718A JP2576385B2 (ja) 1993-10-28 1993-10-28 データ保護装置
EP94117097A EP0651532A3 (en) 1993-10-28 1994-10-28 Method for sequential encryption/decryption of externally stored computer object code
KR1019940027859A KR0137709B1 (ko) 1993-10-28 1994-10-28 암호화된 컴퓨터 목적 코드의 암호 해독 방지 방법
US08/330,568 US5544244A (en) 1993-10-28 1994-10-28 Method for protecting an enciphered computer object code against cryptanalysis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5270718A JP2576385B2 (ja) 1993-10-28 1993-10-28 データ保護装置

Publications (2)

Publication Number Publication Date
JPH07129473A JPH07129473A (ja) 1995-05-19
JP2576385B2 true JP2576385B2 (ja) 1997-01-29

Family

ID=17489996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5270718A Expired - Lifetime JP2576385B2 (ja) 1993-10-28 1993-10-28 データ保護装置

Country Status (4)

Country Link
US (1) US5544244A (ja)
EP (1) EP0651532A3 (ja)
JP (1) JP2576385B2 (ja)
KR (1) KR0137709B1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675645A (en) * 1995-04-18 1997-10-07 Ricoh Company, Ltd. Method and apparatus for securing executable programs against copying
JPH08305558A (ja) * 1995-04-27 1996-11-22 Casio Comput Co Ltd 暗号化プログラム演算装置
US5606616A (en) * 1995-07-03 1997-02-25 General Instrument Corporation Of Delaware Cryptographic apparatus with double feedforward hash function
US5710814A (en) * 1996-07-23 1998-01-20 Cheyenne Property Trust Cryptographic unit touch point logic
US5724422A (en) * 1996-08-05 1998-03-03 Industrial Technology Research Institute Encrypting and decrypting instruction boundaries of instructions in a superscalar data processing system
US5841870A (en) * 1996-11-12 1998-11-24 Cheyenne Property Trust Dynamic classes of service for an international cryptography framework
WO1998053403A1 (en) * 1997-05-17 1998-11-26 Young Jin Kim Protection method and apparatus for copyright of programs
WO1999041651A2 (en) * 1998-02-13 1999-08-19 National Computer Board, Acting Through Its R & D Division, The Information Technology Institute Method for protecting bytecode
US6792528B1 (en) * 2000-05-17 2004-09-14 Chien-Tzu Hou Method and apparatus for securing data contents of a non-volatile memory device
US7512986B2 (en) 2001-03-28 2009-03-31 Nds Limited Digital rights management system and method
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
JP5183279B2 (ja) 2008-04-03 2013-04-17 ルネサスエレクトロニクス株式会社 情報処理装置、命令コードの暗号化方法および暗号化命令コードの復号化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4562305A (en) * 1982-12-22 1985-12-31 International Business Machines Corporation Software cryptographic apparatus and method
US4864494A (en) * 1986-03-21 1989-09-05 Computerized Data Ssytems For Mfg., Inc. Software usage authorization system with key for decrypting/re-encrypting/re-transmitting moving target security codes from protected software
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5182770A (en) * 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software

Also Published As

Publication number Publication date
EP0651532A3 (en) 1998-01-14
JPH07129473A (ja) 1995-05-19
US5544244A (en) 1996-08-06
EP0651532A2 (en) 1995-05-03
KR0137709B1 (ko) 1998-06-15
KR950012223A (ko) 1995-05-16

Similar Documents

Publication Publication Date Title
JP2576385B2 (ja) データ保護装置
JP3092567B2 (ja) 暗号鍵の生成方法および装置
CA2537299C (en) On-chip storage, creation, and manipulation of an encryption key
JP4767985B2 (ja) 複数モードでのaes暗号化または復号の単一命令での実行
JP3320928B2 (ja) 暗号化システム
KR100308322B1 (ko) 특별한암호화기능들을사용하여데이터의강력한암호화또는해독화를수행하는방법및장치
TWI310499B (en) Slave and master of serial peripheral interface, system thereof, and method thereof
US6519702B1 (en) Method and apparatus for limiting security attacks via data copied into computer memory
WO2021139172A1 (zh) 一种文件存储为音频实现加密的方法、装置和设备
JPS6333749B2 (ja)
IT201800003373A1 (it) Procedimento e circuito di decrittazione, dispositivo corrispondente
CN111563281A (zh) 一种支持多种加解密算法的处理器及其实现方法
US20030044007A1 (en) Methods and apparatus for accelerating ARC4 processing
JP2005216027A (ja) 暗号化装置及びこれを備えた暗号化システム並びに復号化装置及びこれを備えた半導体システム
US20210006391A1 (en) Data processing method, circuit, terminal device and storage medium
US10594476B1 (en) Reduced-latency packet ciphering
US20080240419A1 (en) Apparatus, system, and method for testing data compression and data encryption circuitry
US20050232414A1 (en) Block encoding method and block encoding/decoding circuit
CN110071927B (zh) 一种信息加密方法、系统及相关组件
JP3841008B2 (ja) 暗号装置及びデータ転送制御装置
JP2000076144A (ja) 論理回路、マイクロコンピュータ、および論理回路・記憶回路間の通信方法
JPS5843743B2 (ja) 暗号化方式
CN106877999B (zh) 一种des加解密密钥生成器及密钥生成方法
RU2390052C2 (ru) Дешифратор управляемой перестановки информации, хранимой в персональной эвм
JP3088785B2 (ja) 可変長符号の復号装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960910