JPH1139156A - 暗号化データ復号装置 - Google Patents
暗号化データ復号装置Info
- 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
- code
- 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
(57)【要約】
【課題】 復号支援プログラムの改竄により、暗号でプ
ロテクトしたデータが不正に流用されることを防止す
る。 【解決手段】 復号指示を受けた復号装置100は、C
PU202の動作を一時停止させる。アドレス検出部1
03は、CPU202のメモリアクセスを監視し、復号
指示発行の命令コードの格納アドレスPrを取得する。
暗号認証部102は、暗号鍵303の認証を行う。復号
支援プログラム認証部104は、暗号鍵303から検証
範囲指定(pre、post)を取得し、Pr−pre
からPr+postまでの領域について、一方向ハッシ
ュ関数を用いたメッセージ要約数を算出し、この算出結
果を、暗号鍵303中のメッセージ要約数502と比較
し、復号支援プログラムの正当性を認証する。認証成功
時、データ復号部101が、暗号鍵303から暗号の復
号鍵501を取得し、暗号化データを復号する。
ロテクトしたデータが不正に流用されることを防止す
る。 【解決手段】 復号指示を受けた復号装置100は、C
PU202の動作を一時停止させる。アドレス検出部1
03は、CPU202のメモリアクセスを監視し、復号
指示発行の命令コードの格納アドレスPrを取得する。
暗号認証部102は、暗号鍵303の認証を行う。復号
支援プログラム認証部104は、暗号鍵303から検証
範囲指定(pre、post)を取得し、Pr−pre
からPr+postまでの領域について、一方向ハッシ
ュ関数を用いたメッセージ要約数を算出し、この算出結
果を、暗号鍵303中のメッセージ要約数502と比較
し、復号支援プログラムの正当性を認証する。認証成功
時、データ復号部101が、暗号鍵303から暗号の復
号鍵501を取得し、暗号化データを復号する。
Description
【0001】
【産業上の利用分野】本発明は、暗号化されたデータを
復号する技術に関するものである。
復号する技術に関するものである。
【0002】
【従来の技術】従来、暗号方式をコンピュータ・システ
ムに適用し、暗号化されたプログラムやデータを復号し
て利用する場合には、そのシステムの上で動作する復号
プログラム(復号計算およびそれを支援するプログラ
ム)を実行するのが一般的である(特開平3−6802
4号公報)。ところで、仕様が公開されたオープンなコ
ンピュータ・システムにおいては、プログラムの解析お
よび改変が容易であるため、復号プログラムの復号支援
部分(以下、復号支援プログラムともいう)を改変する
ことにより、元の復号プログラムの仕様に反して、復号
したデータを不正に利用することが簡単にできてしま
い、システム全体の安全性は低くなるという問題があっ
た。暗合方式の進歩はめざましく、強力な暗号強度をも
つ暗号方式が多く提案されている。しかし、復号プログ
ラムの解析、改変による問題は、使用している暗号方式
の安全性には依存しないため、いくら高い強度をもつ暗
号方式を採用しても、解決することはできない。
ムに適用し、暗号化されたプログラムやデータを復号し
て利用する場合には、そのシステムの上で動作する復号
プログラム(復号計算およびそれを支援するプログラ
ム)を実行するのが一般的である(特開平3−6802
4号公報)。ところで、仕様が公開されたオープンなコ
ンピュータ・システムにおいては、プログラムの解析お
よび改変が容易であるため、復号プログラムの復号支援
部分(以下、復号支援プログラムともいう)を改変する
ことにより、元の復号プログラムの仕様に反して、復号
したデータを不正に利用することが簡単にできてしま
い、システム全体の安全性は低くなるという問題があっ
た。暗合方式の進歩はめざましく、強力な暗号強度をも
つ暗号方式が多く提案されている。しかし、復号プログ
ラムの解析、改変による問題は、使用している暗号方式
の安全性には依存しないため、いくら高い強度をもつ暗
号方式を採用しても、解決することはできない。
【0003】この問題を解決しようとする提案として、
復号プログラム自体を暗号化し、データ復号時にのみ復
号プログラムを復号して、データ復号作業を行う手段を
採用し、これにより、復号プログラムの解析および改変
を困難にするものが知られている(特開平9−6232
号公報)。しかし、復号プログラムを復号するのも、結
局プログラムによって行われるため、本質的な解決にな
っておらず、解析と改変に要するコストを多少増加させ
るという効果しかない。しかも、近年のコンピュータの
性能向上を考慮すると、増加するコストは大きな障害と
はなり得ないため、復号プログラムの解析と改変を効果
的に防止することができないという問題がある。また、
いったん復号プログラムの改変に成功してしまえば、改
竄プログラムの実行を防ぐことはできず、意図しない目
的への復号したデータの流用の防止ができないという問
題がある。
復号プログラム自体を暗号化し、データ復号時にのみ復
号プログラムを復号して、データ復号作業を行う手段を
採用し、これにより、復号プログラムの解析および改変
を困難にするものが知られている(特開平9−6232
号公報)。しかし、復号プログラムを復号するのも、結
局プログラムによって行われるため、本質的な解決にな
っておらず、解析と改変に要するコストを多少増加させ
るという効果しかない。しかも、近年のコンピュータの
性能向上を考慮すると、増加するコストは大きな障害と
はなり得ないため、復号プログラムの解析と改変を効果
的に防止することができないという問題がある。また、
いったん復号プログラムの改変に成功してしまえば、改
竄プログラムの実行を防ぐことはできず、意図しない目
的への復号したデータの流用の防止ができないという問
題がある。
【0004】また、復号プログラムの改変を防止する手
段として、CPUがメモリにアクセスするアドレスを監
視して、予想される正当な復号プログラムのメモリアク
セスパターンと比較した結果、正当と判断した場合は、
メモリアクセスを許可するが、不正と判断した場合に
は、メモリアクセスを遮断することにより、意図しない
不正なデータ利用を防止する提案がある(特開平5−3
24483号公報)。しかし、機器組込用のプログラム
がROMで供給されるような特殊な小規模システムなら
ば、プログラムは固定したアドレス位置に存在するた
め、CPUがアクセスするアドレスを監視することによ
り、復号プログラムの正当性の判断が可能だが、一般的
なシステムでは、プログラムのロードされるアドレスは
動的に決定されるため、アクセスするアドレス情報で復
号プログラムを判定することができないという問題があ
る。また、不正判定基準のアクセスパターンを容易に変
更することができないので、拡張性に乏しく、多くの暗
号化データに対応することが難しい。そのため、この手
法は一般的なコンピュータ・システムにおいて、使用す
ることはできないという問題がある。
段として、CPUがメモリにアクセスするアドレスを監
視して、予想される正当な復号プログラムのメモリアク
セスパターンと比較した結果、正当と判断した場合は、
メモリアクセスを許可するが、不正と判断した場合に
は、メモリアクセスを遮断することにより、意図しない
不正なデータ利用を防止する提案がある(特開平5−3
24483号公報)。しかし、機器組込用のプログラム
がROMで供給されるような特殊な小規模システムなら
ば、プログラムは固定したアドレス位置に存在するた
め、CPUがアクセスするアドレスを監視することによ
り、復号プログラムの正当性の判断が可能だが、一般的
なシステムでは、プログラムのロードされるアドレスは
動的に決定されるため、アクセスするアドレス情報で復
号プログラムを判定することができないという問題があ
る。また、不正判定基準のアクセスパターンを容易に変
更することができないので、拡張性に乏しく、多くの暗
号化データに対応することが難しい。そのため、この手
法は一般的なコンピュータ・システムにおいて、使用す
ることはできないという問題がある。
【0005】以上に述べたとおり従来の技術では、一般
的なコンピュータ・システムにおいて、復号プログラム
が改変されていない正当なものであることを、復号時に
認証することができず、この結果、改変された復号プロ
グラムの実行を防ぐことができないかった。このため、
改竄、改変された復号プログラムによる、復号したデー
タの意図しない目的への流用を効果的に防止できない。
そのため、暗号方式の強度にかかわらず、システム全体
の安全性は低くなってしまうという問題がある。
的なコンピュータ・システムにおいて、復号プログラム
が改変されていない正当なものであることを、復号時に
認証することができず、この結果、改変された復号プロ
グラムの実行を防ぐことができないかった。このため、
改竄、改変された復号プログラムによる、復号したデー
タの意図しない目的への流用を効果的に防止できない。
そのため、暗号方式の強度にかかわらず、システム全体
の安全性は低くなってしまうという問題がある。
【0006】
【発明が解決しようとする課題】本発明は、仕様が公開
されたオープンなコンピュータ・システムにおいても、
復号プログラムの正当性を暗号化データの復号時に認証
できるようにし、これにより、改竄された復号プログラ
ムによる意図しない目的への復号したデータの流用を防
止することを課題としている。
されたオープンなコンピュータ・システムにおいても、
復号プログラムの正当性を暗号化データの復号時に認証
できるようにし、これにより、改竄された復号プログラ
ムによる意図しない目的への復号したデータの流用を防
止することを課題としている。
【0007】
【課題を解決するための手段】本発明によれば、上述の
目的を達成するために、コンピュータ・システムに実装
されて暗号化されたデータを復号する暗号化データ復号
装置に、暗号化されたデータを暗号鍵に基づき復号する
データ復号手段と、上記暗号鍵が正当なものであること
を認証する暗号鍵認証手段と、CPUから復号指示の受
取ったとき、復号支援プログラム中にある、上記復号指
示を出した命令コードのメモリ・アドレスを検出するア
ドレス検出手段と、上記命令コードのメモリ・アドレス
に基づいて上記復号支援プログラムが正当なものである
ことを認証する復号支援プログラム認証手段とを設ける
ようにしている。
目的を達成するために、コンピュータ・システムに実装
されて暗号化されたデータを復号する暗号化データ復号
装置に、暗号化されたデータを暗号鍵に基づき復号する
データ復号手段と、上記暗号鍵が正当なものであること
を認証する暗号鍵認証手段と、CPUから復号指示の受
取ったとき、復号支援プログラム中にある、上記復号指
示を出した命令コードのメモリ・アドレスを検出するア
ドレス検出手段と、上記命令コードのメモリ・アドレス
に基づいて上記復号支援プログラムが正当なものである
ことを認証する復号支援プログラム認証手段とを設ける
ようにしている。
【0008】この構成においては、復号支援プログラム
中の復号指示を出した命令コードのメモリ・アドレスに
基づいて、例えば、予め定められた領域のコードの内容
を検証し、復号支援プログラムの正当性を認証できる。
この場合、復号支援プログラムがメモリのどの領域にロ
ードされていても検出した命令コードのアドレスを利用
して適合化できる。
中の復号指示を出した命令コードのメモリ・アドレスに
基づいて、例えば、予め定められた領域のコードの内容
を検証し、復号支援プログラムの正当性を認証できる。
この場合、復号支援プログラムがメモリのどの領域にロ
ードされていても検出した命令コードのアドレスを利用
して適合化できる。
【0009】
【発明の実施の態様】つぎに、本発明の実施例につい
て、図面を参照して説明する。図1は、本発明の復号装
置を用いて暗号化データを復号するコンピュータ・シス
テムを示している。この実施例においては、コンピュー
タ・システムに実装された復号装置100と、コンピュ
ータ・システムで実行される復号支援プログラムとによ
り暗号化データの復号を行う。
て、図面を参照して説明する。図1は、本発明の復号装
置を用いて暗号化データを復号するコンピュータ・シス
テムを示している。この実施例においては、コンピュー
タ・システムに実装された復号装置100と、コンピュ
ータ・システムで実行される復号支援プログラムとによ
り暗号化データの復号を行う。
【0010】図1において、内部バス201に、CPU
202、I/O部203、復号装置100、およびメモ
リ205を接続して、コンピュータ・システムが構成さ
れる。CPU202は、一般的なストアードプログラム
方式のもので、メモリ205に格納されたプログラムコ
ードを、内部バス201を介して読取って解釈を行い、
読取ったプログラムコードの指示に従い動作する。シス
テムの利用者は、CPU202に内部バス201を介し
て、I/O部203とメモリ205に格納されたデータ
に、アクセスするよう、プログラムで指示を与えること
により、意図する通りにシステムを利用することができ
る。
202、I/O部203、復号装置100、およびメモ
リ205を接続して、コンピュータ・システムが構成さ
れる。CPU202は、一般的なストアードプログラム
方式のもので、メモリ205に格納されたプログラムコ
ードを、内部バス201を介して読取って解釈を行い、
読取ったプログラムコードの指示に従い動作する。シス
テムの利用者は、CPU202に内部バス201を介し
て、I/O部203とメモリ205に格納されたデータ
に、アクセスするよう、プログラムで指示を与えること
により、意図する通りにシステムを利用することができ
る。
【0011】図2は、図1の復号装置100の構成例を
示す。この図において、復号装置100は、データ復号
部101、暗号鍵認証部102、アドレス検出部10
3、復号支援プログラム認証部104、および不正アク
セス防止部105を含んで構成されている。データ復号
部101は、暗号化されたデータを暗号鍵に基づき復号
するものである。暗号鍵認証部102は、その暗号鍵3
03(図5)が正当なものであることを認証するもので
ある。アドレス検出部103は、CPU202から復号
の指示の受取ったとき、復号支援プログラム301(図
3)中にある、その復号指示を出した命令コードのメモ
リ・アドレスを検出するものである。復号支援プログラ
ム認証部104は、復号支援プログラム301が正当な
ものであることを認証するものである。また、不正アク
セス防止部105は、復号支援プログラム301の実行
中に割込み等で不正に処理の流れを奪われた場合に、そ
れを検知し対抗処置をとるものである。
示す。この図において、復号装置100は、データ復号
部101、暗号鍵認証部102、アドレス検出部10
3、復号支援プログラム認証部104、および不正アク
セス防止部105を含んで構成されている。データ復号
部101は、暗号化されたデータを暗号鍵に基づき復号
するものである。暗号鍵認証部102は、その暗号鍵3
03(図5)が正当なものであることを認証するもので
ある。アドレス検出部103は、CPU202から復号
の指示の受取ったとき、復号支援プログラム301(図
3)中にある、その復号指示を出した命令コードのメモ
リ・アドレスを検出するものである。復号支援プログラ
ム認証部104は、復号支援プログラム301が正当な
ものであることを認証するものである。また、不正アク
セス防止部105は、復号支援プログラム301の実行
中に割込み等で不正に処理の流れを奪われた場合に、そ
れを検知し対抗処置をとるものである。
【0012】図3は、暗号化されたデータを復号すると
きの、メモリ内のデータ格納状況を表したものである。
図3において、復号支援プログラム301は、暗号化さ
れたデータ302を復号して、復号データ格納領域30
4に格納するよう復号装置100に指令を出し、意図し
た目的のために復号データを利用するプログラムであ
る。暗号鍵303(図5参照)は、暗号化データを復号
するために必要な鍵データである。復号支援プログラム
301、暗号化されたデータ302、暗号鍵303、復
号データ格納領域304のメモリ205における格納ア
ドレスは、p、c、kおよびdである。
きの、メモリ内のデータ格納状況を表したものである。
図3において、復号支援プログラム301は、暗号化さ
れたデータ302を復号して、復号データ格納領域30
4に格納するよう復号装置100に指令を出し、意図し
た目的のために復号データを利用するプログラムであ
る。暗号鍵303(図5参照)は、暗号化データを復号
するために必要な鍵データである。復号支援プログラム
301、暗号化されたデータ302、暗号鍵303、復
号データ格納領域304のメモリ205における格納ア
ドレスは、p、c、kおよび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参照)。
状態の概念図である。図4において、メモリ205上
の、アドレスpからpendまでが復号支援プログラム3
01が格納される領域である。復号支援プログラム30
1の中には、復号装置204に復号指示を発行する、復
号指示発行部分402が含まれ、このコードが格納され
るアドレスはprである。復号指示発行部分402のア
ドレスprから、前にpreバイト、後ろにpostバ
イトで区切ったブロックが、復号支援プログラム検証ブ
ロック403である。復号支援プログラム検証ブロック
403のメッセージ要約数を用いて、復号支援プログラ
ムの正当性を判断する。preとpostは、暗号鍵3
03で指定される(図5参照)。
【0014】図5は、暗号鍵303の構成図である。暗
号鍵303はデジタルデータであり、暗号の復号鍵50
1、復号支援プログラムのメッセージ要約数502、検
証領域範囲指定503、および暗号鍵全体の署名504
から構成される。
号鍵303はデジタルデータであり、暗号の復号鍵50
1、復号支援プログラムのメッセージ要約数502、検
証領域範囲指定503、および暗号鍵全体の署名504
から構成される。
【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、署名を一体に
して出力する。
成装置の構成例を示しており、図6において、暗号鍵生
成装置は検証範囲指定部505、復号支援プログラム入
力部506、復号鍵入力部507、メッセージ要約数生
成部508、署名生成部509および暗号鍵出力部51
0を含んで構成されている。検証範囲指定部505は、
復号指示コードのアドレス、検証ブロックを特定するバ
イト数preおよびpostを受け取る。メッセージ要
約数生成部508は、検証範囲指定部505で指定され
た範囲で復号支援プログラムのメッセージ要約数を生成
する。署名生成部509は、復号鍵入力部507から入
力された復号鍵、検証ブロック指定情報のバイト数pr
eおよびpostおよびメッセージ要約数生成部508
で生成したメッセージ要約数に対して署名を生成する。
暗号鍵出力部510は、復号鍵、メッセージ要約数、ブ
ロック指定情報のpreおよびpost、署名を一体に
して出力する。
【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と通信しても構わない。
する。本実施例では、復号処理は復号支援プログラム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と通信しても構わない。
【0017】この後、復号装置100に復号処理を行う
よう指示を発行する(ステップ603)。このとき、ス
テップ603に相当する命令コードが格納されているア
ドレスがPrである。この指示の発行は、具体的には、
内部バス201を通じて、復号装置100にマップされ
たI/Oアドレスに、指示命令を出力することにより行
われる。
よう指示を発行する(ステップ603)。このとき、ス
テップ603に相当する命令コードが格納されているア
ドレスがPrである。この指示の発行は、具体的には、
内部バス201を通じて、復号装置100にマップされ
たI/Oアドレスに、指示命令を出力することにより行
われる。
【0018】復号を行う復号装置100は、内部バス2
01を介して、CPU202がどのようなアクセスをし
ているかを、監視することができる。また、CPUを介
さずに直接メモリにアクセス(DMA:Direct
Memory Access)することができる。加え
て、CPU202の動作を制御し、必要に応じてCPU
202を一時停止状態に保ったり、動作を再開させるこ
とができる。
01を介して、CPU202がどのようなアクセスをし
ているかを、監視することができる。また、CPUを介
さずに直接メモリにアクセス(DMA:Direct
Memory Access)することができる。加え
て、CPU202の動作を制御し、必要に応じてCPU
202を一時停止状態に保ったり、動作を再開させるこ
とができる。
【0019】図8において、復号指示を受けた復号装置
100は、ステップ701において、ただちにCPU2
02の動作を一時停止させ、暗号鍵303の格納アドレ
スk、暗号化データ302の格納アドレスc、復号デー
タの指定格納アドレスdを読取る(ステップ701)。
これにより復号支援プログラム301はステップ603
で一時停止状態となる。以下の復号装置100のメモリ
205へのアクセスはすべてDMAを用いる。
100は、ステップ701において、ただちにCPU2
02の動作を一時停止させ、暗号鍵303の格納アドレ
スk、暗号化データ302の格納アドレスc、復号デー
タの指定格納アドレスdを読取る(ステップ701)。
これにより復号支援プログラム301はステップ603
で一時停止状態となる。以下の復号装置100のメモリ
205へのアクセスはすべてDMAを用いる。
【0020】復号装置100の処理はステップ702に
進む。ステップ702では、CPU202のメモリ20
5へのアクセスの監視によって、復号指示発行の命令コ
ードの格納アドレスPrを取得する。
進む。ステップ702では、CPU202のメモリ20
5へのアクセスの監視によって、復号指示発行の命令コ
ードの格納アドレスPrを取得する。
【0021】次にステップ703において、暗号鍵30
3の認証を行う。暗号鍵303には、暗号鍵全体の署名
504が用意されており、電子書名認証技術により、正
当な暗号鍵であるか認証する。具体的には、復号装置に
は署名認証鍵が用意されており、RSA(Rivest
−Shamir−Adelman)公開鍵暗号技術と、
一方向ハッシュ関数を用いたメッセージ要約生成技術を
用いて認証を行う。もちろん、他の方式で認証しても構
わない。
3の認証を行う。暗号鍵303には、暗号鍵全体の署名
504が用意されており、電子書名認証技術により、正
当な暗号鍵であるか認証する。具体的には、復号装置に
は署名認証鍵が用意されており、RSA(Rivest
−Shamir−Adelman)公開鍵暗号技術と、
一方向ハッシュ関数を用いたメッセージ要約生成技術を
用いて認証を行う。もちろん、他の方式で認証しても構
わない。
【0022】もし認証に失敗した場合は、暗号鍵303
が改竄されている可能性がある。復号装置100は、暗
号鍵303が正当なものでないと見なし、ステップ70
5に進む。ステップ705において、CPU動作を再開
させ、CPUに「暗号鍵の認証に失敗」を意味するエラ
ーコードを返す。具体的には、復号装置100にマップ
されたI/Oアドレスにアクセスすることにより、CP
U202が読出すことができるレジスタにエラーコード
を格納する。もちろん、別の方法でCPU202と通信
しても構わない。動作を再開した復号支援プログラム3
01では、ステップ605の分岐でエラーが発生したと
判断し、ステップ606でエラー処理を行い、復号を行
わずに終了する。
が改竄されている可能性がある。復号装置100は、暗
号鍵303が正当なものでないと見なし、ステップ70
5に進む。ステップ705において、CPU動作を再開
させ、CPUに「暗号鍵の認証に失敗」を意味するエラ
ーコードを返す。具体的には、復号装置100にマップ
されたI/Oアドレスにアクセスすることにより、CP
U202が読出すことができるレジスタにエラーコード
を格納する。もちろん、別の方法でCPU202と通信
しても構わない。動作を再開した復号支援プログラム3
01では、ステップ605の分岐でエラーが発生したと
判断し、ステップ606でエラー処理を行い、復号を行
わずに終了する。
【0023】ステップ703において暗号鍵303の認
証に成功した場合は、ステップ704へ処理を進める。
ステップ704において、暗号鍵303から検証範囲指
定503を取得し、Pr−preからPr+postま
での領域について、一方向ハッシュ関数を用いたメッセ
ージ要約数を算出する。
証に成功した場合は、ステップ704へ処理を進める。
ステップ704において、暗号鍵303から検証範囲指
定503を取得し、Pr−preから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でエラ
ー処理を行い、復号を行わずに終了する。
303中の復号支援プログラムの検証領域のメッセージ
要約数502と、前ステップ704で算出したメッセー
ジ要約数を比較する。もしこれらが一致しなかった場
合、CPU202が実行している復号支援プログラム3
01が、暗号鍵303の発行者が意図したものと異なる
ことを意味する。復号装置100は、復号支援プログラ
ム301が改竄されたものと見なして、ステップ707
に進む。ステップ707において、CPU202の動作
を再開させ、CPUに「復号支援プログラムの認証に失
敗」を意味するエラーコードを返す。具体的には、復号
装置100にマップされたI/Oアドレスにアクセスす
ることにより、CPU202が読出すことができるレジ
スタにエラーコードを格納する。もちろん、別の方法で
CPU202と通信しても構わない。動作を再開した復
号支援プログラム301は、図7のステップ605の分
岐でエラーが発生したと判断し、ステップ606でエラ
ー処理を行い、復号を行わずに終了する。
【0025】図8のステップ706で復号支援プログラ
ムの認証に成功した場合は、ステップ708へ処理を進
める。ステップ708において、復号装置100は、暗
号鍵303から暗号の復号鍵501を取得して、暗号化
されたデータの復号処理を行う。具体的には、暗号の復
号鍵と復号装置の装置ごとに別々のものが用意されてい
る秘密鍵の2つから、DES(Data Encryp
tion Standard)等のブロック暗号の復号
鍵を生成し、ブロック暗号復号器に、DMAで暗号化さ
れたデータを読出し、復号結果をDMAで復号データ領
域に書出す。もちろん、どのような方法の暗号/復号方
式を用いても構わない。
ムの認証に成功した場合は、ステップ708へ処理を進
める。ステップ708において、復号装置100は、暗
号鍵303から暗号の復号鍵501を取得して、暗号化
されたデータの復号処理を行う。具体的には、暗号の復
号鍵と復号装置の装置ごとに別々のものが用意されてい
る秘密鍵の2つから、DES(Data Encryp
tion Standard)等のブロック暗号の復号
鍵を生成し、ブロック暗号復号器に、DMAで暗号化さ
れたデータを読出し、復号結果をDMAで復号データ領
域に書出す。もちろん、どのような方法の暗号/復号方
式を用いても構わない。
【0026】復号処理が終わった後は、ステップ709
に進み、復号したデータを利用する。利用後は必要に応
じて、復号したデータをメモリ205から消去すること
により、意図しない目的に復号したデータを用いられる
ことを防止できる。
に進み、復号したデータを利用する。利用後は必要に応
じて、復号したデータをメモリ205から消去すること
により、意図しない目的に復号したデータを用いられる
ことを防止できる。
【0027】また、復号装置100は、CPU202の
内部バス201へのアクセスを監視することにより、復
号支援プログラム301がCPU202により実行され
ている間に不正な割込み等により処理の流れを奪う操作
を検知できる。不正に処理の流れが奪われたことを検知
した場合、復号作業を即刻中止し、それまでに復号した
データもDMAにより破壊する。この機能により、ハー
ドウェア割り込みによるプログラムの動作への干渉を排
除することができ、さらに安全性が向上する。
内部バス201へのアクセスを監視することにより、復
号支援プログラム301がCPU202により実行され
ている間に不正な割込み等により処理の流れを奪う操作
を検知できる。不正に処理の流れが奪われたことを検知
した場合、復号作業を即刻中止し、それまでに復号した
データもDMAにより破壊する。この機能により、ハー
ドウェア割り込みによるプログラムの動作への干渉を排
除することができ、さらに安全性が向上する。
【0028】
【発明の効果】以上説明したように本発明は、復号支援
プログラムの正当性を、復号時にチェックすることによ
り、改竄された復号支援プログラムによる意図しない目
的への復号したデータの流用を防止する。これにより、
復号支援プログラムの耐改変性を高めることができ、暗
号強度に見合ったシステムの安全性を得ることができ
る。
プログラムの正当性を、復号時にチェックすることによ
り、改竄された復号支援プログラムによる意図しない目
的への復号したデータの流用を防止する。これにより、
復号支援プログラムの耐改変性を高めることができ、暗
号強度に見合ったシステムの安全性を得ることができ
る。
【図1】 本発明の実施例のコンピュータ・システムの
構成を示すブロック図である。
構成を示すブロック図である。
【図2】 上述実施例の復号装置の構成を示すブロック
図である。
図である。
【図3】 暗号化されたデータを復号するときのメモリ
内のデータ格納状況を説明する図である。
内のデータ格納状況を説明する図である。
【図4】 復号支援プログラムのメモリ格納状態の概念
的に示す図である。
的に示す図である。
【図5】 暗号鍵の構成を説明する図である。
【図6】 暗号鍵を生成する暗号鍵生成装置の構成例を
示すブロック図である。
示すブロック図である。
【図7】 復号支援プログラムの動作を説明するフロー
チャートである。
チャートである。
【図8】 復号装置の処理の流れを説明するフローチャ
ートである。
ートである。
100 復号装置 101 データ復号部 102 アドレス検出部 103 復号支援プログラム認証部 104 不正アクセス防止部 201 バス 202 CPU 203 I/O部 205 メモリ
Claims (11)
- 【請求項1】 コンピュータ・システムに実装されて暗
号化されたデータを復号する暗号化データ復号装置おい
て、 暗号化されたデータを暗号鍵に基づき復号するデータ復
号手段と、 上記暗号鍵が正当なものであることを認証する暗号鍵認
証手段と、 CPUから復号指示の受取ったとき、復号支援プログラ
ム中の上記復号指示を出した命令コードのメモリ・アド
レスを検出するアドレス検出手段と、 上記命令コードのメモリ・アドレスに基づいて上記復号
支援プログラムが正当なものであることを認証する復号
支援プログラム認証手段とを有することを特徴とする暗
号化データ復号装置。 - 【請求項2】 上記復号支援プログラムの実行中に割込
み等で不正に処理の流れを奪われた場合に、それを検知
し対抗処置をとる不正アクセス防止手段をさらに有する
請求項1記載の暗号化データ復号装置。 - 【請求項3】 上記復号支援プログラム認証手段は、上
記命令コードのメモリ・アドレスにより決定される所定
のメモリ・アドレス範囲のコードの内容が真正なもので
あるかどうかを検証する請求項1または2記載の暗号化
データ復号装置。 - 【請求項4】 上記所定のメモリ・アドレス範囲のコー
ドの内容の所定の関数による計算結果に基づいて上記所
定のメモリ・アドレス範囲のコードの内容が真正なもの
であることを検証する請求項3記載の暗号化データ復号
装置。 - 【請求項5】 上記所定の関数を所定の一方向性関数と
する請求項4記載の暗号化データ復号装置。 - 【請求項6】 上記暗号鍵は、真正な復号支援プログラ
ムから生成した参照値を保持し、上記復号支援プログラ
ム検証手段による計算結果と、上記暗号鍵が保持する上
記計算結果とを比較して上記復号支援プログラムの正当
性が認証される請求項4または5記載の暗号化データ復
号装置。 - 【請求項7】 上記暗号鍵は、上記所定のメモリ・アド
レス範囲を指定する情報をさらに保持し、上記参照値は
指定されたメモリ・アドレス範囲に基づいて生成される
請求項6記載の暗号化データ復号装置。 - 【請求項8】 コンピュータ・システムに実装されて暗
号化されたデータを復号する暗号化データ復号装置おい
て、 暗号化されたデータを暗号鍵に基づき復号するデータ復
号手段と、 CPUから所定の情報がバスに転送されたとき、復号支
援プログラム中にある、上記所定の情報を上記バスに転
送した命令コードのメモリ・アドレスを検出するアドレ
ス検出手段と、 上記命令コードのメモリ・アドレスにより決定される所
定のメモリ・アドレス範囲の上記復号支援プログラムの
内容に基づいて上記復号支援プログラムが正当なもので
あることを認証する復号支援プログラム認証手段とを有
することを特徴とする暗号化データ復号装置。 - 【請求項9】 暗号化データを復号する暗号鍵本体と、
上記暗号化データを復号するために用いる復号支援プロ
グラムの所定の範囲のコードの所定の関数による計算結
果と、上記暗号化鍵本体および上記計算結果に対する署
名とを含む暗号鍵情報を生成する暗号鍵情報生成装置。 - 【請求項10】 暗号化データを復号する暗号鍵本体
と、上記暗号化データを復号するために用いる復号支援
プログラムの所定の範囲のコードの所定の関数による計
算結果と、上記暗号化鍵本体および上記計算結果に対す
る署名とを含む暗号鍵情報を受け取るステップと、 暗号化データを復号するときに、復号に用いる復号支援
プログラムの上記所定の範囲に対応するメモリ領域に展
開されたコードを取り出すステップと、 上記取り出されたコードの上記所定の関数による計算結
果を生成するステップと、 生成された上記計算結果と、上記暗号鍵情報中の上記計
算結果とを比較するステップと、 上記比較の結果に基づいて、上記復号に用いる復号支援
プログラムの真正を検証するステップとを有することを
特徴とする復号支援プログラム検証方法。 - 【請求項11】 バスと、 上記バスに接続されたCPUと、 上記バスに接続されたメモリと、 上記バスに接続された認証装置とを有し、 上記認証装置は、 上記CPUから暗号化データの復号指示が上記バスを介
して転送されたとき、復号支援プログラム中にある、上
記復号指示を出した命令コードのメモリ・アドレスを検
出するアドレス検出手段と、 上記命令コードのメモリ・アドレスに基づいて上記復号
支援プログラムが正当なものであることを認証する認証
手段とを有することを特徴とするコンピュータ・システ
ム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9195451A JPH1139156A (ja) | 1997-07-22 | 1997-07-22 | 暗号化データ復号装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9195451A JPH1139156A (ja) | 1997-07-22 | 1997-07-22 | 暗号化データ復号装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1139156A true JPH1139156A (ja) | 1999-02-12 |
Family
ID=16341294
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9195451A Pending JPH1139156A (ja) | 1997-07-22 | 1997-07-22 | 暗号化データ復号装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1139156A (ja) |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2004095449A1 (ja) * | 2003-04-24 | 2004-11-04 | Sony Corporation | 情報処理装置及び情報処理方法 |
| WO2005052768A1 (ja) * | 2003-11-28 | 2005-06-09 | Matsushita Electric Industrial Co., Ltd. | 機密情報処理システムおよびlsi |
| JP2005165919A (ja) * | 2003-12-05 | 2005-06-23 | Fuji Xerox Co Ltd | プログラム実行方法、プログラム作成方法、情報処理装置及びプログラム |
| JP2006101289A (ja) * | 2004-09-30 | 2006-04-13 | Felica Networks Inc | 情報暗号化システム,管理サーバ,サービス提供サーバ,情報処理装置,およびそのプログラムと方法 |
| JP2006115418A (ja) * | 2004-10-18 | 2006-04-27 | Ttt Kk | 著作権データ配信システム、著作権データ配信方法、及び著作権データ配信用通信プログラム |
| 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 (ja) * | 2006-03-03 | 2007-09-13 | Fujitsu Ltd | 暗号化プログラム及びシステム及び方法 |
| JP2010529718A (ja) * | 2007-05-22 | 2010-08-26 | イルデト・ビー・ヴイ | データセキュリティ |
| 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/ja active Pending
Cited By (12)
| 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 |
| 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 |
| 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 |
| WO2004095449A1 (ja) * | 2003-04-24 | 2004-11-04 | Sony Corporation | 情報処理装置及び情報処理方法 |
| WO2005052768A1 (ja) * | 2003-11-28 | 2005-06-09 | Matsushita Electric Industrial Co., Ltd. | 機密情報処理システムおよびlsi |
| JP2005165919A (ja) * | 2003-12-05 | 2005-06-23 | Fuji Xerox Co Ltd | プログラム実行方法、プログラム作成方法、情報処理装置及びプログラム |
| JP2006101289A (ja) * | 2004-09-30 | 2006-04-13 | Felica Networks Inc | 情報暗号化システム,管理サーバ,サービス提供サーバ,情報処理装置,およびそのプログラムと方法 |
| JP2006115418A (ja) * | 2004-10-18 | 2006-04-27 | Ttt Kk | 著作権データ配信システム、著作権データ配信方法、及び著作権データ配信用通信プログラム |
| US8135963B2 (en) | 2005-02-10 | 2012-03-13 | Panasonic Corporation | Program conversion device and program execution device |
| JP2007235834A (ja) * | 2006-03-03 | 2007-09-13 | Fujitsu Ltd | 暗号化プログラム及びシステム及び方法 |
| JP2010529718A (ja) * | 2007-05-22 | 2010-08-26 | イルデト・ビー・ヴイ | データセキュリティ |
| US9025765B2 (en) | 2007-05-22 | 2015-05-05 | Irdeto B.V. | Data security |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| 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 | |
| US6973570B1 (en) | Integrated circuit comprising encryption circuitry selectively enabled by verifying a device | |
| JP3580333B2 (ja) | 暗号認証機能の装備方法 | |
| JP2000151583A (ja) | アクセス資格認証方法および装置ならびに証明用補助情報作成方法および装置 | |
| JP2003134110A (ja) | 暗号通信装置 | |
| JP2004213216A (ja) | 情報セキュリティマイクロコンピュータ、そのプログラム開発装置およびそれらを含んだプログラム開発システム | |
| JP3749640B2 (ja) | Icカード利用装置、icカード及び記憶媒体 | |
| JP2005157930A (ja) | 機密情報処理システムおよびlsi | |
| CN114357385A (zh) | 一种软件防护和授权方法、系统及装置 | |
| JPH1131105A (ja) | データカプセル生成装置および方法 | |
| CN112559979B (zh) | 一种pos机上通过硬件安全芯片保护软件库授权使用的方法 | |
| CN120874061A (zh) | 一种服务器启动控制方法及电子设备 | |
| CN117792767A (zh) | 通信方法、相关装置及存储介质 | |
| KR20040058278A (ko) | 비인가된 사용에 대한 정보의 보호방법 및 보호장치 | |
| JP3684179B2 (ja) | セキュリティ機能を有するメモリカード | |
| CN120768694B (zh) | 设备验证方法及电子设备 | |
| JP2002244989A (ja) | デバイスドライバ作動方法 | |
| CN120688040A (zh) | 一种基于智能密码钥匙的软件和主机授权方法及系统 | |
| WO2025214368A1 (zh) | 安全通信方法及装置 | |
| JP3868218B2 (ja) | アクセス制限付コンテンツ表示方法およびその装置 | |
| CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及系统 | |
| CN113221189B (zh) | 基于区块链的身份认证系统、认证方法、介质、终端 | |
| CN111523127B (zh) | 一种用于密码设备的权限认证方法及系统 |