"メモリプログラミング能力を有する電子装置への無許可アクセスを防止するシステムであって、データ転送装置750からのアクセスリクエストメッセージに応答してチャレンジレスポンス認証プロセスを開始させるマイクロプロセッサ402を含み、前記データ転送装置750が、秘密暗号化鍵を使用してチャレンジ応答メッセージを署名する手段と、前記電子装置へ前記署名されたチャレンジ応答メッセージを送信する手段とを含み、前記電子装置が、前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジ応答メッセージを認証する手段と、前記チャレンジ応答メッセージが前記認証によって有効と認定されない場合に前記データ転送装置750を拒否する手段とを更に含む、システム。請求項1記載のシステムであって、前記電子装置がセルラー電話である、システム。請求項2記載のシステムであって、第1ポートと第2ポートとを有する汎用コンピュータをさらに含み、前記データ転送装置750が前記第1ポートへの取り付けられ、前記セルラー電話が前記第2ポートへの取り付けられ、前記セルラー電話が、前記データ転送装置750から受信した前記セルラー電話をプログラムするリクエストに応答してチャレンジを返す手段を含み、前記チャレンジが前記データ転送装置750によって署名され、かつ、認証のために前記セルラ-電話に返され、前記セルラー電話において、前記署名されたチャレンジの認証により、前記チャレンジが復元されればデータ転送装置750は真正であって、前記セルラ-電話はプログラミングモードに移行する、システム。メモリプログラミング能力を有する電子装置への無許可アクセスを防止する方法であって、前記電子装置400が、データ転送装置750からのアクセスリクエストメッセージに応答してチャレンジメッセージを送信するステップと、前記データ転送装置750が、秘密暗号化鍵を使用して前記データ転送装置750内で前記チャレンジメッセージを署名するステップと、前記データ転送装置750が、前記電子装置400に前記署名されたチャレンジメッセージを送信するステップと、前記電子装置400が、公開鍵を使用して前記電子装置400内で前記署名されたメッセージを認証するステップであって、前記公開鍵が前記秘密暗号化鍵に対応する前記認証するステップと、前記電子装置400が、もし前記チャレンジメッセージが、前記認証するステップにおいて有効と認定されないならば、前記データ転送装置750を拒否するステップと、を含む方法。請求項4記載の方法あって、前記電子装置400がセルラー電話である、方法。請求項4記載の方法あって、前記署名されたチャレンジメッセーシが前記チャレンジメッセージの部分に依存するチャレンジ応答メッセージであり、前記方法が、前記電子装置400が、前記署名されたチャレンジ応答メッセージが前記データ転送装置750が真正であることを示す場合に、認証のプログラミングモードに移行するステップを更に含む方法。データ転送装置750による無許可のアクセスを防止するための、プログラミング能力を有する電子装置であって、前記電子装置への無許可アクセスを防止するマイクロプロセッサ402を含み、前記電子装置が、前記データ転送装置750からの前記電子装置へアクセスするリクエストに応答して、前記データ転送装置750へチャレンジメッセージを発行する手段と、前記データ転送装置750が、秘密暗号化鍵を使用して前記チャレンジメッセージを署名して、前記電子装置へ前記署名されたチャレンジメッセージを送信した場合に、前記電子装置において前記秘密鍵に対応する公開鍵を使用して前記署名されたチャレンジメッセージを認証する手段と、前記チャレンジメッセージが前記認証によって有効と認定されない場合に、前記データ転送装置750を拒否する手段とを更に含む、電子装置。請求項7記載の電子装置あって、前記電子装置がセルラー電話であり、前記データ転送装置750がプログラマである、電子装置。電子装置のメモリへの無許可のアクセスを防止するシステムであって、マイクロプロセッサ402と、命令コードを含む読み出し専用メモリ403と、保護されたランダムアクセスメモリ407と前記保護されたランダムアクセスメモリ407へアクセスする企図を検出し、前記読み出し専用メモリ403に記憶された前記命令コードの実行に基づくアクセスを、該アクセスが認証された場合に許可し、かつ、前記アクセスが認証されない場合に、前記マイクロプロセッサ402の動作を停止させて、係るアクセスを防止する安全論理1124と、を含むシステム。請求項9記載のシステムであって、ハードウェアに基づくタイマ401を更に含み、前記安全論理1124が、前記読み出し専用メモリ403に記憶された前記命令コードの実行に基づく前記ハードウェアベースタイマ401への認証されたアクセスを許可し、認証されないアクセスを防止する、システム。請求項9記載のシステムにおいて、前記システムが監視モードにある場合にのみ、前記安全論理1124が、前記読み出し専用メモリ403に記憶された前記命令コードの実行に基づいて前記保護されたランダムアクセスメモリ407へアクセスする、システム。請求項9記載のシステムであって、セルラー電話におけるメモリアクセスを防止するシステム。セルラ電話メモリいたずら、及び全般的に電子装置メモリいたずらを防止する慣例の方法及び提案された解決のこれら及び他の欠点、及び限界が本発明によって克服され、本発明の模範的実施例が電子メモリ内容を無許可アクセス及び操作から保護する。本発明の一態様によれば、安全は、電子装置内の電子メモリ内容がいたずらされていないことを確かめるためにそれらの内容を周期的に監査することによって達成される。この監査は、このような内容の監査ハッシュ値、又は監査シグネチャを導出するために電子メモリの選択された内容にハッシュ計算を遂行することに係わる。監査ハッシュ値は、真正メモリ内容から先に導出された有効ハッシュ値と比較される。有効ハッシュ値は、好適には、暗号化された形で電子メモリ内へ記憶され、かつ比較目的にのみ復号される。監査ハッシュ値と有効ハッシュ値との間の不一致はメモリいたずらを表示することでき、したがって、その電子メモリを含む電子装置を動作不能させることができるか、又は警告表示を行うことができる。本発明の他の態様によれば、セルラ電話のESNを含むセルラ電話メモリに含まれた内容のような電子メモリ内容を、そのメモリ内容にアクセスを許される前に、認証されているデータ転送装置によって更新することができる。データ転送装置認証は、公開鍵/秘密鍵認証方式の使用に係わる。データ転送装置が電子装置とインタフェースしかつアクセスをリクエストするとき、電子装置はデータ転送装置を認証するプロセスを開始する。これは、一連のメッセージを電子装置とデータ転送装置との間で交換することに係わることができる。公開鍵は、暗号化されたメッセージを復号するために使用される電子装置内に維持されるか、又はデータ転送装置内に維持された安全秘密鍵で以て署名signedされる。特に、データ転送装置が電子装置をプログラムするようにリクエストするとき、認証プロセスが開始される。電子装置は、データ転送装置へチャレンジメッセージを送ることによって応答する。チャレンジメッセージは、データ転送装置内に維持された秘密鍵を使用してディジタルシグネチャで署名される。署名されたチャレンジメッセージは電子装置へ送り返され、電子装置はこのメッセージを公開鍵を使用して認証する。いったん認証されると、データ転送装置は、電子装置内の特権命令及び能力にアクセスすることを許される。電子メモリの何らかのリプログラミングに続いて、電子装置は新有効ハッシュ値を導出するハッシュ計算を改変されたメモリ内容において遂行する。新ハッシュ値が、秘密鍵によるディジタルシグネチャのためにデータ転送装置へ返される。署名された新ハッシュ値が記憶されるためにデータ転送装置へ返される。電子装置が後続メモリ監査を遂行するとき、結果のハッシュ値が新有効ハッシュ値と比較される。本発明の上述の及び他の目的、特徴及び利点が、添付図面と関連したこの説明を読むとき更に容易に理解される。本発明に従う装置及び方法に係わる模範的電子メモリが、セルラ電話応用についての文脈の中で下に開示される。下に説明される例は、単に、本発明を組み込む理想的応用を解説するために与えられる。図4で、コントローラ400がセルラ電話例えば、図12の参照符号1204を参照を制御する。コントローラ400は、フラッシュプログラムメモリ420、電子的消去可能プログラマブル読み出し専用メモリEEPROM410、及びランダムアクセスメモリRAM408と連携して動作する。コントローラ400は、マイクロプロセッサ402及び内部読み出し専用メモリIROM403を含む。IROM403は、ブートコード404、ハッシュコード405、認証コード409、及び公開暗号化鍵406を含む。コントローラ400はまた、保護スタティックランダムアクセスメモリPSRAM407、割り込みコントローラ421、及び選択されたメモリ内容へのマイクロプロセッサ402による周期的ハッシュ計算を開始させるめのハードウェアに基づくタイマ401を含む。EEPROM410は、利用者プロファイルデータ412、ESN414、MIN416、及び署名された/署名されていない有効ハッシュ値対418を含む。セルラ電話の全般動作に係わる命令コードがフラッシュプログラムメモリ420に含まれる。RAMメモリ408は、正規セルラ電話呼処理の部分である動作のためのスクラッチパッドとして使用される。感応性データ、ハッシュ値計算及び認証プロセスに係わる動作は、好適には、PSRAM407と連携して実施される。コントローラ400は、メモリバス424を経由して、フラッシュプログラムメモリ420、RAM408、及びEEPROM410と通信する。本発明の模範的実施例による、図4に示されたシステムに対する電話電源投入及びメモリ妥当検証のプロセスを図5に示す。セルラ電話がターンオンされた後、コントローラを初期化するために、IROM403内のブートコード404がマイクロプロセッサ402によって実行されるブロック500。フラッシュプログラムメモリ420の選択された内容及びEEPROM410に記憶されたESN値414に監査ハッシュ値計算を遂行するために、IROM403内に含まれたハッシュコード405がランされるブロック502。次いで、コントローラは、EEPROM410に記憶された署名されたハッシュ値対418を認証するブロック504。これは、署名された有効ハッシュ値を公開鍵406で以て処理し、次いでその結果を署名されていないハッシュ値と比較することによって署名された有効ハッシュ値を認証することを伴うことがある。認証されたハッシュ値が、次いで、PSRAM407に記憶されるブロック506。ブロック502で導出された監査ハッシュ値が、次いで、ブロック504で導出された認証されたハッシュ値と比較されるブロック508。もしこれら2つのハッシュ値が一致するならば、マイクロプロセッサプログラムカウンタがフラッシュメモリ420内の適当な位置にセットされ、かつ周期的ハッシュ計算プロセスが使用可能とされブロック510、その後、セルラ電話は正規動作を開始するブロック512。もしハッシュ値がブロック508で一致しないならば、このシステムは無限ループに置かれブロック514、そうでなければ、使用禁止される。上述のプロセスは偽造者が改変したプログラムをフラッシュメモリに代入する又は改変したESNをEEPROM410へ代入するのをどちらも防止する。これは、そのようにしようとするとハッシュ値の不一致を起こし、それによって電話を動作不能にすることになるからである。正規動作の開始に続いてシャドウメモリ422を有効フラッシュメモリ420に代入するのを防止するために、周期的ハッシュ値処理を遂行するのが好適である。正規電話動作中、周期的ハッシュ値計算がタイマの期限切れ又はその他のシステム事象に応答して行われる。図4に示された模範的実施例では、周期的ハッシュ計算は、ハードウェアベースタイマ401の期限切れに応答して開始され、このタイマはマスク不可能割り込みnon-maskableinterrupt;NMIを発生させる。NMIは、ソフトウェアプロセスによってマスク出力することができないハードウェア向きプロセスである。したがって、偽造者は、NMIを無視するように設計されるシャドウコードを構成することができない。正規regular割り込みもまたハードウェア割り込みであって、これはマイクロプロセッサ資源にアクセスを取るために正規セルラ電話事象からの他の正規割り込みと競争しなけれなればならない。正規割り込みは、それがサービスをリクエストする最高優先権割り込みになるとき、肯定応答されかつ処理される。完全なハッシュ値計算は正規normal電話動作によって容認され得るよりも長くかかることがあるから、時間間隔例えば、数秒にわたって分散したいくつかのセグメントで断片式に処理を遂行するのが好適である。本発明の他の態様に従って、ハードウェアベースタイマは、ハッシュ値計算のセグメントを遂行するために2つのステップを呼び起こす。第一に、マスク不可能割り込みNMIがマイクロプロセッサに周期的ハッシュ計算に含まれる予定の次のフラッシュメモリ又はEEPROMメモリ位置の内容を直ちに検索させ、かつそれをPSRAMに記憶させる。NMIは、短い、最高優先権の割り込みの種類のものであって、これはNMIが起こるとき活性であることがあるマイクロプフロセッサタスクにほとんど無視できる影響しか与えない。これは、ハッシュ計算による検出を免れるように偽造ソフトウェアが行動を起こし得ないことを保証する。第二に、低優先権標準割り込みがハードウェアベースタイマ410によってまた発生され、この割り込みはNMIルーチンによって先に捕獲されたメモリバイトに基づいてハッシュ値計算の現在セグメントを完了するサービスをリクエストする。このタスクは、ハードウェアタイマが期限切れしかつ電話を使用禁止する前に、正規呼処理タスクのために必要とされるに従って、所定最長時間Tだけ延期されてよい。最長時間Tは、どれかの正当呼処理を完了するために、ハッシュ計算セグメントを仕上げるために、及びハードウェアタイマをそれが期限切れになる前にそのカウントダウンサイクルの開始にリセットするために、適当であるように選択される。ハッシュ値計算のセグメントを周期的に完了するために2つの型式の割り込みを使用する戦略は、システム応答のいかなる劣化も回避する一方、安全検査がシャドウメモリ内に在駐する偽造ソフトウェアによって迂回され得ないことを保証する。本発明に従う模範的周期的ハッシュ値計算を示す流れ図を図6に示す。この図を参照すると、ハードウェアタイマ401内のT1カウンタが期限切れするとブロック602、ブロック604でNMI及び正規割り込みの両方が起こる。いったんNMIがマイクロプロセッサの制御を得るとブロック604、このシステムは短い時間間隔中、正規割り込みを使用禁止するか又は待ち行列させ、この時間間隔中、ハッシュ計算に必要とされるフラッシュメモリ内又はEEPROMメモリ内の次のバイトがPSRAM内へ複写されるブロック606。次いで、制御は、NMIが起こったとき実行するタスクへ復帰するブロック608。正規条件の下で、短い時間間隔内に、ハードウェアに基づくタイマ401からの正規割り込みも供給されブロック610、かつハッシュ計算のセグメントがPSRAMに先に記憶されたメモリバイトに基づいて完了されるブロック616。もしハッシュ値計算が未だ完了しないならば、ハードウェアベースタイマT1及びT2401がそれらの初期値にリセットされブロック624、かつタイマT1の次の期限切れまで正規電話動作が続くブロック600。正規割り込みが供給されるブロック610前にもし万-タイマT2が期限切れするブロック612ならば、電話は使用禁止されるブロック614。正規割り込みが正しく供給されない限りタイマT2のデフォールト期限切れは、偽造者が周期的ハッシュ計算を使用禁止とするのを防止する。監査ハッシュ値計算が完了するブロック618まで、ハッシュ値のこの周期的断片状計算は続く。先に認証されたハッシュ値が、次いで、PSRAMから取り出されてかつ監査ハッシュ値と比較されるブロック620。もし一致すれば、ハードウェアベースタイマ401がリセットされブロック624かつ電話は正規に動作し続けるブロック600。もし不一致であるならば、このシステムは、例えば、マイクロプロセッサ402を停止条件に置くことによって使用禁止されるブロック622。ハッシュ計算を好適には遂行されるセルラ電話メモリの選択された内容は、フラッシュメモリ420からの内容及びEEPROM414内のESNを含む。これは、偽造者がフラッシュメモリ又はEEPROMのどちらかを物理的に除去しかつそれらをセルラ通信事業者を詐欺するように設計された改変ESN及び/又はプログラムコードを含むリプログラムされた装置で以て置換するのを防止する。選択されたメモリ内容及び使用されたハッシュ値が、そのハッシュ値計算に含まれたメモリのたとえ1ビットの改変によっても電話を動作不能にさせることが好適である。本発明の他の態様に従って、セルラ電話をデータ転送装置を使用して安全な方法でプログラムすることができる。本発明に従う模範的データ転送装置を図7に示す。コントローラ400の参照番号、その内容、及び関係したメモリは、図4のものと同じである。模範的データ転送装置750が安全マイクロプロセッサ752を含み、このマイクロプロセッサは秘密暗号化鍵754を含み、この鍵はコントローラ400内のIPROM403内の公開暗号化鍵406に相当する。安全マイクロプロセッサ752は、インタフェース758を経由してセルラ電話コントローラ400と通信する。インタフェース758は、RS-232リンクのような有線直列接続、無線赤外線インタフェース、又はセルラ電話の主アンテナ図示してない又はセルラ電話内の他のアンテナのようなRFインタフェースであってよい。データ転送装置750によるセルラ電話メモリへのアクセスは、厳格な認証プロセスが完了した後に限り許される。更に明細に述べるならば、コントローラ400及び関係したメモリ構成要素は、データ転送装置750がその真正を保証するためにチャレンジレスポンスプロセスを受けた後に限りデータをダウンロードする目的のためにアクセスすることができる。図8は、本発明の模範的実施例に従ってデータ転送装置750を認証する模範的プロセスを示す。第1ステップブロック800として、電話は、好適には、図5に関して先に説明した詐欺防止プロセスを使用して、動作条件にもたられる。インタフェースが確立された後、安全プロセッサ752がプログラミングリクエストメッセージを、安全マイクロプロセッサ752によって発生された乱数Rand1と一緒に、コントローラ400へ送るブロック802。応答して、コントローラ400は、乱数チャレンジコードRand2を安全マイクロプロセッサ752へ送るブロック804。次いで、安全マイクロプロセッサ752は、Rand1、Rand2及び秘密鍵754に基づいてチャレンジ応答を発生するブロック806。次いで、チャレンジ応答がコントローラ400へ返されるブロック808。チャレンジ応答は、Rand1、Rand2、及び公開鍵406を使用してコントローラ400によって処理されるブロック810。処理されたチャレンジ応答は、次いで、その値をRand2と比較されることによって認証されるブロック812。もしチャレンジ応答が例えば、Rand2が適正に復号するならば、データ転送装置の認証が妥当検証されかつ電話はプログラミングモードへ入るブロック814。その後、データ転送装置750は、セルラ電話内の種種のメモリにアクセスする及び/又は新フラッシュメモリ420内容をダウンロードすることができる。もしチャレンジ応答が有効でないならば、故障カウントが増分されるブロック816。故障カウントは、それが所定数最大カウントに到達したかどうかを見るために検査されるブロック818。故障カウントは、データ転送装置750が雑音性媒体を通じてコントローラ400と通信中であるかもしれないことを考慮に入れる。どんな結果の送信誤りも認証故障を生じると云ってよい。それゆえ、セルラ電話をプログランミングモードに置く2回以上の機会をデータ転送装置750に与えるのが好適である。本発明の模範的実施例では、50の最大カウントが適当であると判定された。もし最大数に達しなかったならば、認証故障が起こったことを表示するメッセージがデータ転送装置750へ送られるブロック822。このような表示を受信すると、認証プロセスがブロック802で再開始する。もし所定数の企図に達したならば、電話は動作不能条件に置かれかつ電話が許可されたサービスへ復帰しなくてはならないことを利用者に示すメッセージを表示することができる。データ転送装置750がなんらかのESNリプログラミング又はフラッシュメモリ420へダウンロードすることを完了した後、電話内のコントローラ400は新ハッシュ計算を開始し、この計算は、例えば、フラッシュメモリ420の改訂内容及びESN414を含む。結果のハッシュ値が、秘密鍵754を使用するディジタルシグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値が、同じハッシュ値の署名されていないものと一緒に、EEPROM410に記憶されるめにコントローラ400へ返される。ESNを本発明に従ってリプログラムすることができるが、しかし安全理由から、ESNプログラミングは、好適には、認可された工場代理人ではなく、工場レベルで行われる。ESNのプログラミングは、2つの状況で起こり得る。すなわち、製造中の初期ESNプログラミング、及び現存するESNのリプログラミング。初期ESNは、図7のそれに類似のデータ転送装置を使用してプログラムすることができる。初期ESNプログラミングプロセスを図9に関して下に説明する。第1ステップブロック900として、電話を動作状態にする図5参照。この電話とのインタフェースの確立に続いて、安全プロセッサ752がESNプログラミングリクエストメッセージを、乱数Rand1と一緒に、コントローラ400へ送るブロック902。コントローラ400は、新たに製造された電話の場合の常として電話内のESNが全てゼロであるかどうか判定する検査を遂行するブロック906。もしESNが全てゼロでないならば、ESNプログラミングモードリクエストは否定されるブロック906。もしESNが全てゼロであるならば、図8のステップ804から820で設定されたのと実質的に類似したチャレンジレスポンスプロセスが開始されるブロック908。データ転送装置750の成功認証に続いて、新ESNをEEPROM410内へダウンロードすることができる。データ転送装置750がESNをEEPROM410内へダウンロードするのを完了した後、コントローラ400は、新ESN414を含む新ハッシュ計算を開始する。結果のハッシュ値が、秘密鍵754を使用するディジタルシグネチャのためにデータ転送装置750へ送られる。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返される。現存するESNをまた、本発明を組み込むシステム内でリプログラムすることができる。ESNリプログラミングは、好適には、工場でのみ行われ、地方の許可された工場代理人によっては行われない。電話内へ先にプログラムされたESNを変える目的のためにこの電話内へロードされてある、工場でのみ利用可能な1組のマイクロプロセッサ命令を利用することによって、安全が追加される。このプロセスは図7に示したものと類似のデータ転送装置を使用して実施することができ、これを図10に関して以下に説明する。第1ステップ1000として、電話を、図8に示したプロセスに従って正規プログラミングモードにする。工場データ転送装置750はESNリプログラミングコード756を含み、このコードは、ESNリプログラミングを容易にするために、セルラ電話のPSRAM407内へダウンロードすることができる。システムをプログラミングモードにしたなら、ESNリプログラミングコード756がPSRAM407内へダウンロードされるブロック1002。ESNリプログラミングコード756を実行するに当たって、コントローラ400は、現存するESNをゼロにしブロック1004、かつESNリプログラミングプロセスを開始するブロック1006。データ転送装置750が新ESNをEEPROM410に入力するのを完了した後、コントローラ400は新ハッシュ計算を開始し、この計算は新ESN414を含むブロック1008。結果のハッシュ値が、秘密鍵754を使用するディジタルシグネチャのためにデータ転送装置750へ送られるブロック1010。次いで、署名されたハッシュ値418が、EEPROM410に記憶されるために、同じハッシュ値の署名されていないものと一緒に、コントローラ400へ返されるブロック1012。本発明の模範的実施例でのハッシュ値計算及びディジタルシグネチャは、片方向ハッシュ化関数及び秘密鍵/公開鍵認証方式を使用して実施される。片方向ハッシュ関数は、セルラ電話内のメモリ内容を表すハッシュ値を導出するために使用される。公開鍵/秘密鍵方式は、EEPROMに記憶された有効ハッシュ値の安全を確保しかつセルラ電話内のメモリを操作しようと企図するデータ転送装置又はプログラマを認証するために使用される。片方向ハッシュ化は、当業者に知られており、かつ、例えば、ムーアMooreの米国特許第5,343,527号に説明されている。片方向ハッシュ関数は、順方向に計算するのが容易であるが、逆方向に計算するのが困難な関数である。片方向ハッシュ関数HMは任意長入力Mに演算し、この入力は、本発明の模範的実施例では、選択された電子メモリ内容で構成される。Mに遂行されたハッシュ関数は、固定長ハッシュ値hを生じる式1参照。h=HM式1任意長入力を取りかつ固定長の出力を生じることができる多くの関数があるが、しかし片方向ハッシュ関数は次の追加特徴を有する。すなわち、Mが与えられると、hを計算するのが容易である。hが与えられても、Mを計算するのが困難である。及び、Mが与えられると、HM=HMのような他のメッセージMを見付けるのが困難である。片方向ハッシュに対する基本的な攻撃は、次のようである。すなわち、メモリ内容ハッシュ化内容のハッシュ値が与えられると、偽造者は、HM=HMのような、メモリ内容Mの他の組を作成しようと努めるであろう。もし偽造者がこれを行うのに成功したとしたならば、この片方向ハッシュ関数の安全をひそかに崩すであろう。片方向ハッシュ関数の目的は、Mに固有のシグネチャ、つまり、指紋を用意することである。本発明では、安全片方向ハッシュ関数は、監査ハッシュ値を用意するためにセルラ電話メモリの選択された内容について遂行される。監査ハッシュ値は、メモリからの真正であると知られている選択されたメモリ内容に基づいて片方向ハッシュ関数を遂行することによって、先に発生された有効ハッシュ値と比較される。好適実施例では、MD5のようなメッセージダイジェストアルゴリズムが、安全片方向ハッシュ計算に使用される。MD5アルゴリズムは、入力メッセージのNビットハッシュ、つまり、メッセージダイジェストすなわち、選択されたメモリ内容を発生する。MD5アルゴリズムは、選択された内容中の単一ビットに変化を生じると統計的にそのハッシュ値ビットの半分に変化を生じさせるという点で、非常に敏感である。MD5アルゴリズムはまた、その速度及び簡単性のために知られている。速度は、セルラ電話のマイクロプロセッサに課せられた時間要求が通常のシステムプロセスと許容不能に干渉するほどに大きいものであってはならないという点で、重要な考慮すべき問題である。MD5アルゴリズムはまた、このアルゴリズムを増分式に遂行することができ、それによってハッシュプロセスの割り込みを許し、その結果、ハッシュ化を再び始める前に通常のマイクロプロセッサのタスクに取り組むことができるという理由で適している。更に、MD5アルゴリズムは、従来のマイクロプロセッサアーキテクチャに使用されるのにも充分適している。本発明の実施例に従って使用することができる他の片方向ハッシュアルゴリズムには、次のものがあるが、これらに限られるわけではない。すなわち、Snerfu、H-Hash、MD2、MD4、SecureHashAlgorithmSHA、及びHAVALである。当業者ならば、片方向ハッシュプロセスを実行するようにマイクロプロセッサを容易にプログラムすることができる。公開鍵アルゴリズムは2つの鍵を使用し、1つは公に利用可能であり、1つは私的に秘密を保つものでメッセージ暗号化及び復号、メッセージ認証、及びディジタルシグネチャのようなタスク用である。これらの鍵は、異なる目標を達成するために異なる方法で使用することができる。例えば、もし目的がメッセージを秘密に維持することであるならば、受信者だけがメッセージを復号できるように受信者が秘密鍵を安全に維持するべきである。このような場合、暗号化鍵は、公に知られかつ特定の潜在受信者と関連していることが知られ得る。送信者はこのプロセスで情報の安全を保証され得るけれども、受信者は送信者の真正を保証され得ない。もし一対の鍵のうちの秘密鍵が送信者によって暗号化用に秘密に維持されるならば、対応する公開鍵を持つどの受信者も、安全の保証はないものの、送信者の真正を保証され得る。本発明に従ってデータ転送装置を認証することに利用されるのは、後者の方式である。公開鍵アルゴリズムは数学的トラップドア関数に基づいて演算し、この関数は公開鍵から秘密鍵を演算することを計算上実行不可能にする。周知のRSARivest、Shamir、andAdlemenリヴェスト、シャミア、エイドルマンアルゴリズムの場合、2つの大きな素数の積を因数分解するのが困難であることに基づいている。鍵選択は、2つの大きな素数p及びqの選択で始まり、これらは互いに乗じられて、大きな数nを生じる。n=pq式2次いで、暗号化鍵eは、eととが相対的に素数であるようにランダムに選択される。最後にユークリッドのアルゴリズムを使用して、復号鍵dが次のように計算される。F=p-1q-1式3ed=1modF式4数e及びnは公開鍵であり、数dは秘密鍵である。式5がRSA暗号化プロセスを与え、及び式6が復号化プロセスを与える。C=Memodn式5M=Cdmodn式6因数nを求める能力のある敵は、式3を使用して係数Fを決定し、次いで、公開鍵eが与えられるならば、式4から秘密鍵dを決定することができるかもしれない。それにもかかわらず、上に注意したように、nは、普通、非常に大きいからこのような因数分解を実行不可能にする。RSAアルゴリズムについての更に詳細は、リヴェスト他の米国特許第4,405,829号に見ることができる。本発明の好適実施例では、フィアットシャミアFiat-Shamir;FSアルゴリズム又はその傍系が利用される米国特許第4,748,668号が参考になり、この特許の内容は言及することによってその内容が本明細書に全面的に組み込まれている。FSアルゴリズムは認証及びディジタルシグネチャ方式を実現するために適しており、この方式は典型的セルラ電話の限定された計算能力に充分適している。FSアルゴリズムは、このアルゴリズムがnを法とする平方余剰の逆数を見付けることが困難であることに基づいて因数を使用すると云う点で、RSAのような、先の方式と異なっている。更に明細に述べると、FS方式は、好適には、長さで512ビットから1064ビットまでの2つの大きな素数の積である数nを選択することに係わる。公開鍵ν1ν2...νk及び秘密鍵s1s2...skはsisqrtmodnのように発生される。上掲の式についての文脈の中で逆数modnを見付ける困難が素数nの因数を見付ける困難と等価であることを示すことができる。安全性を犠牲することなく、このアルゴリズムは他の方式よりも遥かに敏速に実行する。事実、FS方式は、必要な認証計算を完了するために通常要するモジュラ乗算の1から4をFS計算が必要とするに過ぎないと云う点でRSA方式よりも性能的に優れていることが判っている。これは、同じタスクを遂行するためにRSA方式を使用するよりも2桁まで高い速度で署名されたハッシュ値を認証することに相当する。したがって、データ転送装置認証及び周期的監査ハッシュ値比較をRSA方式よりもFS方式を使用してかなり速く遂行することができる。工場レベルでセルラ電話メモリ又はその他の電子メモリを大量にプログラムするとき、FSアルゴリズムの使用は記憶する有効ハッシュ値のディジタルシグネチャをより敏速に発生することによって生産時間を短縮する。応用することができるアルゴリズムには、次に限られるわけではないが、ELGAMAL、DSA、及びフィージフィアットシャミアFiege-Fiat-Shamirがある。本発明の他の態様によれば、セルラ電話内のコントローラハードウェアは、偽造者が安全メモリの内容を判定すること、あるいは先に説明した安全方式を迂回することを防止する安全特徴を有する。図11は、コントローラハードウェア、外部メモリ、及びメモリ/アドレスバス構造の細部を示す。チップ選択論理1122及び安全論理1124を除いて、コントローラ内の構成要素の機能及び動作は、図4について説明したのと同じである。チップ選択論理1122は、マイクロプロセッサアドレスバス1102に接続されたメモリ構成要素及びハードウェア装置に対してハードウェア選択信号を供給するためにバス1102上のアドレスをデコードする。例えば、IROMメモリ403に割り当てられるアドレスがアドレスバス1102上に現れる時はいつでも、IROMチップ選択CSが使用可能にされる。安全論理1124は、IROMメモリ403以外のメモリ装置に記憶されたマイクロプロセッサ命令コードを使用してPSRAM407の内容にアクセスする又はハードウェアベースタイマ401をリセットする企図を検出するように機能する。例えば、PSRAM407内のメモリ位置の目標アドレスを用いてのフラッシュメモリ402に置かれた読み出し又は書き込み命令は、違法動作として検出されることになる。どんな違法アクセス企図もマイクロプロセッサを停止状態に入らせ、停止状態はセルラ電話が正規動作を回復するために電話の完全な電源リセットを必要とする。安全論理は、次の論理式を実現することである。すなわち、論理式1S=↑SupvrB論理式2Halt=notSACここで、S=安全モード、↑Supvr=マイクロプロセッサの監視モードへの遷移、A=PSRAMメモリに対するチップ選択信号、B=IROMメモリに対するチップ選択信号、C=ハードウェアタイマに対するチップ選択信号、Halt=マイクロプロセッサへのハードウェア制御入力であって、マイクロプロセッサを無際限ループに入れる、又は電源が除かれかつ電話に再印加されるまで待機させる。上の論理式1は次のことを述べる。すなわち、マイクロプロセッサが監視モードへ遷移し↑Supvr、それと同時にIROM403が活性であるBとき常に安全モードSがセットされる。論理式2は次のことを述ベる。すなわち、もしコントローラ400が安全モードになくnotSかつPSRAM407選択又はハードウェアタイマチップ選択のどちらかが活性であるACならば、マイクロプロセッサ停止入力が活性化される。この論理は、PSRAM407への適法アクセス及びハードウェアタイマ401へのリセット命令が、好適には、IROM403に記憶されたコードに由来するから、先に説明したハッシュ値比較及び認証プロセスによって提供される安全処置の迂回を有効に防止する。IROMメモリ403に置かれた全ての適法コードブートコード、アッシュコード、公開鍵コード、及び認証コードが、好適には、命令によって括弧に入れられ、これが安全モードをルーチンの開始にセットさせ及びそのルーチンを去るときクリアさせる。本発明の好適実施例では、ソフトウェア割り込み命令最近のマイクロプロセッサでは普通利用可能であるがIROM403内各ルーチンの開始に置かれて、マイクロプロセッサ402を監視モードへスイッチしかつマイクロプロセッサハードウェア信号SPVRを活性になるようにさせる。IROM403チップ選択信号はそのとき活性であるから、安全モードSがセットされる。そのソフトウェアルーチンの終わりで復帰命令を実行して、安全モードを取り消す。本発明の他の態様によれば、データ転送装置は工場供給安全装置を含み、この装置は汎用コンピュータとの組み合わせで使用することができる。安全装置1200は、標準コネクタ1206を経由してPC1202の入力出力ポートに取り付けられる。PC1202上の第2ポートは、RS-232、ケーブル、又は赤外線リンクのような第2標準コネクタ1208と連携して使用され、セルラ電話1204とインタフェースする。図8に示したプロセスは、セルラ電話リプログラミングプロセスを実施するために図12に示した構成を使用して遂行することができる。標準PC及び安全装置1200を有する許可された工場サービス代理人は、電話をリプログラムする装備を有する。本発明の他の実施例によれば、現存するセルラ電話は、内部プリント配線板カードアッセンブリにアクセスすることによらない攻撃に対して安全であるフィールドプログラミング能力を備えることができる。この保護レベルは、外部電話コネクタを通してアクセス可能な試験命令を使用して電話内のメモリ内容を改変する偽造攻撃の最も普通の方法に対して非常に効果的である。これは、フィールドプログラミング命令にアクセスを容認するのに先立ち、図8で説明したデータ転送装置DTD認証手順を使用するように現在のセルラ電話をアップグレードすることによって行うことができる。認証ソフトウェアコード及び公開鍵の両方を現存するフラッシュメモリに記憶し、このようにして現在の慣例設計nに対する何らの変化も回避する。本発明の模範的応用を、セルラ電話内の電子メモリの安全を保証しかつプログラムするに当たって応用される片方向ハッシュ化及び鍵暗号化システムの説明の中で述べた。しかしながら、当業者が容易に承知しかつ認めるように、メモリ内容のシグネチャを導出するためのいかなる適当な機能、計算、アルゴリズム、方法、及びシステムも本発明に従って応用することができる。また、本発明を特定の実施例を参照して説明した。しかしながら、当業者に容易に明らかなように、上に説明した好適実施例以外の特殊な形で本発明を具体化することが可能である。例えば、本発明をその精神に反することなくいかなる電子メモリ及び/又は電子メモリプログラミング又はアクセス装置で具体化することも可能である。更に、本発明をディジタル信号プロセッサ、特定用途向けプロセッサ、又はいかなる他の類似のプロセッサ、又は電子メモリ向けシステムにも応用しかつ実施することがきる。したがって、本明細書に説明した好適実施例は、単に解説のためであって、いずれにしても限定的に考えてはならない。本発明の範囲は、前述の説明によってではなく、添付の請求の範囲によって与えられ、請求の範囲に入る全ての変形実施例及び等価実施例は請求の範囲に包含されることを意図する。"