JP2002215459A - ディジタル回路 - Google Patents

ディジタル回路

Info

Publication number
JP2002215459A
JP2002215459A JP2001006708A JP2001006708A JP2002215459A JP 2002215459 A JP2002215459 A JP 2002215459A JP 2001006708 A JP2001006708 A JP 2001006708A JP 2001006708 A JP2001006708 A JP 2001006708A JP 2002215459 A JP2002215459 A JP 2002215459A
Authority
JP
Japan
Prior art keywords
register
data
transfer
registers
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.)
Granted
Application number
JP2001006708A
Other languages
English (en)
Other versions
JP4098959B2 (ja
Inventor
Satoru Kokuni
哲 小國
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001006708A priority Critical patent/JP4098959B2/ja
Publication of JP2002215459A publication Critical patent/JP2002215459A/ja
Application granted granted Critical
Publication of JP4098959B2 publication Critical patent/JP4098959B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 処理のオーバヘッドを大きくすることなく、
柔軟な方式でセキュリティーの向上を図ることができる
ディジタル回路。 【解決手段】 本発明によるセキュリティ機構をもった
ディジタル回路は、2種類の命令実行形態を持つ。一方
は、メッセージ認証技術を用いて読み込み時にプログラ
ムが正しいか否かの認証を行ってから実行される。ま
た、他方は、セキュリティ上問題のないものに制限され
るが、認証なしに実行されるものである。これにより、
実効的に性能オーバヘッドがなく、かつ、柔軟なセキュ
リティ方式を実現することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディジタル回路に
係り、特に、データ及び処理のセキュリティを考慮した
ディジタル回路に関する。
【0002】
【従来の技術】セキュリティを考慮したディジタル回路
に関する従来技術として、(1)パスワードのチェック
を行う回路を設けることによりメモリ、レジスタへのア
クセスを制限する機構を持つディジタル回路、(2)モ
ードを記憶する回路を設け、このモードが指定する状態
により、メモリ、レジスタへのアクセスを制限するよう
なディジタル回路、(3)メモリにアクセスする際に用
いるアドレスに何らかの変換を行う回路を設けることに
より、変換後のアドレスが正常な値とならなければ所定
の位置にアクセスできないようにするディジタル回路、
の概ね3種が知られている。
【0003】前述の(1)に分類される従来技術とし
て、例えば、特開平5−12130号公報、特開平5−
2535号公報、特開平5−174491号公報、特開
平7−121448号公報、特開平8−111097号
公報、特開平5−136019号公報、特開平9−62
583号公報、特開平9−190236号公報等に記載
された技術が知られている。これらの従来技術は、いず
れも、セキュリティを守るため、ハードウエアにあらか
じめパスワード等のアクセスが許される者しか知らない
情報を格納しておき、アクセスの際に、この格納された
情報とアクセスの際に入力した情報とを比較し、一致し
た場合に、メモリ・レジスタへのアクセスを許可すると
いうものである。
【0004】また、前述の(2)に分類される従来技術
として、特開平5−94299号公報、特開平5−22
4828号公報、特開平10−228422号公報等に
記載された技術が知られている。これらの従来技術は、
いずれも、モードを設定する回路が用意されており、こ
のモードの設定によってはメモリ・レジスタへのアクセ
スが制限されるよう構成されているというものである。
【0005】前述した(1)及び(2)の従来技術は、
いずれも、ハードウエアを構成する上で非常に小規模な
セキュリティ用の機構を設けることだけでセキュリティ
を確保することができるという利点を有するものである
が、その反面、パスワード・モードといった簡便な方法
であるため、セキュリティを確保しながら柔軟に運用し
ていく自由度が小さいものである。例えば、パスワード
を定期的に変更することはセキュリティ上必須とされて
いるが、これらの従来技術は、パスワードをROMに格
納しているため、パスワードの書き換えができず、パス
ワードの書き換えには、ハードウエアを入れ換える必要
が生じてしまうものである。
【0006】また、前述の(3)に分類される従来技術
として、例えば、特開平6−4407号公報、特開平6
−139151号公報、特開平7−6096号公報等に
記載された技術が知られている。これらの従来技術は、
いずれも、あるメモリ・レジスタにアクセスする際に指
定されたアドレス等をハードウエアにより変換(スクラ
ンブル)を行って、その結果を用いてアクセスを行うと
いうものである。この従来技術は、アクセスが正しく行
われなくても、アクセス自体は行われるものであるが、
正しいデータを読み出すことができないため、これによ
り、セキュリティを確保することができるようにしてい
る。しかし、これらの従来技術は、正しいデータが読み
出すことができたのか否かが判然としないという問題を
有し、読み出しが許されないものに対し、格納されてい
る他のアドレスのデータを読み出す可能性もあり、セキ
ュリティの観点で問題を有するものである。
【0007】前述した3種類以外の他の従来技術とし
て、例えば、FIPS PUB 140-1(FEDERALINFORMATION PROC
ESSING STANDARDS PUBLICATION 140-1)等に記載された
技術が知られている。この従来技術は、セキュリティを
確保する上で行うべきこととして、セキュリティを確保
しなくてはならないディジタル回路にプログラムを読み
込む場合に、メッセージ認証技術を用いて、読み込まれ
たプログラムが正しいか否かを検証しなくてはならない
ようにしたものである。この従来技術は、プログラムに
よってセキュリティを考慮した機能を実現していくこと
ができるため、前述した(1)の従来技術のように硬直
したセキュリティでなく、柔軟なセキュリティを実現す
ることができる。しかし、この従来技術は、プログラム
を読み込む毎にメッセージ認証を行うことが必須となる
ため、この認証のための処理が性能上オーバヘッドとな
るという問題を含んでいる。そして、この従来技術は、
仮に、電源オン時のみ認証を行うようにして、性能オー
バヘッドを実際の動作時にはないようにすることができ
るが、そのために、全てのプログラムを読み込むことが
できるだけの大容量のメモリを用意する必要が生じるも
のである。
【0008】
【発明が解決しようとする課題】前述した従来技術は、
セキュリティ上アクセスを制限したいメモリ・レジスタ
に対し、アクセスの許可・不許可の機構をハードウエア
で実現した場合、結局のところ単純な機構しか実現する
ことができず、セキュリティといった観点で、柔軟な方
法を実現していくことが困難であるという問題点を有し
ている。
【0009】また、メッセージ認証技術を用いて、プロ
グラムが正しいか否かを認証する従来技術、セキュリテ
ィの観点では柔軟な方式を実現することができるが、認
証を行うため性能に関してオーバヘッドをもたらすか、
あるいは、プログラムのローディング領域の確保による
ハードウエア資源にオーバヘッドをもたらすかのいずれ
かを覚悟する必要があるという問題点を有している。
【0010】本発明の目的は、前述した従来技術の問題
点を解決し、処理のオーバヘッドを大きくすることな
く、柔軟な方式でセキュリティーの向上を図ることを可
能にしたディジタル回路を提供することにある。
【0011】
【課題を解決するための手段】本発明によれば前記目的
は、プログラムをキューイングする第1、第2の2個の
キューと、プログラムの認証コードを生成する認証コー
ド生成回路と、生成した認証コードを格納するレジスタ
と、認証コードとリファレンス認証コードとの一致を検
出する回路と、一致が検出されると“1”がセットされ
るラッチと、データを格納するレジスタと、該レジスタ
からの出力データの演算を行い該レジスタへの書き込み
を行う演算回路とを備え、前記第1のキューに読み込ん
だプログラムの真偽を、プログラムから生成した認証コ
ードとリファレンス認証コードとを比較して認証し、一
致した場合にプログラムを実行する機能と、前記第2の
キューに読み込んだプログラムをメッセージ認証を行う
ことなく1命令単位にセキュリティに関するチェックを
行い、問題がない場合にその命令を実行する機能とを有
することにより達成される。
【0012】前述の手段を備えて構成される本発明によ
るセキュリティ機構をもったディジタル回路は、2種類
の命令実行形態を持つ。一方は、メッセージ認証技術を
用いて読み込み時にプログラムが正しいか否かの認証を
行ってから命令が実行されるものであり、他方は、認証
を行わずに命令が実行されるものである。但し、他方の
ものは、セキュリティに関して問題のない命令のみに実
行が制限される。本発明は、性能の要求されるような頻
繁に用いる機能に関しては他方のプログラムにより実行
することができるようにしており、これにより、性能の
オーバヘッドを実効的にはないように見せることができ
る。しかも、前者のプログラムにより、セキュリティの
観点で柔軟な方式を実現することも可能である。
【0013】また、本発明によれば、セキュリティに関
して問題のない命令体系を構成するために新たに問題と
なる制限方法の具体的な方法に関して、内部のレジスタ
を5種類に分類し、また、命令を3種類に分類すること
により、単純であるが完全なるセキュリティ体系を構成
することができる。
【0014】
【発明の実施の形態】以下、本発明によるディジタル回
路の一実施形態を図面により詳細に説明する。
【0015】図1は本発明の一実施形態によるディジタ
ル回路を含む暗号モジュールの構成例を示すブロック
図、図2はデータ転送の規則について説明する図であ
る。図1において、1は暗号モジュール、10Fは実行
用命令キュー、10Cは認証用命令キュー、20は演算
器、21は認証コード生成回路、22は一致検出回路、
30SP、30ST、30PP、30PT、30Oはレ
ジスタ、30Cは認証コードレジスタ、40、41はラ
ッチ、50SP1、50SP2、50ST1、50PP
1、50PT1、50O1、50O2、50、50C、
50F、60C、60F1、60F2、60SP、60
ST、60PP、60PT、60Oはセレクタ、70I
Nは暗号モジュールの外部からの入力バス、70OUT
は暗号モジュールの外部への出力バスである。
【0016】図1に示す暗号モジュールは、計算機シス
テムの中に組み込まれて使用することができ、あるい
は、ICカードとして使用することができるものであ
る。図示暗号モジュールは、計算機システムの中に組み
込まれて使用される暗号モジュール内の本発明のディジ
タル回路の部分を示すものであり、実行用命令キュー1
0F、認証用命令キュー10C、演算器20、認証コー
ド生成回路21、一致検出回路22、認証コードレジス
タ30C、及び、レジスタ30SP、30ST、30P
P、30PT、30Oを主要な構成要素として備えて構
成されている。
【0017】この暗号モジュール1の内部にあるレジス
タ等に格納されているデータは秘匿性が保たれており、
ICカードとして使用される場合、一般に、内部に蓄え
られたデータは、正しい手順以外では読み出すことがで
きないようにされている。このようなICカードは、不
正な読み出し、例えば、侵襲的な方法で読み出しが行わ
れた場合、ICカード内部の検出機構によりそれを検知
することができ、さらに、不正な読み出しを検知すると
内部データを消去し、データの値が漏洩しないようにさ
れている。前述したように、従来から暗号モジュール1
の内部にあるレジスタの秘匿性を保つことは可能であ
る。このため、以下に説明する本発明の実施形態は、暗
号モジュール1の内部の秘匿性が保たれているというこ
とを前提とする。また、逆に、どのような手段により暗
号モジュール1を実現するかについては本発明の範囲外
とする。
【0018】次に、暗号モジュール1の内部にあるディ
ジタル回路の動作の概要について説明する。
【0019】図1において、外部入力バス70INは、
外部からの信号を暗号モジュール1に転送する役割を持
つ。外部入力バス70IN上のデータは、タグ部とデー
タ部とからなり、さらに、タグ部は、タグ部1とタグ部
2とからなる。タグ部1は、2種の意味を持つ(タグ部
2については後述する)。すなわち、タグ部1は、「認
証用命令キューへキューイングせよ」または「実行用命
令キューへキューイングせよ」の2種の意味を持つ。こ
の結果、外部入力バス70INからタグ部とデータ部と
が入力されたとき、タグ部1の意味が前者である場合、
タグ部2とデータ部とが認証用キュー10Cキューイン
グされ、タグ部1の意味が後者である場合、タグ部2と
データ部とが実行命令キュー10Fへキューイングされ
る。ここで、セレクタ60F2は、通常外部入力バス7
0INからのデータを選択しており、他方を選択する場
合については後述する。
【0020】タグ部2は、「Fコード命令」、「Fコー
ドデータ」、「Aコード命令」、「Aコードデータ」、
「Cコード命令」または「Cコードデータ」の6種類の
意味を持つ。そして、タグ部1とタグ部2との組み合わ
せで、許される組み合わせは、「認証用命令キューへキ
ューイングせよ」+「Aコード命令」、「Aコードデー
タ」、「Cコード命令」または「Cコードデータ」と、
「実行用命令キューへキューイングせよ」+「Fコード
命令」または「Fコードデータ」との合計6種類であ
る。これら以外の組み合わせを持つタグ部が外部入力バ
ス70INから入力された場合、その信号は無視され
る。すなわち、キューイングは行われない。
【0021】タグ部1とタグ部2とが「実行用命令キュ
ーへキューイングせよ」+「Fコード命令」または「F
コードデータ」であるデータが外部入力バス70INか
ら入力された場合、この入力されたデータをFコードと
呼ぶことにし、「認証用命令キューへキューイングせ
よ」+「Aコード命令」または「Aコードデータ」の場
合、入力されたデータをAコードと呼ぶことにする。ま
た、「認証用命令キューへキューイングせよ」+「Cコ
ード命令」または「Cコードデータ」の場合、入力され
たデータをCコードと呼ぶことにする。
【0022】本発明の特徴の1つは、暗号モジュール1
で実行される命令(及び、それに用いるデータ)とし
て、FコードとAコードとの2種類を持つことにある。
これらの命令は、以下で詳細に説明する動作により明確
になるが、セキュリティに対する考え方が異なるもので
ある。すなわち、Aコードは、コードが暗号モジュール
1で実行される前に認証が行われ、認証が成功すればそ
のコードが実行され、そうでなければマシンチェック
(マシンチェック時の動作は後述する)となる。認証の
具体的な方法については後述する。また、Fコードは、
認証が行われずに、実行される前にコードの1命令単位
にセキュリティチェックが行われ、これに問題がなけれ
ば実行され、そうでなければマシンチェックとなる。こ
のセキュリティチェックは、Aコード実行前には行われ
ない。
【0023】これらの2種類のコードは、コードで用い
られる命令体系は同一である。そして、Fコードは、1
命令毎にセキュリティチェックを行うことにより高速な
実行が可能とされており、Aコードは、コード自体の認
証を行うことにより、セキュリティチェックを解除し、
これにより、Fコードでは実現することができない複雑
な動作を可能とするものである。すなわち、基本的に、
Aコードは、本発明によるディジタル回路において、実
行前に認証チェックが行われるが、その動作内容がセキ
ュリティ上問題ないか否かをチェックするセキュリティ
チェックは行われない。従って、暗号モジュール1のセ
キュリティを完全なものにするためにAコードのコーデ
ィングは、ある制限を守って行われていなくてはならな
い。この制限をセキュリティポリシと呼ぶことにする。
以下では、Aコードは、このセキュリティポリシに沿っ
てコーディングされているものとする。セキュリティポ
リシについては後述する。
【0024】次に、Fコードの動作について説明する。
Fコードは、前述説明したように、外部入力バス70I
Nから実行用命令キュー10Fに直接キューイングされ
る。実行用命令キュー10Fにキューイングされたタグ
部2とデータ部とは、1エントリづつキューから読み出
される。キューであるので、エントリは、FIFO、す
なわち、キューに書き込まれた順番に読み出しが行われ
る。
【0025】読み出された1つのエントリは、まずタグ
部2がデコードされる。タグ部2は、「Fコード命令」
または「Fコードデータ」のはずである。最初に読み出
したエントリが「Fコードデータ」である場合、マシン
チェックとなる。そして、タグ部2が「Fコード命令」
であって、かつ、マシンチェックが起こっていなければ
(起こっていればここで動作が停止する)、データ部が
デコードされ、セキュリティチェックが行われる。その
結果問題がければ(問題があった場合にはマシンチェッ
クとなる)、その結果を用いて暗号モジュール1内のリ
ソースが制御され、「Fコード命令」で指定された動作
が行われる。このとき、実行用命令キュー10Fの次の
エントリが「Fコードデータ」である場合があり、この
データは、この命令動作中にデータとして使用される。
「Fコード命令」で指定された動作で「Fコードデー
タ」を使用しないのにも関わらず、次のエントリが「F
コードデータ」であった場合にはマシンチェックとな
る。
【0026】「Fコード命令」で指定される動作は、以
下のようなものである。すなわち、レジスタ30SP、
30ST、30PP、30PT、30Oの内、「Fコー
ド命令」で指定されたレジスタからデータを読み出し
(指定によっては複数回読み出しを行う)、読み出した
データを演算器20に入力し、「Fコード命令」で指定
された演算を演算器20内部で行い、その結果をレジス
タ30SP、30ST、30PP、30PT、30Oに
書き込む。指定する動作がすべて完了すれば、次の「F
コード命令」の読み出しを行って前述の動作を繰り返
す。
【0027】本発明の実施形態は、前述の動作を行うた
めに次に説明するような機構を備えている。
【0028】レジスタ30SP、30ST、30PP、
30PT、30Oは、データを格納しているレジスタで
あり、単位長(ここでは8バイト長とする)を1エント
リとして、単一もしくは複数のエントリを格納すること
ができる。セレクタ50SP1、50SP2、50ST
1、50PP1、50PT1、50O1、50O2は、
それぞれ、レジスタ30SP、30ST、30PP、3
0PT、30Oに格納されているデータから、ある1つ
のエントリを読み出す。セレクタ50は、演算器20へ
の入力データを選択する。このようなレジスタから1つ
のエントリを読み出し、演算器20に入力するという一
連の動作は、命令によっては1回も行われない場合もあ
れば複数回行われることもある。また、この読み出し動
作を高速に複数回行うために、セレクタ50SP1、5
0SP2、50ST1、50PP1、50PT1、50
O1、50O2、50と同じ論理を複数セットをインプ
リメントしてもよい。
【0029】演算器20は、演算に必要なデータがそろ
った段階で、データの演算を行う。ここで行う演算と
は、一般のプロセッサで行うことができる演算(四則演
算、論理演算等)に加え、暗号・復号演算(例えば、D
ES暗号等)及びハッシュ演算(例えばSHA1等)を
行うことができるものであってよい。セレクタ60S
P、60ST、60PP,60PT、60Oは、それぞ
れ、レジスタ30SP、30ST、30PP、30P
T、30Oの1つのエントリに書き込みを行う。これら
の演算器及びセレクタは、「Fコード命令」のデコード
により生成された制御信号により制御される。
【0030】次に、セキュリティチェックの方法につい
て説明するが、まず、レジスタ30SP、30ST、3
0PP、30PT、30Oの分類について説明する。
【0031】レジスタは、3つの観点から分類されてい
る。3つの観点とは、レジスタに格納されているデータ
が暗号モジュール1の外部から読み出しを行うことがで
きるもの(出力レジスタに相当)と、書き込みあるいは
暗号モジュール1の外部への読み出しがAコード、Fコ
ードの両方で可能であるか、それともAコードでのみ可
能であるかの観点である。情報の種類という観点からす
ると、秘密(Secret)情報は、暗号モジュール1の外部
への読み出しがAコードでのみ可能であるものに分類さ
れるべきであり、公開(Public)情報は、暗号モジュー
ル1の外部への読み出しがAコード、Fコードの両方で
可能であるものに分類されるべきである。また、書き込
みの情報に関しても、Aコードでのみ可能なものと、A
コード、Fコードの両方で可能であるものに分類するこ
とができる。例えば、認証に用いる公開鍵は、Aコード
でないと書き換えができないもの(Permanent)に分類さ
れるべきであり、それ以外の主に演算に用いられる一時
的なデータは、Fコードでも書き換えができるもの(Tem
porary)に分類されるべきである。
【0032】前述の観点から本発明の実施形態は、暗号
モジュール1内のレジスタを次に示す5つに分類してい
る。すなわち、これらは、(1)SP(Secret-Permanen
t):恒久的に秘密情報を保持するレジスタ、(2)PP
(Public-Permanent):恒久的に公開情報を保持するレジ
スタ、(3)ST(Secret-Temporary):一時的に秘密情
報を保持するレジスタ、(4)PT(Public-Temporar
y):一時的に公開情報を保持するレジスタ、(5)O
(出力レジスタ) :暗号モジュール1の出力レジス
タ(レジスタの出力が外部出力バス70OUTに接続さ
れており、暗号モジュール1の外部にそのデータの読み
出しを行うことができる)の5つである。
【0033】これらの分類に従って、図1に示すレジス
タ30SP、30ST、30PP、30PT、30O
は、それぞれ、SP、ST、PP、PT、Oに分類され
ている。
【0034】次に、命令の分類について説明する。本発
明の実施形態は、命令を、その命令により指定される動
作内容から次に示すように分類している。
【0035】(1)秘密情報を公開情報に変換する命令 この命令には、SPに属するレジスタに格納されたデー
タをキーとして用いる暗号動作を指定する命令、あるい
は、ハッシュ化する演算を指定する命令が分類される。
SPに属するレジスタに格納されたデータは、Fコード
での読み出しを行うことができず、かつ、Aコードによ
っても、セキュリティポリシに従うことにより権威なき
書き換え、読み出しが許されないものであるため、この
データをキーとして暗号化を行うことにより、その暗号
化前のデータ(いわゆる平文)を秘匿することができ
る。従って、この場合、平文を秘密情報、暗号文を公開
情報と位置付けても問題が生じることはない。また、ハ
ッシュ化する演算は、その特性上、出力データから入力
データを求めることができないため、これについても、
入力データが秘密情報であっても、出力データを公開情
報として問題が生じることはない。
【0036】(2)公開情報を秘密情報に変換する命令 この命令には、SPに属するレジスタに格納されたデー
タをキーとして用いる復号動作を指定する命令が分類さ
れる。この命令は、前述の(1)に分類される命令の逆
変換に相当するものであり、このような分類が妥当であ
ることは明らかである。
【0037】(3)公開情報の入力に対しては公開情報
として、秘密情報の入力に対しては秘密情報として出力
する命令 この命令には、レジスタからレジスタへの転送、四則演
算を行う命令が分類される。
【0038】前述した(1)〜(3)の命令の分類に関
して、注意すべきことは、(1)と(2)とでいう暗号
化、復号化を単純にとらえてはならないということであ
る。例えば、トリプルDESと呼ばれる技術が知られて
いるが、このトリプルDESは、DES演算を3回繰り
返すことにより暗号強度を高める技術である。そして、
この技術は、3回の演算を、暗号化・暗号化・暗号化と
いう順で行う方法もあれば、暗号化・復号化・暗号化と
いう順で行う方法もある。問題は、後者の方法にある。
この場合の問題は、単純に、SPをキーに用いるDES
暗号及びトリプルDES暗号を(1)に分類し、逆に、
SPをキーに用いるDES復号及びトリプルDES復号
を(2)に分類すると、せっかくSPでトリプルDES
暗号を行ったデータも、SPを用いたDES復号を行
い、さらに、SPを用いたDES暗号を行うと、その結
果が公開情報となってしまうため、トリプルDESの暗
号強度が実質的にDES暗号の強度となってしまうとい
う問題である。この場合の回避策は、SPを用いたトリ
プルDES暗号・復号の命令を(1)、(2)に分類す
ることとした場合、SPを用いたDES暗号・復号の命
令を(1)でも(2)でもなくFコードでの実行は禁止
されるべき(つまり命令があってはならない)命令に分
類する必要がある。
【0039】次に、データ転送規則について、図2を参
照して説明する。このデータ転送規則を決定する基本的
な考え方は以下に説明する通りである。すなわち、これ
らの考え方の基本は、 ・レジスタ30SP、PPへの書き込みは、セキュリテ
ィポリシにより定義される権威付けが必要なためFコー
ドでの書き換えは許さない、 ・レジスタ30SP、STからのレジスタ30Oへの転
送は、暗号モジュール1の外部への秘密情報の読み出し
に相当するためFコードでは許さない、 ・レジスタ30SP、STからのレジスタ30PTへの
転送は、秘密情報の公開情報への変換を意味するためF
コードでは許さない。
【0040】・レジスタ30SPからレジスタ30ST
への転送は、前述したトリプルDESで示した問題が起
こるためFコードでは許さない、の4つである。そし
て、この4つの考え方の基本に基づいてレジスタ相互間
でのデータ転送の可否を纏めたのが図2に示すものであ
る。
【0041】次に、前述までに説明した命令の分類と転
送規則とを用いて、本発明の実施形態の場合におけるセ
キュリティチェックに関して説明する。
【0042】前述の(3)に分類される命令が最も簡単
であるので、まず、これについて説明する。この場合、
転送規則における転送元は入力レジスタであり、転送先
は出力レジスタである。これらの転送元、転送先の各レ
ジスタがSP、ST、PP、PT、Oのいずれであるか
によって、転送規則で転送可能か否かがチェックされ
る。転送不可となった場合が、セキュリティチェックで
問題があったということになり、マシンチェックとな
る。
【0043】前述の(1)に分類される命令の場合、命
令の演算により公開情報に変換されるため、転送規則に
おける転送元レジスタはPT扱いとなる。転送先は出力
レジスタと決定され、転送規則で転送可能か否かがチェ
ックされる。転送不可となった場合が、セキュリティチ
ェックで問題があったということになり、マシンチェッ
クとなる。
【0044】前述の(2)に分類される命令の場合、命
令の演算により秘密情報に変換されるため、転送規則に
おける転送元レジスタはST扱いとなる。転送先は出力
レジスタと決定され、転送規則で転送可能か否かがチェ
ックされる。転送不可となった場合が、セキュリティチ
ェックで問題があったということになり、マシンチェッ
クとなる。
【0045】前述までがFコードの動作の説明であり、
次に、Aコードの動作について説明する。
【0046】Aコードの認証動作を説明する。まず、認
証に用いる特別な命令であるCコードについて説明す
る。Cコードは、次に説明する3種類に分類され、
(1)ACGMAC:オペランドとしてAコードを指定
し、そのAコードの認証コードの生成を行う、(2)S
ETACEN:オペランドとしてリファレンス認証コー
ドを指定し、前述の(1)に分類されたコードで生成さ
れた認証コードと比較し、一致した場合にAコードの実
行が可能状態にする、(3)RSTACEN:前述の
(1)に分類されたコードで生成された認証コードを無
効化し、前述の(2)に分類されたコードでセットした
Aコードの実行可能な状態をリセットして不可状態にす
る、である。
【0047】これらの3種類を用いて、Aコードは外部
入力バス70INから次に示す順序で入力される。以下
では、「タグ部2の指定」:「データ部」で示す。
【0048】(1)「Cコード命令」:「RSTACE
N」 (2)「Cコード命令」:「ACGMAC」 (3)「Aコード命令」:「(Aコードの命令)」 (4)「Aコード命令」または「Aコードデータ」:
「(Aコードの命令またはデータ)」 (5)「Cコード命令」:「SETACEN」 (6)「Cコードデータ:「リファレンス認証コード」 前述の(1)〜(6)は、すでに説明したとおり、タグ
部1が「認証用命令キューへキューイングせよ」と指定
し、全てが認証用キュー10Cにキューイングされる。
ここから順にエントリが読み出されて実行される。以
下、これらを順に説明する。
【0049】(1)「Cコード命令」:「RSTACE
N」の動作 マシンチェックが起こっていなければ命令が実行され
る。そして、この命令は、認証コードレジスタ30Cを
無効化し、Aコードの実行可能・不可状態を示すラッチ
40を実行不可を示すように“0”クリアし、セレクタ
60F2の選択を外部入力バス70IN側となるように
する。
【0050】(2)「Cコード命令」:「ACGMA
C」の動作 マシンチェックが起こっていなければ命令が実行され
る。そして、この命令は、セレクタ60F2の選択を認
証用命令キューのセレクタ50Cの出力側となるように
する。その後、実行用命令キューが空となり、全ての命
令の実行が完了した状態となるまで待ち、ラッチ40を
“0”クリアして、レジスタ30SPから認証コード生
成に用いるキーを読み出す(どれを用いるかは固定)。
認証コードレジスタ30Cからデータを読み出し、これ
を認証コード生成時の初期値(30Cが無効状態の場
合、初期値“0”)とする。その後、(3)と(4)と
のAコードを順に認証用命令キュー10Cから読み出し
て認証コードの生成を行って30Cに格納(格納が1回
でも行われると、30Cは有効化される)していく。そ
の際、キューから読み出したAコードは、実行用命令キ
ュー10Fにキューイングされる。実行用命令キュー1
0Fからの読み出しはラッチ40が“0”である間、抑
止されるため、実行用命令キュー10Fにキューイング
された命令が実行されることはない。
【0051】(5)「Cコード命令」:「SETACE
N」の動作 マシンチェックが起こっていなければ命令が実行され
る。認証コードレジスタ30Cと、認証用命令キュー1
0Cから読み出した(6)のリファレンス認証コードと
を比較し、一致すればラッチ40を“1”にセットし
(Aコード実行可能状態を示す)、そうでなければマシ
ンチェックを起こす。
【0052】一致した場合、ラッチ40が“1”にセッ
トされるので、実行用命令キュー10Fから命令が読み
出され、Aコードの実行が開始される。この後の動作
は、前述で説明したFコードの動作と同一であるが、た
だ一点のみ異なる。この異なる動作は、Aコードの実行
ではセキュリティチェックなしで命令が実行される点で
ある。
【0053】マシンチェックが起こった場合、前述で説
明した部分と重複するが、認証用命令キュー10Cの命
令実行(これはCコードの実行を指す)が停止し、実行
用命令キュー10Fの命令実行(これはFコード及びA
コードの実行を指す)が停止するため、暗号モジュール
1内の命令実行はすべて停止する。これは、セキュリテ
ィを確保するためである。このマシンチェックの状態を
解除できる方法は唯一リセットのみである。
【0054】次に、リセットの動作について説明する。
リセットは、暗号モジュール1においてセキュリティを
確保する上で重要である。リセットにより、少なくとも
マシンチェック状態がリセットされ、また、レジスタ3
0SP、30ST、ラッチ40、ラッチ41及び認証コ
ードレジスタ30Cがリセットされる。但し、この場
合、レジスタ30SPに、認証コード生成回路21でキ
ーとして用いるデータが格納されるレジスタにある特別
な秘密の値が格納される。これは、リセット後に実行す
るAコードの認証においてもセキュリティの確保を行う
ことが必要なためである。
【0055】最後に、セキュリティポリシの考え方につ
いて説明する。本発明は、すでに説明してきたようにセ
キュリティに関する機構を提供することが目的である
が、実際に本発明を実現するためには、Aコードのコー
ディングがある一定の制限の下に行われないとセキュリ
ティを損なうことになる。前述した本発明の実施形態
は、Fコードでの読み出し、書き込みが制限されている
レジスタに対して、Aコードでの読み出し、書き込みが
可能であるとしているが、これを実行するために、ある
一定の権威付けの方法を定義して、それが行われた場合
にのみAコードでの読み出し、書き込みを実行すること
ができるようにしておく必要がある。
【0056】前述の権威づけの方法として、例えば、レ
ジスタ30SP、PPのエントリを階層化し、より上位
のエントリをキーとして用いて認証を行い、認証が成功
した場合のみ、より下位のエントリの読み出し、書き込
みを行うことができるようにするという方法がある。こ
の場合、最終的に最上位となるエントリに、例えば、リ
セット時に特別な値にセットする、あるいは、より下位
のエントリをキーとして用いた認証を複数のエントリで
認証が通らないと書き換えられないようにする等の方法
がある。このような機能は、Aコードであれば自由にコ
ーディングができるわけであるから実現が容易であり、
新たなるハードウエア機構は必要とされない。
【0057】Aコードでのコーディングは、前述したよ
うに、まず、認証を行い、その後、レジスタにアクセス
するようにコーディングが行われればよい。但し、セキ
ュリティを確保する機構として、認証に失敗すればマシ
ンチェックとなるようにするか、あるいは、少なくとも
失敗すれば、キューイングされているそれ以降のAコー
ドがクリアされて実行されないようにしておくことが必
要である。
【0058】図3はデータ転送の規則についての他の例
を説明する図であり、以下、これについて説明する。
【0059】このデータ転送の規則は、ハードウエアに
1ビットのモードラッチ41設けることにより、ESモ
ードの設定を行った場合のデータ転送規則である。ES
モードは、レジスタ30SPからレジスタ30PTへの
データの転送を可能とするモードである。そして、この
モードラッチ41は、レジスタ30SPからレジスタ3
0PTへのデータの転送が行われるとオンとされる。こ
れは、レジスタ30SPからレジスタ30PTへの転送
が行われることにより、レジスタ30PTをレジスタ分
類としてはSP扱いにするためである。他の転送も同様
である。
【0060】図3に示すように、ESモードがオンであ
る場合、レジスタ30PTからレジスタ30Oへの転送
は禁止される。これは、ESモードオン時には、前述で
説明したように、レジスタPTにレジスタ30SP等の
秘密情報を含む可能性があるためである。
【0061】前述のESモードを設けたことにより、こ
のESモードをリセットする命令を追加する必要がある
が、このリセットの際、レジスタ30STと30PTと
は、“0”にクリアされる。
【0062】
【発明の効果】以上説明したように本発明によれば、処
理のオーバヘッドを大きくすることなく、柔軟な方式で
セキュリティーの向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態によるディジタル回路を含
む暗号モジュールの構成例を示すブロック図である。
【図2】データ転送の規則について説明する図である。
【図3】データ転送の規則についての他の例を説明する
図である。
【符号の説明】 1 暗号モジュール 10F 実行用命令キュー 10C 認証用命令キュー 20 演算器 21 認証コード生成回路 22 一致検出回路 30SP、30ST、30PP、30PT、30O レジスタ 30C 認証コードレジスタ 40、41 ラッチ 50SP1、50SP2、50ST1、50PP1、50PT1、50O1、50O2、5
0、50C、50F、60C、60F1、60F2、60SP、60ST、60PP、60
PT、60O セレクタ 70IN 入力バス、 70OUT 出力バス

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 プログラムをキューイングする第1、第
    2の2個のキューと、プログラムの認証コードを生成す
    る認証コード生成回路と、生成した認証コードを格納す
    るレジスタと、認証コードとリファレンス認証コードと
    の一致を検出する回路と、一致が検出されると“1”が
    セットされるラッチと、データを格納するレジスタと、
    該レジスタからの出力データの演算を行い該レジスタへ
    の書き込みを行う演算回路とを備え、前記第1のキュー
    に読み込んだプログラムの真偽を、プログラムから生成
    した認証コードとリファレンス認証コードとを比較して
    認証し、一致した場合にプログラムを実行する機能と、
    前記第2のキューに読み込んだプログラムをメッセージ
    認証を行うことなく1命令単位にセキュリティに関する
    チェックを行い、問題がない場合にその命令を実行する
    機能とを有することを特徴とするディジタル回路。
  2. 【請求項2】 前記演算回路が用いるデータを格納して
    いる前記レジスタは、第1から第5の5種類に分類され
    ており、第5のレジスタのデータは、外部回路から読み
    出すことが可能であり、前記レジスタ間のデータ転送規
    則として、第1のレジスタから他のレジスタへの転送を
    許可せず、第2のレジスタから第2のレジスタへの転送
    を許可してそれ以外のレジスタへの転送を許可せず、第
    3、4及び5のレジスタから第2、4及び5のレジスタ
    への転送を許可しそれ以外のレジスタへの転送を許可し
    ないという転送規則を設け、また、前記第2のキューに
    格納されるプログラムの命令は、演算回路での演算内容
    により、第1から第3の3種類に分類され、第1の命令
    は、第1から第5の分類のレジスタのいずれかのレジス
    タからデータを読み出して演算を行い、その出力データ
    は、演算によるデータの加工作用により第4の分類のレ
    ジスタのデータとみなされて、転送元を第4のレジスタ
    とした前記転送規則が適用され、第2の命令は、第1か
    ら第5の分類のレジスタのいずれかのレジスタからデー
    タを読み出して演算を行い、その出力データは、演算に
    よるデータの加工作用により第2の分類のレジスタのデ
    ータとみなされて、転送元を第2のレジスタとした前記
    転送規則が適用され、第3の命令は、第1から第5の分
    類のレジスタのいずれかのレジスタからデータを読み出
    して演算を行い、その出力データは、演算によるデータ
    の加工作用により読み出し元のレジスタの分類のレジス
    タのデータとみなされて、転送元を読み出し元のレジス
    タとした前記転送規則が適用され、かつ、前記第1から
    第3の命令は、いずれも、転送先レジスタを演算の出力
    データが転送される先のレジスタとし、前記転送規則に
    従って決定された許可、不許可によってセキュリティに
    関するチェックを行ってから実行され、前記第1のキュ
    ーに格納されるプログラムの命令は、前記認証が得られ
    た場合、セキュリティに関するチェックを行わず、前記
    全ての分類のレジスタから全ての分類へのレジスタへの
    転送が許可されて実行されることを特徴とする請求項1
    記載のディジタル回路。
  3. 【請求項3】 モードラッチ1個を有し、前記演算回路
    が用いるデータを格納している前記レジスタは、第1か
    ら第5の5種類に分類されており、第5のレジスタのデ
    ータが外部回路から読み出すことが可能であり、前記レ
    ジスタ間のデータ転送規則として、第1のレジスタから
    第2及び第4のレジスタへの転送を許可し、転送が行わ
    れた場合に前記モードラッチを“1”セットし、それ以
    外のレジスタへの転送を許可せず、第2のレジスタから
    第2のレジスタへの転送を許可し、第4のレジスタへの
    転送を許可し、転送が行われた場合に前記モードラッチ
    を“1”セットし、それ以外を許可せず、第3及び5の
    レジスタから第2、4及び5のレジスタへの転送を許可
    しそれ以外を許可せず、前記モードラッチが“0”の場
    合、第4のレジスタから第2、4及び5のレジスタへの
    転送を許可しそれ以外のレジスタ経の転送を許可せず、
    前記モードラッチが“1”の場合、第4のレジスタがら
    第2及び4のレジスタへの転送を許可しそれ以外のレジ
    スタへの転送を許可しないという転送規則を設け、ま
    た、前記第2のキューに格納されるプログラムの命令
    は、演算回路での演算内容により、第1から第3の3種
    類に分類され、第1の命令は、第1から第5の分類のレ
    ジスタのいずれかのレジスタからデータを読み出して演
    算を行い、その出力データは、演算によるデータの加工
    作用により第4の分類のレジスタのデータとみなされ
    て、転送元を第4のレジスタとした前記転送規則が適用
    され、第2の命令は、第1から第5の分類のレジスタの
    いずれかのレジスタからデータを読み出して演算を行
    い、その出力データは、演算によるデータの加工作用に
    より第2の分類のレジスタのデータとみなされて、転送
    元を第2のレジスタとした前記転送規則が適用され、第
    3の命令は、第1から第5の分類のレジスタのいずれか
    のレジスタからデータを読み出して演算を行い、その出
    力データは、演算によるデータの加工作用により読み出
    し元のレジスタの分類のレジスタのデータとみなされ
    て、転送元を読み出し元のレジスタとした前記転送規則
    が適用され、かつ、前記第1から第3の命令は、いずれ
    も、転送先レジスタを演算の出力データが転送される先
    のレジスタとし、前記転送規則に従って決定された許
    可、不許可によってセキュリティに関するチェックを行
    ってから実行され、前記第1のキューに格納されるプロ
    グラムの命令は、前記認証が得られた場合、セキュリテ
    ィに関するチェックを行わず、前記全ての分類のレジス
    タから全ての分類へのレジスタへの転送が許可されて実
    行されることを特徴とする請求項1記載のディジタル回
    路。
JP2001006708A 2001-01-15 2001-01-15 ディジタル回路 Expired - Fee Related JP4098959B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001006708A JP4098959B2 (ja) 2001-01-15 2001-01-15 ディジタル回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001006708A JP4098959B2 (ja) 2001-01-15 2001-01-15 ディジタル回路

Publications (2)

Publication Number Publication Date
JP2002215459A true JP2002215459A (ja) 2002-08-02
JP4098959B2 JP4098959B2 (ja) 2008-06-11

Family

ID=18874558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001006708A Expired - Fee Related JP4098959B2 (ja) 2001-01-15 2001-01-15 ディジタル回路

Country Status (1)

Country Link
JP (1) JP4098959B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172005A (ja) * 2004-12-14 2006-06-29 Toshiba Corp 携帯可能電子装置
JP2007506350A (ja) * 2003-09-17 2007-03-15 松下電器産業株式会社 アプリケーション実行装置、アプリケーション実行方法、集積回路およびプログラム
JP2010092465A (ja) * 2008-10-06 2010-04-22 Internatl Business Mach Corp <Ibm> ハードウェア・ベースの強制アクセス制御

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007506350A (ja) * 2003-09-17 2007-03-15 松下電器産業株式会社 アプリケーション実行装置、アプリケーション実行方法、集積回路およびプログラム
JP4719150B2 (ja) * 2003-09-17 2011-07-06 パナソニック株式会社 アプリケーション実行装置、アプリケーション実行方法、集積回路およびプログラム
JP2006172005A (ja) * 2004-12-14 2006-06-29 Toshiba Corp 携帯可能電子装置
JP4713878B2 (ja) * 2004-12-14 2011-06-29 株式会社東芝 携帯可能電子装置
JP2010092465A (ja) * 2008-10-06 2010-04-22 Internatl Business Mach Corp <Ibm> ハードウェア・ベースの強制アクセス制御
US10802990B2 (en) 2008-10-06 2020-10-13 International Business Machines Corporation Hardware based mandatory access control

Also Published As

Publication number Publication date
JP4098959B2 (ja) 2008-06-11

Similar Documents

Publication Publication Date Title
US9575906B2 (en) Method and system for process working set isolation
KR101067399B1 (ko) 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US7874009B2 (en) Data processing device
US8683208B2 (en) Information processing device, program developing device, program verifying method, and program product
US9703945B2 (en) Secured computing system with asynchronous authentication
JPS6016670B2 (ja) 端末ユ−ザの身元を認証するためのシステム
CN103824032A (zh) 在微控制器中用于数据安全性处理的方法和装置
US20090193261A1 (en) Apparatus and method for authenticating a flash program
CN110825672A (zh) 用于联机加密处理的高性能自主硬件引擎
US11722467B2 (en) Secured communication from within non-volatile memory device
CN113050989A (zh) 用于以密码方式与数据联系的使用限制的指令的装置、方法和系统
JP2005216027A (ja) 暗号化装置及びこれを備えた暗号化システム並びに復号化装置及びこれを備えた半導体システム
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
WO2016053407A2 (en) Speculative cryptographic processing for out of order data
US11281434B2 (en) Apparatus and method for maintaining a counter value
CN112088376A (zh) 一种文件存储方法、装置及存储介质
JP4098959B2 (ja) ディジタル回路
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
JPWO2006046484A1 (ja) 認証方法
US11651086B2 (en) Method for executing a computer program by means of an electronic apparatus
JP6069120B2 (ja) 情報処理システム
US11677541B2 (en) Method and device for secure code execution from external memory
US20220294634A1 (en) Method for executing a computer program by means of an electronic apparatus
US20240073013A1 (en) High performance secure io

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080314

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110321

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees