(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
前記中央処理装置が実行するプログラムを格納した不揮発性メモリと、
秘匿データを含む暗号化された信号を復号するための暗号手段を有するセキュリティ装置とを備え、
前記中央処理装置と前記不揮発性メモリとはセキュリティ管理領域外におかれ、前記中央処理装置は前記プログラムを実行することにより前記セキュリティ装置への動作指示を行い、
前記セキュリティ装置は、前記中央処理装置からの動作指示に応じて行うセキュリティ関連動作の実行において、
前記セキュリティ装置が前記セキュリティ関連動作を行う際に使用するデータへアクセスする際に使用されるアクセス要求信号およびアドレス信号を含むアクセス信号を圧縮し、圧縮結果を出力する圧縮手段と、
前記圧縮手段から出力された前記圧縮結果と、予め求められた前記アクセス信号の圧縮結果の期待値とを比較する比較手段と、
を備え、
前記比較手段での比較結果が不一致であることにより前記セキュリティ関連動作の実行を停止することを特徴とする、データ処理装置。
【請求項２】
前記比較手段による比較の結果、前記圧縮結果と前記期待値とが異なる場合は、前記暗号手段にて復号された信号を出力せず、あるいは当該比較の結果を通知することを特徴とする、請求項１に記載のデータ処理装置。
【請求項３】
前記暗号化された信号は前記セキュリティ装置を制御するプログラムを含み、前記プログラムが条件分岐を伴う処理の場合において、条件分岐後に合流したときに前記圧縮結果が同一となるように前記圧縮手段に補正値を入力することを特徴とする、請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記暗号化された信号は前記期待値および前記補正値を含み、暗号化された前記期待値および暗号化された前記補正値は前記暗号手段にて復号されることを特徴とする、請求項１ないし請求項３のいずれかに記載のデータ処理装置。
【請求項５】
前記圧縮手段の初期化はシステム鍵の生成時にのみ行われることを特徴とする、請求項１ないし請求項４のいずれかに記載のデータ処理装置。
【請求項６】
前記システム鍵は、生成時に前記データ処理装置に用いられる所定の装置の固有情報を利用することを特徴とする、請求項５に記載のデータ処理装置。
【請求項７】
前記秘匿データを復号する場合において、前記秘匿データの種類を示す種別データを用いて復号し、前記種別データを前記圧縮手段に入力することを特徴とする、請求項１ないし請求項６のいずれかに記載のデータ処理装置。
【請求項８】
前記秘匿データを復号する場合において、同一目的の秘匿データ群を区別するグループ管理コードを用いて復号し、前記グループ管理コードを前記圧縮手段に入力することを特徴とする、請求項７に記載のデータ処理装置。
【請求項９】
前記セキュリティ装置内部のデータを一時的に記憶する記憶手段をさらに備え、
前記秘匿データを前記記憶手段に記憶させる場合において、前記種別データと乱数とからデータ固有一時鍵を生成し、前記データ固有一時鍵を用いて前記秘匿データを暗号化して前記記憶手段に記憶させることを特徴とする、請求項７または請求項８に記載のデータ処理装置。
【請求項１０】
前記暗号化された信号は前記セキュリティ装置を制御するプログラムを含み、
前記プログラムで複数の状態遷移が存在する場合において、全ての状態遷移に共通する一時鍵を乱数によって生成した一時鍵と、各状態遷移に割り当てられた番号とから各状態遷移の一時鍵を生成することを特徴とする、請求項１ないし請求項９のいずれかに記載のデータ処理装置。
【請求項１１】
前記圧縮手段および前記比較手段は、前記圧縮手段および前記比較手段における機能をハードウェア的に有することを特徴とする、請求項１ないし請求項１０のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば映像、音楽データや個人情報など金銭的に価値あるデータを安全に運用するためのデータ処理装置に関する。
【背景技術】
【０００２】
近年の半導体技術の発展に伴って、音楽データがレコードからＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）へ、映画データがビデオからＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）へと、データのデジタル化が急速に進んでいる。著作権を伴うデータや個人情報などのデジタルデータは、コピーによる品質劣化がないという制作者や購入者にとっての長所がある一方、違法コピーによる販売数量の減少や不特定多数への個人情報の漏洩などの短所がある。このように、デジタルコンテンツは許可された者のみが使用可能となる仕組みが必要である。
【０００３】
デジタルコンテンツや通信、金融などの価値あるデータを悪意の第三者から保護するために、暗号技術が積極的に利用されている。暗号技術によって、使用者がコンテンツの利用を許可されているのかを確認するための認証機能や、許可された者のみがコンテンツを利用可能とするためのデータ暗号化・復号機能が実現されている。このような暗号技術を半導体製品に実装することによって、デジタルコンテンツなどの処理システムが実現されている。
【０００４】
従来のデジタルコンテンツ処理システムでは、ＤＶＤドライブなどの暗号化コンテンツを出力する装置、コンテンツ処理装置、コンテンツ記録媒体との間で認証が行われ、認証処理が正当であることが確認されると暗号化コンテンツがコンテンツ記録媒体からコンテンツ処理装置へと伝送される。暗号化コンテンツを復号するためには鍵が必要であり、鍵はコンテンツ記録媒体における鍵の生成に必要な情報と固有情報とから計算により生成される。固有情報およびコンテンツ復号鍵の計算過程で生成された一時データや鍵は、これらを不正に取得することによって暗号化コンテンツを不正に復号することができるため秘匿性が求められる。
【０００５】
このように、悪意の第三者からコンテンツを不正に利用されないようにするために、コンテンツ処理装置にセキュリティ保護領域を設ける必要があるが、セキュリティ保護領域に対して悪意の第三者が何らかの影響を与え得る場合では、認証やコンテンツの復号処理を行うことによってコンテンツの秘匿性やドライブとの認証結果が保障されるわけではない。例えば、コンテンツ処理装置はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によってソフトウェアで制御されているため、デバッガを接続することで認証結果の改ざんや固有情報の不正取得などが容易となり、不正なアクセスが可能になるとセキュリティ保護領域に直接データを送信することで認証等を無効化することができる。従って、このようなコンテンツ処理システムでは、セキュリティ保護領域内の機能を外部から不正にアクセスできないような構成にする必要がある。具体的には、セキュリティ保護領域内の機能を１チップ化してＣＰＵへのデバッガの接続を不可能にし、外部から不正にデータの書き込み・読み出しをできないようにするなどの対策が必要となる。
【０００６】
従来では、データプロセッサが命令フローの所定区間毎に区間に含まれる命令に対するサム値を演算し、同一区間において前回の演算で得られたサム値と今回の演算で得られたサム値とが不一致であれば、命令の実行を停止、または命令の実行順序を強制的に変更するものがある（例えば、特許文献１参照）。また、ゲームプログラムから抽出した分岐命令と、非分岐命令と、非分岐命令のチェックサムとを圧縮し、当該圧縮データを暗号化してプログラムメモリに格納する暗号プログラム生成装置がある（例えば、特許文献２参照）。
【０００７】
【特許文献１】特開２００５−１６６０７０号公報
【特許文献２】特願２００７−１３１１０７号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
発明者による検討では、これらの特許文献に記載の発明では、たとえプログラムを改ざんしたとしてもサム値のチェックを行う比較処理を無効化され、またはプログラム自体は改ざんせず当該プログラムで処理するデータを改ざんされた場合には、実質的にセキュリティ保護が無効となる問題が生じることが明らかとなった。
【０００９】
また、従来のコンテンツ処理装置では、セキュリティホールの存在箇所が分からないため、セキュリティホールが発見された時点で回収や再設計が必要となり、コストの増大や製品の信頼性の低下などの問題が生じてしまう。
【００１０】
セキュリティ保護領域のハードウェアに対する改ざんは、比較的高価な装置と高度な知識を有する者しか行えないため第三者に改ざんされる問題は少ないが、処理結果の改ざんなどセキュリティ処理に係わるソフトウェアに対する改ざんは安価であり効果も大きい。従来は、ソフトウェアに対する改ざんを検出することができなかったため、データの秘匿性や正当性を保証するためには制御ソフトウェアが改ざんされた場合において生じる問題を推定し、安全性を確保する何らかの手段をハードウェアに実装しておく必要があった。しかし、特許文献１に示すようなデータプロセッサとすると、システムが複雑になるにつれてソフトウェアのサイズが増大して改ざんによる問題点も増加・拡散してしまうため、改ざんによって生じる全ての問題について対策できたかの判断が難しく確認に時間がかかってしまう。また、生じた問題を見逃していた場合は、問題が生じるごとにハードウェアの追加や変更が必要となるため時間やコストがかかる。改ざんを検出するために、パリティやエラー訂正技術を用いる方法があるが、ハミング距離を大きく越えた場合に改ざんが検出できないことや、エラー検出するための専用のハードウェアが必要となるなど不都合なことも多い。
【００１１】
一方、秘匿データを一時保存する場合において、データに対して暗号化および署名生成をしておけば、データを使用する際に署名検証を行うことによってデータの改ざんを検出することができる。しかし、過去に生成された暗号データおよび署名がある場合には、これらを別の機会に生成された暗号データおよび署名に摩り替えられることを防止する必要がある。つまり、データの書き換えなどの不正利用を防止しなければならない。特許文献２に示すプログラム生成装置では、プログラムメモリに格納された命令が改ざんされたことは検出できるが、命令が実行されているときには命令の異常を検出できなかった。このように、データの書き換えを検出することができなかったため、データが書き換えられたまま処理が行なわれていた。そのため、データの書き換えによってコンテンツが不正に再生されるなどの問題があった。このような問題の発生は状況によって変化するため、全ての不正行為を防止することが難しいという問題がある。
【００１２】
本発明は、これらの問題を解決するためになされたもので、データに対するソフトウェアの改ざんやデータの書き換えを検出するデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明の一実施形態によるデータ処理装置は、中央処理装置と、中央処理装置が実行するプログラムを格納した不揮発性メモリと、秘匿データを含む暗号化された信号を復号するための暗号手段を有するセキュリティ装置とを備え、中央処理装置と不揮発性メモリとはセキュリティ管理領域外におかれ、中央処理装置はプログラムを実行することによりセキュリティ装置への動作指示を行い、セキュリティ装置は、中央処理装置からの動作指示に応じて行うセキュリティ関連動作の実行において、セキュリティ装置がセキュリティ関連動作を行う際に使用するデータへアクセスする際に使用されるアクセス要求信号およびアドレス信号を含むアクセス信号を圧縮し、圧縮結果を出力する圧縮手段と、圧縮手段から出力された圧縮結果と、予め求められたアクセス信号の圧縮結果の期待値とを比較する比較手段とを備え、比較手段での比較結果が不一致であることによりセキュリティ関連動作の実行を停止することを特徴とする。
【発明の効果】
【００１４】
本発明の一実施形態では、中央処理装置と、中央処理装置が実行するプログラムを格納した不揮発性メモリと、秘匿データを含む暗号化された信号を復号するための暗号手段を有するセキュリティ装置とを備え、中央処理装置と不揮発性メモリとはセキュリティ管理領域外におかれ、中央処理装置はプログラムを実行することによりセキュリティ装置への動作指示を行い、セキュリティ装置は、中央処理装置からの動作指示に応じて行うセキュリティ関連動作の実行において、セキュリティ装置がセキュリティ関連動作を行う際に使用するデータへアクセスする際に使用されるアクセス要求信号およびアドレス信号を含むアクセス信号を圧縮し、圧縮結果を出力する圧縮手段と、圧縮手段から出力された圧縮結果と、予め求められたアクセス信号の圧縮結果の期待値とを比較する比較手段とを備え、比較手段での比較結果が不一致であることによりセキュリティ関連動作の実行を停止するため、データに対するソフトウェアの改ざんやデータの書き換えを検出することができる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施形態について、図面を用いて以下に説明する。
【００１６】
図１は、本発明の実施形態によるデータ処理装置１のブロック図である。図１に示すように、データ処理装置１は、データ処理装置１の各機能を制御するＣＰＵ２と、ＣＰＵ２のプログラムや暗号化固有情報１０などのデータを格納するための不揮発メモリ３と、コンテンツ記録媒体からデータを受信するためのＡＴＡＰＩ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ）などの入力Ｉ／Ｆ（インターフェース）回路４と、ＣＰＵ２の一時データおよび暗号化コンテンツを一時保存するためのＲＡＭ５と、秘匿データを含む暗号化された信号を復号するための暗号回路９（暗号手段）を有するセキュリティ装置６と、復号されたコンテンツを復調するためのＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）デコーダ７と、復号したコンテンツを出力するためのＨＤＭＩ（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）などの出力Ｉ／Ｆ回路８とを備えている。本実施形態では、セキュリティ装置６における図１の点線で囲んだ領域をセキュリティ保護領域とし、悪意の第三者による不正利用から保護する領域とする。
【００１７】
図２は、本発明の実施形態によるセキュリティ装置６のブロック図であり、図３は、図２に示すセキュリティ装置６の内部構成を図２、４、６、１１、１２を用いた一例を示した図であり、演算処理部１９は演算処理内容によって変わる。例えば、図１３に示すような秘匿データのＭＡＣ比較をするのであれば、演算処理部１９は図１３のような構成となる。図１３については後に説明する。図２および図３に示すように、セキュリティ装置６は暗号回路９の他に、セキュリティ装置６にアクセスする際に使用される信号であるアクセス信号を圧縮（コード化、符号化）し、圧縮結果を出力する圧縮回路１５（圧縮手段）と、圧縮回路１５から出力された圧縮結果と、予め求められたアクセス信号の圧縮結果の期待値とを比較する比較回路１６（比較手段）とを備えている。ここで、アクセス信号とは、ＣＰＵ２からのアドレスや書き込み要求、読み出し要求、セキュリティ装置６の外部の状態、データ入力、暗号回路９の演算結果など、セキュリティ装置６に対して何らかの影響を与えるものである。
【００１８】
図４は、圧縮回路１５の構成の一例を示した図である。セキュリティ装置６に入力されたアクセス信号は圧縮回路１５にて圧縮される。本実施形態による圧縮回路１５は、排他的論理和（ＥＸＯＲ）と線形フィードバックシフトレジスタ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ：ＬＦＳＲ）とを組み合わせて構成されている。ハッシュ関数など逆計算ができない回路、あるいは入力値の一部が固定値であり外部から自由な設定ができない回路によって圧縮回路１５を構成することが望ましい。圧縮する理由としては、圧縮回路１５にアクセス信号の履歴を取り扱い易いビット数（例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）を搭載の場合は１２８ｂｉｔ、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）を搭載の場合は６４ｂｉｔ）にするためである。圧縮結果は、アクセス信号の履歴を記憶したデータとなる。図５に示す圧縮回路１５の動作が示すように、圧縮回路１５にアクセス信号を取り込むタイミングは、圧縮回路１５への動作要求の度にアクセス信号を取り込んでいる。
【００１９】
図６は、比較回路１６の構成を示した図である。比較回路１６は、セキュリティ装置６からデータを出力するときに用いられる。図７に示すように、セキュリティ装置６から演算結果や内部のステータスの情報などを出力したい場合には、比較要求信号（比較イネーブル信号）をＣＰＵ２に送信し、出力許可信号を”Ｈ”にすることによってセキュリティ装置６からのデータ出力等が有効となる。
【００２０】
第三者からの不正なアクセスによるデータ出力の防止方法について説明する。
【００２１】
電源の投入後、セキュリティ装置６に入力されたアクセス信号は、圧縮回路１５にて逐次圧縮（コード化）されて比較回路１６に出力される。圧縮回路１５から出力される圧縮結果は、入力されるアクセス信号毎に変化する。比較回路１６には、圧縮結果の他に、予め求められた圧縮結果の期待値が入力される。期待値は予めプログラムに記述されており、プログラムは不揮発メモリ３に保存されている。また、期待値はアクセス信号とともにセキュリティ装置６に入力される。ドライバ作成者などセキュリティ装置６へのアクセスを許可された者は、圧縮回路１５における圧縮方法（入力データ値やレジスタの制御手順等）を理解しているため、セキュリティ装置に対してアクセスするためのプログラムを作成する際に、圧縮回路１５から出力される圧縮結果を予め計算して期待値としてプログラムに反映させることができる。
【００２２】
比較回路１６では、入力された圧縮結果と期待値とを比較し、比較結果が一致していれば出力許可信号が”Ｈ”となってＣＰＵ２などへの出力が許可される。一方、プログラムの変更などの不正行為があれば圧縮回路１５から出力される圧縮結果が期待値と異なるため、暗号回路９にて復号されたデータは出力されない。比較回路１６から出力される出力許可信号とセキュリティ装置６内のステータスとに基づいて、ステータス信号を生成することができる。ステータス信号は、データ処理装置１内の何らかの重要機能から出力されるデータ出力を制御することができる。また、図３に示す重要機能とは、あるブロックから出力されるもので、ＣＰＵ２を介さずに制御したい信号を想定している。
【００２３】
このように、上記の構成によって不正な改ざん行為を検出し、改ざんされたデータを出力しないようにデータの送信経路を遮断することが可能である。なお、圧縮回路１５および比較回路１６は、圧縮回路１５および比較回路１６における機能をハードウェア的に有するのがセキュリティ強度を高めるとの観点からは望ましいが、セキュリティ強度として許容できるのであればソフトウェア的に有してもよい。
【００２４】
セキュリティ装置６を制御するプログラムは、例えば不揮発メモリ３に保存されており、ＣＰＵ２はプログラムに応じてセキュリティ装置６にアクセスする。このとき、ＣＰＵ２および不揮発メモリ３はセキュリティ保護領域外であるため、悪意の第三者によって不揮発メモリ３に保存されているプログラムまたはＣＰＵ２の状態を改ざんされる恐れがある。ここで、ＣＰＵ２の状態とは、デバッガを接続することによってプログラムカウンタの改ざん、レジスタの書き換え、ＣＰＵステータスフラグの書き換えなどをいう。プログラムが改ざんされるとセキュリティ装置６へのアクセス信号に何らかの変化が生じるため、比較回路１６での比較結果によって改ざんを検出することが可能である。ＣＰＵ２は検出された改ざん結果に応じて、改ざんを示すエラーを発生した後にデータ処理装置１の各機能を停止するなどの処置をとることができるため、データ処理装置１の使用者に対して不正な処理が発生したことを示すことができる。また、不正な処理が検出されると、データの復号に必要な処理が停止するため、ＭＰＥＧデコーダ７に送信されるデータはでたらめな値となる。従って、出力Ｉ／Ｆ回路８から出力バス１４を介してＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）といった表示装置などの出力装置にデータを出力したとしても、データを不正に再現することができない。このように、改ざんを示すエラーフラグを出力装置などの外部に通知することによって、不正行為に対する防衛処理を行なうことができる。すなわち、比較回路１６による比較の結果、圧縮結果と期待値とが異なる場合は、暗号回路９にて復号された信号を出力せず、あるいは当該比較の結果を通知する。
【００２５】
暗号に係わる演算は、例えば演算結果が正か負かなどの計算結果を元に複数の演算を組み合わせて実現することが多い。演算における条件分岐の判定はＣＰＵ２が行う。図８は、プログラムの条件分岐の判定の一例を示すフローチャートである。図８に示すように、演算処理には複数の演算および条件分岐が存在する。暗号回路９から発生する符合などの演算結果を条件として演算を行う場合において、ＣＰＵ２は暗号回路９から読み出した演算結果に基づいて行うべき演算を選択して実施する。しかし、このときに、デバッガなどを用いて悪意の第三者によって改ざんされる恐れがある。例えば、図８において、条件１、２、３がそれぞれ（０、１、１）と判定されると、処理は演算１、演算３、演算６の順に行われるが、改ざんによって条件１が（１）に書き換えられると、処理は演算１、演算２、演算４の順に行われてしまう。
【００２６】
本実施形態では、演算処理を暗号回路９で行い、演算結果である条件分岐や後述する図９に示す補正値などの情報を必要に応じて圧縮回路１５に入力する（取り込む）ことによって、圧縮回路１５から出力された圧縮結果と期待値とを比較回路１６にて比較している。従って、期待値と圧縮結果との比較によって不正処理を検出できるため、演算結果と異なる条件判断を不正操作によりＣＰＵ２に実行させたとしても、圧縮結果を元に不正行為が検出される（本来は０である判定が１に変更したことを検出する）ため、セキュリティ装置６を停止させるなど改ざんされたデータの出力を防止することが可能となる。また、演算終了などの暗号回路９の状態を示す情報を圧縮回路１５に入力することによって、演算終了後に次の処理に進めること強制することができる。これは、演算結果を次の演算に使用する場合に、演算終了を待たずに処理を進めることができてしまうと演算の改ざんと同様の効果が得られてしまうことを防止するためである。ただし、このような運用に該当しない場合には、演算結果を圧縮結果に反映させなくてもよい。
【００２７】
プログラムが分岐を伴う処理の場合において、プログラムが分岐した後に合流する際に圧縮回路１５から出力される圧縮結果が異なるため、圧縮結果を補正する必要がある。図９は、プログラムの処理が分岐後に合流する場合における圧縮結果の補正の一例について示した図である。本実施形態では、例えば、圧縮結果を３２ｂｉｔとして圧縮回路１５の初期値を（８３６４９ｂｄ６）16とする。制御命令１を実行することによって、圧縮結果が（８３６４９ｂｄ６）16から（９３６ｆ０３６ａ）16に変化している。制御命令１の後、条件分岐命令にて条件（ａ）または条件（ｂ）が実行される。条件（ａ）の場合では、制御命令２が実行されて圧縮結果が（ｆ７ｄｂ２５１１）16に変化している。条件（ｂ）の場合では、制御命令３が実行されて圧縮結果が（１６３８５ｂａｆ）16に変化して条件分岐処理を終了している。条件（ａ）では、制御命令２の実行後に制御命令４の実行時に、制御命令４による実行結果が条件（ｂ）の分岐処理の結果である（１６３８５ｂａｆ）16となるように、制御命令２の実行後の圧縮結果である（ｆ７ｄｂ２５１１）16に対して補正値を入力する。圧縮回路１５の演算方法が分かれば補正値を求めることができる。
【００２８】
以上の操作を行うことによって、プログラムにおいて条件分岐が発生した場合であっても、合流後に圧縮結果に不整合が生じないように圧縮結果を調整しながら処理を進めることが可能となる。すなわち、暗号化された信号はセキュリティ装置６を制御するプログラムを含み、プログラムが条件分岐を伴う場合において、条件分岐後に合流したときに圧縮結果が同一となるように圧縮回路１５に補正値を入力する。従って、プログラムを書き換えるなどのセキュリティ装置６に対するアクセスの改ざんを検出することができる。このような改ざんを検出することによって、ＣＰＵ２へのデータ出力の停止や特定の機能を停止することができるため、不正アクセスによる秘匿データの取得を防止することが可能となる。なお、改ざんの検出によってデータ出力を停止することの他に、セキュリティ装置６の応答を停止するなどの他の処理であってもよい。また、本実施形態では、暗号回路９による演算結果を圧縮回路１５に入力することによって、不正な操作で条件分岐の判断結果が改ざんされた場合であっても検出することが可能である。
【００２９】
期待値や補正値が組み込まれたプログラムは、セキュリティ保護領域外に保存されている。例えば、不揮発メモリ３は通常ＣＰＵ２のメモリ空間にマッピングされているため、デバッガを接続することによって容易に内容を読み出すことができる。プログラムに組み込まれた期待値および補正値は、予め暗号化されて不揮発メモリ３に保存されているが、圧縮回路１５の計算方法を推測するデータとなるため安全に運用する手段があるほうが望ましい。
【００３０】
図１０は、本発明の実施形態によるセキュリティ装置６のブロック図である。図１０に示すセキュリティ装置６では、暗号化された信号は期待値および補正値を含み、暗号化された期待値および暗号化された補正値は暗号回路９にて復号される。このようにすることによって、期待値や補正値を元に圧縮回路１５が解析されることを困難にしている。図１０に示すように、暗号化された期待値は、データ入力からセキュリティ装置６に入力されて暗号回路９にて復号された後、比較回路１６に入力される。一方、暗号化された補正値は、データ入力からセキュリティ装置６に入力されて暗号回路９にて復号された後、圧縮回路１５に入力される。
【００３１】
このような構成にすることによって、不揮発メモリ３に保存される期待値や補正値など、セキュリティ保護領域外に保存されているデータから圧縮回路１５の仕様が特定されることを困難にすることが可能である。また、上記の処理について、コンテンツの復号に用いられる暗号回路９を共用できるため、回路規模を抑えることができ、コンテンツの復号と同程度の解読の困難さを得ることができる。なお、本実施形態では暗号回路９を用いたが、暗号回路９とは別の演算回路を用いて上記の処理を行なってもよい。
【００３２】
セキュリティ装置６の内部には、初期化が必要な回路が存在する。例えば、圧縮回路１５では、初期化を悪意の第三者が任意のタイミングで行えないようにし、初期値も推測できないようにすることが望ましい。図１１は、圧縮回路１５の初期化の方法を示す図である。
【００３３】
まず始めに、ＣＰＵ２はセキュリティ装置６を動作させるために、初期化に必要なシステム鍵の生成のためのアクセスを行う。ここで、システム鍵とは、不揮発メモリ３などに保存される電源投入ごとに変化しない固定値の秘匿データを暗号化や復号するための元となる鍵のことであり、システムごとに異なる値となる。システム鍵は、セキュリティ装置６の外部への読み出しが不可能な固定情報である固有情報１８と、不揮発メモリ３に保存されている暗号化固有情報１０とを、暗号回路９内の演算回路を用いて生成される。システム鍵が生成されると、システム鍵の生成要求（＝１）を受けてセキュリティモード信号が”Ｈ”になる。セキュリティモード信号は、システム鍵が生成されるまでは０であり、システム鍵が演算回路を通して初期値として圧縮回路１５に入力される。システム鍵の生成後は、セキュリティモード信号が１となるため、圧縮回路１５へは通常経路の入力しか行われなくなる。すなわち、システム鍵を暗号回路９内の演算回路に通して生成された値を圧縮回路１５の初期値として利用している。そして、システム鍵の生成要求がＣＰＵ２からあると、圧縮回路１５の初期化を一度だけ行う。なお、本実施形態では、システム鍵を撹拌するための演算回路は、システム鍵の解析を困難にするために設けているが、システム鍵によって圧縮回路１５を初期化してもよい。
【００３４】
上記の例では、セキュリティモード信号を非活性にできない回路構成となっているが、一度活性化されたセキュリティモード信号を非活性にする機能を設ける場合には、非活性にするとともに活性時に使用するセキュリティに関わるデータ記憶領域をクリアする機能を設けるなどしてデータの不正利用を防止すればよい。また、本実施形態では、セキュリティモード信号を圧縮回路１５の入力前にセレクタを設けてセレクト信号として用いたが、セキュリティモード信号を図２に示すデコーダに入力してセキュリティモード時の圧縮回路１５への初期化のアクセスを無効にしてもよい。
【００３５】
以上のように、圧縮回路１５の初期化をシステム鍵の生成時にのみ行うことによって、圧縮回路１５に対する不正利用を防止し、圧縮方法についての解析を困難にすることが可能である。
【００３６】
装置の複製による不正なコンテンツの復号を防止するために、コンテンツを復号するための鍵や、鍵を生成するために必要な情報は装置毎に異なる。これらの情報は不揮発メモリ３に保存されているが、不揮発メモリ３はセキュリティ保護領域外であるため、悪意の第三者によって情報が読み出されて別の装置の不揮発メモリ３にコピー（複製）される恐れがある。そのため、不揮発メモリ３内の情報が複製されることを防止する必要がある。図１２は、不揮発メモリ３の複製防止を示す図である。図１２に示すように、装置固有情報１７はデータ処理装置１内部の不揮発メモリ３の固有情報であり、メモリごとに値が異なり、かつ一度書き込んだら変化しないものなら何でもよい。例えば、ヒューズＲＯＭや電子線による配線切断などを用いてもよい。この装置固有情報１７をシステム鍵の生成に含めるとそのメモリのみにしか利用できなくなるため、セキュリティ保護領域外の不揮発メモリ３内のデータが複製された場合であっても、他の装置で暗号化固有情報が流用されることを防止することができる。
【００３７】
コンテンツを復号するための鍵や、鍵を生成するために必要な情報は、セキュリティ保護領域外である不揮発メモリ３内に暗号化固有情報１０として保存されている。暗号化固有情報１０は秘匿データであるため、暗号化だけでなく署名（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）を付加する必要がある。ＭＡＣ検証の判定は、ＣＰＵ２にて判定を行うと判定を改ざんされる恐れがあるため、ＣＰＵ２で行うだけでは不十分である。
【００３８】
図１３は、秘匿データのＭＡＣ検証の一例について示した図である。図１３に示すように、不揮発メモリ３からセキュリティ装置６に暗号化固有情報１０などの秘匿データが入力されると、秘匿データは暗号回路９内の演算回路によって復号（秘匿データのＭＡＣ値に復号）された後に、再び暗号回路９内の演算回路によってＭＡＣが生成される。その後、データ入力から入力されたＭＡＣと、前述した復号結果を元に再生成されたＭＡＣとの比較結果とを圧縮回路１５に入力する。具体的な例としては、秘匿データを暗号化してＭＡＣを付加してセキュリティ装置６の外部に一時的に出し（例えばＲＡＭ５に一時的に保存し）、再度秘匿データを利用するときに上記の構成によって復号してＭＡＣを検証する。そして、検証結果を圧縮回路１５の圧縮結果に反映させることによって、データが正しくなければ改ざんと判断される。
【００３９】
このように、ＭＡＣ検証の判定をＣＰＵ２ではなく圧縮回路１５で行っているため、比較して得られた秘匿データのＭＡＣ検証結果を圧縮回路１５の圧縮結果に反映させることができ、秘匿データに対する不正な改ざんをセキュリティ装置６にて防止することができる。
【００４０】
コンテンツの保護には、共通鍵暗号や公開鍵暗号など複数の暗号回路９を利用するため、暗号化固有情報１０も複数存在することが考えられる。このような秘匿データが、例えばシステム鍵などの単一の鍵によって暗号化されると、どの秘匿データもシステム鍵で復号できるため不正に秘匿データを入れ換えることが可能となってしまう。つまり、管理する秘匿データが複数ある場合において、同じ鍵で秘匿データを管理するとデータが入れ換えられてとしても、入れ換えられたことを検出することができない。そのため、不正な秘匿データの入れ換えを防止する必要がある。
【００４１】
図１４は、種別による秘匿データの入れ換え防止の一例を示した図である。本実施形態では、個々の秘匿データに対する固有の情報として種別を用いる。種別は、秘匿データの種類を示すデータ（種別データ）であって固有値であるため不揮発メモリ３に保存される。種別の値は、個々のデータに対して任意の値をプログラムの作成者が決定すればよい。図１４に示すように、ＣＰＵ２はデータ入力から種別の書き込みアクセスを行う。セキュリティ装置６に書き込まれた種別は、システム鍵とともに暗号回路９の演算回路で演算されてデータ固有鍵が生成される。このように、システム鍵をそのまま使用せずに秘匿データ毎に種別を用意し、種別を鍵の情報としてデータ固有鍵に含められている。生成されたデータ固有鍵は、秘匿データ毎に違う値の種別を元に演算回路で計算されているため秘匿データ固有のものである。入力された秘匿データは、データ固有鍵とともに暗号回路９の演算回路で演算されて復号される。復号データのＭＡＣ検証が必要であれば、図１３に示す処理を引き続き行なう。また、種別は圧縮回路１５にも入力されて圧縮結果に反映させ、データの入れ換えなどの改ざんを検出する。つまり、誤った種別であれば鍵が変わるため、データが入れ換えられたことを検出することが可能である。
【００４２】
このように、秘匿データを復号する場合において、秘匿データの種類を示す種別データを用いて復号し、種別データを圧縮回路１５に入力するといった処理を行なうことによって、秘匿データが入れ換えられた場合は種別が合わないため、データ固有鍵が正しく生成されずデータの復号ができない。また、種別を書き換えるということは、プログラムを改ざんしたことにもなるため、プログラムの改ざんを検出することも可能である。さらに、図１３に示すＭＡＣ検証を組み合わせることによって、秘匿データを入れ換えるとＭＡＣ検証の結果が合わなくなるため、二重に検証することが可能である。
【００４３】
公開鍵暗号などで使用するパラメータ（素数や楕円関数の固定値など）が複数存在する場合において、同一機能で使用される秘匿データに対して別の種別を付加することは、プログラムを共通化させるのに効率が悪い。例えば、楕円暗号によるＭＡＣ検証のドメインパラメータが複数ある場合は、ＭＡＣ検証の処理手順を共通化する方が、プログラムサイズや開発の点からも効率が良くなる。このように、演算の種類は同じだが使用するパラメータが異なる演算において、各演算に使用するパラメータを強制しなければならない。本実施形態では、各パラメータにグループの管理のためのグループ管理コードを付加し、グループ番号を復号時の鍵に反映させている。グループ管理コードは、同一目的の秘匿データ群を区別するための固定値のデータであり、不揮発メモリ３に保存される。グループ管理コードの値は、プログラムの作成者が任意に決定する。
【００４４】
図１５は、グループ管理コードによる秘匿データの入れ換え防止の一例を示した図である。図１５に示すように、不揮発メモリ３から入力されたグループ管理コードと、システム鍵とを暗号回路９内の演算回路で演算してグループ固有鍵を生成する。生成されたグループ固有鍵と種別とを演算回路で演算してグループ内データ固有鍵を生成し、生成されたグループ内データ固有鍵を用いて演算回路にて秘匿データを復号する。このとき、グループ管理コードおよび種別は、圧縮回路１５に入力される。
【００４５】
グループで管理される秘匿データ群に付加される種別は、他のグループの同一機能の秘匿データと共通の値でよい。図１６は、グループ管理コードについて説明した図である。図１６（ａ）では、グループ１およびグループ２が存在し、データＡとデータＡ’、データＢとデータＢ’、データＣとデータＣ’とがそれぞれ同じ機能であり、各機能について種別ａ、ｂ、ｃを付加している。図１６（ａ）では、データを復号する鍵にグループ管理コードが含まれず各種別に対するグループに依存しない鍵ｘ、ｙ、ｚが生成されているため、グループ１およびグループ２の同一機能のデータを復号することができる。すなわち、グループの途中のデータが入れ換えられても検出することができない。しかし、図１６（ｂ）に示すように、データを復号する鍵情報にグループ管理コードを含めることによって、同一機能を有する種別であっても鍵がグループ単位で異なるため、グループ間でデータが入れ換えられると正しく復号されない。
【００４６】
このように、秘匿データを復号する場合において、同一目的の秘匿データ群を区別するグループ管理コードを用いて復号し、グループ管理コードを圧縮回路１５に入力することによって、データをグループ間で不正に入れ換えられたとしても、その改ざんを検出することができる。
【００４７】
セキュリティ装置６内に保存できるデータ量には限りがあるため、演算の途中で生成される秘匿データの全てをセキュリティ装置６内に保存したまま処理を続けることが困難になることがある。このような場合には、一般的にはセキュリティ装置６の外部に設けられたＲＡＭ５に秘匿データを一時的に退避すればよいが、ＲＡＭ５はセキュリティ保護領域外であるため一時的に退避した秘匿データを保護する必要がある。
【００４８】
図１７は、データの一時的な退避方法を示す図である。図１７に示すように、まず始めに、暗号回路９内の乱数生成機能によって乱数を生成する。生成された乱数とセキュリティ装置６に入力された秘匿データに対応した種別とを暗号回路内９内の演算回路で演算することによってデータ固有一時鍵を生成する。データ固有一時鍵を用いて暗号回路９内の演算回路にて秘匿データを暗号化し、暗号化した秘匿データをセキュリティ装置６の外部であるＲＡＭ５に出力する。このとき、秘匿データの種別は圧縮回路１５に入力される。複数の暗号化された秘匿データを出力する場合は、どのデータが出力されたのかを種別で判断する。その種別は圧縮回路１５で履歴として管理されている。鍵を生成に制御できない乱数を秘匿データの暗号化に用いることによって、別のタイミングで一時的に保存したデータをデータの種別が同じであっても入力することができなくなる。暗号化した秘匿データを復号するまでは、生成したデータ固有一時鍵を何らかの形でセキュリティ装置６内に保持しておく必要があり、使用後は破棄する。
【００４９】
このように、セキュリティ装置６内部のデータを一時的に記憶するＲＡＭ５（記憶手段）をさらに備え、秘匿データをＲＡＭ５に記憶させる場合において、種別データと乱数とからデータ固有一時鍵を生成し、データ固有一時鍵を用いて秘匿データを暗号化してＲＡＭ５に記憶させることによって、データ固有一時鍵の生成や破棄の手順のプログラムを変更されるようなデータの書き換えが行われても、プログラムの改ざんが行われたとして検出される。
【００５０】
複数の状態を有するプログラム（マルチタスク）を実行する場合について示す。セキュリティ装置６では、圧縮回路１５で演算されて出力される圧縮結果に基づいてデータの改ざんの有無を検出している。圧縮結果は処理に応じて変化することから、プログラムの遷移状態と捉えることもできる。
【００５１】
図１８は、セキュリティ装置６における処理の状態の一例を示す図である。図１８（ａ）は、任意のタイミングで保持する状態が一つしかない場合を示している。状態が一つの場合において、圧縮結果の値は状態１から状態４のそれぞれに対して一意に決まる。一方、図１８（ｂ）に示すように、複数の状態を同時に管理する必要がある場合は、圧縮結果の値が一意にならない。例えば、状態１０および状態２０の状態から処理を開始しても、状態１ｘと状態２ｘとの処理には関連がないため、圧縮結果の値は一意にならない。図１８（ｂ）に示す状態遷移では、処理１０と処理２０との処理の順序はどちらからでもよいが圧縮結果は異なる。
【００５２】
図１９は、セキュリティ装置６における複数の状態を管理する方法を示す図である。まず始めに、暗号回路９の乱数生成機能を用いて各状態遷移に対応する一時鍵を生成する。この一時鍵は、同時に管理する状態遷移の数だけ必要であり、例えば図１９では２つ（状態１系、状態２系）必要である。次に、状態１０、状態１１、状態２１などの各状態を表す固有の値として種別を準備する。暗号回路９の乱数生成機能にて生成された状態遷移の一時鍵と入力されたデータの状態の種別とを暗号回路９内の演算回路で演算し、現在の状態を示すデータとして各状態遷移毎に生成する。生成した現在の状態を示すデータは、ＲＡＭ５に保存される。保存されたデータは、プログラムが現在どの状態まで進行しているかの目印となる。このような処理によって、ＲＡＭ５に現在の状態を示すデータを保存した状態での圧縮結果は一意に決まり、これを圧縮結果の基準値とする。すなわち、関連のない２つの状態を管理するために、圧縮回路１５の値をある基準値にしておくことで、基準値から各処理（処理１０、１１、１２、１３、２０、２１）を行なうようにしている。処理１０や処理１１などの各処理では、実行されている処理が正しいかを確認するために現在の状態を確認した後に処理を実行する。この確認は、処理に対応した状態の種別とＲＡＭ５に予め保存されている現在の状態を示すデータと比較することによって行われる。なお、現在の状態を示すデータをＲＡＭ５に保存する際に、改ざんを防止するためにＭＡＣの生成も併せて行う必要があるが、説明の簡略化のためにデータに対するＭＡＣ処理については省略する。
【００５３】
図２０は、状態データの生成と状態の確認の方法を示す図である。図２０に示すように、処理１１では、処理１０が完了した状態で実行されるため、プログラム内に処理１０の種別を用いてＲＡＭ５に保存されている値を検証する。比較結果やＭＡＣ検証結果などは、全て圧縮回路１５に反映させる。例えば、処理１０において、現在の状態確認に問題がなければ処理１０’を行う。処理１０’の完了後に、次の状態（例えば状態１１）にて使用する状態遷移の一時鍵を再生成し、次の状態（状態１１）を示す種別を用いて現在の状態を示すデータ（状態１１を示すデータ）を生成してＲＡＭ５に保存する。処理１０の最後には、圧縮結果が処理によって変化しているため、基準値に戻すように補正値を入力してから処理１０を終了する。このように、実行される処理が正しいかどうかはＲＡＭ５に保存した現在の状態を示すデータを用いて確認し、処理内容のデータの改ざんは圧縮結果を用いて検出している。従って、複数の状態遷移を有する処理を安全に実行することが可能となる。
【００５４】
図２１は、複数の状態間における処理の共通化を示す図である。ＭＡＣ検証など特定の手順を共通化することによって、プログラムのメンテナンスが容易になったり、プログラムサイズが小さくなったりするという利点がある。図２１（ａ）に示すように、２つの状態の処理の一部を共通化した（共通処理Ａ）場合において、共通処理Ａ内にて圧縮回路１５による圧縮結果を用いた判定処理を行う際に、それぞれの状態で異なる圧縮結果が共通処理Ａ内の圧縮回路１５に入力されるため処理が正しく行なわれない。そこで、図２１（ｂ）に示すように、共通処理Ａに入るときに共通の圧縮結果になるように各状態の処理にて補正を行う（圧縮回路１５の値が基準値となる）。このようにすると、共通処理Ａを実行することはできるが、共通処理Ａ後の圧縮結果が両方の状態遷移間で共通になってしまい、例えば処理２０が途中で処理１０に遷移してしまう恐れがある。このような問題をなくすために、図２１（ｃ）では、共通処理Ａの後に現在の状態確認を再度行うことによって、処理１０と処理２０とのどちらの状態遷移から実行されたのかを判定することができる。従って、ＭＡＣ検証など特定の手順の共通化を行いながら、複数の状態遷移を管理することができる。
【００５５】
不揮発メモリ３に保存されている暗号化固有情報１０などの秘匿情報を用いる場合には、ＭＡＣ検証処理を行なって改ざんの有無を確認している。このような改ざんの確認処理が共通処理に複数含まれている場合には、図１３に示すようなＭＡＣ検証結果を直接圧縮回路１５に反映させると、共通処理後の圧縮結果は２のＭＡＣ検証回数乗のバリエーションが生じてしまう。すなわち、プログラムの共通化に伴って、共通化された箇所のＰＡＳＳ、ＦＡＩＬを圧縮回路１５に反映すると複数の圧縮結果が必要となり、プログラムの作成が複雑になってプログラムコードが増加する。従って、このような問題の対策が必要となる。
【００５６】
図２２は、共通処理におけるエラー判定方法を示す図である。共通処理の中でエラー判定をする箇所が複数ある場合には、２値（改ざん検出の有無）である署名（ＭＡＣ）検証結果をレジスタ（ＦｌｉｐＦｌｏｐ：ＦＦ）にて保持する。ここで、改ざんが検出された場合を１とする。ＦＦの値は、一度セットされると圧縮回路１５に反映するまで初期化（０）されない。ＦＦの出力は、一度でもエラーが検出されると１になるため、共通処理の終了時に圧縮回路１５に反映させることにより状態を２値にすることが可能となる。このように、検証結果を検証のたびに圧縮回路１５に反映させると圧縮回路１５での処理が煩雑化してしまうが、エラー判定結果を圧縮回路１５とは異なるＦＦに保持しておき、共通処理の終了後に判定結果を圧縮回路１５に反映させることによって容易に手順の共通化を行うことができる。
【００５７】
図２３は、複数の状態を管理する方法を示す図である。複数の状態遷移が存在する場合では、状態の数だけの一時鍵の保存が必要となって管理が煩雑となる。図２３に示すように、状態遷移の一時鍵の全てに共通の鍵を暗号回路９の乱数生成機能によって生成する。一方、実行する状態遷移を示す状態遷移番号を入力する手段をレジスタなどで準備する。状態遷移番号は、同時に管理する状態遷移の数だけ必要となる。状態遷移共通の一時鍵と状態遷移番号とを暗号回路９の演算回路にて演算し、実行する状態遷移の一時鍵を生成する。
【００５８】
このように、暗号化された信号はセキュリティ装置６を制御するプログラムを含み、プログラムで複数の状態遷移が存在する場合において、全ての状態遷移に共通する一時鍵を乱数によって生成した一時鍵と、各状態遷移に割り当てられた番号とから各状態遷移の一時鍵を生成することによって、鍵を管理するためのレジスタの数を削減することができる。
【００５９】
なお、本発明の実施形態は、ＤＶＤやＢｌｕｅ−ｒａｙ、ＨＤ−ＤＶＤなどの映像データを扱う民生機器、ハードディスクなどデータを保存するためのストレージ製品、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などのネットワーク関連機器、データ処理に秘密性や正当性などの安全性が要求されるマイコン、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などに利用可能である。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施形態によるデータ処理装置のブロック図である。
【図２】本発明の実施形態によるセキュリティ装置のブロック図である。
【図３】本発明の実施形態によるセキュリティ装置のブロック図である。
【図４】本発明の実施形態による圧縮回路の構成の一例を示した図である。
【図５】本発明の実施形態による圧縮回路の動作を示す図である。
【図６】本発明の実施形態による比較回路の構成の一例を示す図である。
【図７】本発明の実施形態による比較回路の動作を示す図である。
【図８】本発明の実施形態によるプログラムの条件分岐の判定の一例を示すフローチャートである。
【図９】本発明の実施形態によるプログラムの処理が分岐後に合流する場合における圧縮結果の補正の一例について示した図である。
【図１０】本発明の実施形態によるセキュリティ装置のブロック図である。
【図１１】本発明の実施形態による圧縮回路の初期化の方法を示す図である。
【図１２】本発明の実施形態による不揮発メモリの複製防止を示す図である。
【図１３】本発明の実施形態による秘匿データのＭＡＣ検証の一例について示した図である。
【図１４】本発明の実施形態による種別による秘匿データの入れ換え防止の一例を示した図である。
【図１５】本発明の実施形態によるグループ管理コードによる秘匿データの入れ換え防止の一例を示した図である。
【図１６】本発明の実施形態によるグループ管理コードについて説明する図である。
【図１７】本発明の実施形態による秘匿データの一時的な退避方法を示す図である。
【図１８】本発明の実施形態によるセキュリティ装置における処理の状態の一例を示す図である。
【図１９】本発明の実施形態によるセキュリティ装置における複数の状態を管理する方法を示す図である。
【図２０】本発明の実施形態による状態データの生成と状態の確認の方法を示す図である。
【図２１】本発明の実施形態による複数の状態間における処理の共通化を示す図である。
【図２２】本発明の実施形態による共通処理におけるエラー判定方法を示す図である。
【図２３】本発明の実施形態による複数の状態を管理する方法を示す図である。
【符号の説明】
【００６１】
１  データ処理装置、２  ＣＰＵ、３  不揮発メモリ、４  入力Ｉ／Ｆ回路、５  ＲＡＭ、６  セキュリティ装置、７  ＭＰＥＧデコーダ、８  出力Ｉ／Ｆ回路、９  暗号回路、１０  暗号化固有情報、１１  ＣＰＵバス、１２  入力バス、１３  内部バス、１４  出力バス、１５  圧縮回路、１６  比較回路、１７  装置固有情報、１８  固有情報、１９  演算処理部。
【図１】
0005060372.tif 000002
【図２】
0005060372.tif 000003
【図３】
0005060372.tif 000004
【図４】
0005060372.tif 000005
【図５】
0005060372.tif 000006
【図６】
0005060372.tif 000007
【図７】
0005060372.tif 000008
【図８】
0005060372.tif 000009
【図９】
0005060372.tif 000010
【図１０】
0005060372.tif 000011
【図１１】
0005060372.tif 000012
【図１２】
0005060372.tif 000013
【図１３】
0005060372.tif 000014
【図１４】
0005060372.tif 000015
【図１５】
0005060372.tif 000016
【図１６】
0005060372.tif 000017
【図１７】
0005060372.tif 000018
【図１８】
0005060372.tif 000019
【図１９】
0005060372.tif 000020
【図２０】
0005060372.tif 000021
【図２１】
0005060372.tif 000022
【図２２】
0005060372.tif 000023
【図２３】
0005060372.tif 000024