明 細 書 電子データ検証装置 技術分野
[0001] 本発明はネットワーク等を通じて移動する電子データ、プログラムコード等の真正性 を検証する装置及び方法に関するものである。
背景技術
[0002] インターネットをはじめとする通信ネットワークの普及と帯域向上により、電子データ 、プログラムコード等を通信ネットワーク経由で送受する機会が多くなつた。その際の 脅威として、悪意を持つ者により電子データ改竄される問題があり、特にプログラムコ ードの改竄は受信者にとって深刻な不利益を招くものであった。この問題に対しては 、PKI (Public Key Infrastructure :公開鍵認証基盤)を利用した電子署名によ る真正性保証技術が広く使われて 、る。
[0003] 電子署名による真正性検証は有用な技術である力 例えば移動型エージェントプ ログラムのように、移動途上で内容が書き換わる性質を持った電子データの場合は 一貫した署名が適用できな 、ため、各々の送信者が各自の秘密鍵を用いて都度署 名を追加する、もしくは付け直すという方法があった (例えば、特許文献 1参照)。
[0004] 図 27は従来の真正性を検証する装置を示す構成図である。図 27において、電子 データの送信者 1は、信頼できる第三者である CA (Certificate Authority:認証 局)による電子署名 7と、電子署名手段 3と送信者秘密鍵 8を用いて生成した電子署 名の二つを用いて、電子データ 9の真正性を保証していた。ここで 4は送信者 1が原 本データに付加する追加データ作成手段であり、前記追加データにっ ヽては送信 者 1の署名、原本データ及び送信者識別情報 5につ ヽては CAによる署名が付与さ れている。送信者識別情報 5は送信者公開鍵 6を含む。受信者 2は電子署名認証手 段 10を用いて、受信した電子データに含まれる 2つの電子署名から、追加データ、 原本データ及び送信者の真正性を検証する。
特許文献 1 :特開 2001— 236333号公報 (第 2— 4頁、図 3)
発明の開示
発明が解決しょうとする課題
[0005] し力しながら、前記従来の構成では、原本データと追加データが明示的に区分され ていることが前提であり、下記の課題を有していた。
[0006] (1)第三者保証の喪失
電子データの難読化、効率化等の理由で原本データと追加データを不可分とし、 原本データ内に散在的にデータを埋め込んだ場合、送信者がデータ全体に署名を 付け直す必要が生じ、受信者は原本データの真正性につ!、て第三者の保証を受け られなくなる。
[0007] 送信者が少数で、かつ振る舞いの全てが信頼できる場合には、第三者からの権限 委譲という形で署名を付け直し、受信者は間接的に第三者力もの保証を得ることが 可能であるが、例えば認証エージェント、検索エージェントなど、少種類かつ原本が 共通の電子データを不特定多数の送信者が扱う場合には、個々の送信者への権限 委譲は好まし 、方法ではな 、。
[0008] (2)署名再生成のコスト
送信者が署名の追加や付け直しを行う場合、公開鍵暗号方式として一般に知られ る RSA(Rivest Shamir Adleman)暗号演算などの計算量の多い演算が必要で ある。
[0009] 昨今では計算機ネットワークに接続される端末として PDA (Personal Digital As sistant)、携帯電話、 IC (Integrated Circuit)カード(Smart Cardとも呼ばれる) のような低処理能力の機器も増えており、これらの機器が送信者となる場合には、逐 次署名を生成する事は効率的な方法ではな 、。
[0010] 本発明は、前記従来の課題を解決するもので、信頼できる第三者によって内容が 保証された電子データに対し、送信者が散在的にデータを埋め込むことを可能とし、 かつ送信者が電子データに新たな署名を付与することなぐ受信者は信頼できる第 三者の署名によって電子データの真正性を検証できる装置と方法を提供することを 目的とする。
課題を解決するための手段
[0011] 前記従来の課題を解決するために、本発明の電子データ検証装置は、書換え後 電子データと、書換え前電子データに対する誤り訂正符号を保持する電子データ保 持手段と、前記誤り訂正符号に基づいて、書換え後電子データの復元を行う電子デ ータ復元手段と、前記電子データ復元手段により復元された電子データを、書換え 前電子データと照合し、照合結果を用 、て復元後電子データの正当性を検査する 復元後電子データ検証手段とを備える。
[0012] 上記復元後電子データ検証手段により、書換え前電子データに基づいて書換え後 電子データの真正性を検証することができる。
[0013] さらに本発明の電子データ検証装置は、書換え前電子データの電子署名を保持 する検証用署名保持手段を備え、復元後電子データ検証手段が、前記検証用署名 保持手段が保持する電子署名力ゝら喑復号ィ匕演算により導かれたデータと、復元前電 子データからハッシュ演算により導かれたデータとを比較し、前記比較の結果が所定 の条件に合致するか否かを検査する。
[0014] 上記検証用署名保持手段により、書換え前電子データの署名に基づいて書換え 後電子データの真正性を検証することができる。
[0015] さらに本発明の電子データ検証装置は、書換え前電子データの電子署名を保持 する検証用署名保持手段を備え、復元後電子データ検証手段が、前記検証用署名 保持手段が保持する電子署名力ゝら喑復号ィ匕演算により導かれたデータと、復元後電 子データからハッシュ演算により導かれたデータとを比較し、前記比較の結果が所定 の条件に合致するか否かを検査する。
[0016] 上記検証用署名保持手段が保持する電子署名を用いた検証対象に復元後電子 データを用いることにより、復元前電子データに対する演算を行うことなく復元後電子 データの真正性を検証することができる。
[0017] さらに本発明の電子データ検証装置は、電子データ復元手段が書換え後電子デ ータの中に訂正できない誤りの存在を検出した場合に、書換え後電子データは不正 であると判断する電子データ書換え検証手段を備える。
[0018] 上記電子データ書換え検証手段により、電子データに不正な書換えが為されてい た場合、電子データ復元時に不正を検知できる場合がある。
[0019] さらに本発明の電子データ検証装置は、電子データの書換え規則を保持する電子 データ書換え規則保持手段を備え、電子データ復元手段が行うデータの訂正が、前 記電子データ書換え規則保持手段に保持された書換え規則に合致しているカゝ否か を検査し、合致しない場合に、書換え後電子データは不正であると判断する電子デ ータ書換え検証手段を備える。
[0020] 上記電子データ書換え規則保持手段により、書換えの制限規則を厳しくする、緩 和するなど柔軟な設定ができる。
[0021] また、本発明の電子データ作成装置は、書換え前電子データに対する誤り訂正符 号に基づく書換え規則を保持する電子データ書換え規則保持手段と、前記電子デ ータ書換え規則保持手段が保持する書換え規則に従い電子データを書換える電子 データ書換え手段を備える。
[0022] 上記電子データ書換え手段により、書換えた内容に関する新たな署名生成等を行 うことなぐ書換えた電子データを正当なものとして外部に提供できる。
[0023] さらに本発明の電子データ作成装置は、書換え前電子データに対する誤り訂正符 号が有する訂正可能条件に一致するか、もしくは充足する条件を書換え規則とする。
[0024] 上記書換え規則により、誤り訂正符号の訂正可能条件を基本とした上で、さらに柔 軟な書換え規則を設定できる。
[0025] また、本発明の電子データ検証方法は、電子データ検証装置によって実行され、 書換え後電子データをメモリから読出すステップと、書換え前電子データに対する誤 り訂正符号をメモリから読出すステップと、前記誤り訂正符号に基づいて、書換え後 電子データの復元を行うステップと、前記電子データ復元手段により復元された電子 データを、書換え前電子データと照合するステップと、前記照合結果を用いて復元後 電子データの正当性を検査するステップ力もなる。
[0026] 上記各ステップにより、書換え前電子データに基づいて書換え後電子データの真 正性を検証する電子データ検証方法を具現化できる。
[0027] また、本発明の電子データ作成方法は、電子データ作成装置によって実行され、 書換え前電子データに対する誤り訂正符号に基づく書換え規則をメモリから読出す ステップと、前記書換え規則に従 、電子データを書換えるステップ力もなる。
[0028] 上記各ステップにより、書換えた内容に関する新たな署名生成等を行うことなぐ書 換えた電子データを正当なものとして外部に提供する電子データ作成方法を具現化 できる。
[0029] また、本発明の集積回路は、書換え後電子データ及び書換え前電子データに対す る誤り訂正符号データを外部力 入力するインタフェース部と、前記書換え後電子デ ータ及び前記誤り符号データを保持するメモリ部と、前記誤り訂正符号に基づ!、て、 書換え後電子データの復元を行う電子データ復元処理部と、前記電子データ復元 処理部により復元された電子データを、書換え前電子データと照合する復元後電子 データ検証処理部と、を備える。
[0030] 上記復元後電子データ検証処理部により、書換え前電子データに基づいて書換え 後電子データの真正性を検証する集積回路を具現化できる。
[0031] また、本発明の別の集積回路は、書換え前電子データ及び書換え前電子データに 対する誤り訂正符号に基づく書換え規則を保持するメモリ部と、前記書換え規則に 従 ヽ前記書換え前電子データを書換え、書換え後電子データを作成する電子デー タ書換え処理部と、書換え後電子データを外部に出力するインタフェース部を備える
[0032] 上記電子データ書換え処理部により、書換えた内容に関する新たな署名生成等を 行うことなぐ書換えた電子データを正当なものとして外部に提供する集積回路を具 現化できる。
発明の効果
[0033] 本発明によれば、原本データに独自のデータを埋め込んで他者に配布する場合に おいて、データを配布される側(受信者)は、配布する側(送信者)の署名ではなぐ 原本データを作成した信頼できる第三者の署名によって、配布されたデータが正し
V、原本に従って、正 、書換え規則のもとで作成されたものであることを検証できる。 従って受信者は、受信データに関して信頼できる第三者の保証を直接受けられると いう効果を得られる。
[0034] さらに本発明によれば、送信者は署名の追加や付け直しを行う必要がなくなり、低 処理能力の機器において配布データの作成が短時間で行える。併せて、配布デー
タを保証するための署名生成機や署名生成鍵の管理を行う必要がなくなり、署名再 生成のコスト削減の効果を得られる。
図面の簡単な説明
圆 1]実施の形態 1における電子データ検証装置の構成図
圆 2]書換え前電子データの一例を示す図
圆 3]書換え後電子データの一例を示す図
圆 4]誤り訂正符号の一例を示す図
[図 5]電子データ復元手段の動作フロー図
[図 6]実施の形態 1における復元後電子データ検証手段の動作フロー図
圆 7]実施の形態 2における電子データ検証装置の構成図
[図 8]実施の形態 2における復元後電子データ検証手段の動作フロー図
[図 9]実施の形態 3における復元後電子データ検証手段の動作フロー図
圆 10]実施の形態 4における電子データ検証装置の構成図
[図 11]実施の形態 4における電子データ書換え検証手段の動作フロー図
[図 12]訂正できな 、誤りの一例 (訂正できな 、ビット誤りの例)を示す図
圆 13]訂正できないビット誤りを検出する際の、電子データ書換え検証手段の動作フ ロー図
圆 14]訂正できない誤りの一例 (訂正できないバイト誤りの例)を示す図
圆 15]訂正できないバイト誤りを検出する際の、電子データ書換え検証手段の動作 フロー図
[図 16]実施の形態 5における電子データ検証装置の構成図
圆 17]実施の形態 5における電子データ書換え検証手段の動作フロー図
[図 18]電子データ書換え規則の一例を示す図
[図 19]実施の形態 6及び 7における電子データ作成装置の構成図
[図 20]実施の形態 6における電子データ書換え規則の一例を示す図
圆 21]実施の形態 7における電子データ書換え規則の一例を示す図
圆 22]実施の形態 7の応用における電子データ書換え規則の一例を示す図
[図 23]実施の形態 1における電子データ検証方法の手順を示すフロー図
[図 24]実施の形態 6における電子データ作成方法の手順を示すフロー図 圆 25]実施の形態 8における集積回路の構成図
圆 26]実施の形態 9における集積回路の構成図
圆 27]従来の真正性を検証する装置の構成図
符号の説明
1 従来例の電子データ送信装置
2 従来例の電子データ受信装置
3 電子署名手段
4 追加データ作成手段
5 送信者識別情報
6 送信者公開鍵
7 CAによる電子署名
8 送信者秘密鍵
9 送受信される電子データ
10 電子署名認証手段
101 電子データ検証装置
102 電子データ保持手段
103 書換え後電子データ
104 書換え前電子データに対する誤り訂正符号
105 電子データ復元手段
106 復元後電子データ検証手段
201 書換え前電子データのデータブロック
202 書換え前電子データの ECCブロック
301 書換え後電子データのデータブロック
401 データブロック内のビット Xijk
402 ECC内のビット Pijk
501- -506 電子データ復元手段の動作フローの各ステップ
601〜606 実施の形態 1における復元後電子データ検証手段の動作フローの
各ステップ
701 電子データ検証装置
706 復元後電子データ検証手段
707 検証用署名保持手段
708 書換え前電子データの電子署名
805〜806 実施の形態 2における復元後電子データ検証手段の動作フローの 各ステップ
902〜903 実施の形態 3における復元後電子データ検証手段の動作フローの 各ステップ
1001 電子データ検証装置
1005 電子データ復元手段
1007 電子データ書換え検証手段
1101 電子データ書換え検証手段の動作フローの不正書換え検出ステップ 1201 訂正できないビット誤りの例
1301〜1302 訂正できないビット誤りを検出する場合の、電子データ復元手段 及び電子データ書換え検証手段の動作フローの各ステップ
1401〜 1404 電子データ復元手段が訂正しょうとするビット(バイトオフセット 0) 1405 電子データ復元手段が訂正しょうとするビット (バイトオフセット 1) 1501〜1503 訂正できないバイト誤りを検出する場合の、電子データ復元手段 及び電子データ書換え検証手段の動作フローの各ステップ
1601 電子データ検証装置
1605 電子データ復元手段
1607 電子データ書換え規則保持手段
1608 電子データ書換え規則
1609 電子データ書換え検証手段
1701 電子データ書換え検証手段の動作フローの不正書換え検出ステップ
1801 書換え制限ブロックリスト
1802 書換え制限ブロックの規則データ構造例
1803 書換え禁止ブロックリスト
1804 書換え禁止ブロックの規則データ構造例
1805 書換えフリーブロックリスト
1806 書換えフリーブロックの規則データ構造例
1901 電子データ作成装置
1902 電子データ書換え規則保持手段
1903 電子データ書換え規則
1904 電子データ書換え手段
2001 電子データ書換え規則のデータ構造例
2101 書換え制限ブロックリスト
2102 書換え制限ブロックの規則データ構造例
2103 書換え禁止ブロックリスト
2104 書換え禁止ブロックの規則データ構造例
2201 書換え強制ブロックリスト
2301- -2305 電子データ検証方法の各ステップ
2401- -2402 電子データ作成方法の各ステップ
2501 集積回路
2502 メモリ部
2503 書換え後電子データ
2504 書換え前電子データに対する誤り訂正符号
2505 電子データ復元処理部
2506 復元後電子データ検証処理部
2507 ROM
2508 CPU
2509 インタフェース咅
2510 ノ ス
2601 集積回路
2602 メモリ部
2603 電子データ書換え規則
2604 電子データ書換え処理部
2605 書換え前電子データ
2606 書換え後電子データ
2607 ROM
2608 CPU
2609 インタフェース咅
2610 ノ ス
発明を実施するための最良の形態
[0037] 以下本発明の実施の形態について、図面を参照しながら説明する。
[0038] (実施の形態 1)
図 1は、本発明の実施の形態 1における電子データ検証装置の構成図である。
[0039] 図 1において、電子データ検証装置 101は電子データ保持手段 102、電子データ 復元手段 105、復元後電子データ検証手段 106を備えている。
[0040] 電子データ保持手段 102はメモリである。好適には RAM (Random Access Me mory:ランダムアクセスメモリ)を用いるが、 EEPROM (Electronically Erasable and Programmable Read Only Memory:電気的消去書換え可能不揮発メモ リ)、フラッシュメモリ(書換え可能不揮発メモリ)、光記録媒体、磁気記録媒体等であ つても良い。
[0041] 電子データ復元手段 105、及び復元後電子データ検証手段 106は、電子計算処 理を行う演算機である。専用に設計された演算機であっても、汎用のマイクロプロセッ サとプログラムコードで構成されたものであっても良い。
[0042] 電子データ保持手段 102は書換え後電子データ 103及び書換え前電子データに 対する誤り訂正符号 104を保持して 、る。
[0043] 書換え後電子データ 103、及び書換え前電子データに対する誤り訂正符号 104は
、いずれも電子データである。
[0044] 図 23は、本発明の実施の形態 1における電子データ検証装置の動作を示すフロー である。
[0045] 電子データ復元手段 105は、電子データ保持手段 102が記憶する書換え後電子 データ 103を読み出し (ステップ 2301)、同じく電子データ保持手段 102が記憶する 書換え前電子データに対する誤り訂正符号 104を読み出し (ステップ 2302)、書換 え前電子データに対する誤り訂正符号 104に基づいて書換え後電子データを復元 する (ステップ 2303)。続いて復元後電子データ検証手段 106は、電子データ復元 手段 105により復元された電子データを書換え前電子データと照合し (ステップ 230 4)、照合結果を用いて復元後電子データの正当性を検証する (ステップ 2305)。
[0046] 図 2は、書換え前電子データの一例である。
[0047] 図 2において、データブロック 201は電子データの本体であるプログラムコード、デ ータを論理的に分割された複数のブロック l〜mで構成されて ヽる。ここで図 2の例で はデータ本体として機械語コード (マイクロプロセッサ上で動作するネイティブ機械語 コード、仮想マシン上で動作するバイトコード等)を用いている。
[0048] データブロック 201中に示される「P0」の記号部は、電子データ中に配置された書 換え可能領域であり、後述する書換え後電子データではこの「P0」の部分が別のデ ータに置き換わる。
[0049] ECC (Error Collection Code :誤り訂正符号)ブロック 202は、論理的に分割さ れた複数のブロック l〜mで構成され、 ECC1がデータブロック 1を、 ECC2がデータ ブロック 2を、以下同様に番号 mまで、 ECCiがデータブロック iの誤り訂正符号となる よう構成されている。
[0050] 図 3は、書換え後電子データの一例である。この例では、前記図 2で示した書換え 前電子データのデータブロック中に配置されたデータ「P0」力 異なるデータ「P1」「 P2J及び「P3」に書換えられて 、る。
[0051] ECCブロック 202は、先に示した書換え前電子データに対する誤り訂正符号と同 一のものを使用する。
[0052] 誤り訂正符号の一例として、公知の技術である「(7, 4)ハミング符号」を用いる。
[0053] なお、本発明に用いる誤り訂正符号は(7, 4)ハミング符号に限定されるものではな ぐ公知の誤り訂正符号を任意に適用することができる。
[0054] また ECCはデータブロック直後に位置する必然性はなぐ分離されていても良い。
あるいはデータブロック内に含まれて 、ても良い。
[0055] (7, 4)ハミング符号では、データビット 4つ(XI, X2, X3, X4)に対して冗長ビット 3 つ(PI, P2, P3)を付カロし、 X1〜X4がいかなる値の場合でも、冗長ビットを付カロした 合計 7ビットからなる符号が、必ずハミング距離 3以上離れるようにする。
[0056] 上記についてより詳細に説明すると、 X1〜X4に対して、下記の論理式が成立する よう冗長ビット P1〜P3の値を定める。
[0057] XI xor X3 xor X4 xor PI = 0
XI xor X2 xor X4 xor P2 = 0
XI xor X2 xor X3 xor P3 = 0
(xorは排他的論理和を意味する演算子である)
このようにして得られたビット集合 XI, X2, X3, X4, PI, P2, P3は全ての組み合 わせカ 、ミング距離が 3以上離れた関係となり、 7ビット中 1ビットが誤り(ビット反転)で あった場合にはノ、ミング距離 1であるビット集合への訂正が可能であり、 2ビットが誤り である場合には誤りの存在を検出することが可能である。
[0058] 図 4は、上記の(7, 4)ハミング符号を応用した誤り訂正符号の一例である。
[0059] データブロック iはオフセット k=0〜3の 4バイトで構成され、各バイトはビットオフセッ ト j = 0〜7の 8ビットで構成される。データブロック内の任意のビット 401は i, j, kをパ ラメータとした記号 Xijkで表現される。
[0060] 一方、 ECCiはオフセット k=0〜2の 3バイトで構成され、各バイトはビットオフセット j
=0〜7の 8ビットで構成される。 ECCi内の任意のビット 402は i, j, kをパラメータとし た記号 Pijkで表現される。
[0061] Xijl xor Xij3 xor Xij4 xor Pij l (式 1)
Xijl xor Xij2 xor Xij4 xor Pij2 (式 2)
Xij l xor Xij2 xor Xij xor Pij3 (式 3)
とした時、式 1、式 2、式 3全てが 0となるように Pij l〜3を定める。値の決定は下記の 論理式に従えば良い。
[0062] Pij l = Xijl xor Xij3 xor Xij4
Pij2 = Xijl xor Xij2 xor Xij4
Pij3 = Xijl xor Xij2 xor Xij3
ただし、上記 Xijkはいずれも書換え前電子データのものである。書換え後電子デ ータの Xijkは、好適には該電子データ検証装置の外部にある装置等によって書換え が為されたものである。
[0063] 図 5は電子データ復元手段の動作フローである。
[0064] ループ 1として、ブロック番号 iを 1から最終ブロックまで繰り返し処理を行う(ステップ 501)。ループ 1内の処理は下記の通りである。
[0065] データブロック i、 ECCiを読み込む(ステップ 502)。ここでデータブロック iは書換え 後電子データのデータブロックであり、電子データ保持手段 102が保持していたデ ータである。続いてループ 2として、ビットオフセット jを 0から 7まで繰り返し処理を行う (ステップ 503)。ループ 2内の処理は下記の通りである。
[0066] 前記の式 1、式 2、式 3を演算する(ステップ 504)。続いてこれら 3式とも演算結果が 0になるか否かを判定する(ステップ 505)。判定が YESであれば、ステップ 503に戻 り、ビットオフセット jを 1増加してループ 2を継続する。判定が NOであれば、(7, 4)ハ ミング符号誤り訂正の原理に基づいて Xij l、 Xij2、 Xij3、 Xij4いずれかを訂正(ビット を反転)する (ステップ 506)。その後ステップ 503に戻り、ビットオフセット jを 1増加し てループ 2を継続する。
[0067] ビットオフセット 0〜7の処理が全て終了した場合は、ステップ 501に戻り、ブロック番 号 iを 1増加してループ 1を継続する。最終ブロックまで処理が終了した場合に電子デ ータ復元手段は処理を終了し、復元後電子データ検証手段の処理に進む。
[0068] 上記の例では、各々のデータブロックに対して最大 8ビット、好適にはバイト境界内 に位置する連続する 8ビットからなる最大 1つのデータバイトを、書換え前電子データ と同じ状態に復元することが出来る。
[0069] 図 6は復元後電子データ検証手段 106の動作フローである。
[0070] 復元後電子データの、データブロック 1〜最終、 ECC1〜最終のメッセージダイジェ ストを作成し、これを Aとする(ステップ 601)。メッセージダイジェストは電子データに 識別性、一意性を持たせた状態でハッシュ演算を行うことにより得られる。
[0071] ハッシュ演算は電子データの要約を得るための一方向関数であるハッシュ関数 (ha
sh function)を用いた演算であり、同一の電子データからは同一の要約が得られ る点が特徴である。要約は元の電子データと比べてデータサイズが小さぐまた異な る電子データから同一の要約が生成される確率は低く抑えられて 、る。ノ、ッシュ関数 の例として、 SHA— l (Secure Hash Algorithm 1)、 MD5 (Message Digest 5)等が知られている。
[0072] 次に書換え前電子データのデータブロック 1〜最終、 ECC1〜最終のメッセージダ イジエストを取得する。好適な例では、取得元は書換え前電子データの作成もしくは 発行に関して責任を負う、信頼できる機関等である。取得したメッセージダイジェスト を Bとする(ステップ 602)。
[0073] 次に、 Aと Bを比較し照合を行う(ステップ 603)。照合の結果が一致である力否かを 判定し (ステップ 604)、判定が YESであれば書換え後電子データは真正であると判 断する (ステップ 605)。判定が NOであれば書換え後電子データは不正であると判 断する (ステップ 606)。
[0074] 以上実施の形態 1によれば、データブロック内で最大 1バイト等、限定された条件で 任意の書換えが為された電子データを、書換え前電子データとの照合により真正、 不正を判断できる。より具体的な効果としては、例えば事業者 Aがコンピュータ上で 動作するプログラムコード X(認証プログラム、データ配信プログラム、検索エージェン ト、ゲーム等様々な適用例が考えられる)を作成、配布し、事業者 Bが Xを受け取り、 事業者 B固有の情報をプログラムコード Xに埋め込み (認証情報、配信コンテンツ、 条件設定データ等様々な例が考えられる) X'を作成し、 X'をコンシユーマ Cが受け 取り実行するケースにおいて、コンシユーマ Cは配布されたプログラムコード X'が不 正なもの(ウィルス、ワーム、スパイウェア等の例が考えられる)でない事を原プロダラ ム Xの作成、配布者である事業者 Aから得られる固定の情報(上記例ではメッセージ ダイジェストおによって一律に検証することが可能となる。
[0075] 上記の効果は、事業者 Bとコンシユーマ Cをある種のオンライン取引の当事者と考え た場合、コンシユーマ Cは事業者 Bではなぐ原プログラムの作成、発行者である事業 者 Aを信頼の拠り所に出来る事を意味する。この事は事業者 Bが多数存在し、しかも それらが事業母体や業務実績が明らかでなぐコンシユーマ Cにとつて信頼に足る相
手かどうか分力もな 、場合でも、「信頼できる」事業者 Aの保証のもとで確実な取引が 実現できるという事でもある。さらに付け加えるならば、実績、知名度のない事業者 B 力 信頼できる事業者 Aの「顧客に対する信頼度」を利用することにより、広くコンシュ 一マに対して事業展開できるビジネスチャンスを得ることにも繋がる。
[0076] (実施の形態 2)
図 7は、本発明の実施の形態 2における電子データ検証装置の構成図である。
[0077] 図 7において、図 1と同じ構成要素については同じ符号を用い、説明を省略する。
[0078] 図 7において、電子データ検証装置 701は検証用署名保持手段 707を備え、検証 用署名保持手段 707は書換え前電子データの電子署名(書換え前電子データに与 えられた電子署名) 708を保持する。好適な例では、署名を与える者は書換え前電 子データの作成もしくは発行に関して責任を負う、信頼できる機関等である。
[0079] 検証用署名保持手段 707はメモリであり、書き換え前電子データの電子署名 708 は電子データである。
[0080] 復元後電子データ検証手段 706は検証用署名保持手段 707から書換え前電子デ ータの電子署名 708を取り出し、この電子署名 708を用いて復元後電子データの真 正性を検証する。
[0081] 図 8は、復元後電子データ検証手段 706の動作フローである。
[0082] 図 8において、図 6と同じ構成要素については同じ符号を用い、説明を省略する。
[0083] 書換え後電子データのメッセージダイジェスト(A)と書換え前電子データのメッセ一 ジダイジェスト(B)を比較し照合を行った後、検証の結果が一致であれば、検証用署 名保持手段が保持する電子署名を署名作成者の公開鍵で復号し、 (B)と比較し照 合する (ステップ 805)。続いて照合の結果が一致である力否かを判定し (ステップ 80 6)、判定が YESであれば書換え後電子データは真正であると判断し、判定が NOで あれば書換え後電子データは不正であると判断する。
[0084] なお、ステップ 601とステップ 602の順序は逆でも良ぐまたステップ 805とステップ
806はステップ 602以降の順序であれば任意の位置で良い。
[0085] 以上実施の形態 2によれば、好適には信頼できる第三者が電子署名を用いて書換 え前電子データの完全性 (改ざん等の不正な改変が為されて!/ヽな ヽこと)を保証する
ため、書換え後電子データの真正性を信頼できる第三者を通じて確実に行うことが 出来る。
[0086] 効果の具体例としては、例えば原プログラム Xの発行者 Aが Xに対する署名を作成 、配布しておけば、二次配布事業者 Bが許可された範囲においてプログラム Xの内容 を修正 (事業者 B独自の値を埋め込んだプログラム X'を作成)し、コンシユーマ こ 配布した際、コンシユーマ Cは事業者 Bが行った変更内容が許可された範囲であるこ とを、事業者 Aの署名を用いて確実に検証できる。ここで、許可された範囲とは即ち プログラム Xに付加された誤り訂正符号の訂正ルール (訂正可能範囲)そのものであ り、特別の変更ルールを事業者 Aから都度取得する必要もなぐコンシユーマ Cは自 律的にプログラム X,の正当性を確認できる。さらに、事業者 Bが多種にわたる場合で も、コンシユーマ Cは単一の電子署名と共通の訂正ルールを用いて一律に検証処理 を行うことが可能であり、事業者 Bの増大によるコンシユーマ Cの処理リソース増加が なぐハードウェアコスト低減にも効果がある。
[0087] (実施の形態 3)
本発明の実施の形態 3における電子データ検証装置の構成図は、実施の形態 2と 同じく図 7で示される。
[0088] 図 9は、実施の形態 3における電子データ検証手段の動作フローである。
[0089] 図 9において、図 6と同じ構成要素については同じ符号を用い、説明を省略する。
[0090] 書換え後電子データのメッセージダイジェスト (A)を作成した後、検証用署名保持 手段が保持する電子署名を署名作成者の公開鍵で復号し、 (A)と比較し照合する( ステップ 902)。続いて照合の結果が一致であるか否かを判定し (ステップ 903)、判 定が YESであれば書換え後電子データは真正であると判断し、判定が NOであれば 書換え後電子データは不正であると判断する。
[0091] 以上実施の形態 3によれば、好適には信頼できる第三者が電子署名を用いて書換 え後電子データの完全性 (改ざん等の不正な改変が為されて ヽな ヽこと)を保証する ため、書換え後電子データの真正性を信頼できる第三者を通じて確実に行うことが 可能となる。さらのこの場合、書換え前電子データのメッセージダイジェストを取得す る必要がないため、処理時間短縮と処理リソース低減の効果が得られる。
[0092] (実施の形態 4)
図 10は、本発明の実施の形態 4における電子データ検証装置の構成図である。
[0093] 図 10において、図 1と同じ構成要素については同じ符号を用い、説明を省略する。
[0094] 図 10において、電子データ検証装置 1001は電子データ復元手段 1005と電子デ ータ書換え検証手段 1007を備え、電子データ書換え検証手段 1007は電子データ 復元手段 1005と連携し、書換え後電子データの中に訂正できな ヽ誤りの存在を検 知する。
[0095] 電子データ復元手段 1005、及び電子データ書換え検証手段 1007は、いずれも 電子計算処理を行う演算機である。
[0096] 図 11は、電子データ書換え検証手段 1007の動作フローである。
[0097] 図 11において、図 6と同じ構成要素については同じ符号を用い、説明を省略する。
[0098] 電子データ書換え検証手段が訂正できな 、誤りを検出した力否かを判定し (ステツ プ 1101)、判定の結果が YESの場合には書換え後電子データは不正であると判断 する。
[0099] 判定の結果が NOの場合には、電子データ復元処理が未完了であれば処理を継 続し、電子データ復元処理が完了して 、れば復元後電子データ検証手段へ処理を 進める。
[0100] 図 12は、訂正できない誤りの一例(訂正できないビット誤りの例)である。 (7, 4)ハミ ング符号を用いた誤り訂正において、既述した論理式 (式 1,式 2,式 3)は、図に示さ れる 8通りのビットパターンを取り得る。ここで冗長ビット Pij l, Pij2, Pij3は書換え対 象ではないため、ビット誤りは起こり得ないものとして扱うことが出来る。このため図に 示される 3種類のビットパターン 1201を検出した場合は、 Xijl, Xij2, Xij3, Xij4い ずれか 2ビット以上に誤りが存在し、誤り訂正不能であると判別できる。
[0101] 図 13は、前記訂正できないビット誤りを検出する場合の、電子データ書換え検証手 段 1007、及び連携して動作する電子データ復元手段 1005の動作フローである。
[0102] 図 13において、図 5及び図 6と同じ構成要素については同じ符号を用い、説明を 省略する。
[0103] 電子データ復元手段の処理において、 3つの論理式(式 1,式 2,式 3)を演算した
後、 3式とも演算結果力^になるか否かを判定する (ステップ 1301)。判定結果が NO の場合、電子データ書換え検証手段は 3式の演算結果が誤り訂正可能なビットバタ ーンであるか否かを判定する (ステップ 1302)。判定結果が YESの場合は電子デー タ復元手段の処理を継続し、判定結果が NOの場合にはこの時点で書換え後電子 データが不正であると判断する。
[0104] 図 14は、訂正できない誤りの別の一例(訂正できないバイト誤りの例)である。
[0105] 図 14において、ビット 1401〜1405は電子データ復元手段が訂正しょうとするビッ トを表す。ここで、前記各ビットの誤り訂正は(7, 4)ハミング符号により全て訂正可能 であるものとする。
[0106] しかしながら、ビット 1401〜1404はバイトオフセット k=0に、ビット 1405はバイトォ フセット k= lに位置する。この例が示すように、 ECCiによって訂正されるデータブロ ック iの中で、訂正されるビットが複数のバイトオフセット kに跨る場合は、 2バイト以上 の誤りが存在することが判り、 1バイト誤り訂正が不可能であると判別できる。
[0107] 図 15は、前記訂正できないバイト誤りを検出する場合の、電子データ書換え検証 手段 1007、及び連携して動作する電子データ復元手段 1005の動作フローである。
[0108] 図 15において、図 5及び図 6と同じ構成要素については同じ符号を用い、説明を 省略する。
[0109] ビットオフセット j = 0〜7までの 1回のループをループ Lとする(ステップ 1503)。
[0110] 電子データ復元手段の処理において、 3つの論理式(式 1,式 2,式 3)を演算した 後、 3式とも演算結果力^になるか否かを判定する (ステップ 1501)。判定結果が NO の場合、電子データ書換え検証手段は 3式の演算結果が、ループ L内で同一のビッ トパターンである力否かを判定する(ステップ 1502)。判定結果が YESの場合は電 子データ復元手段の処理を継続し、判定結果が NOの場合にはこの時点で書換え 後電子データが不正であると判断する。
[0111] 以上実施の形態 4によれば、電子データ復元に際して訂正できないデータ誤り、即 ち本来行ってはならないデータ書換えを検出することができる。具体的な発明の効果 としては、例えばプログラムコードを外部力も受け取って実行する際、書換えが許され た範囲を逸脱していた場合にそれを検出することが出来、不正に書換えられたプロ
グラムコードによってもたらされる被害を未然に防止できる。併せて、電子データ復元 時に不正な書換えを検出できるため、不正検出に要する処理時間を短縮する効果 が得られる。
[0112] (実施の形態 5)
図 16は、本発明の実施の形態 5における電子データ検証装置の構成図である。
[0113] 図 16において、図 1と同じ構成要素については同じ符号を用い、説明を省略する。
[0114] 図 16において、電子データ検証装置 1601は電子データ復元手段 1605、電子デ 一タ書換規則保持手段 1607、電子データ書換え検証手段 1609を備える。電子デ ータ書換え規則保持手段は、電子データ書換え規則 1608を保持する。
[0115] 電子データ復元手段 1605、及び電子データ書換え検証手段 1609は、いずれも 電子計算処理を行う演算機である。
[0116] 電子データ書換え規則保持手段 1607はメモリであり、電子データ書換え規則 160
8は電子データである。
[0117] 図 17は、電子データ書換え検証手段 1609の動作フローである。
[0118] 図 17において、図 6と同じ構成要素については同じ符号を用い、説明を省略する。
[0119] 電子データ書換え検証手段が書換え規則に合致しない書換えを検出したカゝ否かを 判定し (ステップ 1701)、判定の結果が YESの場合には書換え後電子データは不正 であると判断する。
[0120] 判定の結果が NOの場合には、電子データ復元処理が未完了であれば処理を継 続し、電子データ復元処理が完了して ヽれば復元後電子データ検証へ処理を進め る。
[0121] 図 18は、電子データ書換え規則 1608の一例である。
[0122] 書換え制限ブロックリスト 1801は、書換え前電子データと書換え後電子データとの 差分に制限規則を設けたブロックの一覧である。規則データ 1802が示す例では、ブ ロック番号 iについて、バイトオフセット j, k, 1に位置するデータがいずれも、書換え後 に m以上 n以下の値になるべきである、という規則を意味する。
[0123] 書換え禁止ブロックリスト 1803は、書換え前電子データと書換え後電子データの差 異を認めない、即ち一切の書換えを許可しないブロックの一覧である。規則データ 1
804が示す例では、ブロック番号 X, y, zについては一切の書換えを許可しないこと を意味する。
[0124] 電子データ書換え検証手段 1609がこれらの規則に違反した書換えを検知した場 合は、書換え後電子データは不正であると判断される。
[0125] また、 1805に示す書換えフリーブロックリストを設けても良い。これは指定したブロ ックに対し任意の書換えを許可するものであり、訂正できない誤りを含んだ書換えも 許可する。規則データ 1806が示す例では、ブロック番号 p, qについては任意の書 換えを許可する。この場合、復元後電子データ検証手段もこれに連動し、ブロック番 号 p, qについて検証対象外とする事が望ましい。
[0126] なお、電子データ書換え規則 1608の詳細なデータフォーマットは上記に限定され るものではなぐ電子データ書換えの可否を機械的に解釈できる形式であれば任意 のデータフォーマットで良 、。
[0127] 以上実施の形態 5によれば、誤り訂正符号の性質に基づく書換え許容範囲に加え て、独自の制限規則を追加したり、逆に緩和することが可能となり、より柔軟に書換え 規則を設定できる効果が得られる。
[0128] なお、電子データ書換え規則 1608は、電子データ検証装置 1601以外の装置と共 有しても良い。好適な例として、書換え後電子データを作成する装置と共有する方法 が考えられる。この場合、従来二者間において共通の電子データ書換え規則を持つ 場合に、対象となる電子データ全ての領域に関わる書換え規則を共有する必要があ つたが、本例においては基本的な書換え規則は誤り訂正符号そのものに含まれるた め共有不要であり、追加すべき最小限の書換え規則を二者間で共有すれば良い。こ の方法により、共有されるデータ量を少なくする効果が得られる。
[0129] また、別の好適な例として、第三者が電子データ書換え規則 1608を発行し、電子 データ検証装置 1601と、他の装置がこれを取得する方法が考えられる。この場合、 書換え規則の正当性を保証できる効果が得られる。
[0130] (実施の形態 6)
図 19は、本発明の実施の形態 6における電子データ作成装置の構成図である。
[0131] 図 19において、電子データ作成装置 1901は電子データ書換え規則保持手段 19
02及び電子データ書換え手段 1904を備える。電子データ書換え規則保持手段 19
02は、電子データ書換え規則 1903を保持する。
[0132] 電子データ書換え規則保持手段 1902はメモリであり、電子データ書換え規則 190
3は電子データである。
[0133] 電子データ書換え手段 1904は、電子計算処理を行う演算機である。
[0134] 電子データ書換え手段 1904は、電子データ書換え規則 1903に従い、書換え前 電子データの一部を書換え後電子データを作成する。
[0135] 図 24は、本発明の実施の形態 6における電子データ作成装置の動作を示すフロー である。
[0136] 電子データ書換え手段 1904は、書換え前電子データに対する訂正符号に基づく 電子データ書換え規則 1903を、該規則を記憶する電子データ書換え規則保持手 段 1902から読み出し (ステップ 2401)、読み出した電子データ書換え規則 1903に 従 、電子データを書換える(ステップ 2402)。
[0137] 図 20は、電子データ書換え規則の一例である。図 20において、 2001は書換え規 則データの例を具体的に示したものである。電子データ書換え規則は、書換え前電 子データに対する誤り訂正符号の性質に基づいて設定される。先に示した (7, 4)ハ ミング符号を応用した誤り訂正符号を用いる場合、ブロック長 4バイトの固定ブロック に対し、書換え可能バイト数が最大 1バイトであるため、この条件に合わせた書換え 規則を設ける。
[0138] なお、誤り訂正符号は(7, 4)ハミング符号に限定されるものではなぐ他の誤り訂 正符号を用いる場合には、符号の性質に従った書換え規則を設ければ良い。
[0139] 以上実施の形態 6によれば、データブロック内で最大 1バイト等、限定された条件で 任意の書換えを施したデータの作成が可能となる。従来は限定条件下であっても、 書換えを施したデータの真正性を示すには書換え者自身の署名を付加する等の措 置が必要であつたが、本実施の形態によれば署名付与の必要がなぐしかも書換え 前電子データの作成者 (例えば原始プログラムコードの作成、発行者)の保証の基で 第三者に電子データを再配布することが出来る。即ち書換え前電子データの発行者 である事業者 Aの保証のもと、事業者 (あるいはコンシユーマ) Bは電子データに独自
のデータを埋め込み、コンシユーマ(あるいは事業者) cに引き渡すことが可能となる
。本実施の形態による電子データ作成装置を有する Bにとつては、配布する電子デ ータに B自身の署名を付与する必要がなぐ署名生成のための処理コスト、署名鍵管 理のためのセキュリティコストを削減できる効果がある。
[0140] (実施の形態 7)
本発明の実施の形態 7における電子データ検証装置の構成図は、実施の形態 6と 同じく図 19で示される。
[0141] 図 21は、実施の形態 7における電子データ書換え規則の一例である。
[0142] 書換え制限ブロックリスト 2101は、書換え前電子データと書換え後電子データとの 差分に制限規則を設けたブロックの一覧である。規則データ 2102が示す例では、ブ ロック番号 iについて、バイトオフセット j, k, 1に位置するデータがいずれも、書換え後 に m以上 n以下の値になるべきである、という規則を意味する。
[0143] 書換え禁止ブロックリスト 2103は、書換え前電子データと書換え後電子データの差 異を認めない、即ち一切の書換えを許可しないブロックの一覧である。規則データ 2 104が示す例では、ブロック番号 X, y, zについては一切の書換えを許可しないこと を意味する。
[0144] 電子データ書換え手段 1904は、これらの電子データ書換え規則に従って書換え 前電子データの一部を書換え、書換え後電子データを作成する。
[0145] 好ましくは電子データ書換え規則 1903は書換え後電子データを引き渡す相手側 装置と共有しても良く、さらに好ましくは電子データ書換え規則 1903は電子データ 作成装置 1901と、前記相手側装置の両者が信頼する第三者によって保証しても良 い。
[0146] 以上実施の形態 7によれば、誤り訂正符号の性質に基づく書換え許容範囲に加え て、独自の制限規則を追加したり、逆に緩和することが可能となり、より柔軟に書換え 規則を設定できる効果が得られる。
[0147] なお、実施の形態 7の応用として、図 22に例示するような書換え強制ブロックリスト を書換え規則の一部に設けても良い。書換え強制ブロックリスト 2201は、指定したブ ロック X, y, zについて、共通のバイトオフセット jの位置に値 mを書き込む、という規貝 IJ
を示す。誤り訂正符号の性質上、既に書換えが行われたブロックに対して、別のバイ トオフセットへ書換えが為された場合には訂正不能となるため、前記の書換え禁止ブ ロックを用いることなく不正な書換えを抑止できる。書換え禁止ブロックリストは、書換 え後電子データを引き渡す相手側装置と共有する必要がなぐ共有データの量を少 なくする効果が得られる。
[0148] (実施の形態 8)
実施の形態 8は、本発明の実施の形態 1に示す電子データ検証装置と同等の機能 を集積回路を用いて実現するものである。
[0149] 図 25は、本発明の実施の形態 8における集積回路の構成図である。
[0150] 図 25において、集積回路 2501は、メモリ部 2502と、 ROM (Read Only Memo ry:読出し専用メモリ) 2507と、 CPU (Central Processing Unit:中央演算ュ-ッ ト) 2508と、インタフェース部 2509を備え、これらはバス 2510で結合されている。メ モリ部 2502は書換え後電子データ 2503及び書換え前電子データに対する誤り訂 正符号 2504を保持する。 ROM2507は電子データ復元処理部 2505及び復元後 電子データ検証処理部 2506を保持し、 CPU2508を用いてこれらの処理を実行す る。好適には書換え後電子データ 2503及び書換え前電子データに対する誤り訂正 符号 2504はインタフェース部 2509を介して集積回路の外部から入力され、メモリ部 2502内〖こ転送される。
[0151] メモリ部 2502は実施の形態 1に示す電子データ保持手段 102に対応する機能を 持つ。
[0152] 同様に、書換え後電子データ 2503は書換え後電子データ 103に、書換え前電子 データに対する誤り訂正符号 2504は書換え前電子データに対する誤り訂正符号 10 4に、電子データ復元処理部 2505は電子データ復元手段 105に、復元後電子デー タ検証処理部は復元後電子データ検証手段 106に、それぞれ対応する機能を持つ
[0153] 以上実施の形態 8を備えた集積回路を用いれば、実施の形態 1で示した内容と同 様の効果が得られる。
[0154] (実施の形態 9)
実施の形態 9は、本発明の実施の形態 6に示す電子データ検証装置と同等の機能 を集積回路を用いて実現するものである。
[0155] 図 26は、本発明の実施の形態 9における集積回路の構成図である。
[0156] 図 26にお!/、て、集積回路 2601は、メモリ咅 2602と、 ROM2607と、 CPU2608と 、インタフェース部 2609を備え、これらはバス 2610で結合されている。メモリ部 2602 は書換え前電子データ 2605及び電子データ書換え規則 2603を保持する。 ROM2 607は電子データ書換え処理部 2604を保持し、 CPU2508を用いて電子データ書 換え処理を実行する。インタフェース部 2609は、書換え処理が完了した電子データ を、書換え後電子データ 2606として集積回路の外部に出力する。
[0157] メモリ部 2602は実施の形態 6に示す電子データ保持手段 1902に対応する機能を 持つ。
[0158] 同様に、電子データ書換え規則 2603は電子データ書換え規則 1903に、電子デ ータ書換え処理部 2604は電子データ書換え手段 1904に、それぞれ対応した機能 を持つ。
[0159] 以上実施の形態 9を備えた集積回路を用いれば、実施の形態 6に示した内容と同 様の効果が得られる。
本発明を詳細にまた特定の実施態様を参照して説明したが、本発明の精神と範囲 を逸脱することなく様々な変更や修正を加えることができることは当業者にとって明ら かである。
本出願は、 2004年 12月 10日出願の日本特許出願 (特願 2004— 357861)に基 づくものであり、その内容はここに参照として取り込まれる。
産業上の利用可能性
[0160] 本発明にかかる電子データ検証装置、電子データ作成装置、電子データ検証方 法、電子データ作成方法及び集積回路は、電子データ配布に関する汎用性を有し、 ネットワークを通じたプログラム配布、コンテンツ配布、エージェントシステム、認証サ 一ビス等に有用である。また電子媒体を解して電子データを配布する、オフライン型 サービス等の用途にも応用できる。