JPH0744375A - Ciphered data processor - Google Patents
Ciphered data processorInfo
- Publication number
- JPH0744375A JPH0744375A JP5187849A JP18784993A JPH0744375A JP H0744375 A JPH0744375 A JP H0744375A JP 5187849 A JP5187849 A JP 5187849A JP 18784993 A JP18784993 A JP 18784993A JP H0744375 A JPH0744375 A JP H0744375A
- Authority
- JP
- Japan
- Prior art keywords
- conversion
- input
- output
- encryption
- bit
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】外部メモリ上の暗号化されたデー
タを装置内部で復号して処理し、かつ/または、処理し
たデータを装置内部で暗号化して外部メモリに格納し、
装置内部で扱われる本来のデータの値を隠匿することに
より、ソフトウェアの不正コピーやデータの漏洩を防止
する暗号化データ処理装置に関する。[Industrial field of use] Encrypted data on an external memory is decrypted and processed inside the device, and / or processed data is encrypted inside the device and stored in an external memory,
The present invention relates to an encrypted data processing device that prevents illegal copying of software and leakage of data by hiding original data values handled inside the device.
【0002】[0002]
【従来の技術】ソフトウェアやデータの不正コピーが古
くから問題になっている。例えば、ROM上のプログラ
ムやデータをまるごとコピーすることによる装置の複製
は、その開発費用の回収を困難とし、正当な利益の配分
を妨げている。このような問題を解決するために、メモ
リの内容を暗号化しておき、メモリの読み出し時に処理
装置の内部でそれを復号しながら処理する考え方は従来
からあった。2. Description of the Related Art Unauthorized copying of software and data has been a problem since ancient times. For example, duplication of an apparatus by copying the entire program or data on the ROM makes it difficult to recover the development cost and hinders proper distribution of profits. In order to solve such a problem, there has been a conventional idea of encrypting the contents of the memory and processing the contents while decrypting them inside the processing device when reading the memory.
【0003】しかし、単にデータを変換するだけでは同
じデータが常に同じ暗号化データとなって現れるため
に、容易に解読されてしまう。解読者は変換表を一つ作
成し、命令を一つ一つ解読してその表を埋めていけば良
い。一般的なプログラムにおける命令の出現頻度と、暗
号化データの出現頻度とを比較することにより、平文を
類推することも可能である。例えば一般のプログラムに
おいてレジスタ間転送命令が最も高頻度で出現するなら
ば、最も多い暗号データの値はレジスタ間転送命令に対
応すると推測できる。また、暗号化命令はどのアドレス
に置いても同じ動作を示すから、解読者は暗号化命令を
試行錯誤で移動させて動作を観察し、ヒントを得ること
もできる。However, if the data is simply converted, the same data always appears as the same encrypted data, so that the data is easily decrypted. The decipherer can create one conversion table, decipher each command one by one, and fill the table. It is also possible to analogize the plaintext by comparing the appearance frequency of instructions in a general program with the appearance frequency of encrypted data. For example, if an inter-register transfer instruction appears most frequently in a general program, it can be inferred that the most encrypted data value corresponds to the inter-register transfer instruction. Further, since the encrypted command shows the same operation regardless of the address, the decryption person can move the encrypted command by trial and error and observe the operation to get a hint.
【0004】このような解読方法を防止するために、命
令やデータの格納されているアドレスの値によって変換
規則を変化させる方法が提案されてきた。In order to prevent such a decoding method, a method has been proposed in which the conversion rule is changed according to the value of the address where the instruction or data is stored.
【0005】例えば、特開平01−028728号公報
に記載の命令暗号処理方式では、CPU上に複数の命令
解釈手段(デコーダ)を用意し、命令のアドレスによっ
てその命令解釈手段を選択することにより、アドレスに
よって異なる命令コードを使用することを可能としてい
る。該従来例のブロック図を図9に示す。For example, in the instruction encryption processing method disclosed in Japanese Patent Laid-Open No. 01-028728, a plurality of instruction interpreting means (decoders) are prepared on the CPU, and the instruction interpreting means is selected according to the address of the instruction. It is possible to use different instruction codes depending on the address. A block diagram of the conventional example is shown in FIG.
【0006】また、特開昭63−145532号公報に
記載の模倣防止機能付プロセッサでは、内部メモリ上に
複数用意した暗号鍵をデータのアドレスによって選択
し、選択した暗号鍵に依存した変換を行うことにより、
同じデータが常に同じ暗号データに変換されることを防
いでいる。該従来例のブロック図を図10に示す。Further, in the processor with imitation prevention function described in Japanese Patent Laid-Open No. 63-145532, a plurality of encryption keys prepared in the internal memory are selected according to the address of the data, and conversion is performed depending on the selected encryption key. By
It prevents the same data from being always converted to the same encrypted data. A block diagram of the conventional example is shown in FIG.
【0007】[0007]
【発明が解決しようとする課題】上記のような従来技術
を用いれば、同じデータに対応する暗号化データが常に
等しくはならない。しかしながら、用意できる変換手段
や暗号鍵の数は回路規模の面から制限され、アドレス空
間の大きさと同等程度の変換種類を用意することはでき
ない。したがって、異なるアドレスに対して同じ変換を
施す場合が少なからず現れるわけで、これはすなわち、
アドレス空間を幾つかに分割してそれぞれに固定の変換
を施していることに等しい。変換の種類を増加させれば
暗号解読に対する強度は高まるが、一方で回路規模と装
置のコストを上昇させる。If the above-mentioned conventional technique is used, the encrypted data corresponding to the same data will not always be the same. However, the number of conversion means and encryption keys that can be prepared is limited from the viewpoint of the circuit scale, and it is not possible to prepare conversion types equivalent to the size of the address space. Therefore, the same translation is often applied to different addresses.
This is equivalent to dividing the address space into several parts and applying fixed conversion to each. Increasing the types of conversion increases the strength against cryptanalysis, but at the same time increases the circuit scale and the cost of the device.
【0008】前述の特開平01−028728号公報に
記載の命令暗号処理方式においては、内蔵できる命令解
釈手段の個数は、現実的にはせいぜい数十種類程度であ
り、それ以上になると装置のコストが倍増してしまう。In the instruction cryptographic processing method described in the above-mentioned Japanese Patent Laid-Open No. 01-028728, the number of instruction interpreting means that can be built-in is practically at most several tens, and if the number exceeds this, the cost of the apparatus will increase. Will be doubled.
【0009】一方、特開昭63−145532号公報に
記載の模倣防止機能付プロセッサでは、変換の選択数は
内部メモリのサイズにより決定され、数キロバイト程度
のメモリを登載することにより、約千種類の暗号鍵、す
なわち変換規則を用意するのが限界であろう。しかしな
がら、最近のマイクロプロセッサのアドレス空間は10
9 バイトに及ぶものもあり、このようなCPUに対して
千個の鍵を用意しても、106 バイト毎に同じ鍵を使用
せざるを得ない。On the other hand, in the processor with imitation prevention function disclosed in Japanese Patent Laid-Open No. 63-145532, the number of selections of conversion is determined by the size of the internal memory, and by installing a memory of several kilobytes, there are about 1,000 types. It would be the limit to prepare the encryption key, that is, the conversion rule. However, the address space of recent microprocessors is 10
Some have 9 bytes, and even if a thousand keys are prepared for such a CPU, the same key must be used every 10 6 bytes.
【0010】上述のように従来技術では、異なるアドレ
スにおいて同じ平文が同じ暗号データに対応する確率が
高いために、解読に対する強度が十分でないという問題
があった。As described above, the conventional technique has a problem that the same plaintext at different addresses corresponds to the same encrypted data with high probability, so that the strength against decryption is not sufficient.
【0011】[0011]
【課題を解決するための手段】本発明の暗号化データ処
理装置は、平文に対して暗号鍵を用いて異なる暗号変換
を施した暗号データを格納するメモリを接続し、アドレ
ス出力、データ入出力を有するデータ処理手段と、前記
アドレス出力の一部または全部を暗号鍵として入力し、
該暗号鍵が前記平文に対する暗号鍵と同一の時に前記暗
号変換の逆変換となる復号変換を行い前記データ処理手
段のデータ入力に与える復号手段を有することを特徴と
する。The encrypted data processing apparatus of the present invention is connected to a memory for storing encrypted data obtained by performing different encryption conversion on plaintext by using an encryption key, and outputs an address and data input / output. And a part or all of the address output as an encryption key,
When the encryption key is the same as the encryption key for the plaintext, a decryption unit that performs a decryption conversion that is an inverse conversion of the encryption conversion and provides the data input of the data processing unit is provided.
【0012】[0012]
【作用】本発明の構成では、暗号変換および復号変換の
鍵入力として、アドレスの値を直接変換式の中に組み込
むことにより、一つの変換手段によって、同一の平文に
対応する暗号化データが、アドレスが異なれば高い確率
で異なる値になるような変換を用いることが可能であ
る。本発明は、このような暗号変換を用いることによ
り、解読に対する強度を改善した暗号化データ処理装置
を提供する。In the structure of the present invention, the address value is directly incorporated into the conversion formula as the key input for the encryption conversion and the decryption conversion, so that the encrypted data corresponding to the same plaintext can be obtained by one converting means. It is possible to use a conversion in which different addresses have different values with high probability. The present invention provides an encrypted data processing device with improved strength against decryption by using such cryptographic conversion.
【0013】また、装置内部に秘密情報を保持し、その
秘密情報なしには復号変換が行えないような性質を暗号
変換に持たせ、装置毎あるいはプログラムやデータ毎に
異なる秘密情報を用いた暗号化を施せば、万が一ある暗
号データが解読されても、被害が広く及ばず、その後も
異なる秘密情報を用いて同一の装置を使い続けることが
できる。これを実現するために、秘密情報保持手段と秘
密情報入力手段を備え、秘密情報をアドレス情報と共に
暗号変換および復号変換の鍵入力とした装置も提案して
いる。Further, the secret information is stored inside the device, and the cryptographic conversion has a property that the decryption conversion cannot be performed without the secret information, and the cryptographic information using the secret information different for each device or each program or data is used. If the encrypted data is decrypted, the damage will not be widespread even if the encrypted data is decrypted, and the same device can be continuously used with different secret information even after that. In order to realize this, there is also proposed an apparatus which includes a secret information holding unit and a secret information input unit and uses the secret information together with the address information as a key input for encryption conversion and decryption conversion.
【0014】次に、本発明の装置の暗号強度を更に高め
るために、暗号変換および復号変換に求められる性質と
構成について説明する。Next, in order to further increase the encryption strength of the device of the present invention, the properties and configuration required for encryption conversion and decryption conversion will be described.
【0015】暗号変換において、固定の暗号入力を与え
た場合でも、鍵入力の変化に応じて非常に多くの復号出
力が現れるならば、異なるアドレスにおいて同一の平文
が同一の暗号データに変換される確率は低くなり、前に
述べたような解読に対して与えるヒントが激減し、すな
わち解読されにくくなる。従来技術ではこの多様性は回
路規模により制限されていたが、暗号化および復号変換
にアドレス値を直接利用することによりこの問題を解決
している。 鍵入力を固定した時に、平文の1ビットの
変化が、暗号データの固定のビット位置にのみ変化を及
ぼさないような暗号変換も、解読に対する強度を高め
る。従来の暗号変換は、高速性を重んじるばかりに、鍵
情報と入力データのビット毎の排他的論理和(XOR)
およびビット転置を組み合わせる方法が主流であったと
思われるが、この方法では暗号データの特定ビットを改
ざんすることにより、復号データの特定のビットを変更
できるため、試行錯誤による暗号解読のヒントを与えて
しまう。In the cryptographic conversion, even when a fixed cryptographic input is given, if a large number of decryption outputs appear in response to changes in the key input, the same plaintext is converted into the same encrypted data at different addresses. The probability is low, and the hints given to the deciphering as described above are drastically reduced, that is, they are hard to decipher. In the prior art, this variety was limited by the circuit scale, but this problem is solved by directly using the address value for encryption and decryption conversion. Cryptographic conversion in which a 1-bit change in plaintext does not change only in a fixed bit position of the encrypted data when the key input is fixed also increases the strength against decryption. The conventional cryptographic conversion not only emphasizes high speed, but also performs exclusive OR (XOR) for each bit of key information and input data.
It seems that the mainstream method was to combine bit transposition and bit transposition, but this method can change specific bits of decrypted data by tampering with specific bits of encrypted data, thus giving a hint of decryption by trial and error. I will end up.
【0016】暗号変換の入出力が簡単な式で対応つけら
るようなものであれば、解析的な暗号解読も可能となっ
てしまう。先ほど述べた排他的論理和とビット転置を組
み合わせた方法は、平文入力と鍵入力の各ビットを変数
に置いた場合に、出力の各ビットが、入力の1変数と鍵
の1変数との2を法とする単なる加算で対応づけられ、
逆変換式の算出も容易である。入出力の各ビットまたは
ビットの組を変数とした時に、入出力の各変数が一次式
で対応づけられないような非線形の変換を暗号変換とし
て用いれば、このような解析的手法による暗号解読は困
難となる。If the input and output of the cryptographic conversion can be associated with a simple expression, analytical decryption will be possible. In the method of combining the exclusive OR and the bit transposition described above, when each bit of the plaintext input and the key input is placed in a variable, each bit of the output is equal to 2 of 1 variable of the input and 1 variable of the key. Correspond by mere addition modulo,
It is easy to calculate the inverse conversion formula. When each input / output bit or set of bits is used as a variable, if a non-linear conversion in which each input / output variable cannot be associated with a linear expression is used as the cryptographic conversion, the cryptanalysis by such an analytical method is not possible. It will be difficult.
【0017】平文と暗号化データの対を複数集めても鍵
入力を簡単には求められないこと、すなわち暗号分野で
いうところのいわゆる既知平文攻撃が不可能なことは、
近代暗号に要求される最も重要な性質である。この性質
を満たす暗号変換を用いれば、万が一に暗号変換や復号
変換のアルゴリズムが漏洩した場合であっても、前述の
秘密情報が明らかにならない限り暗号を解読することは
できない。Even if a plurality of pairs of plaintext and encrypted data are collected, key input is not easily required, that is, the so-called known plaintext attack in the cryptographic field is impossible.
This is the most important property required for modern cryptography. If the cryptographic conversion that satisfies this property is used, even if the algorithm of the cryptographic conversion or the decryption conversion is leaked, the cipher cannot be decrypted unless the secret information is disclosed.
【0018】上記で述べたような性質を満たす暗号変換
の具体的な回路構成は様々なものが考えられる。しかし
ながら、実用に耐える回路規模と変換速度の制限を満た
す変換を構成することは容易ではない。本発明ではこれ
を満たすような回路構成をもいくつか提案している。Various concrete circuit configurations of the cryptographic conversion satisfying the properties described above are conceivable. However, it is not easy to construct a conversion that satisfies practical circuit scale and conversion speed limits. The present invention also proposes some circuit configurations that satisfy this requirement.
【0019】まず、入力を複数のビットからなる複数の
グループに分割し、それぞれに個別に変換を施す方法で
ある。この方法では、個別の変換の入力ビット数を小さ
くすることにより、一括して変換する場合に比べて回路
規模を小さくし、更に、個別変換を並列に行うことによ
り、高速化も可能とする。例えば暗号変換において、1
6ビット入力16ビット出力の乱数表が格納されたRO
Mを用いる方法と、16ビットの平文入力を4ビットず
つ4分割して、4ビット入力4ビット出力の乱数表が格
納されたROMを4つ並列に用いて個別変換するケース
を比較してみる。入出力のビット数が4分の1になった
ことにより、1個のROMの回路規模は約43 分の1に
なり、4個分でも前者の16分の1の回路規模となる。
ROMの処理速度も約4倍になると考えられ、すなわち
速度も向上する。ビットの入れ替えなどを挟んで同様の
処理を2回行えば、出力データの各ビットは入力データ
の全ビットに依存するように構成できる。このような処
理の中に鍵入力をうまく組み込めば、入出力間の相関性
はほぼランダムとなる。なお、乱数表ROM以外の変換
手段を用いた場合でも同様の効果が期待できる。First, there is a method in which an input is divided into a plurality of groups of a plurality of bits and each of them is individually converted. In this method, the number of input bits for individual conversion is reduced to reduce the circuit scale as compared with the case where conversion is performed all at once, and further, individual conversion is performed in parallel, which enables high speed operation. For example, in cryptographic conversion, 1
RO storing a random number table of 6-bit input and 16-bit output
Compare the method using M and the case where 16-bit plaintext input is divided into 4 by 4 bits and the individual conversion is performed by using 4 ROMs storing the 4-bit input 4-bit output random number table in parallel. . By the number of bits of the input and output becomes 1/4, it is one of the circuit scale of ROM is about 4 one-third, it is the former 16 minutes of first circuit scale of four minutes.
It is considered that the processing speed of the ROM is about four times as high, that is, the speed is also improved. If the same processing is performed twice with the bit exchange and the like, each bit of the output data can be configured to depend on all the bits of the input data. If the key input is successfully incorporated into such processing, the correlation between the input and output becomes almost random. The same effect can be expected even when a conversion means other than the random number table ROM is used.
【0020】[0020]
【実施例】図1から図5に本発明の実施例を示す。本発
明の装置100は、データ入力301とデータ出力30
2とアドレス出力303を有するデータ処理装置30
0、暗号入力401と復号出力402と鍵入力403,
404を有する復号手段、平文入力501と暗号出力5
02と鍵入力503, 504を有する暗号化手段、秘密
情報格納手段610と秘密情報入力手段620、などか
ら構成され、データ出力201とデータ入力202とア
ドレス入力203を有する外部メモリ200と接続され
て使用される。1 to 5 show an embodiment of the present invention. The device 100 of the present invention comprises a data input 301 and a data output 30.
2 and data output device 30 having address output 303
0, cipher input 401, decryption output 402, key input 403,
Decryption means having 404, plaintext input 501 and cipher output 5
02 and key inputs 503 and 504, an encryption means, a secret information storage means 610 and a secret information input means 620, and the like, and are connected to an external memory 200 having a data output 201, a data input 202, and an address input 203. used.
【0021】データ処理手段100のデータ入力101
およびデータ出力102は、入出力両方の機能を兼ね備
えるデータバスを使用することも可能である。また、暗
号化されていないメモリを読み込むこともできるよう、
復号手段に非暗号化領域を判定する手段を持たせ、復号
変換の実行を制御することも考え得る。Data input 101 of the data processing means 100
The data output 102 can also use a data bus having both input and output functions. Also, to be able to read unencrypted memory,
It is also conceivable that the decryption means has a means for determining the non-encrypted area and the execution of the decryption conversion is controlled.
【0022】図1の実施例では、CPU300のアドレ
ス出力303に応じて外部メモリ200のデータ出力2
01に出力された暗号データを、復号回路400の暗号
入力401に入力し、鍵入力403を鍵として復号した
結果を復号出力402より出力し、CPU300のデー
タ入力301に与える。この構成では、CPU300の
データ出力302は暗号化されずに外部メモリ200に
書き出されるため、CPU300が書き出したデータを
再度読み込む場合に、復号回路はこれを判断して変換を
行わないようにする必要がある。この判断は、例えば前
述のような非暗号化領域の判定手段を用意して、読み出
し専用(ROM)領域と読み書き両用(RAM)領域の
区別を行えば良い。図1の構成は、ROM上に格納した
プログラムおよびデータのみを保護すれば良いような用
途に適している。In the embodiment of FIG. 1, the data output 2 of the external memory 200 according to the address output 303 of the CPU 300.
The encrypted data output to 01 is input to the encryption input 401 of the decryption circuit 400, the result of decryption using the key input 403 as a key is output from the decryption output 402, and the result is given to the data input 301 of the CPU 300. In this configuration, the data output 302 of the CPU 300 is written in the external memory 200 without being encrypted. Therefore, when the data written by the CPU 300 is read again, the decryption circuit must judge this and prevent conversion. There is. For this determination, for example, the above-mentioned non-encrypted area determination means may be prepared to distinguish between a read-only (ROM) area and a read / write (RAM) area. The configuration of FIG. 1 is suitable for applications in which only the programs and data stored on the ROM need be protected.
【0023】図2の実施例では、図1の構成に暗号化回
路500を加えて、CPU300のデータ出力302を
暗号化回路500の平文入力501に入力し、鍵入力5
03を鍵として暗号化した結果を暗号出力502より出
力し、外部メモリ200に与えている。これにより、R
OM領域のみならずRAM領域の暗号化が可能となり、
CPU300の処理する生のデータを外部に全く出さな
いことにより、解読に対する強度が向上する。In the embodiment of FIG. 2, the encryption circuit 500 is added to the configuration of FIG. 1, the data output 302 of the CPU 300 is input to the plaintext input 501 of the encryption circuit 500, and the key input 5 is input.
The result of encryption using 03 as a key is output from the cipher output 502 and given to the external memory 200. This gives R
Not only OM area but also RAM area can be encrypted,
By not transmitting the raw data processed by the CPU 300 to the outside at all, the strength against decoding is improved.
【0024】図3の実施例では、図1の構成に秘密情報
保持手段610と秘密情報入力手段620を加え、秘密
情報保持手段610に格納された秘密情報を、復号手段
400の鍵入力404に与えている。同様に、図4の実
施例では、図2の構成に秘密情報保持手段610と秘密
情報入力手段620を加え、秘密情報保持手段610に
格納された秘密情報を、復号手段400の鍵入力404
および暗号化手段500の鍵入力504に与えている。
秘密情報保持手段610は、例えばバッテリバックアッ
プされたレジスタや、EPROM等の後書き可能なメモ
リを用いて実現できる。In the embodiment of FIG. 3, secret information holding means 610 and secret information input means 620 are added to the configuration of FIG. 1, and the secret information stored in the secret information holding means 610 is input to the key input 404 of the decryption means 400. I'm giving. Similarly, in the embodiment of FIG. 4, a secret information holding unit 610 and a secret information input unit 620 are added to the configuration of FIG. 2, and the secret information stored in the secret information holding unit 610 is input to the key input 404 of the decryption unit 400.
And is given to the key input 504 of the encryption means 500.
The secret information holding unit 610 can be realized using, for example, a battery-backed register or a post-writable memory such as EPROM.
【0025】秘密情報保持手段610を持たない構成で
は、万が一発明の暗号データ処理装置と同一の機能を実
現する複製装置が作成された場合、それ以前に出荷され
たソフトウェアやデータがその複製装置を用いれば全て
利用可能となってしまう。勿論それ以後はその装置を使
用する意義は失われ、別の暗号変換を用いた装置を新た
に開発しなければならない。In the configuration without the secret information holding means 610, in the unlikely event that a duplication device that realizes the same function as the encrypted data processing device of the invention is created, software or data shipped before that will cause the duplication device to operate. If you use it, you can use everything. Of course, after that, the significance of using the device is lost, and a device using another cryptographic conversion must be newly developed.
【0026】図3および図4の構成の如く、秘密情報保
持手段610を持った構成であれば、同様の複製装置が
作成された場合においても、その秘密情報保持手段61
0に格納されるべき正しい秘密情報を入手しなければ、
暗号化されたメモリの情報を利用することはできない。
次に、本発明の装置の暗号変換および復号変換の一実
施例について説明する。暗号化回路の実施例を図5に、
図5の暗号変換の逆変換を施す復号回路の実施例を図6
に示す。With the configuration having the secret information holding means 610 as shown in FIGS. 3 and 4, even when a similar copying apparatus is created, the secret information holding means 61 is provided.
If you do not get the correct secret information that should be stored in 0,
The information in the encrypted memory cannot be used.
Next, an embodiment of encryption conversion and decryption conversion of the device of the present invention will be described. An embodiment of the encryption circuit is shown in FIG.
FIG. 6 shows an embodiment of a decryption circuit which performs inverse conversion of the cryptographic conversion of FIG.
Shown in.
【0027】図5の暗号変換回路例500は、32ビッ
トの鍵入力に応じて16ビットの平文入力から16ビッ
トの暗号出力を出力する暗号変換を実現する回路であ
り、4ビット入力4ビット出力の変換ROM511〜5
18と、16ビット入力を4ビットずつ4つに分割する
ビット分割回路521〜522と、4つの4ビット入力
を16ビットに再合成するビット合成回路531〜53
2と、16ビットのビット毎の排他的論理和をとる排他
的論理和回路541〜542とから構成されている。変
換処理は、16ビットの平文入力に対して、まず、鍵入
力503の一部の16ビットとビット毎の排他的論理和
をとり、この出力をビット分割回路521により4ビッ
トずつ4つに分割し、4ビットの各々に対して変換RO
M511〜514を用いて変換を施し、ビット統合回路
531を用いて再度16ビットにまとめる。得られた出
力に対して同様に、鍵入力503の残りの16ビットと
ビット毎の排他的論理和をとり、この出力をビット分割
回路522により4ビットずつ4つに分割し、4ビット
の各々に対して変換ROM515〜518を用いて変換
を施し、ビット統合回路532を用いて再度16ビット
にまとめ、暗号出力502に出力する。The cipher conversion circuit example 500 of FIG. 5 is a circuit for realizing cipher conversion which outputs a 16-bit cipher output from a 16-bit plaintext input in response to a 32-bit key input, and is a 4-bit input 4-bit output. Conversion ROMs 511-5
18, bit division circuits 521 to 522 for dividing a 16-bit input into four 4 bits each, and bit combination circuits 531 to 53 for re-combining four 4-bit inputs into 16 bits.
2 and exclusive-OR circuits 541 to 542 that take an exclusive-OR for each 16-bit bit. In the conversion process, for a 16-bit plaintext input, first, 16 bits of a part of the key input 503 is exclusive-ORed with each bit, and this output is divided into 4 bits by 4 bits by a bit division circuit 521. And convert RO for each of the 4 bits
Conversion is performed using M511 to 514, and the bits are combined into 16 bits again using the bit integration circuit 531. Similarly, for the obtained output, the remaining 16 bits of the key input 503 and the bitwise exclusive OR are calculated, and this output is divided into 4 by 4 bits by the bit division circuit 522, and each of the 4 bits is divided. The conversion ROMs 515 to 518 are used to perform conversion, the bits are integrated into 16 bits again using the bit integration circuit 532, and output to the cipher output 502.
【0028】変換ROM511〜518が行う変換の例
を図7に示す。この表は、例えば、ROM511に入力
1010が与えられた時に0110が出力されることを
示している。このような変換手段は特にROMである必
要はなく、任意の回路で構成することができるが、でき
るだけランダムな変換を行うものが好ましい。FIG. 7 shows an example of conversion performed by the conversion ROMs 511 to 518. This table shows that 0110 is output when the input 1010 is given to the ROM 511, for example. Such conversion means does not have to be a ROM in particular, and can be composed of an arbitrary circuit, but it is preferable to perform conversion as random as possible.
【0029】図6の復号変換回路例400は、32ビッ
トの鍵入力に応じて16ビットの暗号入力から16ビッ
トの復号出力を出力する復号変換を実現する回路であ
り、4ビット入力4ビット出力の変換ROM411〜4
18と、16ビット入力を4ビットずつ4つに分割する
ビット分割回路421〜422と、4つの4ビット入力
を16ビットに再合成するビット合成回路431〜43
2と、16ビットのビット毎の排他的論理和をとる排他
的論理和回路441〜442とから構成されている。変
換処理は、16ビットの暗号入力に対して、まず、鍵入
力403の一部の16ビットとビット毎の排他的論理和
をとり、この出力をビット分割回路422により4ビッ
トずつ4つに分割し、4ビットの各々に対して変換RO
M515〜518を用いて変換を施し、ビット統合回路
532を用いて再度16ビットにまとめる。得られた出
力に対して同様に、鍵入力503の残りの16ビットと
ビット毎の排他的論理和をとり、この出力をビット分割
回路521により4ビットずつ4つに分割し、4ビット
の各々に対して変換ROM511〜514を用いて変換
を施し、ビット統合回路531を用いて再度16ビット
にまとめ、復号出力502に出力する。The decryption conversion circuit example 400 of FIG. 6 is a circuit for realizing decryption conversion for outputting a 16-bit decryption output from a 16-bit encryption input in response to a 32-bit key input, and is a 4-bit input 4-bit output. Conversion ROMs 411-4
18, bit division circuits 421 to 422 that divide a 16-bit input into four 4 bits each, and bit synthesis circuits 431 to 43 that re-synthesize four 4-bit inputs into 16 bits.
2 and exclusive-OR circuits 441 and 442 that take an exclusive-OR for each 16-bit bit. In the conversion process, for a 16-bit cipher input, first, 16 bits of a part of the key input 403 and an exclusive OR of each bit are taken, and this output is divided into four by 4 bits by a bit division circuit 422. And convert RO for each of the 4 bits
Conversion is performed using M515 to 518, and the bits are combined into 16 bits again using the bit integration circuit 532. Similarly, for the obtained output, the remaining 16 bits of the key input 503 are exclusive-ORed bit by bit, and this output is divided into 4 bits by 4 bits by the bit division circuit 521, and each of the 4 bits is obtained. The conversion ROMs 511 to 514 are used to perform conversion, and the bit integration circuit 531 is used to reassemble them into 16 bits and output the decoded output 502.
【0030】変換ROM411〜418の行う変換の例
を図8に示す。図7の各変換ROM511〜518の変
換と図7の各変換ROM411〜418の変換とは、互
いに逆変換の関係となっている。また、ビット分割回路
521, 522, 421, 422は、それぞれビット合
成回路431, 432, 531, 532と互いに逆変換
の関係にある。したがって、排他的論理和回路541,
542に鍵入力503から入力する値と、排他的論理和
回路441, 442に鍵入力403から入力する値が等
しい場合に、暗号変換と復号変換が互いに逆変換である
ことが保証される。FIG. 8 shows an example of conversion performed by the conversion ROMs 411 to 418. The conversions of the conversion ROMs 511 to 518 in FIG. 7 and the conversions of the conversion ROMs 411 to 418 in FIG. 7 have an inverse conversion relationship with each other. Further, the bit division circuits 521, 522, 421, 422 are in inverse conversion relation with the bit synthesis circuits 431, 432, 531, 532, respectively. Therefore, the exclusive OR circuit 541,
When the value input from the key input 503 to 542 and the value input from the key input 403 to the exclusive OR circuits 441 and 442 are equal, it is guaranteed that the encryption conversion and the decryption conversion are inverse conversions.
【0031】図5の暗号変換回路に注目すると、平文入
力501の1ビットの変化は変換ROM511〜514
の内どれかに入力され、ビット合成回路531の入力の
4ビットに影響を与える。また、同じように、ビット合
成回路531の出力の1ビットの変化は変換ROM51
5〜518のどれかに入力され、ビット合成回路532
の入力の4ビットに影響を与える。そこで、ビット合成
回路531が、変換ROM511の出力4ビットを1ビ
ットずつ変換ROM515〜518に与えるようにビッ
トを並べかえ、変換ROM512〜514の出力も同じ
ように並べかえれば、平文入力501の内の1ビットの
変化は、暗号出力502の16ビット(つまりすべて)
に影響を及ぼすことになり、言い替えれば、入力の1ビ
ットの変化が出力の任意のビットに変化を及ぼす可能性
を秘めていることになる。鍵入力503についても同様
な性質が得られる。このような性質は暗号解読を非常に
困難にする。Focusing on the cipher conversion circuit of FIG. 5, the change of 1 bit of the plaintext input 501 is caused by the conversion ROMs 511 to 514.
, And affects the 4 bits of the input of the bit synthesizing circuit 531. Similarly, the 1-bit change in the output of the bit synthesizing circuit 531 is detected by the conversion ROM 51.
5 to 518, and the bit synthesizing circuit 532 is input.
Affects 4 bits of input. Therefore, if the bit synthesizing circuit 531 rearranges the bits so that the output 4 bits of the conversion ROM 511 are given to the conversion ROMs 515 to 518 one by one, and the outputs of the conversion ROMs 512 to 514 are rearranged in the same manner, the plaintext input 501 The change of 1 bit is 16 bits of cipher output 502 (that is, all)
, In other words, a change in one bit of the input has the potential to change in any bit of the output. Similar characteristics can be obtained for the key input 503. This property makes decryption very difficult.
【0032】図5における暗号変換は、平文入力に固定
の入力を与えた場合でも、鍵入力を変化させることによ
って、暗号出力に暗号出力が取りうる全て又はほとんど
の値が出現する変換でもよいし、鍵入力を固定して平文
入力の任意の1ビットを反転した時に暗号出力側で反転
するビットの位置が、鍵入力および平文入力によって変
換する変換でもよいし、暗号出力の各ビットの値が、平
文入力の値の一次式で表現できない非線形変換でもよい
し、暗号変換又は復号変換のアルゴリズムが知られた場
合においても平文と暗号化データの対から鍵入力を容易
には求められない変換でもよい。The cryptographic conversion in FIG. 5 may be a conversion in which even if a fixed input is given to the plaintext input, by changing the key input, all or most of the values that can be taken by the cryptographic output appear in the cryptographic output. , When the key input is fixed and any one bit of the plaintext input is inverted, the position of the bit to be inverted on the cipher output side may be the conversion to be converted by the key input and the plaintext input, or the value of each bit of the cipher output may be , A non-linear transformation that cannot be expressed by a linear expression of the plaintext input value, or a transformation in which a key entry cannot be easily obtained from a plaintext / encrypted data pair even when an algorithm for encryption or decryption transformation is known. Good.
【0033】[0033]
【発明の効果】メモリ上の暗号化された情報は、本発明
の装置および秘密情報を入手しなければ使用できないた
め、メモリのコピーによるプログラムまたはデータの盗
用を防止できる。従来は同じ平文が同じ暗号データに変
換される確率が高かったために容易に暗号解読されてい
たが、暗号変換のパラメータとしてアドレス情報を直接
利用することによりこれを防止し、解読に対する強度を
向上させた暗号化メモリ処理装置を提供する。Since the encrypted information on the memory cannot be used without obtaining the device and the secret information of the present invention, it is possible to prevent the program or data from being stolen by copying the memory. In the past, the same plaintext was easily decrypted because it had a high probability of being converted into the same encrypted data, but by directly using address information as a parameter for encryption conversion, this is prevented and the strength against decryption is improved. An encrypted memory processing device is provided.
【図1】本発明の一実施例を示すブロック図FIG. 1 is a block diagram showing an embodiment of the present invention.
【図2】暗号化手段を備えた本発明の一実施例を示すブ
ロック図FIG. 2 is a block diagram showing an embodiment of the present invention including encryption means.
【図3】秘密情報保持手段を備えた本発明の一実施例を
示すブロック図FIG. 3 is a block diagram showing an embodiment of the present invention including a secret information holding unit.
【図4】暗号化手段と秘密情報保持手段を備えた本発明
の一実施例を示すブロック図FIG. 4 is a block diagram showing an embodiment of the present invention including an encryption means and a secret information holding means.
【図5】本発明の暗号化手段の一実施例を示すブロック
図FIG. 5 is a block diagram showing an embodiment of encryption means of the present invention.
【図6】図5の暗号化手段の逆変換を行う復号手段を示
すブロック図FIG. 6 is a block diagram showing a decryption unit that performs inverse conversion of the encryption unit of FIG.
【図7】図5の変換ROMの変換の例を示す変換表7 is a conversion table showing an example of conversion of the conversion ROM of FIG.
【図8】図6の変換ROMの変換の例を示す変換表8 is a conversion table showing an example of conversion in the conversion ROM of FIG.
【図9】従来の暗号命令処理装置のブロック図FIG. 9 is a block diagram of a conventional cryptographic instruction processing device.
【図10】従来の模倣防止機能付プロセッサのブロック
図FIG. 10 is a block diagram of a conventional processor with imitation prevention function.
100 本発明の一実施例を示すブロック図 200 外部メモリ 201 データ出力 202 データ入力 203 アドレス入力 300 データ処理手段 301 データ入力 302 データ出力 303 アドレス出力 400 復号手段 401 暗号入力 402 復号出力 403、404 鍵入力 411〜418 変換ROM 421〜422 ビット分割回路 431〜432 ビット合成回路 441〜443 排他的論理和回路 500 暗号化手段 501 平文入力 502 暗号出力 503、504 鍵入力 511〜518 変換ROM 521〜522 ビット分割回路 531〜532 ビット合成回路 541〜543 排他的論理和回路 610 秘密情報保持手段 620 秘密情報入力手段 910 従来の装置 911 命令実行手段 912 プログラムカウンタ 913 選択回路 914 アドレス領域判定回路 915〜917 第1の命令解釈手段 930 従来の装置 931 データ処理手段 932 データ入力 933 アドレス出力 934 変換回路 935 内部メモリ 100 Block diagram showing an embodiment of the present invention 200 External memory 201 Data output 202 Data input 203 Address input 300 Data processing means 301 Data input 302 Data output 303 Address output 400 Decryption means 401 Encryption input 402 Decryption output 403, 404 Key input 411-418 conversion ROM 421-422 bit division circuit 431-432 bit synthesis circuit 441-443 exclusive OR circuit 500 encryption means 501 plaintext input 502 cipher output 503, 504 key input 511-518 conversion ROM 521-522 bit division Circuit 531 to 532 Bit combining circuit 541 to 543 Exclusive OR circuit 610 Confidential information holding means 620 Confidential information input means 910 Conventional device 911 Instruction execution means 912 Program counter 91 Selection circuit 914 address area determination circuit 915 to 917 the first instruction interpreting means 930 conventional device 931 the data processing means 932 data inputs 933 address output 934 conversion circuit 935 internal memory
Claims (5)
施した暗号データを格納するメモリを接続し、アドレス
出力、データ入出力を有するデータ処理手段と、前記ア
ドレス出力の一部または全部を暗号鍵として入力し、該
暗号鍵が前記平文に対する暗号鍵と同一の時に前記暗号
変換の逆変換となる復号変換を行い前記データ処理手段
のデータ入力に与える復号手段を有することを特徴とす
る暗号化データ処理装置。1. A data processing means having an address output, data input / output, and a part or all of the address output, which is connected to a memory for storing encrypted data obtained by performing encryption conversion on plaintext by using an encryption key. Is input as an encryption key, and when the encryption key is the same as the encryption key for the plaintext, a decryption conversion that is an inverse conversion of the encryption conversion is performed, and the decryption means is provided to the data input of the data processing means. Encrypted data processing device.
前記データ処理手段のデータ出力を暗号変換する暗号化
手段を更に備え、前記暗号化手段の出力を前記アドレス
出力に応じて前記メモリに書き込むことを特徴とする請
求項1記載の暗号化データ処理装置。2. Entering the same encryption key as the decryption means,
2. The encrypted data processing device according to claim 1, further comprising an encryption unit that performs a cryptographic conversion of the data output of the data processing unit, and writes the output of the encryption unit in the memory according to the address output. .
手段と、前記秘密情報を入力して前記秘密情報保持手段
に格納するための秘密情報入力手段とを更に備え、前記
アドレス出力の一部または全部と、前記秘密情報保持手
段に保持された秘密情報とを前記復号手段及び前記暗号
化手段の暗号鍵とすることを特徴とする請求項1又は2
記載の暗号化データ処理装置。3. A secret information holding means for holding secret information, and a secret information input means for inputting the secret information and storing it in the secret information holding means, further comprising a part of the address output. 3. The whole or all of the secret information held by the secret information holding means is used as an encryption key of the decryption means and the encryption means.
The encrypted data processing device described.
とも一方を、複数のビットから構成される複数のグルー
プに分解し、該グループの各々に対して変換を施した
後、再度合成する処理を1つ以上含む変換であることを
特徴とする請求項1、2又は3記載の暗号化データ処理
装置。4. The encryption conversion is a process of decomposing at least one of a plaintext and an encryption key into a plurality of groups composed of a plurality of bits, converting each of the groups, and then synthesizing again. 4. The encrypted data processing device according to claim 1, wherein the encrypted data processing device is a conversion including one or more of:
ビット幅を持つ暗号鍵を入力とし、該暗号鍵を該平文と
等しいビット幅に縮小し、該平文の各ビット毎の排他的
論理和をとることを特徴とする請求項1、2又は3記載
の暗号化データ処理装置。5. The encryption conversion uses an encryption key having a bit width equal to or larger than the bit width of plaintext as an input, reduces the encryption key to a bit width equal to the plaintext, and performs an exclusive logic for each bit of the plaintext. The encrypted data processing device according to claim 1, 2 or 3, wherein a sum is taken.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5187849A JPH0744375A (en) | 1993-07-29 | 1993-07-29 | Ciphered data processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5187849A JPH0744375A (en) | 1993-07-29 | 1993-07-29 | Ciphered data processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0744375A true JPH0744375A (en) | 1995-02-14 |
Family
ID=16213298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5187849A Pending JPH0744375A (en) | 1993-07-29 | 1993-07-29 | Ciphered data processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0744375A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006308636A (en) * | 2005-04-26 | 2006-11-09 | Kenwood Corp | Device and method for producing speech database, speech database, device and method for restoring speech segment, speech database, and program |
US7487552B2 (en) | 1995-08-11 | 2009-02-03 | Sony Corporation | Method and apparatus for ciphering playback mode information for recording on record medium |
EP2413305A1 (en) * | 2009-03-23 | 2012-02-01 | Fujitsu Limited | Data processing device and data processing method |
US11061830B2 (en) | 2017-01-18 | 2021-07-13 | Fujitsu Limited | Data output control apparatus, information processing apparatus, and data output control method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5987546A (en) * | 1982-11-12 | 1984-05-21 | Hitachi Yonezawa Denshi Kk | Software protecting system |
JPS59173847A (en) * | 1983-03-23 | 1984-10-02 | Oyo Syst Kenkyusho:Kk | Method and device for protecting computer software |
-
1993
- 1993-07-29 JP JP5187849A patent/JPH0744375A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5987546A (en) * | 1982-11-12 | 1984-05-21 | Hitachi Yonezawa Denshi Kk | Software protecting system |
JPS59173847A (en) * | 1983-03-23 | 1984-10-02 | Oyo Syst Kenkyusho:Kk | Method and device for protecting computer software |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7487552B2 (en) | 1995-08-11 | 2009-02-03 | Sony Corporation | Method and apparatus for ciphering playback mode information for recording on record medium |
JP2006308636A (en) * | 2005-04-26 | 2006-11-09 | Kenwood Corp | Device and method for producing speech database, speech database, device and method for restoring speech segment, speech database, and program |
JP4620518B2 (en) * | 2005-04-26 | 2011-01-26 | 株式会社ケンウッド | Voice database manufacturing apparatus, sound piece restoration apparatus, sound database production method, sound piece restoration method, and program |
EP2413305A1 (en) * | 2009-03-23 | 2012-02-01 | Fujitsu Limited | Data processing device and data processing method |
JPWO2010109516A1 (en) * | 2009-03-23 | 2012-09-20 | 富士通株式会社 | Data processing apparatus and data processing method |
JP5541277B2 (en) * | 2009-03-23 | 2014-07-09 | 富士通株式会社 | Data processing apparatus and data processing method |
EP2413305A4 (en) * | 2009-03-23 | 2015-04-29 | Fujitsu Ltd | Data processing device and data processing method |
US11061830B2 (en) | 2017-01-18 | 2021-07-13 | Fujitsu Limited | Data output control apparatus, information processing apparatus, and data output control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
EP1440535B1 (en) | Memory encrytion system and method | |
CN106888080B (en) | Protecting white-box feistel network implementations from false attacks | |
US7764786B2 (en) | Protection of a DES algorithm | |
US20070071236A1 (en) | High speed configurable cryptographic architecture | |
US20060265563A1 (en) | Word-individual key generation | |
US20080062803A1 (en) | System and method for encrypting data | |
JP2000162965A (en) | Ciphering and deciphering device, and storage medium | |
US8045712B2 (en) | Stream ciphering of the content of a memory external to a processor | |
NO20006385L (en) | Block ciphers with integer multiplication and data dependent and fixed number of rotations in each round | |
JP6877889B2 (en) | Cryptographic device, encryption method, decryption device, and decryption method | |
JP2011512562A (en) | Random encryption and decryption method for access and communication data | |
WO2006033347A1 (en) | Confidential information processing method, confidential information processing device, and content data reproducing device | |
WO2019031026A1 (en) | Encryption device, encryption method, decryption device, and decryption method | |
US9602281B2 (en) | Parallelizable cipher construction | |
CN114444140A (en) | Non-duplicable function application in memory | |
EP1351430B1 (en) | Expansion key generating device, encryption device and encryption system | |
US20050138403A1 (en) | Data encryption in a symmetric multiprocessor electronic apparatus | |
KR100456599B1 (en) | Cryptographic apparatus with parallel des structure | |
EP2413305B1 (en) | Data processing device and data processing method | |
JPH0697930A (en) | Block cipher processor | |
JPH0744375A (en) | Ciphered data processor | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
JP4515716B2 (en) | Extended key generation device, encryption device, and encryption system | |
Landge et al. | VHDL based Blowfish implementation for secured embedded system design |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19960903 |