JPH0727497B2 - メッセージの完全性をチェックする方法及び携帯装置 - Google Patents

メッセージの完全性をチェックする方法及び携帯装置

Info

Publication number
JPH0727497B2
JPH0727497B2 JP2508410A JP50841090A JPH0727497B2 JP H0727497 B2 JPH0727497 B2 JP H0727497B2 JP 2508410 A JP2508410 A JP 2508410A JP 50841090 A JP50841090 A JP 50841090A JP H0727497 B2 JPH0727497 B2 JP H0727497B2
Authority
JP
Japan
Prior art keywords
message
signature
module
modules
mobile device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2508410A
Other languages
English (en)
Other versions
JPH03503220A (ja
Inventor
ユゴン,ミツシエル
オアゼル,アンドレ
Original Assignee
ブル・セー・ペー・8
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 ブル・セー・ペー・8 filed Critical ブル・セー・ペー・8
Publication of JPH03503220A publication Critical patent/JPH03503220A/ja
Publication of JPH0727497B2 publication Critical patent/JPH0727497B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Description

【発明の詳細な説明】 本発明は、プログラムまたはデータ等のメッセージの完
全性をチェックする方法及び該方法を実施する装置に係
る。本発明は、記憶媒体の特定場所に記憶されておりデ
ータ処理システムの毎回の使用毎に一定に維持されるべ
きデータのごとき情報、またはソフトウェアとも呼ばれ
るコンピュータプログラムの動作命令を構成している情
報が、連続する使用の間に意図的または偶発的に変更さ
れなかったことをチェックする。実際、プログラムが正
しく作動するためには、その命令(または連続する2回
の使用の間に必要なデータ)が不正に変更されてはなら
ない。
事実、コンピュータの使用が普及して以来、いかなるユ
ーザーもコンピュータのアプリケーションプログラムま
たはオペレーティングシステムにアクセスできるように
なっている。
このように広くアクセス可能なため、ユーザーがデータ
処理システムの作動に必要なプログラムもしくはデータ
を変化させる操作エラーを犯したり、または、悪意をも
つ人間がシステムの作動を妨害するためにデータ処理シ
ステムのプログラム構造またはデータ内容を故意に改竄
することがある。後者の場合には、エラーによって生じ
た変化よりも問題が難しい。何故なら、意図的な改竄を
行なうためには、プログラムまたはデータに命令のよう
な寄生エレメントを導入し、この寄生命令がプログラム
によって処理されるときにプログラムが徐々に自己変化
するからであり、完全な自己破壊に到達することもあり
得る。
更に現在では、たいていのプログラムが複製から保護さ
れており、この保護のために、コピーされた際には、コ
ピーまたはオリジナルを使用の継続に伴って次第に汚染
及び/または変質させる手段を含んでいる。このため、
ユーザーが海賊コピーを知らずに購入したときに、ソフ
トウェアが急激に使用できなくなるという問題が生じ
る。
ソフトウェアまたはデータのこの種のコンタミネーショ
ンは、ソフトウェアを徐々に変質させるので、ソフトウ
ェアの誤動作を直ちに生じさせるコンタミネーションよ
りも検出がはるかに難しい。ソフトウェアの誤動作を直
ちに生じさせる後者のタイプのコンタミネーションは一
般に異常な処理結果を与えるので速やかに検出される。
これに反して、徐々に変質させるコンタミネーション
は、特に悪意をもって与えられたとき、最初の複数回の
使用では正しい出力または少なくとも正しく見える出力
が与えられるように導入されるので、プリントアウトを
読むだけでは必ずしも検出できない。多くの回数の使用
後に初めて検出可能なエラーが生じる。
また、最後のタイプのコンタミネーションとして、特に
システムが回線網の一部として使用される場合に、正し
いプログラムが実行すべくロードされた後でソフトウェ
アの正常な動作命令のいくつかに寄生命令を挿入または
置換させるものがある。この挿入または置換は、例えば
伝送線路を介して遠隔から行なわれる。
この場合、プログラムをロードしたユーザーは、彼がロ
ードしたオリジナルプログラムが正しいことを知ってい
ても外部からの改竄を必ずしも検出できないので、プロ
グラムを実行させると直ちに異常な結果が生じる。
データ処理システムで使用される命令またはデータは、
各々が所与のビット数を有する2進ワードの形態でコー
ドされる。常用の1つのフォーマットは、バイト、即ち
論理状態「1」または「0」を示し得る8つのビットを
含むワードである。命令またはデータのタイプ次第で
は、1つの命令または1つのデータに複数のワードを使
用する必要があろう。プログラムはこれらのワードのシ
ーケンスから成る。前述のごとき変質は、2進ワードの
付加、即ち寄生の命令もしくはデータの付加であった
り、またはオリジナルプログラム中のいくつかのワード
の1つもしくは複数のビットの状態の変化であったりす
る。
命令またはデータが偶発的に変化した場合に十分に効果
的な公知の第1の変質検出方法は、ソフトウェアにサイ
ンを付ける方法である。即ち、ソフトウェアまたはデー
タのサインを構成するために1つまたは複数の2進ワー
ドを命令またはデータに後に付加する。このためには、
オリジナルプログラムをメッセージMとし、S=f
(M)で変換し、この結果Sをプログラムの所与の場所
にサインとして配置する。サインは例えばプログラムの
最終ワードから成る。
使用すべきプログラムを後でロードする際にサインをチ
ェックするために、ロードされたプログラムのサインを
再計算し、記憶媒体に記憶されているサインと比較す
る。両者が一致すると、これはオリジナルが変質してい
ないことを意味する。
しかしながら、サインの計算に使用された関数またはア
ルゴリズムを知っている悪賢いハッカーは、次回の使用
の際に、プログラムまたはデータ記憶媒体に記憶されて
いる最新のサインと再計算されたサインとが一致するよ
うに、不正侵入の度毎に、記憶させるサインを改竄し得
る。従って、サインの一致をチェックする責任者は、メ
ッセージ変換アルゴリズムを用いたときにサインの一致
を検出し、改竄を発見できない。
更に、チェックのためのサイン計算は毎回ある程度の時
間を要し、しかもこの時間中はプログラムを予定の目的
に使用することができない。従って、この方法は長いプ
ログラムには使用し難い。
本発明の目的は、これらの欠点を是正し、すべての状況
下に、2回の使用の間でプログラムまたはデータが一致
し、意図的であるか否かにかかわりなくプログラムまた
はデータが変化しなかったことを高速に且つ確実にチェ
ックし得る方法及びシステムを提供することである。
前記目的を達成すべく、本発明によれば、オリジナルメ
ッセージ(M)に対して、情報を含む後続のメッセージ
の完全性をチェックするための方法であって、 オリジナルメッセージを総数(m)個のモジュール(M
1、M2,...Mm)に分割する段階と、 各モジュールの各サイン(S1,S2、....Sm)を計算する
ためにオリジナルメッセージの各モジュールにアルゴリ
ズムAを適用する処理手段を使用する段階と、 処理回路(11)及び前記処理回路だけがアクセスできる
一つの不揮発性保護記憶領域(10)を含む記憶手段を有
する携帯電子装置を使用して、前記保護記憶領域に前記
サインを格納し、前記記憶手段に前記アルゴリズムを格
納する段階と、 限定された数(p)のモジュールのみを考慮することに
より、後続のメッセージにおける改変を検出する確率が
所定の値となるように、モジュールの前記総数(m)よ
りも少ない前記限定された数(p)のモジュールを後続
のメッセージ中から選択し、 各サインを計算するために各選択されたモジュールに前
記アルゴリズムを適用するために前記処理回路を使用
し,後続のメッセージの選択されたモジュールに対応す
るオリジナルメッセージのモジュールのサインを前記保
護記憶領域で選択し、且つ該サインを後続のメッセージ
のサインと比較し、 オリジナルメッセージの前記サインが後続のメッセージ
の各サインと合致する関係にあるかどうかに従い、オリ
ジナルメッセージと後続のメッセージの間の完全性が一
致するかどうかを示す出力信号を携帯装置から送らせる
ことによって、携帯装置において後続のメッセージをチ
ェックする段階、 とを含むメッセージの完全性をチェックする方法が提供
される。
本発明によれば、更に総数(m)個のモジュール(M1,M
2,...Mm)に分割されたオリジナルメッセージ(M)に
対して、情報を含む後続のメッセージの完全性のチェッ
クを行うための携帯装置であって、処理回路(11)と、
前記処理回路のみがアクセスできる不揮発性保護記憶領
域(10)を含む記憶手段とを含み、 前記保護記憶領域は、複数のサイン(S1,S2,...Sm)を
記憶し、各サインは、アルゴリズム(A)をオリジナル
メッセージの所定のモジュールに適用した結果として得
られ、 前記記憶手段は、前記アルゴリズム(A)と、以下の命
令、即ち、 改変を検出する確率が限定された数(p)のモジュール
のみを考慮することにより所定の値となるように、前記
モジュールの総数(m)よりも少ない前記限定された数
(p)のモジュールを、前記記憶手段に記憶されている
か又は、携帯装置と協働する装置から受けとられた後続
のメッセージの中から選択する命令と、 各サインを計算するために夫々選択されたモジュールに
前記アルゴリズムを適用するために前記処理回路を使用
する命令と、 後続のメッセージの選択されたモジュールに対応するオ
リジナルメッセージ中のモジュールのサインを前記保護
記憶領域で選択し、且つ前記サインを後続のメッセージ
のサインと比較する命令と、 オリジナルメッセージの前記サインが後続のメッセージ
の各サインと合致する関係にあるかどうかに従い、オリ
ジナルメッセージ及び後続のメッセージの間の完全性が
一致しているかどうかを示す出力信号を携帯装置から送
るための命令と、を記憶していることを特徴とするメッ
セージの完全性のチェックを行うための携帯装置が提供
される。
従って本発明は、プログラムまたはデータの寿命のいか
なる時点でも使用できるという利点を有する。実際、自
分を守りたいユーザーはいつでも携帯装置内部にサイン
を記憶させ得る。携帯装置は好ましくは、電子マイクロ
回路を備えたメモリカード型のデバイスである。設計者
がサインを記憶させてもよい。その場合には、携帯装置
にプログラムが導入されている。また、多数回の使用後
にプログラムが無傷(intact)であることをチェックし
たいユーザがサインを記憶させてもよい。その場合に
は、ユーザーは特定のバージン携帯装置を入手し、必要
なときにサイン計算プログラムを実行させてサインを記
憶させる。次いでこの携帯装置を使用してプログラムの
完全性をときどきチェックする。
更に、最初に記憶されたサインに比較するためのサイン
が携帯装置の内部で計算され、携帯装置の処理回路だけ
がアクセスできる記憶領域に記憶されたサインを抽出す
ることによってサインの一致がチェックされるので、ハ
ッカーがシステムを破壊することは不可能である。何故
なら、各サインは、携帯装置の回路によって再計算さ
れ、処理回路の制御下でのみアクセス可能な比較回路に
送られるからである。従って、メッセージが無傷でない
ときは、比較回路のアドレスに偽サインを送ることはで
きないので、いかなる改変または侵入も直ちに検出され
る。
1つの実施態様によれば、記憶すべきサインの計算に必
要なシークレットキーが、これらのサインを作成すると
きに使用され、計算された各サインと同様に携帯装置の
メモリに記憶される。シークレットキーは、サイン計算
の際に与えられ、計算後に携帯装置に記憶された後で破
壊される乱数でよい。
1つの実施態様によれば、記憶させるサインの計算に使
用されるシークレットキーが、携帯装置の内部、例えば
その機密フェーズに予め記憶され、携帯装置の外部から
アクセスできない。携帯装置自体の処理回路が、予め記
憶された前記キーを用い、記憶すべきサインの最初の計
算を実行する。
本発明のその他の特徴及び利点は、本発明の原理及び本
発明のいくつかの実施例を示す添付の図1から図6に基
づく以下の記載より明らかであろう。
図1Aから図1Dは、本発明が適用される情報シーケンスの
それ自体公知の構造を示す。
図1Aは、プログラムの典型的構造を示す。プログラム
は、夫々のアドレスによって検出され得るワードによっ
て2進形にコードされ1からkまで番号付けされた一連
の命令から構成されている。図示の実施例において、プ
ログラムはm個の2進ワードを有し、mはk以上の値で
よい。命令のタイプ次第では、1つの命令のコードが複
数の2進ワードに関係する。このことが図1Aに示されて
いる。この図において、命令No.2は2つのワード、即ち
ワード2及び3にコードされている。構造化データ処理
システムにおいては一般に各ワードが所与のビット数を
有し、通常はバイト、即ち8ビットのサイズを有するか
または8ビットバイトの倍数のサイズを有する。勿論、
本発明はこのプログラム構造に限定されるものではな
く、ワードフォーマットが個々のプログラム毎に異なっ
た他のいかなるプログラム構造にも適用できる。
このように構造化されたプログラムは、同じ長さ、即ち
nビットのワードを有し、これらのワードが所与の順序
で配列されると、ビット数で表現して合計長さL=m×
nのメッセージを構成する。一般に、メッセージの合計
長さは、命令シーケンスに使用された各ワードを構成す
るビット集合の和から成る。
本発明はまた、図1Bに示すようなデータシーケンスの完
全性をチェックするために使用される。繰返し使用され
るデータ、例えばプログラムの実行に必要なデータの完
全性をチェックすることが必要になることもあろう。
データは、図1Bに示すようにプログラムから独立してい
てもよい。図1Bは、j個のデータを含むm個のnビット
ワードの集合を示す。
データは命令と同様に、複数の2進ワードでコードされ
得る。従って、データ数jがデータを含むワード数mと
は異なる値になり、jがm以下になり得ることは理解さ
れよう。
図1Cは命令とデータとが混合されたプログラム(x個の
データとy個の命令)の特定例を示す。
一般に、命令はデータの特定形態であると考えられるこ
とに注目されたい。
プログラムは通常、特定記憶媒体、例えばコンピュータ
のCPUまたはマイクロコンピュータプログラムを内蔵し
たハードディスクに記憶される。プログラムはまた、最
初に記憶されたディスケットのようなオリジナル記憶媒
体から直接使用されてもよい。意図的であるか偶発的で
あるかにかかわりなくプログラムの完全性が欠如したと
き、その結果として上記のごときワードのいずれかが変
化する。
図1Dは、実際に「0」または「1」の値をとるビットの
集合からワードが構成されることを示す。1つのワード
が変化すると、その結果として少なくとも1つのビット
の状態が変化する。または、オリジナルの命令またはデ
ータに寄生の命令またはデータが重畳されたときにも変
化が生じる。これは、オリジナル記憶媒体以外の媒体に
プログラムを記憶させるとき、例えばプログラムをオリ
ジナルハードディスクから使用ハードディスクに記憶さ
せるときに生じ得る。
従って、寄生即ち改変された命令またはデータが読取ら
れたときは制御不能な現象が発生し得る。
本発明はプログラム及び/またはデータの完全性をチェ
ックするために使用されるので、本発明では、以上の記
載で命令もしくはデータと呼びまたは情報と呼んできた
シーケンスがビットで表現して長さLのメッセージを構
成し、Lの値がメッセージ中のビット数に等しいと考え
ている。
小サイズのメッセージに直接使用される第1の方法は、
少なくとも1つのシークレットキーを用いたメッセージ
変換アルゴリズムAを使用してメッセージの電子サイン
を予め計算し、次いで、得られたサインSを、サインを
予め計算する際に使用したアルゴリズムを有するマイク
ロコンピュータカードの電子メモリに記憶させる段階を
含む。携帯装置は更に、該装置が内蔵する処理回路だけ
がアクセスできる記憶領域を有し、任意に、サインを予
め計算する際にシークレットキーを使用したときは該シ
ークレットキーを含む。
メッセージの完全性をチェックする際に、ユーザーが携
帯装置をプログラム内蔵システムに接続し、チェックプ
ログラムを実行させる。このチェックプログラムでは、
携帯装置の処理回路がその内蔵アルゴリズム及び任意に
シークレットキーを用いてチェックされるべきメッセー
ジを構成するビットシーケンスに関する別のサインを再
計算する。
次いで、携帯装置の処理回路を使用し、再計算されたサ
インを、最初に計算され携帯装置の処理回路だけがアク
セスできる携帯装置のメモリに記憶されたサインに比較
する。最初のサインの計算のベースとして使用されたメ
ッセージがチェックに使用されたメッセージに等しいと
き、即ち、プログラム及び/またはデータが変質してい
ないときは、携帯装置のメモリに記憶されたサインは再
計算されたサインに等しく、このことがチェック担当者
に示されるであろう。
本発明の別の利点も容易に理解されよう。チェック用サ
インが携帯装置の処理回路によって計算され同じ処理回
路によって携帯装置の内部で比較されるので、偽サイン
をシミュレートすることは不可能である。その理由は、
ハッカーが改竄プログラムまたはデータに対応する偽サ
インをプログラム及び/またはデータに結合できた従来
技術の場合と違って、処理回路が偽サインを抽出しない
からである。
図2は、携帯装置のメモリに記憶されるチェック用サイ
ンをシークレットキーKを用いて計算する本発明の実施
例の原理を示す。
長さLのメッセージMを、例えば単位ブロックB1,B
2,..,Bfに分割する。各単位ブロックは、サイン計算を
実行する処理回路のワーキングフォーマットとコンパチ
ブルなビット数を含む。例えば各ブロックが1ビットを
含んでもよいが、最新の処理回路では、各ブロックがバ
イトの倍数から成る複数ビットから構成される。第1ブ
ロックB1は例えば、サイン用ベースとして機能するメッ
セージの第1ワードから成り、第2ブロックB2はメッセ
ージの第2ワードから成り、以後同様にして最終ブロッ
クBfはメッセージの最終ワードから成る。複数のワード
または各ワードの複数ビットを、記憶媒体での記憶順序
とは異なる順序で抽出する計算アルゴリズムを使用する
のでハッカーの作業は勿論複雑になるであろう。
この原理は、メッセージを構成するビットの数が回路処
理フォーマットに対応するビットの数よりも明らかに多
いのに、携帯装置の処理回路によって直接使用され得る
フォーマットを有するサインを計算することにある。
図2で示した原理は、ブロックと同数のオペレーション
を実行し、限定数(s)のビットを有するサインSを得
るために各オペレーションの結果を総合することにあ
る。アルゴリズムAを使用して処理回路の入力に初期値
VIを与え、同じ回路の別の入力にシークレットキーKを
与え、シークレットキーKと初期値VIとの適用によって
第1中間結果を作成し、これを例えばEXCLUSIVE OR関数
を介して第1ブロックB1の内容と総合する。EXCLUSIVE
ORを介して得られた変換の結果を、アルゴリズムを用い
る処理回路の第1入力に与え、第2入力にシークレット
キーKを与え、処理回路の出力に第2の中間結果を得
る。これを同じ変換関数、即ちEXCLUSIVE ORを介して第
2ブロックB2の内容と総合する。最終ブロックBfまで各
ブロックを順次同様に処理し、最終ブロックの内容を、
EXCLUSIVE OR関数を介して、それまでの結果Rfと合わせ
る。結果Rfは、処理回路にアルゴリズムAとシークレッ
トキーKとを適用し、それまでのEXCLU−SIVE ORの結果
を合わせて得られたものである。ブロックBfの内容とそ
れまでの結果RfとにEXCLUSIVE ORを適用して得られた結
果を、サイン計算回路のアルゴリズムAを介してキーK
と総合し、この総合結果がサインSを構成する。
勿論、チェックのためには、初期値VIは最終計算に使用
される初期値と同じでなければならない。
サインSの計算が終わったとき、サインSは以後のチェ
ックで参照として使用できるように携帯装置のメモリに
記憶される。メッセージを使用する前にメッセージの完
全性をチェックする必要があるときは、携帯装置は、計
算されたサインが携帯装置のメモリ内で処理回路だけが
アクセスできるように記憶されたサインと真に同じサイ
ンであることをチェックするだけでよい。
初期値VIは、携帯装置に内蔵された値、例えばその通し
番号から構成されてもよい。また、記憶させるべきサイ
ンの計算を開始する人間によって入力されメッセージの
完全性のチェックを要する別のユーザーに与えられた機
密コードであってもよい。最後に、初期値VIは、携帯装
置の特定の記憶レジスタの内容であってもよい。この内
容は携帯装置の毎回の使用で等しい。値VIはまた、記憶
前にサインを計算するときに処理回路によって決定され
サインと同時に記憶される乱数であってもよい。
図2に示す実施例は1つの例にすぎない。アルゴリズム
を異なる方法で使用することも勿論可能である。また、
初期値及びシークレットキーKを使用しなくてもよい。
また、EXCLUSIVE OR関数以外の関数を使用してもよい。
メッセージの完全性をチェックするための携帯装置のメ
モリは少なくとも1つの信号Sを含み、携帯装置はま
た、プロセッサのごとき処理回路と変換アルゴリズムA
とを有する。携帯装置は、チェックされるべきメッセー
ジが携帯装置の処理回路に送られるように設計されてい
る。携帯装置はまた、シークレットキーKを含んでもよ
く、この場合、サインは計算の結果である。
図3は、携帯装置の処理回路11だけがアクセスできる不
揮発性記憶領域10に複数のサインS1,S2,...Smと1つの
シークレットキーKとを含む改良された携帯装置1の例
を示す。各サインは実際、異なるメッセージのサインで
あり、同じシークレットキーKから得られたものであ
る。この構成(configuration)は、1つのソフトウェ
ア業者が同一ユーザーに複数のプログラムを提供すると
きに使用される構成である。この場合、各プログラムの
サインは同じ携帯装置に記憶され得る。
更に、アルゴリズムAは装置の別の記憶領域12に記憶さ
れている。
これは、保護を望むユーザーがシークレットキーKを最
初から含む特殊な携帯装置を使用し、該ユーザーが所有
する各プログラム及び/またはデータ記憶媒体のサイン
を該携帯装置に記憶させる場合に適している。
かかる場合、即ち、1つの携帯装置が複数のメッセージ
のサインを含む場合には、サインをチェックする際に、
携帯装置の処理回路が、チェックされるメッセージに一
致すると想定されるオリジナルメッセージのサインをメ
モリ内で検索できるように、各サインをオリジナルメッ
セージの識別手段に結合させる必要がある。このため
に、記憶させるべきサインを予め計算する際に、各オリ
ジナルメッセージに通し番号または別の識別子を付加す
る。この通し番号または識別子に対応するデータは対応
するサインを記憶するときに携帯装置に記憶され、従っ
て携帯装置の処理回路は、識別データと対応サインとを
相関させ得る。
通し番号、または識別子は、記憶させるべきサインを予
め計算することを望むユーザーによって決定されてもよ
く、または携帯装置自体の処理回路によって決定されて
もよい。
携帯装置を単独で使用しないことも勿論可能である。そ
の場合、後述するすべての変形例と同様に、結合及び/
またはインタフェース回路によってより大きいシステム
2、特に、オリジナルメッセージ(プログラムまたはデ
ータ)を処理するデータ処理システムと結合させる必要
がある。このデータ処理システムは一般にコンピュータ
の一部であり、少なくとも1つのキーボードとプリント
及び/またはディスプレイ手段とを有する。結合及び/
またはインタフェース回路は、携帯装置の処理回路とよ
り大きいシステムの処理回路との間に対話を成立させ得
る。
プログラムの通し番号または識別子を決定するのがユー
ザーである場合、ユーザーはこれらを例えばより大きい
処理システムのキーボードを介してシステムに入力す
る。これに反して、対応するデータを決定するのが携帯
装置の処理回路である場合は、オリジナルメッセージ
(そのサインはユーザーによって予め計算されている)
に付加された通し番号または識別子が、携帯装置の処理
回路とより大きいシステムの処理回路との間に対話が成
立した後で、該システムのディスプレイ手段またはプリ
ント手段によってユーザーに通知される。
どの変形例を使用するかにかかわりなくユーザーは、所
与のオリジナルメッセージに対応する識別子または通し
番号の記録を種々の記憶媒体に保持し、チェック用サイ
ンを計算する際にキーボードまたはその他のデータ入力
手段を使用して該サインをシステムに通知し、携帯装置
の処理回路が、対応すると想定されるメモリ内のサイン
だけにサインを比較する必要がある。
記憶させるべきサインの計算は、携帯装置のメモリ回路
10において、携帯装置自体の処理回路11と製造後に任意
に該回路に組込まれたシークレットキーとから直接実行
されてもよい。この計算方法は、処理回路が計算を終了
すると直ちにサインを記憶するので、決して外部に露見
させずにサインを計算できるという優れた利点がある。
または、記憶される前の最初のサインの計算が、携帯装
置1と接続され得る外部システム2に組込まれた携帯装
置外部の処理回路によって実行されてもよい。外部シス
テム2は例えば、チェックすべきプログラムまたはデー
タの処理装置である。これらの外部回路は、携帯装置に
内蔵されたアルゴリズムと同じアルゴリズムを使用す
る。かかる場合、計算にシークレットキーを使用すると
きは、シークレットキーは、各サインを計算し記憶する
ときに同時に決定されてもよく、または、携帯装置が内
蔵する処理回路の制御下に携帯装置の内部から抽出さ
れ、次いで記憶すべきサインを計算するために外部回路
に伝送されてもよい。この方法には、シークレットキー
を外部に伝送しなければならない、その結果として、サ
インの計算後にシークレットキーを外部処理回路から抹
消しなければならないという欠点がある。しかしながら
この方法は、プログラムが極めて長いのでサインの計算
にかなり長時間を必要とする場合には有利である。サイ
ンの計算がプログラム及び/またはデータを構成するメ
ッセージ全部に基づいて行なわれる限り、マイクロプロ
セッサCPUの処理時間は方法の使用に対する障害とな
る。実際、1メガバイトのブログラムの場合、サイン計
算の結果を得るため、従ってチェックの結果を得るため
に1時間以上の計算時間を要する。その理由は、マイク
ロ回路カードのような常用の携帯装置に組込まれた処理
回路は、処理時間に関しては、より強力なコンピュータ
よりも明らかに劣っているからである。
チェック処理時間が長いと頻繁な使用には全く不適であ
る。このような理由から別の変形例では、問題となるす
べての場合に使用でき前述の方法よりもはるかに高速な
チェック方法を提案する。ここではメッセージがいくつ
かの部分即ちモジュールM1,M2,....Mmに予め分割され、
サインS1,S2,...Smが各モジュールに付加され、各サイ
ンは携帯装置の異なる機密領域に記憶されている。記憶
の前にそのサインS1,S2,...Smを計算する必要があるメ
ッセージのサイズ次第で、メッセージが余り長くない場
合には携帯装置の処理回路によって計算を実行し、極め
て長時間の計算を要するサイズであるときは、より高速
の処理回路、例えばサイン計算フェーズで携帯装置を接
続させるコンピュータの処理回路で計算を実行する。
しかしながら、携帯装置のメモリ10にサインを記憶させ
るべくサイン計算フェーズ中の計算時間は最重要条件で
はない。従ってシークレットキーが外部に露見すること
を防止することを重要視するならば、携帯装置自体の処
理回路11によって計算を実行するほうが好ましいことは
理解されよう。
1つのメッセージ全体が複数のサインを作成するための
ベースとして使用され、従って、メッセージを構成する
全部のビットが用いられたことが理解されよう。かかる
場合、複数のサインの作成のベースとなったメッセージ
の完全性をチェックするためにいくつかの方法を使用し
得る。
第1の方法では、チェックすべき完全プログラムを示す
m個のモジュールの集合から異なる複数のp個のモジュ
ールをランダムに選択する。数pは所定の値であり、各
チェック毎に一定である。処理回路は1回のチェックに
異なる複数のモジュールを選択し、毎回のチェック毎に
異なるモジュールを任意に選択できるように設計されて
いる。
モジュールを決定するために、携帯装置の処理回路は、
m個のサインの初期計算に使用されたm個のモジュール
を決定した手続きと同じ手続きを使用する。従って、初
期計算の際にメッセージがkビットのモジュールに分割
されたならば、サインチェックの際にも携帯装置の処理
回路は、受信メッセージをkビットのモジュールに再度
分割し、これらのモジュールからサインチェック用のp
個のモジュールをランダムに選択する。携帯装置の処理
回路は次に、選択されたp個のモジュールのサインを計
算し、これらをカードのメモリ内の対応すると想定され
るサインに比較する。
比較は即座に行なわれてもよい。即ち、カードがサイン
を再計算したとき、このサイが、該サインに対応すると
想定されるメモリ内のサインに一致するか否かが直ちに
チェックされてもよい。または、再計算されたサインを
バッファメモリに記憶し、p個のサインの再計算の終了
後に比較を行なってもよい。
携帯装置の処理回路が、再計算されたサインとこれに対
応すると想定される携帯装置のメモリ内のサインとの不
一致を検出すると直ちに、メッセージが無傷でないと判
断され、処理回路に結合した手段、例えば携帯装置に接
続されたシステムのディスプレイ手段が、比較の肯定ま
たは否定の結果を表示する。
従って、例えば、オリジナルメッセージが8ビットモジ
ュールに分割されたとき、第1モジュールはメッセージ
の最初の8ビットから成り、第2モジュールは次の8ビ
ットから成り、以後同様である。第1モジュールの記録
されたサインは、最初の8ビットの計算に対応し、第2
モジュールのサインは、オリジナルメッセージの9番目
から16番目のビットの計算に対応する。サインチェック
の際に処理回路が、第2モジュールのサインをチェック
すると決定したならば、処理回路は、完全性をチェック
すべきメッセージの2番目の8ビット集合を抽出し、チ
ェックすべきメッセージのこの2番目の8ビット集合の
サインを再計算し、この8ビット集合にアルゴリズムA
を適用し、必要な場合には記憶前の計算で使用したシー
クレットキーKを適用し、携帯装置のメモリに記憶され
た第2のオリジナルモジュールに対応するサインを、こ
れに対応すると想定されるモジュールの再計算されたサ
インに比較する。
勿論、再計算されたp個のサインが正しいとき、最初に
計算され携帯装置のメモリに記憶されたm個のサインが
チェックされなくても、システムは、プログラムが無傷
であると判断し、比較の肯定結果を表示する。
携帯装置によってチェックされるべきモジュールの数p
は所定の数でもよく、チェックされるモジュールは毎回
のチェック毎に異なっていてもよい。チェックされるべ
きモジュールの数pは、携帯装置の処理回路に表示さ
れ、許容信頼度水準を得るために十分な徹底チェックが
行なわれるように選択される。最初のm個のサインの代
わりにp個のサインがチェックされるので、チェック用
計算の所要時間は全部のサインの記憶に必要な計算時間
に比べてかなり短縮される。
また、計算されるモジュール数pを前以て決定せず、携
帯装置の処理回路によってランダムに選択してもよい。
この場合、チェックがカバーするモジュールの数が少な
すぎてチェックの妥当性が不十分にならないようにpの
値を選択する必要がある。また、処理時間を許容限度内
に維持するために数pが多すぎないようにする必要もあ
る。
図4は、0.9の確率Prを得るためにチェックすべきモジ
ュール数pを、メッセージが含むモジュール総数mの関
数として示すグラフである。即ち、このグラフは、メセ
ージがp個のチェック済みモジュールに等価のq個の変
質モジュールを含む場合、メッセージ変質を9/10の確率
で検出したときにチェックすべきモジュールの数を示
す。例えば、約60個の変質モジュールを含む1000個のモ
ジュールを含むプログラムにおいては、メッセージ変質
を9/10の確率で検出するためには60個のモジュールをチ
ェックする必要がある。
言い替えると、1000個のモジュールを含み60個未満の変
質モジュールを含むメッセージにおいて約60個のモジュ
ールのサインをチェックすると、この60個のモジュール
のサインチェック後の変質検出確率は9/10以上であり、
検出確率は変質モジュール数の増加に伴って低下する。
従って、チェックを要するモジュールの数pを決定する
ためには、変質モジュールの数qとメッセージに含まれ
るモジュールの総数nとの間で妥当値を調整する。
前述のごとく各モジュールが通し番号で見付けられると
仮定すると、サインチェックを行なうべきp個のモジュ
ールのランダムな選択は、携帯装置の処理回路に異なる
p個の乱数を生成させることによって得られる。乱数の
各々が選択されたモジュールの通し番号を決定する。
従って、m個のモジュールの集合に4回のチェックが必
要であると仮定すると、携帯装置の処理回路は4つの異
なるm以下の数をランダムに抽出する。例えば、計算に
よって数2,4,j,m−1が与えられると、携帯装置の処理
回路は、その完全性をチェックすべきメッセージの2番
目、4番目、j番目及びm−1番目のモジュールのサイ
ンを計算し、これらを携帯装置のメモリに記憶された2
番目、4番目、j番目及びm−1番目のサインに比較す
る。
比較後に、携帯装置の処理回路は、種々の比較において
不一致が検出されたか一致が検出されたかを示す手段を
作動させる。
1つの変形例においては、どのモジュールでサインチェ
ックを行なうべきかを決定するために、携帯装置の処理
回路は長さmの2進数、即ちメッセージを構成するモジ
ュール数に等しいビット数を有する2進数(a)を計算
する。2進数はmビット中のpビットのコードから得ら
れる。即ち、p個のビットが所与の論理状態であり、残
りのm−p個のビットは補数の論理状態である。例え
ば、ビットの初期状態が論理状態「0」の場合、数
(a)の発生によってp個のビットは残りのビットの状
態とは異なる状態になる。各ビットがmビット集合中の
通し番号によって検出できるので、サインチェック用に
選択されたモジュールは、ランダム2進数(a)中で
「1」に変化したビットの通し番号に対応する通し番号
をもつモジュールであろう。
本発明の範囲内でその他の変形も可能であることが当業
者に理解されよう。
前述のいくつかの実施例は、メッセージの変質の有無を
優れた確率で判定し、適正且つ十分に高度な信頼性を与
える。しかしながら、方法の信頼性を更に向上させるそ
の他の変形例も可能であろう。
これらの改良例は、改竄が一般にプログラム中の逐次命
令のシーケンスの変更、またはかなり局在し且つ頻繁に
は使用されない寄生シーケンスの導入から成ることに基
づく。プログラム実行の際に寄生命令が使用されたとき
に始めてその存在が有害であることが判明する。これら
の寄生命令はある種の使用条件下ではプログラムによっ
て呼び出されないがその他の条件下では呼び出される。
このような理由から、使用されることの少ない極めて局
部的な変質の検出確率を改良するために、1つの変形例
では、サイン計算に先立って携帯装置の処理回路で使用
されるアルゴリズムは、メッセージをその内容にかかわ
りなくブロックに分割するように編成され、メッセージ
の首尾一貫した変質が不可能になるようにサイン計算中
にブロックの組み合わせを編成する。このような組み合
わせたブロックの集合がモジュールを形成する。
従って、メッセージを構成する1つの2進ワードの各々
が1つのブロックを構成する場合を考察する、かかる場
合、処理回路のワーキングフォーマットがバイトの場
合、各ブロックは8ビットから構成されるであろう。
1つの変形例では、1つのブロックが、1つの2進ワー
ドから構成されるのでなく例えばメッセージのシーケン
ス中の連続する複数の2進ワードから構成されると考え
られる。従って、第1ブロックは、例えば最初の100個
の2進ワード、即ち完全性をチェックすべきメッセージ
の最初の100ワードから成り、各ワードは所与の数のビ
ット、例えば8もしくは16ビットを有するかまたは携帯
装置の処理回路のワーキングフォーマットとコンパチブ
ルなその他のビット数を有する。第2ブロックは次の10
0個の2進ワードから成り、メッセージの終端まで以後
同様である。
勿論、メッセージ中のワードの総数次第では、最終ブロ
ックが、メッセージに属する先行ブロックと同数の2進
ワードから構成されない場合もある。この場合には、メ
ッセージ中のワードの総数を各ブロックを構成するワー
ド数によって除算した商が整数でない。このような場
合、最終ブロックは、メッセージ中の先行ブロックに含
まれるワード数と同数のワードを含むことができない。
例えば、1つのメッセージが1030ワードを含み各ブロッ
クが100ワードから成る場合を考える。100ワードのブロ
ックが10個形成され、最終ブロックを形成するために30
ワードだけが残る。この場合、最終ブロックは、この残
りの30ワードに、例えば2進値0の70ワード、即ちすべ
て0から成る70ワードを付加することによって形成され
る。
上記のごとき方策を用いる必要をなくすために、各ブロ
ックのワード数がメッセージ中のワード数の完全な約数
であり、ブロック集合がオリジナルメッセージのワード
だけを含むようにすることができる。この解決では、処
理回路が1ブロック当たり何ワードにするかを決定する
ために、ブロックを形成する前にメッセージ中のワード
の総数をカウントしなければならないていう欠点はあ
る。従って、処理回路が各ブロック中の最適ワード数を
予め知っていることが必要であり、この最適数がメッセ
ージ中のワードの総数の約数でないときは、処理回路
は、使用できるより小さい約数を決定しなければならな
い。従ってこの解決は、可能ではあるが、多少面倒で実
行が難しい。
図5は、メッセージ内部でブロックがどのように分割さ
れるか、及び、処理回路が最初のサインをどのように計
算するか、または、携帯装置の処理回路がチェック計算
を実行するときにどのようにサインを組み合わせるかを
示す。
図5には、m個のブロックb1〜bmの集合が示されてい
る。各ブロックは前述のように、1つの2進ワードから
成ってもよくまたは互いに結合した複数の2進ワードか
ら成ってもよい。所定数のブロックを互いに結合させる
ことによって、前述のごとくサインの計算のベースとな
る1つのモジュールが得られる。
メッセージPをm個のブロックB1〜Bmに分割すると、n
個のブロックから成るモジュールがm/n個得られる。各
モジュールは、ランクiのモジュールMiが、ランクi,i
+1,i+2nのブロックから成り、以後同様にしてi+rn
まで続く。但し、1≦i≦n及び0≦r≦m/n−1であ
る。
従って、最初のモジュールは互いに隣接するブロックB
1,B1+n,B1+2n,...,B1+rnから成る。
数nは、サイン計算及びチェック時間が余り長くならな
いように且つ各モジュールができるだけオリジナルメッ
セージ即ちチェックすべきメッセージからの情報だけを
含むように決定する必要がある。
nがブロック数の完全な約数でないとき、いくつかのモ
ジュールは、サインを計算すべきメッセージの情報以外
の情報を含むことになる。実際、いくつかのモジュール
に2進数0または1を補充する必要があったからであ
る。
このため、各モジュールのブロック数nは、nがメッセ
ージ中のブロックの総数の約数になるように選択される
のが好ましい。
各ブロックのワード数及び各モジュールのブロック数に
かかわりなく、モジュール中のブロックの相互結合及び
サインはメッセージの構造自体には全く無関係である。
これは、メッセージがその完全性をチェックすべきプロ
グラムである場合には特に重要である。実際、この相互
結合によってメッセージの一部の変質がいくつかのサイ
ンに出現する可能性があり、その結果として、いくつか
のモジュールが初期状態に比べて変化を生じ易くなるの
で変質の検出確率が高くなる。いわば、変質が、モジュ
ール全体または少なくない数のモジュールに拡散する。
従って、各モジュールがメッセージ中で直列に連続する
所定数のブロックから成る編成に比べて、この編成で
は、サインチェックのための計算回数を減少させ得る。
図6に示すモジュールの別の形成方法では、前記方法と
同様に、全メッセージを各々が所与の数のビットまたは
ワードを有するブロックB1,B2,B3,...Bmに分割する。例
えばブロックB1は、メッセージの最初のk個の2進ワー
ドから成り、ブロックB2は次のk個のワードから成り、
以後同様にして終端まで続く。この場合にも、数kは、
例えばメッセージ中のワード数の約数であり、携帯装置
に記憶される前のサイン計算のための編成の際に形成さ
れる最終ワードがオリジナルメッセージに属するワード
だけから成り従ってブロックに無効情報を補充する必要
がないように選択される。
従って、各ブロックは所与の数のビットを有し、各ビッ
トは、ブロック中のランクによって検出できる。モジュ
ールの形成は、ブロック中の所与のランクの1つまたは
複数のビットを別のブロック中の同じランクの1つまた
は複数のビットと組み合わせることによって行なわれ
る。次に、このように形成されたモジュールを使用して
サインを計算する。
従って、各ブロックから1ビットを抽出してモジュール
を形成すると仮定すると、第1モジュールは、メッセー
ジ中の第1ブロックの第1ビットと、第2ブロックの第
1ビットと、同様に以後のブロックの第1ビットと、最
終ブロックの第1ビットから形成される。第2モジュー
ルは、第1ブロックの第2ビット、第2ブロックの第2
ビット、などから形成される。
従って各モジュールは、考察中のメッセージと交差する
情報ストリングから構成される。その結果、サイン再計
算の際に、再計算され出発サイン数に比較されるサイン
数にかかわりなく、メッセージの一部の首尾一貫した変
質が検出されずにすむことは極めて難しい。一般に、プ
ログラムであるかデータにあるかにかかわりなく命令
は、長手方向に連続して書込まれ、プログラムまたはデ
ータ中に最小限の首尾一貫した変質が生じても、異なる
クロスストリングを同時に処理することがほぼ不可能に
なる。更に、この解決では、メッセージをチェックする
際に再計算して対応するオリジナルサインに比較すべき
サインの数を減少させ得る。
また上記のごときクロスストリングを選択しないで、記
憶する前に各サインを計算するときに所与の数のビット
を各ブロックからランダムに抽出してモジュールを疑似
クロスストリングから形成してもよい。例えば、第1ブ
ロックから第1ビットを抽出し、これを第2ブロックの
最終ビットと組み合わせ、次いで第3ブロックの異なる
ランクのビットと組み合わせることが可能である。勿
論、かかる組み合わせには、例えば記憶前のサイン計算
の際に選択された参照乱数を使用する必要がある。この
参照乱数は、どのビットシーケンスを考察すべきを決定
するために処理回路によって使用され、また、チェック
の際に処理回路がチェックすべきメッセージからモジュ
ールを形成するためにどのような分布を用いるべきかを
知ることができるように、携帯装置のメモリ回路に記憶
されなければならない。
更に、モジュールを形成するためのブロックの組み合わ
せまたはブロックを形成するためのワードもしくはビッ
トの組み合わせの変形を考えることが可能である。特
に、ワードまたはブロックの互いの組み合わせを論理的
シーケンスに従って形成する代わりに、ブロックを形成
するワードの組み合わせまたはモジュールを形成するブ
ロックの組み合わせをランダムに行なってもよい。この
ためには例えば、処理回路が記憶用サインを計算するた
めにモジュールを形成する前に、モジュールの復元方法
を決定し、後でチェックできるようにモジュール形成に
使用されたパラメータを記憶する必要がある。例えば、
処理回路にn個の乱数のシーケンスを作成さらることが
考えられる。nは各モジュールのブロック数に対応す
る。メッセージはm個のモジュールを含む。乱数V1,V2,
V3,...Vnのシーケンスは、モジュールの第1ブロックを
構成するブロックからこのモジュールの別の構成ブロッ
クがどれであるかを判断できる。
この場合、チェックすべきメッセージからモジュールを
復元できるように、使用した乱数シーケンスの記録を保
持する必要がある。
チェックの機密を保持するためにはシークレットキーの
使用が好ましいが、キーを使用する必要がない場合、即
ちメッセージをモジュールに分割するかまたは分割しな
いで1つまたは複数の明確なサインの作成に使用できる
場合もある。しかしながら、各携帯装置は異なるシーク
レットキーを含むので、シークレットキーの使用は、同
一メッセージ中のサインの計算に使用される異なる2つ
の携帯装置が等しいサインを含むことを防止し、機密保
持を向上させる。このため、ハッカーがプログラムのご
ときメッセージで行なわれていることを観察しサインチ
ェック手段を破壊することを試みた場合にも、改竄の危
険が少なくなる。特に、例えばプログラムを1個人から
別の個人に転送するときにシークレットキーの使用が重
要である。しかしながら最終ユーザーが後でチェックす
べく記憶するためにメッセージ1つまたは複数のサイン
の計算を必要とする場合、チェックに使用される携帯装
置がシークレットキーを必ずしも含む必要はない。メッ
セージのサインは、メッセージが含むデータを全体また
は別々のモジュールとして抽出し、アルゴリズムを用い
て交換するだけで得られる。従って各サインは、その計
算に使用されたデータの簡単なピクチャである。最終ユ
ーザーがその使用中にデータ記憶媒体の完全性をチェッ
クしたい場合、これはシステム破壊の企てとは全く関係
がない。かかる場合、サインは情報の単なる圧縮によっ
て得られる。
メッセージまたはメッセージの一部に関するサインの計
算は、該当するアルゴリズムで処理したメッセージまた
はメッセージの一部だけの関数であろう。
従ってサインチェックのためにサインを計算する携帯装
置は、図3の場合のようにシークレットキーKを組込ん
だ記憶領域10をもはや含まず、逆に、各々がサインS1,S
2,Smを含む1つ以上の記憶域を含み、同時に、アルゴリ
ズムAを実行する処理回路11を備えたプロセッサを含む
であろう。
その結果として、図2に関して説明したようなサインの
作成は、サイン計算に必要な各中間処理の際にシークレ
ットキーKを使用しないで行なわれる。
本発明を実行するためのシステムは、プログラムの少な
くとも1つのサインを記憶する少なくとも1つの記憶領
域10と、少なくとも1つのオリジナルサインの書込み後
に少なくともサインを再計算するためにアルゴリズムA
を記憶している処理回路11とを有する携帯装置1を含
む。例えば計算時間が長くなることを避けるために携帯
装置のメモリに記憶されたサインが携帯装置の外部の処
理回路で計算されたとき、外部オブザーバーがこの最初
に計算されたサインを知っていたとしても、再計算が携
帯装置の処理回路の内部で行なわれるので、外部オブザ
ーバーは、再計算されたサインの値を知ることができな
い。
従って、携帯装置の処理回路は、完全性をチェックすべ
きメッセージMを少なくとも変換するためのアルゴリズ
ムまたは計算プログラムAを含んでおり、更に高度な機
密保持を要するときはメモリがキーKを含み得る。更
に、携帯装置のメモリが、オリジナルメッセージの異な
るモジュールに各々が所属する多数のサインを含む場合
には、携帯装置の処理回路は、計算時間を短縮するため
に初期数よりも少ない数のモジュールのチェックを実行
するように編成されるのが好都合である。また、処理回
路は、チェックすべきメモリのモジュールをサインが計
算され記憶されたときと同様の構成に復元できるように
なっていなければならない。
勿論、サインが記憶された記憶領域は不揮発性記憶領域
である。
また、上述のごとく、携帯装置1は単独では機能でき
ず、本発明方法を実行するシステムを構成するために別
の手段2と組み合わせる必要がある。特に、携帯装置と
コンピュータとの間、またはその完全性をチェックすべ
きプログラムまたはデータの処理装置との間にインタフ
ェース回路を構成しなければならない。この処理装置ま
たはコンピュータを介して、チェックすべき情報は、オ
リジナルメッセージを構成する情報と同様に、携帯装置
の処理回路に結合した処理装置の処理回路との対話後に
携帯装置内で処理される。特に、処理装置に通常存在す
るキーボードまたはその他のデータ入力手段(マウス、
タッチスクリーンなど)を使用して、特に機密アクセス
キーまたはオリジナルメッセージに対してその完全性が
チェックされるメッセージに対応する識別子を入力する
ときに携帯装置との対話を成立させる。
インタフェース回路は、処理装置またはコンピュータに
直接組込まれてもよくまたは外部に設置されリンクで接
続されてもよい。勿論、携帯装置とインタフェースまた
は結合回路との間にコネクタが配備される。
システムをチェックに使用するとき、オリジナルメッセ
ージを完全にカバーする1つのサインが記憶されている
場合には、携帯装置の処理回路は完全性をチェックすべ
きメッセージ全体を検出し、内蔵するアルゴリズムを使
用してこのメッセージのサインを計算し、再計算された
サインが記憶されたサインに一致するか否かをチェック
する。これは短いメッセージに適している。
しかしながら、オリジナルメッセージが比較的長いので
複数のモジュールに分割し、その結果として携帯装置の
メモリに複数のサインが記憶されているときは、携帯装
置の処理回路は、サインチェックすべきモジュールの数
pとその通し番号とが予め決定されていないときはこれ
らを決定する。全部のサインを予め計算する際にオリジ
ナルメッセージ中の対応すると考えられるモジュールが
構成されたときと同様に、この通し番号を用いてサイン
チェックすべきモジュールを復元する。
好ましくは、メッセージのどの部分をチェック用サイン
の計算に使用したかをハッカーが突き止めることを防止
するために、携帯装置の処理回路が全部のメッセージを
抽出し、ソーティングは携帯装置の内部でだけ実行され
る。勿論、メッセージが極めて長い場合、即ちメッセー
ジが携帯装置のメモリ容量よりをはるかに越える場合、
処理回路は、チェックすべきメッセージが通過する際に
該メッセージを構成するデータを読み、チェックすべき
サインのベースとして役立つデータだけを抽出する。
また、前述のごとく、同一カードが複数のプログラムに
対応するサインを含んでいてもよい。これらのサインを
識別するために、少なくとも1つのサインを記憶した各
プログラムの識別子に関する情報を含むチェック領域を
携帯装置に配備してもよい。このチェック領域はまた、
所与のオリジナルメッセージに関するサインが配置され
たメモリアドレスを処理回路に表示してもよい。。これ
は、通し番号でもよくまたは比較されるメッセージの識
別を可能にするその他のいかなるタイプの情報でもよ
い。かかる場合、チェックを行なう際に、システムはチ
ェックすべきメッセージの番号または識別子をユーザー
に伝える。
最後に、改良された実施例では、更新のためにメッセー
ジを意図的に変更するときに、携帯装置に記憶された対
応する各サインの各々が更新されるように構成されてい
る。この場合、ユーザーの制御下に、変更メッセージに
対応する新しいサインの完全な書き替えが携帯装置の別
の記憶領域または同じ記憶領域で行なわれる。これは例
えばEPROMタイプ、即ち携帯装置の回路の制御下に電気
的に書き替え及び再プログラミング可能である。メモリ
カード型携帯装置及び電子マイクロ回路は一般にこの型
のメモリを組み込んでおり、これらの携帯装置と外部シ
ステムとの間のコネクタの処には、給電及びデータ転送
に必要なコネクタに加えて、いくつかのメモリ領域のプ
ログラミングまたは消去用コネクタを配備し得るので、
当業者には容易な構造である。その他の例では、プログ
ラミング電圧を携帯装置自体から供給する。しかしなが
ら、どの場合にも、メモリ内での新しいサインの消去及
び書き替えは、選択的に行なわれ、変更すべき領域にの
み関係する。
従って本発明は、データ処理記憶媒体に記憶されたプロ
グラム及び/またはデータから成るメッセージの完全性
を容易に、安全に且つ比較的廉価に確保し得るので特に
有利である。メッセージは、オリジナルからロードさ
れ、ロードされた場所で割込みによって変更されてもよ
くまたは伝送線路を介して遠隔から変更されてもよい。
勿論、本発明の範囲内で本発明方法及びその実施システ
ムを変更することが可能である。
図面の簡単な説明 図1は本発明が適用される情報シーケンスの構造を示す
図、図2はシークレットキーを用いてサインを計算する
本発明の実施例の原理の説明図、図3は本発明の携帯装
置のブロック図、図4は0.9の確率を得るためにチェッ
クすべきモジュールの数pをモジュールの総数mの関数
として示すグラフ、図5はメッセージ内部でブロックが
どのように分割されているかを示す説明図、図6はモジ
ュールの他の形成方法の説明図である。
1……携帯装置、2……外部システム、10……不揮発性
記憶領域、11……処理回路、12……記憶領域

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】オリジナルメッセージ(M)に対して、情
    報を含む後続のメッセージの完全性をチェックするため
    の方法であって、 オリジナルメッセージを総数(m)個のモジュール(M
    1、M2,...Mm)に分割する段階と、 各モジュールの各サイン(S1,S2、....Sm)を計算する
    ためにオリジナルメッセージの各モジュールにアルゴリ
    ズムAを適用する処理手段を使用する段階と、 処理回路(11)及び前記処理回路だけがアクセスできる
    一つの不揮発性保護記憶領域(10)を含む記憶手段を有
    する携帯電子装置を使用して、前記保護記憶領域に前記
    サインを格納し、前記記憶手段に前記アルゴリズムを格
    納する段階と、 限定された数(p)のモジュールのみを考慮することに
    より、後続のメッセージにおける改変を検出する確率が
    所定の値となるように、モジュールの前記総数(m)よ
    りも少ない前記限定された数(p)のモジュールを後続
    のメッセージ中から選択し、 各サインを計算するために各選択されたモジュールに前
    記アルゴリズムを適用するために前記処理回路を使用
    し, 後続のメッセージの選択されたモジュールに対応するオ
    リジナルメッセージのモジュールのサインを前記保護記
    憶領域で選択し、且つ該サインを後続のメッセージのサ
    インと比較し、 オリジナルメッセージの前記サインが後続のメッセージ
    の各サインと合致する関係にあるかどうかに従い、オリ
    ジナルメッセージと後続のメッセージの間の完全性が一
    致するかどうかを示す出力信号を携帯装置から送ること
    によって、携帯装置において後続のメッセージをチェッ
    クする段階、 とを含むメッセージの完全性をチェックする方法。
  2. 【請求項2】後続のメッセージのどの(p)個のモジュ
    ールにサインのチェックが行なわれるかを決定するため
    に、異なる乱数を連続的に選択し、各乱数がどのモジュ
    ールがチェックされるべきかを決定する請求項1に記載
    の方法。
  3. 【請求項3】メッセージのどのモジュールにサインのチ
    ェックが行なわれるかを決定するために、オリジナルメ
    ッセージに含まれている(m)個のモジュールからモジ
    ュールを選択し、 選択された一つの乱数の長さがオリジナルメッセージ中
    のモジュールの数を直接表すようにビット長が(m)の
    2進数(a)を選択する段階を更に含み、 乱数は、該乱数中に含まれる(m)個のビット中の
    (p)個のビットのコードであり、(p)個のビットが
    所定の2進値(1又は0)を有し、残りの(m−p)個
    のビットは補数の値を有し、乱数の各ビットに異なる通
    し番号が付けられ、サインをチェックすべきモジュール
    の数は乱数中の(m)個のビットから抽出された(p)
    個のビットの通し番号によって決定される請求項2に記
    載の方法。
  4. 【請求項4】メッセージが、該メッセージ中のビットの
    占有位置に従ってメッセージのアドレスによりラベルの
    付されているビットシーケンスから構成され、サインが
    携帯装置の処理回路によって記憶される前に各モジュー
    ルのサインを計算するために種々のモジュール(M1,M
    2...Mm)がオリジナルメッセージから作成され、 各モジュールは、 所定のルールに従っていくつかのメッセージビットを取
    り出すと共に、 オリジナルメッセージからモジュールを形成するために
    使用されたルールと同じルールに従って、完全性がチェ
    ックされるべきメッセージから該メッセージのモジュー
    ルを再生すべく前記オリジナルメッセージから各モジュ
    ールを形成するために使用されたルールを携帯装置に格
    納することにより形成される請求項1に記載の方法。
  5. 【請求項5】メッセージが2進ワードの形態で編成さ
    れ、前記オリジナルメッセージのモジュール及び前記後
    続のメッセージモジュールを形成するために、複数のブ
    ロック(B1,B2、...Bn)を形成し、各ブロックは、ブロ
    ックに含まれる各データが該データを構成するビット位
    置に従い指標が付けられるようにデータを含んでおり、
    所定のモジュールを形成するために所定のルールに従い
    各ブロックから少なくとも一つのビットを抽出する請求
    項1に記載の方法。
  6. 【請求項6】ブロックを形成するためのデータのグルー
    プ化は、メッセージ読み取り時に出現する際の順序でデ
    ータを取り出すことにより行われる請求項5に記載の方
    法。
  7. 【請求項7】総数(m)個のモジュール(M1,M2,...M
    m)に分割されたオリジナルメッセージ(M)に対し
    て、情報を含む後続のメッセージの完全性のチェックを
    行うための携帯装置であって、処理回路(11)と、前記
    処理回路のみがアクセスできる不揮発性保護記憶領域
    (10)を含む記憶手段とを含み、 前記保護記憶領域は、複数のサイン(S1,S2,...Sm)を
    記憶し、各サインは、アルゴリズム(A)をオリジナル
    メッセージの所定のモジュールに適用した結果として得
    られ、 前記記憶手段は、前記アルゴリズム(A)と、以下の命
    令、即ち、 改変を検出する確率が限定された数(p)のモジュール
    のみを考慮することにより所定の値となるように、前記
    モジュールの総数(m)よりも少ない前記限定された数
    (p)のモジュールを、前記記憶手段に記憶されている
    か又は、携帯装置と協働する装置から受けとられた後続
    のメッセージの中から選択する命令と、 各サインを計算するために夫々選択されたモジュールに
    前記アルゴリズムを適用するために前記処理回路を使用
    する命令と、 後続のメッセージの選択されたモジュールに対応するオ
    リジナルメッセージ中のモジュールのサインを前記保護
    記憶領域で選択し、且つ前記サインを後続のメッセージ
    のサインと比較する命令と、 オリジナルメッセージの前記サインが後続のメッセージ
    の各サインと合致する関係にあるかどうかに従い、オリ
    ジナルメッセージ及び後続のメッセージの間の完全性が
    一致しているかどうかを示す出力信号を携帯装置から送
    るための命令と、を記憶していることを特徴とするメッ
    セージの完全性のチェックを行うための携帯装置。
JP2508410A 1989-06-06 1990-06-01 メッセージの完全性をチェックする方法及び携帯装置 Expired - Lifetime JPH0727497B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR89/07429 1989-06-06
FR898907429A FR2647924B1 (fr) 1989-06-06 1989-06-06 Procede pour verifier l'integrite d'un logiciel ou de donnees, et systeme pour la mise en oeuvre de ce procede
PCT/FR1990/000381 WO1990015384A1 (fr) 1989-06-06 1990-06-01 Procede pour verifier l'integrite d'un logiciel ou de donnees, et systeme pour la mise en ×uvre de ce procede

Publications (2)

Publication Number Publication Date
JPH03503220A JPH03503220A (ja) 1991-07-18
JPH0727497B2 true JPH0727497B2 (ja) 1995-03-29

Family

ID=9382394

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2508410A Expired - Lifetime JPH0727497B2 (ja) 1989-06-06 1990-06-01 メッセージの完全性をチェックする方法及び携帯装置

Country Status (12)

Country Link
EP (1) EP0402210B1 (ja)
JP (1) JPH0727497B2 (ja)
KR (1) KR940009699B1 (ja)
AT (1) ATE127252T1 (ja)
CA (1) CA2034002C (ja)
DE (1) DE69021935T2 (ja)
DK (1) DK0402210T3 (ja)
ES (1) ES2079457T3 (ja)
FR (1) FR2647924B1 (ja)
GR (1) GR3018239T3 (ja)
HK (1) HK80897A (ja)
WO (1) WO1990015384A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008244992A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 端末装置及びプログラム
JP2009080772A (ja) * 2007-09-27 2009-04-16 Toppan Printing Co Ltd ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3395863B2 (ja) * 1994-08-10 2003-04-14 富士通株式会社 ソフトウエア管理モジュール、ソフトウエア再生管理装置およびソフトウエア再生管理システム
GB9513790D0 (en) * 1995-07-06 1995-09-06 Highwater Fbi Limited Method of authenticating digital data works
FR2752968B1 (fr) * 1996-09-04 1999-02-19 Sligos Fichier certifie d'archivage de documents electroniques
FR2758898B1 (fr) * 1997-01-28 1999-03-05 Sagem Procede de preservation de l'integrite de donnees logiciel
US6101603A (en) * 1997-05-21 2000-08-08 At&T Corporation System and method for using a second resource to store a data element from a first resource in a first-in last-out stack
FR2775372B1 (fr) * 1998-02-26 2001-10-19 Peugeot Procede de verification de la coherence d'informations telechargees dans un calculateur
US6834308B1 (en) 2000-02-17 2004-12-21 Audible Magic Corporation Method and apparatus for identifying media content presented on a media playing device
AU3840200A (en) * 2000-04-20 2001-11-07 Yutaka Yasukura Electronic information inquiring method
US7562012B1 (en) 2000-11-03 2009-07-14 Audible Magic Corporation Method and apparatus for creating a unique audio signature
US7406529B2 (en) * 2001-02-09 2008-07-29 Yahoo! Inc. System and method for detecting and verifying digitized content over a computer network
US7363278B2 (en) 2001-04-05 2008-04-22 Audible Magic Corporation Copyright detection and protection system and method
DE10131300B4 (de) * 2001-07-02 2012-12-06 Robert Bosch Gmbh Verfahren zum Schutz eines Mikrorechner-Systems gegen Manipulation von in einer Speicheranordnung abgelegten Daten und Mikrorechner-System
US7529659B2 (en) 2005-09-28 2009-05-05 Audible Magic Corporation Method and apparatus for identifying an unknown work
US6968337B2 (en) * 2001-07-10 2005-11-22 Audible Magic Corporation Method and apparatus for identifying an unknown work
US7877438B2 (en) 2001-07-20 2011-01-25 Audible Magic Corporation Method and apparatus for identifying new media content
US8972481B2 (en) 2001-07-20 2015-03-03 Audible Magic, Inc. Playlist generation method and apparatus
EP1795991A1 (en) 2002-07-30 2007-06-13 Fujitsu Limited Method and apparatus for reproducing information using a security module
JP4576100B2 (ja) * 2002-07-30 2010-11-04 富士通株式会社 情報再生装置、セキュアモジュールおよび情報再生方法
US8332326B2 (en) 2003-02-01 2012-12-11 Audible Magic Corporation Method and apparatus to identify a work received by a processing system
US8130746B2 (en) 2004-07-28 2012-03-06 Audible Magic Corporation System for distributing decoy content in a peer to peer network
EP1748374A1 (fr) 2005-07-08 2007-01-31 STMicroelectronics SA Procédé et dispositif de protection d'une mémoire contre les attaques par injection d'erreur
EP1912148A1 (en) 2006-10-09 2008-04-16 Axalto S.A. Protection against side channel attacks with an integrity check
US8006314B2 (en) 2007-07-27 2011-08-23 Audible Magic Corporation System for identifying content of digital data
US8199651B1 (en) 2009-03-16 2012-06-12 Audible Magic Corporation Method and system for modifying communication flows at a port level
EP2495625B1 (de) * 2011-03-04 2020-06-17 Siemens Aktiengesellschaft Verfahren und Programmiersystem für die Authentifizierung eines sicherheitsrelevanten Programms einer Automatisierungseinrichtung
US9081778B2 (en) 2012-09-25 2015-07-14 Audible Magic Corporation Using digital fingerprints to associate data with a work
JP7311245B2 (ja) * 2018-03-07 2023-07-19 トヨタ自動車株式会社 マスタ装置、マスタ、制御方法、プログラム及び車両

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123954A (ja) * 1982-12-29 1984-07-17 Fujitsu Ltd 記憶デ−タの不正使用防止方式
JPS62232070A (ja) * 1986-04-02 1987-10-12 Casio Comput Co Ltd Icカ−ドシステムの暗号演算方式
EP0280035A2 (de) * 1987-02-23 1988-08-31 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3709524C2 (de) * 1987-03-23 1996-08-14 Bosch Gmbh Robert Verfahren zur Überprüfung der Speicherzelleninhalte eines Programmspeichers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59123954A (ja) * 1982-12-29 1984-07-17 Fujitsu Ltd 記憶デ−タの不正使用防止方式
JPS62232070A (ja) * 1986-04-02 1987-10-12 Casio Comput Co Ltd Icカ−ドシステムの暗号演算方式
EP0280035A2 (de) * 1987-02-23 1988-08-31 Siemens Nixdorf Informationssysteme Aktiengesellschaft Verfahren zum Sichern von Programmen und zur Integritätskontrolle gesicherter Programme
JPS63240629A (ja) * 1987-02-23 1988-10-06 シーメンス・ニクスドルフ・インフォーメーションズシステーム・アクチェンゲゼルシャフト プログラムを機密保護し且つ機密保護されたプログラムを保全制御する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008244992A (ja) * 2007-03-28 2008-10-09 Casio Comput Co Ltd 端末装置及びプログラム
JP2009080772A (ja) * 2007-09-27 2009-04-16 Toppan Printing Co Ltd ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム

Also Published As

Publication number Publication date
FR2647924A1 (fr) 1990-12-07
EP0402210A1 (fr) 1990-12-12
EP0402210B1 (fr) 1995-08-30
GR3018239T3 (en) 1996-02-29
KR940009699B1 (ko) 1994-10-17
DK0402210T3 (da) 1996-01-15
ES2079457T3 (es) 1996-01-16
DE69021935T2 (de) 1996-02-15
CA2034002C (fr) 1995-05-23
ATE127252T1 (de) 1995-09-15
DE69021935D1 (de) 1995-10-05
HK80897A (en) 1997-06-20
CA2034002A1 (fr) 1990-12-07
FR2647924B1 (fr) 1994-06-17
WO1990015384A1 (fr) 1990-12-13
JPH03503220A (ja) 1991-07-18

Similar Documents

Publication Publication Date Title
US5442645A (en) Method for checking the integrity of a program or data, and apparatus for implementing this method
JPH0727497B2 (ja) メッセージの完全性をチェックする方法及び携帯装置
US7979720B2 (en) Data security for digital data storage
US7861094B2 (en) Data security for digital data storage
KR100397316B1 (ko) 기억 장치, 암호화ㆍ복호화 장치 및 불휘발성 메모리의액세스 방법
US5963970A (en) Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
CN100370408C (zh) 用于逻辑撕碎存储在worm介质上的数据的系统和方法
EP0707270A2 (en) Method and apparatus for validating system operation
JP2001297038A (ja) データ記憶装置および記録媒体並びに記録媒体制御方法
JPS6138519B2 (ja)
JPWO2002057904A1 (ja) ダウンロード機能を有する制御装置
JP2007527579A (ja) セキュリティで保護されたコンパクト・フラッシュ
JPS63788A (ja) Icカード
US6260172B1 (en) Semiconductor device with logic rewriting and security protection function
US5155829A (en) Memory system and method for protecting the contents of a ROM type memory
US20160034720A1 (en) Processing information
US20060219796A1 (en) Integrated circuit chip card capable of determining external attack
JP2000112824A (ja) メモリシステム
US20050289409A1 (en) Parallel data bus
JPH01152589A (ja) 携帯可能なデータ担体
US5687354A (en) Memory system and method for protecting the contents of a ROM type memory
EP0171456A1 (en) Computer software protection system
RU2235356C2 (ru) Устройство хранения различных версий набора данных в отдельных областях памяти и способ обновления набора данных в памяти
JPS59173847A (ja) コンピユ−タソフトウエアの保護方法およびその装置
US5901285A (en) Hierarchical erasure key protection for computer system data

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20090329

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20100329

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20110329

Year of fee payment: 16

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110329

Year of fee payment: 16