JPH1139156A - Enciphered data decoding device - Google Patents
Enciphered data decoding deviceInfo
- Publication number
- JPH1139156A JPH1139156A JP9195451A JP19545197A JPH1139156A JP H1139156 A JPH1139156 A JP H1139156A JP 9195451 A JP9195451 A JP 9195451A JP 19545197 A JP19545197 A JP 19545197A JP H1139156 A JPH1139156 A JP H1139156A
- Authority
- JP
- Japan
- Prior art keywords
- decryption
- support program
- encryption key
- encrypted data
- decoding
- 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]
【産業上の利用分野】本発明は、暗号化されたデータを
復号する技術に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for decrypting encrypted data.
【0002】[0002]
【従来の技術】従来、暗号方式をコンピュータ・システ
ムに適用し、暗号化されたプログラムやデータを復号し
て利用する場合には、そのシステムの上で動作する復号
プログラム(復号計算およびそれを支援するプログラ
ム)を実行するのが一般的である(特開平3−6802
4号公報)。ところで、仕様が公開されたオープンなコ
ンピュータ・システムにおいては、プログラムの解析お
よび改変が容易であるため、復号プログラムの復号支援
部分(以下、復号支援プログラムともいう)を改変する
ことにより、元の復号プログラムの仕様に反して、復号
したデータを不正に利用することが簡単にできてしま
い、システム全体の安全性は低くなるという問題があっ
た。暗合方式の進歩はめざましく、強力な暗号強度をも
つ暗号方式が多く提案されている。しかし、復号プログ
ラムの解析、改変による問題は、使用している暗号方式
の安全性には依存しないため、いくら高い強度をもつ暗
号方式を採用しても、解決することはできない。2. Description of the Related Art Conventionally, when an encryption method is applied to a computer system and an encrypted program or data is decrypted and used, a decryption program (decryption calculation and support for the decryption program that operates on the system) is performed. Is generally executed (Japanese Unexamined Patent Publication No. 3-6802).
No. 4). By the way, in an open computer system in which specifications are disclosed, it is easy to analyze and modify a program. Therefore, by modifying a decryption support part (hereinafter also referred to as a decryption support program) of a decryption program, the original decryption is performed. Contrary to the specifications of the program, there is a problem that the decrypted data can be easily used illegally, and the security of the entire system is reduced. The progress of the encryption scheme has been remarkable, and many encryption schemes having strong encryption strength have been proposed. However, the problem due to the analysis and modification of the decryption program does not depend on the security of the encryption method used, and therefore cannot be solved even if an encryption method having a high strength is adopted.
【0003】この問題を解決しようとする提案として、
復号プログラム自体を暗号化し、データ復号時にのみ復
号プログラムを復号して、データ復号作業を行う手段を
採用し、これにより、復号プログラムの解析および改変
を困難にするものが知られている(特開平9−6232
号公報)。しかし、復号プログラムを復号するのも、結
局プログラムによって行われるため、本質的な解決にな
っておらず、解析と改変に要するコストを多少増加させ
るという効果しかない。しかも、近年のコンピュータの
性能向上を考慮すると、増加するコストは大きな障害と
はなり得ないため、復号プログラムの解析と改変を効果
的に防止することができないという問題がある。また、
いったん復号プログラムの改変に成功してしまえば、改
竄プログラムの実行を防ぐことはできず、意図しない目
的への復号したデータの流用の防止ができないという問
題がある。[0003] As a proposal to solve this problem,
It is known to employ means for encrypting the decryption program itself, decrypting the decryption program only at the time of data decryption, and performing data decryption work, thereby making it difficult to analyze and modify the decryption program (Japanese Patent Application Laid-Open No. HEI 9-163572). 9-6232
No.). However, the decoding of the decryption program is ultimately performed by the program, and is not an essential solution. The only effect is that the cost required for analysis and modification is slightly increased. In addition, considering the recent improvement in computer performance, the increased cost cannot be a major obstacle, and thus there is a problem that analysis and alteration of the decryption program cannot be effectively prevented. Also,
Once the decryption program has been successfully modified, execution of the falsification program cannot be prevented, and there is a problem that the use of decrypted data for an unintended purpose cannot be prevented.
【0004】また、復号プログラムの改変を防止する手
段として、CPUがメモリにアクセスするアドレスを監
視して、予想される正当な復号プログラムのメモリアク
セスパターンと比較した結果、正当と判断した場合は、
メモリアクセスを許可するが、不正と判断した場合に
は、メモリアクセスを遮断することにより、意図しない
不正なデータ利用を防止する提案がある(特開平5−3
24483号公報)。しかし、機器組込用のプログラム
がROMで供給されるような特殊な小規模システムなら
ば、プログラムは固定したアドレス位置に存在するた
め、CPUがアクセスするアドレスを監視することによ
り、復号プログラムの正当性の判断が可能だが、一般的
なシステムでは、プログラムのロードされるアドレスは
動的に決定されるため、アクセスするアドレス情報で復
号プログラムを判定することができないという問題があ
る。また、不正判定基準のアクセスパターンを容易に変
更することができないので、拡張性に乏しく、多くの暗
号化データに対応することが難しい。そのため、この手
法は一般的なコンピュータ・システムにおいて、使用す
ることはできないという問題がある。Further, as means for preventing the decryption program from being altered, the CPU monitors the address for accessing the memory and compares the address with the expected memory access pattern of the valid decryption program.
There is a proposal to permit memory access, but to prevent unauthorized use of unintended data by shutting off memory access when it is determined to be illegal (Japanese Patent Laid-Open No. 5-3).
No. 24483). However, in the case of a special small-scale system in which a program for embedding equipment is supplied by a ROM, the program exists at a fixed address position. However, in a general system, since the address at which a program is loaded is dynamically determined, there is a problem that a decryption program cannot be determined based on address information to be accessed. In addition, since the access pattern of the fraud criterion cannot be easily changed, the scalability is poor, and it is difficult to handle a large amount of encrypted data. Therefore, there is a problem that this method cannot be used in a general computer system.
【0005】以上に述べたとおり従来の技術では、一般
的なコンピュータ・システムにおいて、復号プログラム
が改変されていない正当なものであることを、復号時に
認証することができず、この結果、改変された復号プロ
グラムの実行を防ぐことができないかった。このため、
改竄、改変された復号プログラムによる、復号したデー
タの意図しない目的への流用を効果的に防止できない。
そのため、暗号方式の強度にかかわらず、システム全体
の安全性は低くなってしまうという問題がある。As described above, in the conventional technology, it is not possible to authenticate at the time of decryption that the decryption program is legitimate without modification in a general computer system. Could not prevent the execution of the decryption program. For this reason,
Diversion of the decrypted data for unintended purposes by a falsified or altered decryption program cannot be effectively prevented.
Therefore, there is a problem that the security of the entire system is lowered regardless of the strength of the encryption method.
【0006】[0006]
【発明が解決しようとする課題】本発明は、仕様が公開
されたオープンなコンピュータ・システムにおいても、
復号プログラムの正当性を暗号化データの復号時に認証
できるようにし、これにより、改竄された復号プログラ
ムによる意図しない目的への復号したデータの流用を防
止することを課題としている。SUMMARY OF THE INVENTION The present invention relates to an open computer system in which specifications are disclosed.
An object of the present invention is to make it possible to authenticate the validity of a decryption program at the time of decryption of encrypted data, thereby preventing the use of the decrypted data for an unintended purpose by a falsified decryption program.
【0007】[0007]
【課題を解決するための手段】本発明によれば、上述の
目的を達成するために、コンピュータ・システムに実装
されて暗号化されたデータを復号する暗号化データ復号
装置に、暗号化されたデータを暗号鍵に基づき復号する
データ復号手段と、上記暗号鍵が正当なものであること
を認証する暗号鍵認証手段と、CPUから復号指示の受
取ったとき、復号支援プログラム中にある、上記復号指
示を出した命令コードのメモリ・アドレスを検出するア
ドレス検出手段と、上記命令コードのメモリ・アドレス
に基づいて上記復号支援プログラムが正当なものである
ことを認証する復号支援プログラム認証手段とを設ける
ようにしている。According to the present invention, in order to achieve the above-mentioned object, an encrypted data decryption apparatus mounted on a computer system for decrypting encrypted data is provided. Data decryption means for decrypting data based on an encryption key, encryption key authentication means for authenticating that the encryption key is valid, and a decryption support program which, when receiving a decryption instruction from the CPU, includes Address detection means for detecting the memory address of the instruction code that issued the instruction, and decryption support program authentication means for verifying that the decryption support program is valid based on the memory address of the instruction code Like that.
【0008】この構成においては、復号支援プログラム
中の復号指示を出した命令コードのメモリ・アドレスに
基づいて、例えば、予め定められた領域のコードの内容
を検証し、復号支援プログラムの正当性を認証できる。
この場合、復号支援プログラムがメモリのどの領域にロ
ードされていても検出した命令コードのアドレスを利用
して適合化できる。In this configuration, for example, based on the memory address of the instruction code in the decryption support program that issued the decryption instruction, the contents of the code in a predetermined area are verified, and the validity of the decryption support program is verified. Can be authenticated.
In this case, adaptation can be performed using the address of the detected instruction code regardless of which area of the memory the decoding support program is loaded.
【0009】[0009]
【発明の実施の態様】つぎに、本発明の実施例につい
て、図面を参照して説明する。図1は、本発明の復号装
置を用いて暗号化データを復号するコンピュータ・シス
テムを示している。この実施例においては、コンピュー
タ・システムに実装された復号装置100と、コンピュ
ータ・システムで実行される復号支援プログラムとによ
り暗号化データの復号を行う。Next, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 shows a computer system for decrypting encrypted data using the decryption device of the present invention. In this embodiment, encrypted data is decrypted by a decryption device 100 mounted on a computer system and a decryption support program executed by the computer system.
【0010】図1において、内部バス201に、CPU
202、I/O部203、復号装置100、およびメモ
リ205を接続して、コンピュータ・システムが構成さ
れる。CPU202は、一般的なストアードプログラム
方式のもので、メモリ205に格納されたプログラムコ
ードを、内部バス201を介して読取って解釈を行い、
読取ったプログラムコードの指示に従い動作する。シス
テムの利用者は、CPU202に内部バス201を介し
て、I/O部203とメモリ205に格納されたデータ
に、アクセスするよう、プログラムで指示を与えること
により、意図する通りにシステムを利用することができ
る。In FIG. 1, a CPU is connected to an internal bus 201.
The computer system is configured by connecting the 202, the I / O unit 203, the decoding device 100, and the memory 205. The CPU 202 is of a general stored program type, reads and interprets a program code stored in the memory 205 via the internal bus 201,
It operates according to the instruction of the read program code. The user of the system uses the system as intended by giving instructions to the CPU 202 via the internal bus 201 to access the data stored in the I / O unit 203 and the memory 205 by a program. be able to.
【0011】図2は、図1の復号装置100の構成例を
示す。この図において、復号装置100は、データ復号
部101、暗号鍵認証部102、アドレス検出部10
3、復号支援プログラム認証部104、および不正アク
セス防止部105を含んで構成されている。データ復号
部101は、暗号化されたデータを暗号鍵に基づき復号
するものである。暗号鍵認証部102は、その暗号鍵3
03(図5)が正当なものであることを認証するもので
ある。アドレス検出部103は、CPU202から復号
の指示の受取ったとき、復号支援プログラム301(図
3)中にある、その復号指示を出した命令コードのメモ
リ・アドレスを検出するものである。復号支援プログラ
ム認証部104は、復号支援プログラム301が正当な
ものであることを認証するものである。また、不正アク
セス防止部105は、復号支援プログラム301の実行
中に割込み等で不正に処理の流れを奪われた場合に、そ
れを検知し対抗処置をとるものである。FIG. 2 shows an example of the configuration of the decoding device 100 shown in FIG. In this figure, a decryption device 100 includes a data decryption unit 101, an encryption key authentication unit 102, an address detection unit 10
3. It includes a decryption support program authentication unit 104 and an unauthorized access prevention unit 105. The data decryption unit 101 decrypts the encrypted data based on the encryption key. The encryption key authentication unit 102 outputs the encryption key 3
03 (FIG. 5) is authenticated as being valid. Upon receiving a decoding instruction from the CPU 202, the address detection unit 103 detects the memory address of the instruction code in the decoding support program 301 (FIG. 3) that issued the decoding instruction. The decryption support program authentication unit 104 authenticates that the decryption support program 301 is valid. Further, the unauthorized access prevention unit 105 detects an illegally deprived flow of processing due to an interruption or the like during execution of the decryption support program 301 and takes countermeasures.
【0012】図3は、暗号化されたデータを復号すると
きの、メモリ内のデータ格納状況を表したものである。
図3において、復号支援プログラム301は、暗号化さ
れたデータ302を復号して、復号データ格納領域30
4に格納するよう復号装置100に指令を出し、意図し
た目的のために復号データを利用するプログラムであ
る。暗号鍵303(図5参照)は、暗号化データを復号
するために必要な鍵データである。復号支援プログラム
301、暗号化されたデータ302、暗号鍵303、復
号データ格納領域304のメモリ205における格納ア
ドレスは、p、c、kおよびdである。FIG. 3 shows a data storage state in the memory when the encrypted data is decrypted.
In FIG. 3, the decryption support program 301 decrypts the encrypted data 302 and
4 is a program that issues a command to the decoding device 100 to store the data in the decoding device 4 and uses the decoded data for an intended purpose. The encryption key 303 (see FIG. 5) is key data necessary for decrypting the encrypted data. The storage addresses of the decryption support program 301, the encrypted data 302, the encryption key 303, and the decrypted data storage area 304 in the memory 205 are p, c, k, and d.
【0013】図4は、復号支援プログラムのメモリ格納
状態の概念図である。図4において、メモリ205上
の、アドレスpからpendまでが復号支援プログラム3
01が格納される領域である。復号支援プログラム30
1の中には、復号装置204に復号指示を発行する、復
号指示発行部分402が含まれ、このコードが格納され
るアドレスはprである。復号指示発行部分402のア
ドレスprから、前にpreバイト、後ろにpostバ
イトで区切ったブロックが、復号支援プログラム検証ブ
ロック403である。復号支援プログラム検証ブロック
403のメッセージ要約数を用いて、復号支援プログラ
ムの正当性を判断する。preとpostは、暗号鍵3
03で指定される(図5参照)。FIG. 4 is a conceptual diagram of a storage state of the decryption support program in the memory. In FIG. 4, addresses p to p end on the memory 205 correspond to the decryption support program 3.
01 is an area for storing. Decryption support program 30
1 includes a decryption instruction issuing portion 402 for issuing a decryption instruction to the decryption device 204, and the address where this code is stored is pr. From the address pr of the decryption instruction issuance part 402, a block separated by a pre byte before and a post byte after is a decryption support program verification block 403. The validity of the decryption support program is determined using the number of message digests in the decryption support program verification block 403. pre and post are encryption keys 3
03 (see FIG. 5).
【0014】図5は、暗号鍵303の構成図である。暗
号鍵303はデジタルデータであり、暗号の復号鍵50
1、復号支援プログラムのメッセージ要約数502、検
証領域範囲指定503、および暗号鍵全体の署名504
から構成される。FIG. 5 is a configuration diagram of the encryption key 303. The encryption key 303 is digital data, and the encryption decryption key 50
1. The number of message digests 502 of the decryption support program, the verification area range designation 503, and the signature 504 of the entire encryption key
Consists of
【0015】図6は、暗号鍵303を生成する暗号鍵生
成装置の構成例を示しており、図6において、暗号鍵生
成装置は検証範囲指定部505、復号支援プログラム入
力部506、復号鍵入力部507、メッセージ要約数生
成部508、署名生成部509および暗号鍵出力部51
0を含んで構成されている。検証範囲指定部505は、
復号指示コードのアドレス、検証ブロックを特定するバ
イト数preおよびpostを受け取る。メッセージ要
約数生成部508は、検証範囲指定部505で指定され
た範囲で復号支援プログラムのメッセージ要約数を生成
する。署名生成部509は、復号鍵入力部507から入
力された復号鍵、検証ブロック指定情報のバイト数pr
eおよびpostおよびメッセージ要約数生成部508
で生成したメッセージ要約数に対して署名を生成する。
暗号鍵出力部510は、復号鍵、メッセージ要約数、ブ
ロック指定情報のpreおよびpost、署名を一体に
して出力する。FIG. 6 shows an example of the configuration of an encryption key generation device for generating the encryption key 303. In FIG. 6, the encryption key generation device includes a verification range designation section 505, a decryption support program input section 506, and a decryption key input section. Unit 507, message digest number generation unit 508, signature generation unit 509, and encryption key output unit 51
0 is included. The verification range designation unit 505
It receives the address of the decoding instruction code and the number of bytes pre and post specifying the verification block. The message digest count generation unit 508 generates the message digest count of the decryption support program within the range specified by the verification range specification unit 505. The signature generation unit 509 receives the decryption key input from the decryption key input unit 507 and the number of bytes pr of the verification block designation information.
e and post and message digest count generator 508
Generate a signature for the number of message summaries generated in.
The encryption key output unit 510 integrally outputs the decryption key, the number of message digests, pre and post of block designation information, and a signature.
【0016】つぎに、本実施例の復号処理について説明
する。本実施例では、復号処理は復号支援プログラム3
01および復号装置100が共同して行う。図7は、復
号支援プログラム301のフローチャートである。図8
は、復号装置100の処理の流れを表すフローチャート
である。図7において、暗号化データを復号するため
に、復号支援プログラム301の実行が開始されると、
まず前処理が行われる(ステップ601)。前処理で
は、暗号化データ302と暗号鍵303をメモリ205
にロードし、復号データを格納する領域304を確保し
て、図3に示す通りにメモリ格納状況を構成する作業
や、その他の必要な前処理作業を行う。次に、暗号鍵の
格納アドレスk、暗号化データの格納アドレスc、復号
データの指定格納アドレスdを復号装置100に与え
る。具体的には内部バス201を通じて、復号装置10
0にマップされたI/Oアドレスに、k、c、dを出力
することにより行う(ステップ602)。もちろん、別
の方法で復号装置100と通信しても構わない。Next, the decoding process of the embodiment will be described. In this embodiment, the decryption processing is performed by the decryption support program 3
01 and the decoding device 100. FIG. 7 is a flowchart of the decryption support program 301. FIG.
Is a flowchart showing the flow of the process of the decoding device 100. In FIG. 7, when the execution of the decryption support program 301 is started to decrypt the encrypted data,
First, preprocessing is performed (step 601). In the preprocessing, the encrypted data 302 and the encryption key 303 are stored in the memory 205.
And secures an area 304 for storing decrypted data, and performs a work of configuring a memory storage state as shown in FIG. 3 and other necessary preprocessing work. Next, the storage address k of the encryption key, the storage address c of the encrypted data, and the designated storage address d of the decrypted data are given to the decryption device 100. Specifically, the decoding device 10
This is performed by outputting k, c, and d to the I / O address mapped to 0 (step 602). Of course, the communication with the decoding device 100 may be performed by another method.
【0017】この後、復号装置100に復号処理を行う
よう指示を発行する(ステップ603)。このとき、ス
テップ603に相当する命令コードが格納されているア
ドレスがPrである。この指示の発行は、具体的には、
内部バス201を通じて、復号装置100にマップされ
たI/Oアドレスに、指示命令を出力することにより行
われる。Thereafter, an instruction is issued to the decryption device 100 to perform decryption processing (step 603). At this time, the address where the instruction code corresponding to step 603 is stored is Pr. Issuance of this instruction, specifically,
This is performed by outputting an instruction command to the I / O address mapped to the decoding device 100 via the internal bus 201.
【0018】復号を行う復号装置100は、内部バス2
01を介して、CPU202がどのようなアクセスをし
ているかを、監視することができる。また、CPUを介
さずに直接メモリにアクセス(DMA:Direct
Memory Access)することができる。加え
て、CPU202の動作を制御し、必要に応じてCPU
202を一時停止状態に保ったり、動作を再開させるこ
とができる。The decoding device 100 that performs decoding uses the internal bus 2
01, it is possible to monitor what access the CPU 202 is making. In addition, the memory is directly accessed without going through the CPU (DMA: Direct
Memory Access). In addition, the operation of the CPU 202 is controlled, and the CPU
202 can be kept in a paused state or the operation can be resumed.
【0019】図8において、復号指示を受けた復号装置
100は、ステップ701において、ただちにCPU2
02の動作を一時停止させ、暗号鍵303の格納アドレ
スk、暗号化データ302の格納アドレスc、復号デー
タの指定格納アドレスdを読取る(ステップ701)。
これにより復号支援プログラム301はステップ603
で一時停止状態となる。以下の復号装置100のメモリ
205へのアクセスはすべてDMAを用いる。In FIG. 8, the decryption apparatus 100 having received the decryption instruction immediately proceeds to
02 is temporarily stopped, and the storage address k of the encryption key 303, the storage address c of the encrypted data 302, and the designated storage address d of the decrypted data are read (step 701).
As a result, the decryption support program 301 executes step 603
Will be in a pause state. The following access to the memory 205 of the decoding device 100 uses DMA.
【0020】復号装置100の処理はステップ702に
進む。ステップ702では、CPU202のメモリ20
5へのアクセスの監視によって、復号指示発行の命令コ
ードの格納アドレスPrを取得する。The processing of the decoding device 100 proceeds to step 702. In step 702, the memory 20 of the CPU 202
The storage address Pr of the instruction code for issuing the decryption instruction is obtained by monitoring the access to No. 5.
【0021】次にステップ703において、暗号鍵30
3の認証を行う。暗号鍵303には、暗号鍵全体の署名
504が用意されており、電子書名認証技術により、正
当な暗号鍵であるか認証する。具体的には、復号装置に
は署名認証鍵が用意されており、RSA(Rivest
−Shamir−Adelman)公開鍵暗号技術と、
一方向ハッシュ関数を用いたメッセージ要約生成技術を
用いて認証を行う。もちろん、他の方式で認証しても構
わない。Next, at step 703, the encryption key 30
Perform 3 authentication. The encryption key 303 is provided with a signature 504 of the entire encryption key, and the electronic signature verification technique is used to authenticate whether the key is valid. Specifically, a signature authentication key is prepared in the decryption device, and RSA (Rivest
-Shamir-Adelman) public key cryptography,
Authentication is performed using a message digest generation technique using a one-way hash function. Of course, other methods may be used for authentication.
【0022】もし認証に失敗した場合は、暗号鍵303
が改竄されている可能性がある。復号装置100は、暗
号鍵303が正当なものでないと見なし、ステップ70
5に進む。ステップ705において、CPU動作を再開
させ、CPUに「暗号鍵の認証に失敗」を意味するエラ
ーコードを返す。具体的には、復号装置100にマップ
されたI/Oアドレスにアクセスすることにより、CP
U202が読出すことができるレジスタにエラーコード
を格納する。もちろん、別の方法でCPU202と通信
しても構わない。動作を再開した復号支援プログラム3
01では、ステップ605の分岐でエラーが発生したと
判断し、ステップ606でエラー処理を行い、復号を行
わずに終了する。If the authentication fails, the encryption key 303
May have been tampered with. The decryption device 100 determines that the encryption key 303 is not valid and
Go to 5. In step 705, the CPU operation is restarted, and an error code meaning "failure of encryption key authentication" is returned to the CPU. Specifically, by accessing the I / O address mapped to the decoding device 100, the CP
The error code is stored in a register that can be read by U202. Of course, the communication with the CPU 202 may be performed by another method. Decryption support program 3 that resumed operation
In step 01, it is determined that an error has occurred in the branch of step 605, and error processing is performed in step 606, and the processing ends without decoding.
【0023】ステップ703において暗号鍵303の認
証に成功した場合は、ステップ704へ処理を進める。
ステップ704において、暗号鍵303から検証範囲指
定503を取得し、Pr−preからPr+postま
での領域について、一方向ハッシュ関数を用いたメッセ
ージ要約数を算出する。If the authentication of the encryption key 303 is successful in step 703, the process proceeds to step 704.
In step 704, the verification range designation 503 is obtained from the encryption key 303, and the number of message digests using the one-way hash function is calculated for the region from Pr-pre to Pr + post.
【0024】続いて、ステップ706において、暗号鍵
303中の復号支援プログラムの検証領域のメッセージ
要約数502と、前ステップ704で算出したメッセー
ジ要約数を比較する。もしこれらが一致しなかった場
合、CPU202が実行している復号支援プログラム3
01が、暗号鍵303の発行者が意図したものと異なる
ことを意味する。復号装置100は、復号支援プログラ
ム301が改竄されたものと見なして、ステップ707
に進む。ステップ707において、CPU202の動作
を再開させ、CPUに「復号支援プログラムの認証に失
敗」を意味するエラーコードを返す。具体的には、復号
装置100にマップされたI/Oアドレスにアクセスす
ることにより、CPU202が読出すことができるレジ
スタにエラーコードを格納する。もちろん、別の方法で
CPU202と通信しても構わない。動作を再開した復
号支援プログラム301は、図7のステップ605の分
岐でエラーが発生したと判断し、ステップ606でエラ
ー処理を行い、復号を行わずに終了する。Then, in step 706, the number of message digests 502 in the verification area of the decryption support program in the encryption key 303 is compared with the number of message digests calculated in the previous step 704. If they do not match, the decryption support program 3
01 means different from what the issuer of the encryption key 303 intended. The decryption device 100 determines that the decryption support program 301 has been tampered with, and proceeds to step 707.
Proceed to. In step 707, the operation of the CPU 202 is restarted, and an error code meaning "authentication of the decryption support program failed" is returned to the CPU. Specifically, an error code is stored in a register that can be read by CPU 202 by accessing an I / O address mapped to decoding device 100. Of course, the communication with the CPU 202 may be performed by another method. The decryption support program 301 that has resumed operation determines that an error has occurred in the branch of step 605 in FIG. 7, performs error processing in step 606, and ends without decoding.
【0025】図8のステップ706で復号支援プログラ
ムの認証に成功した場合は、ステップ708へ処理を進
める。ステップ708において、復号装置100は、暗
号鍵303から暗号の復号鍵501を取得して、暗号化
されたデータの復号処理を行う。具体的には、暗号の復
号鍵と復号装置の装置ごとに別々のものが用意されてい
る秘密鍵の2つから、DES(Data Encryp
tion Standard)等のブロック暗号の復号
鍵を生成し、ブロック暗号復号器に、DMAで暗号化さ
れたデータを読出し、復号結果をDMAで復号データ領
域に書出す。もちろん、どのような方法の暗号/復号方
式を用いても構わない。If the authentication of the decryption support program is successful in step 706 of FIG. 8, the process proceeds to step 708. In step 708, the decryption device 100 acquires the decryption key 501 of the encryption from the encryption key 303, and performs decryption processing of the encrypted data. Specifically, the DES (Data Encrypt) is obtained from two of a decryption key for encryption and a secret key prepared separately for each decryption device.
A decryption key of a block cipher such as Tion Standard) is generated, the data encrypted by the DMA is read to the block cipher decryptor, and the decryption result is written to the decrypted data area by the DMA. Of course, any method of encryption / decryption may be used.
【0026】復号処理が終わった後は、ステップ709
に進み、復号したデータを利用する。利用後は必要に応
じて、復号したデータをメモリ205から消去すること
により、意図しない目的に復号したデータを用いられる
ことを防止できる。After completion of the decryption processing, step 709
To use the decrypted data. After use, the decrypted data is deleted from the memory 205 as needed, thereby preventing the use of the decrypted data for an unintended purpose.
【0027】また、復号装置100は、CPU202の
内部バス201へのアクセスを監視することにより、復
号支援プログラム301がCPU202により実行され
ている間に不正な割込み等により処理の流れを奪う操作
を検知できる。不正に処理の流れが奪われたことを検知
した場合、復号作業を即刻中止し、それまでに復号した
データもDMAにより破壊する。この機能により、ハー
ドウェア割り込みによるプログラムの動作への干渉を排
除することができ、さらに安全性が向上する。Further, the decryption apparatus 100 monitors the access of the CPU 202 to the internal bus 201, and detects an operation that steals the processing flow due to an illegal interrupt or the like while the decryption support program 301 is being executed by the CPU 202. it can. If it is detected that the processing flow has been illegally taken, the decoding operation is immediately stopped, and the data decoded so far is also destroyed by the DMA. With this function, it is possible to eliminate interference with the operation of the program due to a hardware interrupt, and further improve safety.
【0028】[0028]
【発明の効果】以上説明したように本発明は、復号支援
プログラムの正当性を、復号時にチェックすることによ
り、改竄された復号支援プログラムによる意図しない目
的への復号したデータの流用を防止する。これにより、
復号支援プログラムの耐改変性を高めることができ、暗
号強度に見合ったシステムの安全性を得ることができ
る。As described above, the present invention prevents the use of decrypted data for an unintended purpose by a falsified decryption support program by checking the validity of the decryption support program at the time of decryption. This allows
The alteration resistance of the decryption support program can be improved, and the security of the system corresponding to the encryption strength can be obtained.
【図1】 本発明の実施例のコンピュータ・システムの
構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a computer system according to an embodiment of the present invention.
【図2】 上述実施例の復号装置の構成を示すブロック
図である。FIG. 2 is a block diagram illustrating a configuration of a decoding device according to the above embodiment.
【図3】 暗号化されたデータを復号するときのメモリ
内のデータ格納状況を説明する図である。FIG. 3 is a diagram illustrating a data storage state in a memory when decrypting encrypted data.
【図4】 復号支援プログラムのメモリ格納状態の概念
的に示す図である。FIG. 4 is a diagram conceptually showing a storage state of a decryption support program in a memory.
【図5】 暗号鍵の構成を説明する図である。FIG. 5 is a diagram illustrating a configuration of an encryption key.
【図6】 暗号鍵を生成する暗号鍵生成装置の構成例を
示すブロック図である。FIG. 6 is a block diagram illustrating a configuration example of an encryption key generation device that generates an encryption key.
【図7】 復号支援プログラムの動作を説明するフロー
チャートである。FIG. 7 is a flowchart illustrating the operation of a decryption support program.
【図8】 復号装置の処理の流れを説明するフローチャ
ートである。FIG. 8 is a flowchart illustrating a flow of a process performed by the decoding device.
100 復号装置 101 データ復号部 102 アドレス検出部 103 復号支援プログラム認証部 104 不正アクセス防止部 201 バス 202 CPU 203 I/O部 205 メモリ REFERENCE SIGNS LIST 100 decryption device 101 data decryption unit 102 address detection unit 103 decryption support program authentication unit 104 unauthorized access prevention unit 201 bus 202 CPU 203 I / O unit 205 memory
Claims (11)
号化されたデータを復号する暗号化データ復号装置おい
て、 暗号化されたデータを暗号鍵に基づき復号するデータ復
号手段と、 上記暗号鍵が正当なものであることを認証する暗号鍵認
証手段と、 CPUから復号指示の受取ったとき、復号支援プログラ
ム中の上記復号指示を出した命令コードのメモリ・アド
レスを検出するアドレス検出手段と、 上記命令コードのメモリ・アドレスに基づいて上記復号
支援プログラムが正当なものであることを認証する復号
支援プログラム認証手段とを有することを特徴とする暗
号化データ復号装置。1. An encrypted data decryption device mounted on a computer system for decrypting encrypted data, comprising: data decryption means for decrypting the encrypted data based on an encryption key; Encryption key authentication means for authenticating that the decryption instruction has been received; address detection means for detecting, when a decryption instruction is received from the CPU, a memory address of the instruction code in the decryption support program which issued the decryption instruction; Decryption support program authentication means for verifying that the decryption support program is valid based on the memory address of the code.
み等で不正に処理の流れを奪われた場合に、それを検知
し対抗処置をとる不正アクセス防止手段をさらに有する
請求項1記載の暗号化データ復号装置。2. The encryption system according to claim 1, further comprising an unauthorized access prevention means for detecting and taking a countermeasure when the flow of the processing is illegally taken by an interrupt or the like during execution of the decryption support program. Data decoding device.
記命令コードのメモリ・アドレスにより決定される所定
のメモリ・アドレス範囲のコードの内容が真正なもので
あるかどうかを検証する請求項1または2記載の暗号化
データ復号装置。3. The decryption support program authentication means verifies whether or not the contents of a code in a predetermined memory address range determined by the memory address of the instruction code are genuine. An encrypted data decryption device according to the above.
ドの内容の所定の関数による計算結果に基づいて上記所
定のメモリ・アドレス範囲のコードの内容が真正なもの
であることを検証する請求項3記載の暗号化データ復号
装置。4. A method for verifying that the contents of the code in the predetermined memory address range are genuine based on a calculation result of the contents of the code in the predetermined memory address range by a predetermined function. An encrypted data decryption device according to the above.
する請求項4記載の暗号化データ復号装置。5. The encrypted data decryption device according to claim 4, wherein said predetermined function is a predetermined one-way function.
ムから生成した参照値を保持し、上記復号支援プログラ
ム検証手段による計算結果と、上記暗号鍵が保持する上
記計算結果とを比較して上記復号支援プログラムの正当
性が認証される請求項4または5記載の暗号化データ復
号装置。6. The encryption key holds a reference value generated from a genuine decryption support program, and compares the calculation result by the decryption support program verification means with the calculation result held by the encryption key. 6. The encrypted data decryption device according to claim 4, wherein the validity of the decryption support program is authenticated.
レス範囲を指定する情報をさらに保持し、上記参照値は
指定されたメモリ・アドレス範囲に基づいて生成される
請求項6記載の暗号化データ復号装置。7. The encryption method according to claim 6, wherein the encryption key further holds information for specifying the predetermined memory address range, and the reference value is generated based on the specified memory address range. Data decoding device.
号化されたデータを復号する暗号化データ復号装置おい
て、 暗号化されたデータを暗号鍵に基づき復号するデータ復
号手段と、 CPUから所定の情報がバスに転送されたとき、復号支
援プログラム中にある、上記所定の情報を上記バスに転
送した命令コードのメモリ・アドレスを検出するアドレ
ス検出手段と、 上記命令コードのメモリ・アドレスにより決定される所
定のメモリ・アドレス範囲の上記復号支援プログラムの
内容に基づいて上記復号支援プログラムが正当なもので
あることを認証する復号支援プログラム認証手段とを有
することを特徴とする暗号化データ復号装置。8. An encrypted data decryption device mounted on a computer system for decrypting encrypted data, comprising: data decryption means for decrypting the encrypted data based on an encryption key; Is transferred to the bus, an address detecting means for detecting a memory address of an instruction code which has transferred the predetermined information to the bus in the decoding support program, and is determined by a memory address of the instruction code. Decryption support program authentication means for verifying that the decryption support program is valid based on the contents of the decryption support program in a predetermined memory address range.
上記暗号化データを復号するために用いる復号支援プロ
グラムの所定の範囲のコードの所定の関数による計算結
果と、上記暗号化鍵本体および上記計算結果に対する署
名とを含む暗号鍵情報を生成する暗号鍵情報生成装置。9. An encryption key body for decrypting encrypted data,
An encryption key for generating encryption key information including a calculation result of a predetermined function of a code in a predetermined range of a decryption support program used for decrypting the encrypted data, the encryption key body, and a signature for the calculation result; Information generation device.
と、上記暗号化データを復号するために用いる復号支援
プログラムの所定の範囲のコードの所定の関数による計
算結果と、上記暗号化鍵本体および上記計算結果に対す
る署名とを含む暗号鍵情報を受け取るステップと、 暗号化データを復号するときに、復号に用いる復号支援
プログラムの上記所定の範囲に対応するメモリ領域に展
開されたコードを取り出すステップと、 上記取り出されたコードの上記所定の関数による計算結
果を生成するステップと、 生成された上記計算結果と、上記暗号鍵情報中の上記計
算結果とを比較するステップと、 上記比較の結果に基づいて、上記復号に用いる復号支援
プログラムの真正を検証するステップとを有することを
特徴とする復号支援プログラム検証方法。10. An encryption key body for decrypting encrypted data, a result of calculation of a code in a predetermined range of a decryption support program used for decrypting the encrypted data by a predetermined function, the encryption key body, Receiving encryption key information including a signature for the calculation result; and, when decrypting the encrypted data, extracting a code developed in a memory area corresponding to the predetermined range of the decryption support program used for decryption. Generating a calculation result of the extracted code by the predetermined function; comparing the generated calculation result with the calculation result in the encryption key information; based on the comparison result Verifying the authenticity of the decryption support program used for the decryption. Method.
して転送されたとき、復号支援プログラム中にある、上
記復号指示を出した命令コードのメモリ・アドレスを検
出するアドレス検出手段と、 上記命令コードのメモリ・アドレスに基づいて上記復号
支援プログラムが正当なものであることを認証する認証
手段とを有することを特徴とするコンピュータ・システ
ム。11. A bus, a CPU connected to the bus, a memory connected to the bus, and an authentication device connected to the bus, wherein the authentication device transmits encrypted data from the CPU. Address detection means for detecting the memory address of the instruction code that issued the decoding instruction when the decoding instruction is transferred via the bus, based on the memory address of the instruction code. Computer means for authenticating that the decryption support program is legitimate.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9195451A JPH1139156A (en) | 1997-07-22 | 1997-07-22 | Enciphered data decoding device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9195451A JPH1139156A (en) | 1997-07-22 | 1997-07-22 | Enciphered data decoding device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1139156A true JPH1139156A (en) | 1999-02-12 |
Family
ID=16341294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9195451A Pending JPH1139156A (en) | 1997-07-22 | 1997-07-22 | Enciphered data decoding device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1139156A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004095449A1 (en) * | 2003-04-24 | 2004-11-04 | Sony Corporation | Information processing device and information processing method |
WO2005052768A1 (en) * | 2003-11-28 | 2005-06-09 | Matsushita Electric Industrial Co., Ltd. | Secret information processing system and lsi |
JP2005165919A (en) * | 2003-12-05 | 2005-06-23 | Fuji Xerox Co Ltd | Program execution method, program creation method, information processor and program |
JP2006101289A (en) * | 2004-09-30 | 2006-04-13 | Felica Networks Inc | Information encryption system, management server, service provisioning server, information processing apparatus, and its program and method |
JP2006115418A (en) * | 2004-10-18 | 2006-04-27 | Ttt Kk | Copyright data distribution system, copyright data distribution method, and communication program for copyright data distribution |
US7216239B2 (en) | 2001-08-14 | 2007-05-08 | Nissan Motor Co., Ltd. | Counterfeit detecting program, method, and apparatus of digital data |
US7228423B2 (en) | 2002-08-01 | 2007-06-05 | Matsushita Electric Industrial Co., Ltd. | Apparatuses and methods for decrypting encrypted data and locating the decrypted data in a memory space used for execution |
JP2007235834A (en) * | 2006-03-03 | 2007-09-13 | Fujitsu Ltd | Encryption program and system and method |
JP2010529718A (en) * | 2007-05-22 | 2010-08-26 | イルデト・ビー・ヴイ | Data security |
US8135963B2 (en) | 2005-02-10 | 2012-03-13 | Panasonic Corporation | Program conversion device and program execution device |
-
1997
- 1997-07-22 JP JP9195451A patent/JPH1139156A/en active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7216239B2 (en) | 2001-08-14 | 2007-05-08 | Nissan Motor Co., Ltd. | Counterfeit detecting program, method, and apparatus of digital data |
US7747870B2 (en) | 2002-08-01 | 2010-06-29 | Panasonic Corporation | Apparatuses and methods for decrypting encrypted data and locating the decrypted data in a memory space used for execution |
US7228423B2 (en) | 2002-08-01 | 2007-06-05 | Matsushita Electric Industrial Co., Ltd. | Apparatuses and methods for decrypting encrypted data and locating the decrypted data in a memory space used for execution |
WO2004095449A1 (en) * | 2003-04-24 | 2004-11-04 | Sony Corporation | Information processing device and information processing method |
WO2005052768A1 (en) * | 2003-11-28 | 2005-06-09 | Matsushita Electric Industrial Co., Ltd. | Secret information processing system and lsi |
JP4517636B2 (en) * | 2003-12-05 | 2010-08-04 | 富士ゼロックス株式会社 | Execution program creation method, function program, and function program execution method |
JP2005165919A (en) * | 2003-12-05 | 2005-06-23 | Fuji Xerox Co Ltd | Program execution method, program creation method, information processor and program |
JP2006101289A (en) * | 2004-09-30 | 2006-04-13 | Felica Networks Inc | Information encryption system, management server, service provisioning server, information processing apparatus, and its program and method |
JP2006115418A (en) * | 2004-10-18 | 2006-04-27 | Ttt Kk | Copyright data distribution system, copyright data distribution method, and communication program for copyright data distribution |
US8135963B2 (en) | 2005-02-10 | 2012-03-13 | Panasonic Corporation | Program conversion device and program execution device |
JP2007235834A (en) * | 2006-03-03 | 2007-09-13 | Fujitsu Ltd | Encryption program and system and method |
JP2010529718A (en) * | 2007-05-22 | 2010-08-26 | イルデト・ビー・ヴイ | Data security |
US9025765B2 (en) | 2007-05-22 | 2015-05-05 | Irdeto B.V. | Data security |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3774260B2 (en) | Memory card security system device and memory card thereof | |
US6948065B2 (en) | Platform and method for securely transmitting an authorization secret | |
US7215771B1 (en) | Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network | |
US7747531B2 (en) | Method and system for delivery of secure software license information | |
JP3580333B2 (en) | How to equip the encryption authentication function | |
JP2004213216A (en) | Information security microcomputer and its program developing device and program development system | |
JP2003134110A (en) | Cryptographic communication equipment | |
JP2005157930A (en) | Confidential information processing system and lsi | |
JP3749640B2 (en) | IC card using device, IC card and storage medium | |
JPH1131105A (en) | Device and method for producing data capsule | |
JPH1139156A (en) | Enciphered data decoding device | |
KR20040058278A (en) | Method and device for protecting information against unauthorised use | |
JP2002244989A (en) | Device driver operating method | |
JP3684179B2 (en) | Memory card with security function | |
CN114816549B (en) | Method and system for protecting bootloader and environment variable thereof | |
CN112559979B (en) | Method for protecting software library authorized use on POS machine through hardware security chip | |
JP3868218B2 (en) | Content-restricted content display method and apparatus | |
CN113569272B (en) | Secure computer implementation method and secure computer | |
CN111523127B (en) | Authority authentication method and system for password equipment | |
JP2000287065A (en) | Image processing system | |
CN100437422C (en) | System and method for enciphering and protecting software using right | |
WO2006046484A1 (en) | Authentication method | |
CN113139171B (en) | Method and system for controlling software license and hardware license of ultrasonic diagnosis system | |
JP3797531B2 (en) | System for preventing unauthorized copying of digital data | |
JPH10164051A (en) | User authentication device and method |