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

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

Info

Publication number
JPH03503220A
JPH03503220A JP2508410A JP50841090A JPH03503220A JP H03503220 A JPH03503220 A JP H03503220A JP 2508410 A JP2508410 A JP 2508410A JP 50841090 A JP50841090 A JP 50841090A JP H03503220 A JPH03503220 A JP H03503220A
Authority
JP
Japan
Prior art keywords
message
mobile device
signature
modules
check
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
JP2508410A
Other languages
English (en)
Other versions
JPH0727497B2 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

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

Claims (19)

    【特許請求の範囲】
  1. 1.コンピュータプログラム及び/またはコンピュータデータの命令のごとき情 報を含むメッセージをオリジナルメッセージに対して比較することによって前記 メッセージの完全性をチェックするために、処理回路が、オリジナルメッセージ (M)に変換アルゴリズム(A)を適用してサイン(S)を計算するタイプの方 法であって、処理回路がメッセージの少なくとも一部を抽出し、アルゴリズム( A)の適用によって前記メッセージ部の関数である少なくとも1つのサインを( S1,S2,...Sm)を計算する段階と、処理回路(11)と該処理回路( 11)だけがアクセスできる少なくとも1つの非揮発性記憶領域(10)とを内 蔵する携帯電子装置をオリジナルメッセージに結合させ、アルゴリズム(A)を 実行し得る処理回路の制御下にオリジナルメッセージの各サイン(S,S1,S
  2. 2....Sm)を前記記憶領域(10)に記憶させる段階と、オリジナルメッ セージに比較してメッセージの完全性をチェックするために、携帯装置の処理回 路(11)が、チェックされるべきメッセージの少なくとも一部の少なくとも1 つのサインを外部に露見させることなくアルゴリズム(A)を用いて再計算する 段階と、該携帯装置の処理回路が、再計算された各サインを、携帯装置の記憶領 域(10)に記憶された再計算サインに対応すると予想される各サインに比較し 、比較によって一致が得られたか否かを携帯装置外部の手段(2)によってユー ザーに示す段階を含むことを特徴とする方法。 2.アルゴリズム(A)が、携帯装置のメモリに記憶すべき各サインを計算する ため及びチェックすべきサインを計算するために、その処理回路の制御下にのみ アクセス可能な携帯装置の記憶領域(10)に記憶された少なくとも1つのシー クレットキー(K)を使用する計算アルゴリズムであることを特徴とする請求項 1に記載の方法。
  3. 3.記憶すべき少なくとも1つのサインを得るためにオリジナルメッセージの少 なくとも一部を計算し且つチェックすべきメッセージを計算するために使用され るキー(K)が、記憶すべきサインの計算を行なう際に決定され、携帯装置のメ モリ(10)にサインを導入する際に同時に処理回路(11)の制御下に携帯装 置のメモリに導入されることを特徴とする請求項2に記載の方法。
  4. 4.サインの記憶の際及びチェックの際に使用されるキー(K)が、携帯装置の 処理回路(11)の制御下にのみアクセスできるように製造後に携帯装置のメモ リ(10)に導入されることを特徴とする請求項2に記載の方法。
  5. 5.携帯装置の記憶領域に記憶させるべく少なくとも1つのサインをオリジナル メモリから計算する段階が、変換アルゴリズム(A)が記憶された携帯装置の回 路(11)の外部の回路(2)によって実行されることを特徴とする請求項1か ら4のいずれか一項に記載の方法。
  6. 6.処理回路が完全オリジナルメッセージに変換アルゴリズム(A)を適用して 1つのサイン(S)を計算し、チェックの際には、オリジナルメッセージとの比 較によってその完全性をチェックすべきメッセージに変換アルゴリズム(A)を 適用して1つのサインを計算し、記憶されたサインと再計算されたサインとの一 致をチェックすることを特徴とする請求項1から5のいずれか一項に記載の方法 。
  7. 7.オリジナルメッセージを複数のモジュール(M1,M2,...Mm)に分 割し、各モジュールの1つのサイン(S1,S2,...Sm)を計算し、その 後のチェックの参照として役立てるために携帯装置のメモリに記憶し、オリジナ ルメッセージに対するメッセージの完全性をチェックするために、処理回路が、 チェックされるべきメッセージ中の所与の数のモジュール(P)を復元し、次い でこれらのモジュール(P)の各々のサインを計算し、このように計算された各 サインを、携帯装置のメモリに記憶された対応するモジュールのサインと比較す ることを特徴とする請求項1から5のいずれか一項に記載の方法。
  8. 8.チェックされるべきサインの計算時間が全部のサインのチェックに必要な計 算時間よりも短い時間になるように、チェックを行なうモジュールの数(P)が モジュールの総数より少ない数であり、変質を十分な確率で検出できるようにモ ジュールの総数(m)の関数として選択されることを特徴とする請求項7に記載 の方法。
  9. 9.サインをチェックしたときに十分な確率で変質が検出されるように、チェッ クによってカバーされるモジュールの数(P)が、チェックの際に携帯装置の処 理回路によって計算されるオリジナルメッセージに内蔵されたモジュールの総数 の関数(m)であることを特徴とする請求項7に記載の方法。
  10. 10.サインのチェックを行なうモジュールの数を決定するために、携帯装置の 処理回路が異なる乱数を(p)回連続して選択し、各乱数がチェックすべきモジ ュールの数を決定することを特徴とする請求項7から9のいずれか一項に記載の 方法。
  11. 11.オリジナルメッセージに含まれた(m)個のモジュールからサインのチェ ックを行なうモジュールの数を決定するために、携帯装置の処理回路が、ビット で表現して長さ(m)の2進数(a)を選択し、選択された乱数の長さがオリジ ナルメッセージ中のモジュール数を直接示すこと、乱数の値が(m)のうちの( p)のコードから得られること、即ち、乱数中に含まれる(m)個のビット中の (p)個のビットが所定の2進値(1または0)を有し、残りの(m−p)個の ビットは補数の値を有すること、乱数の各ビットに異なる通し番号を付け、サイ ンチェックされるべきモジュールの数が乱数中の(m)個のビットから抽出され た(p)個のビットの通し番号によって決定されることを特徴とする請求項7か ら9のいずれか一項に記載の方法。
  12. 12.メッセージが、メッセージ中の占有位置に従う通し番号またはアドレスに よって検出され得るビットシーケンスから構成され、携帯装置の処理回路によっ て記憶される前に各モジュールのサインを計算するために処理回路がオリジナル メッセージから種々のモジュール(M1,M2,...Mm)を作成し、各モジ ュールは、所定のルール及び/または携帯装置の処理回路によって作成されたル ールに従っていくつかのメッセージビットを取出すことによって、例えばランダ ムエレメントを抽出することによって形成され、オリジナルメッセージからモジ ュールを形成するために使用されたルールと同じルールに従ってチェックされる べきメッセージから該メッセージのモジュールを復元するために、オリジナルメ ッセージから各モジュールを形成するために使用されたルールが携帯装置に保持 されることを特徴とする請求項7から9のいずれか一項に記載の方法。
  13. 13.メッセージが2進ワードの形態に編成され、各ワードは、完全性を維持す べきプログラム命令もしくは命令の一部またはデータもしくはデータの一部を形 成する所与の数の情報ビットを含み、これらの命令及び/またはデータを用いた プログラムを正しく実行させるために、記憶前に前記命令及び/またはデータの サインを計算し且つ該命令及び/またはデータの少なくともいくつかのサインを 計算してメッセージの完全性をチェックするモジュール(M1,M2,..Mn )を形成し、1つのブロックに含まれる各データまたはデータ部が、該当ブロッ ク中での該データまたはデータ部の構成ビットの位置によって検出されるように 、サイン計算を行なう処理回路がまず、各々が所定数のデータを含む所定数(n )のブロック(B1,B2,...Bn)を形成し、処理回路が、所与のモジュ ールを形成するために所与のルールに従って各ブロックから少なくとも1つのビ ットを抽出することを特徴とする請求項7から12のいずれか一項に記載の方法 。
  14. 14.ブロックを形成するためにデータをグループ化し、メッセージ読取の際に 出現する順序で情報を抽出することを特徴とする請求項13に記載の方法。
  15. 15.少なくとも1つのメッセージから少なくとも1つのサインを決定するため にアルゴリズム(A)を実行し得る処理回路(11)を内蔵する少なくとも1つ の携帯装置(1)を有すること、更に、所与のメッセージから計算された各サイ ンを記憶する手段(10)と、メッセージを実行し得るコンピュータのごときデ バイス(2)への接続手段とを有すること、携帯装置の処理回路が、完全性チェ ックのために呈示されたメッセージの少なくとも1つのサインを計算しチェック 用に計算されたサインとチェック用の再計算サインに対応すると予想される記憶 領域に記憶されたサインとを比較するように設計されていること、比較の結果を システムのユーザーに通知する手段を有することを特徴とする請求項1から14 のいずれか一項に記載の方法を実施するシステム。
  16. 16.携帯装置(10)のメモリが更に、サイン計算の際にアルゴリズム(A) によって使用されるシークレットキー(K)を有することを特徴とする請求項1 5に記載のシステム。
  17. 17.携帯装置のメモリ及び/または処理回路が、メッセージから各サインを作 成するときのルールを記憶する手段を有することを特徴とする請求項15または 16に記載のシステム。
  18. 18.複数メッセージに対応するサインが携帯装置のメモリに記憶されているこ と、及び、携帯装置が、所与のサインが属するオリジナルメッセージを決定する 手段を有することを特徴とする請求項15から17のいずれか一項に記載のシス テム。
  19. 19.プログラムの少なくとも1つのサインが記憶される携帯装置の記憶領域が 、携帯装置の処理回路の制御下に書き替え可能なリアログラマブル型であり、メ ッセージを更新のために意図的に変更する際は、少なくともこの更新後のサイン が携帯装置のメモリに記憶されることを特徴とする請求項15から18のいずれ か一項に記載のシステム。
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 true JPH03503220A (ja) 1991-07-18
JPH0727497B2 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140916A (ja) * 2001-07-02 2003-05-16 Robert Bosch Gmbh メモリ装置に格納されているデータの操作に対してマイクロコンピュータシステムを保護する方法
JP2004129227A (ja) * 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法
US7930562B2 (en) 2002-07-30 2011-04-19 Fujitsu Limited Method of and apparatus for reproducing information, and security module

Families Citing this family (26)

* 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
BR0017218A (pt) * 2000-04-20 2003-06-24 Yutaka Yasukura Método de inquirição de informação eletrônica
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
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
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
JP4893411B2 (ja) * 2007-03-28 2012-03-07 カシオ計算機株式会社 端末装置及びプログラム
US8006314B2 (en) 2007-07-27 2011-08-23 Audible Magic Corporation System for identifying content of digital data
JP2009080772A (ja) * 2007-09-27 2009-04-16 Toppan Printing Co Ltd ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム
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 トヨタ自動車株式会社 マスタ装置、マスタ、制御方法、プログラム及び車両

Family Cites Families (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カ−ドシステムの暗号演算方式
DE3705736A1 (de) * 1987-02-23 1988-09-01 Nixdorf Computer Ag Verfahren zum sichern von programmen und zur integritaetskontrolle gesicherter programme
DE3709524C2 (de) * 1987-03-23 1996-08-14 Bosch Gmbh Robert Verfahren zur Überprüfung der Speicherzelleninhalte eines Programmspeichers

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140916A (ja) * 2001-07-02 2003-05-16 Robert Bosch Gmbh メモリ装置に格納されているデータの操作に対してマイクロコンピュータシステムを保護する方法
JP4563644B2 (ja) * 2001-07-02 2010-10-13 ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング メモリ装置に格納されているデータの操作に対してマイクロコンピュータシステムを保護する方法
JP2004129227A (ja) * 2002-07-30 2004-04-22 Fujitsu Ltd 情報再生装置、セキュアモジュールおよび情報再生方法
JP4576100B2 (ja) * 2002-07-30 2010-11-04 富士通株式会社 情報再生装置、セキュアモジュールおよび情報再生方法
US7930562B2 (en) 2002-07-30 2011-04-19 Fujitsu Limited Method of and apparatus for reproducing information, and security module
US8046591B2 (en) 2002-07-30 2011-10-25 Fujitsu Limited Method of and apparatus for reproducing information, and security module
US8055909B2 (en) 2002-07-30 2011-11-08 Fujitsu Limited Method of and apparatus for reproducing information, and security module

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH03503220A (ja) メッセージの完全性をチェックする方法及び携帯装置
US5442645A (en) Method for checking the integrity of a program or data, and apparatus for implementing this method
US4800520A (en) Portable electronic device with garbage collection function
JPS6138519B2 (ja)
JPS63500901A (ja) Icカ−ド
JPH11505355A (ja) ポータブルデータ処理ユニットを含むデータ交換システム
JP2001297038A (ja) データ記憶装置および記録媒体並びに記録媒体制御方法
US6389539B1 (en) Method and system for enhancing security access to a data processing system
JPS59218688A (ja) モノリシツク集積可能な回路装置
JP2557838B2 (ja) Icカ−ド
US5996113A (en) Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation
US7383545B1 (en) Computer system and method capable of automatically inputting product key of a software program upon reinstalling the program thereon
US8041938B2 (en) Alternatively activating a replaceable hardware unit
WO1994010655A1 (en) Ic card
CN107533614B (zh) 用于存储数据的装置和存储介质
CN107257281B (zh) Nor flash存储密钥记录的方法、装置及计算机可读存储介质
EP1573552B1 (en) Method and system for alternatively activating a replaceable hardware unit
GB2078410A (en) Card transaction verification
JPS62154083A (ja) デ−タ管理手段を有するicカ−ド
KR20040097435A (ko) Usb 휴대용 저장장치를 이용한 소프트웨어 불법복제방지장치 및 방지방법
JP3222592B2 (ja) データの検証装置
JP2002278934A (ja) セキュリティ管理装置およびセキュリティ管理方法
JP3129865B2 (ja) データの検証方法
JP4594475B2 (ja) プログラム判別システム
JPH0449147B2 (ja)

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