(57)【特許請求の範囲】
【請求項１】
他の通信端末とセッション鍵を共有し、サーバ装置を介して前記他の通信端末に暗号文を送信する通信端末であって、
共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得する共通鍵暗号文取得部と、
所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得する関数演算結果取得部と、
前記関数演算結果を公開鍵に基づいて暗号化して公開鍵暗号文を取得する公開鍵暗号文取得部と、
前記共通鍵暗号文と前記公開鍵暗号文を前記サーバ装置に送信する暗号文送信部
を含む通信端末。
【請求項２】
他の通信端末とセッション鍵を共有し、前記他の通信端末が取得した共通鍵暗号文と公開鍵暗号文をサーバ装置を介して受信する通信端末であって、
前記他の通信端末は、共通鍵に基づいてメッセージを暗号化して前記共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得し、前記関数演算結果を公開鍵に基づいて暗号化して前記公開鍵暗号文を取得し、前記共通鍵暗号文と前記公開鍵暗号文を前記サーバ装置に送信するものとし、
前記通信端末は、
前記サーバ装置から前記共通鍵暗号文と前記公開鍵暗号文を受信する暗号文受信部と、
受信した前記公開鍵暗号文を秘密鍵に基づいて復号して前記関数演算結果を取得する関数演算結果復号部と、
所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得する共通鍵取得部と、
受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するメッセージ復号部
を含む通信端末。
【請求項３】
複数の通信端末で共有されるセッション鍵を更新する通信端末であって、
前記複数の通信端末のうちの何れかの通信端末が、共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得し、前記関数演算結果を公開鍵に基づいて暗号化して公開鍵暗号文を取得し、前記共通鍵暗号文と前記公開鍵暗号文をサーバ装置に送信するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記サーバ装置から前記共通鍵暗号文と前記公開鍵暗号文を受信し、受信した前記公開鍵暗号文を秘密鍵に基づいて復号して前記関数演算結果を取得し、所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得し、受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するものとし、
前記セッション鍵を更新する通信端末は、
前記第１の関数に基づいて前記セッション鍵と更新済セッション鍵とを演算して鍵更新用関数演算結果を取得する鍵更新用関数演算結果取得部と、
前記鍵更新用関数演算結果を公開鍵に基づいて暗号化して鍵更新用公開鍵暗号文を取得する鍵更新用公開鍵暗号文取得部と、
前記鍵更新用公開鍵暗号文を前記サーバ装置に送信する鍵更新用データ送信部
を含む通信端末。
【請求項４】
複数の通信端末で共有されるセッション鍵を更新するサーバ装置であって、
前記複数の通信端末のうちの何れかの通信端末が、共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得し、前記関数演算結果を公開鍵に基づいて暗号化して公開鍵暗号文を取得し、前記共通鍵暗号文と前記公開鍵暗号文を前記サーバ装置に送信するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記サーバ装置から前記共通鍵暗号文と前記公開鍵暗号文を受信し、受信した前記公開鍵暗号文を秘密鍵に基づいて復号して前記関数演算結果を取得し、所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得し、受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記第１の関数に基づいて前記セッション鍵と更新済セッション鍵とを演算して鍵更新用関数演算結果を取得し、前記鍵更新用関数演算結果を公開鍵に基づいて暗号化して鍵更新用公開鍵暗号文を取得し、前記鍵更新用公開鍵暗号文を前記サーバ装置に送信するものとし、
前記サーバ装置は、
所定の第３の関数に基づいて前記公開鍵暗号文と前記鍵更新用公開鍵暗号文を演算して新たな公開鍵暗号文を取得する新規データ取得部
を含むサーバ装置。
【請求項５】
他の通信端末とセッション鍵を共有し、サーバ装置を介して前記他の通信端末に暗号文と関数演算結果を送信する通信端末であって、
共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得する共通鍵暗号文取得部と、
所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して前記関数演算結果を取得する関数演算結果取得部と、
前記共通鍵暗号文と前記関数演算結果を前記サーバ装置に送信する暗号文送信部
を含む通信端末。
【請求項６】
他の通信端末とセッション鍵を共有し、前記他の通信端末が取得した共通鍵暗号文と関数演算結果をサーバ装置を介して受信する通信端末であって、
前記他の通信端末は、共通鍵に基づいてメッセージを暗号化して前記共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して前記関数演算結果を取得し、前記共通鍵暗号文と前記関数演算結果を前記サーバ装置に送信するものとし、
前記通信端末は、
前記サーバ装置から前記共通鍵暗号文と前記関数演算結果を受信する暗号文受信部と、
所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得する共通鍵取得部と、
受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するメッセージ復号部
を含む通信端末。
【請求項７】
複数の通信端末で共有されるセッション鍵を更新する通信端末であって、
前記複数の通信端末のうちの何れかの通信端末が、共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得し、前記共通鍵暗号文と前記関数演算結果をサーバ装置に送信するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記サーバ装置から前記共通鍵暗号文と前記関数演算結果を受信し、所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得し、受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するものとし、
前記セッション鍵を更新する通信端末は、
前記第１の関数に基づいて前記セッション鍵と更新済セッション鍵とを演算して鍵更新用関数演算結果を取得する鍵更新用関数演算結果取得部と、
前記鍵更新用関数演算結果を前記サーバ装置に送信する鍵更新用データ送信部
を含む通信端末。
【請求項８】
複数の通信端末で共有されるセッション鍵を更新するサーバ装置であって、
前記複数の通信端末のうちの何れかの通信端末が、共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得し、所定の第１の関数に基づいて前記共通鍵と前記セッション鍵を演算して関数演算結果を取得し、前記共通鍵暗号文と前記関数演算結果を前記サーバ装置に送信するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記サーバ装置から前記共通鍵暗号文と前記関数演算結果を受信し、所定の第２の関数に基づいて前記セッション鍵と前記関数演算結果を演算して前記共通鍵を取得し、受信した前記共通鍵暗号文を取得した前記共通鍵に基づいて復号して前記メッセージを取得するものとし、
前記複数の通信端末のうちの何れかの通信端末が、前記第１の関数に基づいて前記セッション鍵と更新済セッション鍵とを演算して鍵更新用関数演算結果を取得し、前記鍵更新用関数演算結果を前記サーバ装置に送信するものとし、
前記サーバ装置は、
所定の第３の関数に基づいて前記関数演算結果と前記鍵更新用関数演算結果を演算して新たな関数演算結果を取得する新規データ取得部
を含むサーバ装置。
【請求項９】
コンピュータを請求項１、２、３、５、６、７の何れかに記載の通信端末として機能させるプログラム。
【請求項１０】
コンピュータを請求項４または８に記載のサーバ装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末、サーバ装置、プログラムに関する。
【背景技術】
【０００２】
ビジネスでの使用を前提とするメッセージ送信システムとしてパソコンやスマートフォン等のマルチデバイスに対応可能なシステムが存在する。マルチデバイスに対応可能なシステムのうち、企業の機密情報漏えいを考慮し、通信端末にデータを残さないクラウドベース型のメッセージ送信システムが存在する。クラウドベース型のメッセージ送信システムの例として、非特許文献１が挙げられる。【０００３】
このようなメッセージ送信システムにおいては、通信路を暗号化することで通信経路上の盗聴防止がなされていたり、既に述べたように、通信端末にデータを残さないことによって通信端末の紛失や不正な持ち出しに起因する情報漏えい防止がなされていたりする。このように、従来のメッセージ送信システムは「通信経路」と「通信端末」に対する脅威に対処している一方、サーバ装置に対する脅威への対処は不十分である。【０００４】
ここでいうサーバ装置に対する脅威として「サーバ装置に対する外部からの攻撃」や「サーバ管理者等による内部不正」等が挙げられる。これらの脅威に対し、メッセージを暗号化して保存する、という対策が考えられる。しかしながら、サーバ装置側でメッセージを復号可能である以上、前述の脅威に対してサーバ装置からのメッセージ漏えいの可能性が依然として存在する。送受信・保存を行うサーバ装置に送られてくるメッセージがサーバ装置に対して秘匿化されている（サーバ装置側で盗聴されない）ことが重要である。【０００５】
１つの方法として、サーバ装置に対してメッセージを秘匿し、通信端末でのみ復号可能なエンドツーエンドの暗号化通信を実現することが考えられる。この場合、通信端末間で用いる共通鍵をどのように共有するかが問題となる。この問題の解決策として例えば非特許文献２が開示されている。非特許文献２では中央に認証サーバをもつスター型のネットワークにおいて、認証サーバに対していかなる情報ももらさずに利用者間で鍵（以下、セッション鍵）を共有するプロトコルが提案されている。【０００６】
これによって、サーバ装置に対しメッセージを秘匿したまま通信端末間でやりとりすることができる。また、現在参加している通信端末でのみメッセージが読めるようセッション鍵の共有を行うため、ユーザの追加・削除等のイベントによりセッション鍵が更新される。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＮＴＴソフトウェア、“ビジネス向けグループチャットＴｏｐｉｃＲｏｏｍ”、［online］、ＮＴＴソフトウェア、[平成28年7月6日検索]、インターネット〈URL：https.//www.ntts.co.jp/products/topicroom/index.html〉
【非特許文献２】小林鉄太郎、米山一樹、吉田麗生、川原祐人、冨士仁、山本具英「スケーラブルな動的多者鍵配布プロトコル」、SCIS2016-暗号と情報セキュリティシンポジウム-講演論文集、一般社団法人電子情報通信学会、平成28年1月、4E2-3
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記非特許文献２の技術によれば、サーバ装置に知られないよう、通信端末間で鍵を共有することで、サーバ装置に対しメッセージを秘匿したままやりとりすることができる。しかし、非特許文献２では、現在の参加メンバのみでセッション鍵を共有するため、セッション鍵はログイン・ログアウトイベントのようなユーザの追加・削除に伴って更新されたり、それ以外にも定期的に更新されたりすることがある。従って、現在参加している通信端末でのみ過去に蓄積されたメッセージを読めるようにするために、以前にサーバ装置に保存されたデータをサーバ装置側で復号することなく、更新されたセッション鍵を用いて通信端末側で復号可能なデータに更新しなければならない、という課題がある。そのため、実用上、クラウドベース型メッセージ送信システムに上記プロトコルをそのまま適用させることは難しい。【０００９】
そこで本発明は、以前にサーバ装置に保存されたデータをサーバ装置側で復号することなく、更新されたセッション鍵を用いて通信端末側で復号可能なデータに更新することができる通信端末を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の通信端末は、他の通信端末とセッション鍵を共有し、サーバ装置を介して他の通信端末に暗号文を送信する通信端末であって、共通鍵暗号文取得部と、関数演算結果取得部と、公開鍵暗号文取得部と、暗号文送信部を含む。【００１１】
共通鍵暗号文取得部は、共通鍵に基づいてメッセージを暗号化して共通鍵暗号文を取得する。関数演算結果取得部は、所定の第１の関数に基づいて共通鍵とセッション鍵を演算して関数演算結果を取得する。公開鍵暗号文取得部は、関数演算結果を公開鍵に基づいて暗号化して公開鍵暗号文を取得する。暗号文送信部は、共通鍵暗号文と公開鍵暗号文をサーバ装置に送信する。
【発明の効果】
【００１２】
本発明の通信端末によれば、以前にサーバに保存されたデータをサーバ側で復号することなく、更新されたセッション鍵を用いて通信端末側で復号可能なデータに更新することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の通信システムの構成を示すブロック図。
【図２】実施例１の送信機能を有する通信端末の構成を示すブロック図。
【図３】実施例１の受信機能を有する通信端末の構成を示すブロック図。
【図４】実施例１の鍵更新機能を有する通信端末の構成を示すブロック図。
【図５】実施例１のサーバ装置の構成を示すブロック図。
【図６】実施例１の送信機能と受信機能と鍵更新機能を全て有する通信端末の構成を示すブロック図。
【図７】実施例１の通信システムの送受信動作を示すシーケンス図。
【図８】実施例１の通信システムの鍵更新動作を示すシーケンス図。
【図９】実施例２の通信システムの構成を示すブロック図。
【図１０】実施例２の送信機能を有する通信端末の構成を示すブロック図。
【図１１】実施例２の受信機能を有する通信端末の構成を示すブロック図。
【図１２】実施例２の鍵更新機能を有する通信端末の構成を示すブロック図。
【図１３】実施例２のサーバ装置の構成を示すブロック図。
【図１４】実施例２の送信機能と受信機能と鍵更新機能を全て有する通信端末の構成を示すブロック図。
【図１５】実施例２の通信システムの送受信動作を示すシーケンス図。
【図１６】実施例２の通信システムの鍵更新動作を示すシーケンス図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１５】
本発明の実施形態の具体的な説明をするため、クラウドベース型のメッセージ送信システムに適用する場合のセットアップ（事前準備）について述べる。なお実施例１では、公開鍵暗号方式を用いた例を、実施例２では、公開鍵暗号方式を用いない例を開示するため、セットアップ（事前準備）についてもそれぞれの場合について記述する。
【００１６】
＜セットアップ：共通＞
集合Nを正の整数全体の集合とする。以下で記載する共通鍵暗号方式(DEM.Gen,DEM.Enc,DEM.Dec)について述べておく。DEM.Genはkビット（k∈N）列1kを入力とし，k1ビット（k1∈N）長の鍵Kを出力するアルゴリズムである。DEM.Encは、平文mと鍵Kとを入力とし，暗号文CDEMを出力するアルゴリズムである。DEM.Decは暗号文CDEMと鍵Kを入力とし，平文mを出力するアルゴリズムである。
【００１７】
＜セットアップ：公開鍵暗号方式を用いる場合＞
集合Nを正の整数全体の集合とする。以下で記載する公開鍵暗号方式(KEM.Gen,KEM.Enc,KEM.Dec)について述べておく。KEM.Genはkビット（k∈N）列1kを入力とし、k2ビット（k2∈N）長の公開鍵pkとk3ビット（k3∈N）長の秘密鍵skの組(pk,sk)を出力するアルゴリズムである。KEM.Encは公開鍵pkとk1ビット（k1∈N）長の平文Mを入力とし、暗号文CKEMを出力するアルゴリズムである。KEM.Decは秘密鍵skと暗号文CKEMを入力とし、平文Mを出力するアルゴリズムである。まず、k1ビット長の鍵空間をKEY1={0,1}k1、k2ビット長の鍵空間をKEY2={0,1}k2とし、関数fk1、hk1、gk1はそれぞれ以下の条件(1)(2)(3)を満たす。ただし、条件(1)は必須条件ではなく、満足することが好適な条件とされる。
【００１８】
(1)関数族{fk1:KEY1×KEY1→KEY1}k1∈Nは以下の条件を満たせば好適である。すなわち、任意の正整数k1に対し、次の命題が成り立つ。nビット列1nと関数fk1の出力とを入力とし、KEY1の元を出力する任意の確率的多項式時間アルゴリズムAと、任意のc>0に対し、以下を満たす正整数n'が存在する。
【００１９】
n'よりも大きい任意の正整数nに対し、
【００２０】
【数１】
0006556955.tif 000002
【００２１】
Pr[X|Y]は事象Yにおける事象Xの条件つき確率を表す。上式は関数fk1の安全性として好適な水準を示す数式である。上式はいかなる確率的多項式時間アルゴリズムAによってfk1(K,K1)を演算したとしても、K'=KとなるK'を求めることができる確率が非常に低い（Pr[...]<1/nc）ことを示している。ただし、関数fk1が上式の安全性を満たすことは必須の条件ではなく、関数fk1は上式に限定されない。
【００２２】
(2)任意のk1∈N、任意のK,K1∈KEY1に対し、次式を満たす関数hk1:KEY1×KEY1→KEY1が存在する。
【００２３】
【数２】
0006556955.tif 000003
【００２４】
(3)暗号化関数KEM.Enc:KEY2×KEY1→KEY1と関数fk1:KEY1×KEY1→KEY1に対し、関数gk1:KEY1×KEY1→KEY1が存在し、任意のK,K1,K2∈KEY1に対し次式を満たす。
【００２５】
【数３】
0006556955.tif 000004
【００２６】
上式は、関数gk1を定義する数式である。上式は、暗号文c1（共通鍵Kとセッション鍵K1を関数fk1でマスクした値を公開鍵pkで暗号化した暗号文）と暗号文c2（セッション鍵K1と更新後のセッション鍵K2を関数fk1でマスクした値を公開鍵pkで暗号化した暗号文）を関数gk1によってマスクして得た値を秘密鍵skで復号した場合、復号結果M'が必ずfk1(K,K2)（共通鍵Kとセッション鍵K2を関数fk1でマスクした値）となる（Pr[...]=1）ことを示している。
【００２７】
上記のような公開鍵暗号として、例えばRSA暗号方式が考えられる。すなわち、(KEM.Gen,KEM.Enc,KEM.Dec)=(RSA.Gen,RSA.Enc,RSA.Dec)である。このとき(fk1,gk1,hk1)として例えば、(fk1,gk1,hk1)=(((x1,x2)→x1/x2),((y1,y2)→y1・y2),((z1,z2)→z1・z2))が挙げられ、これらは上記の(fk1,gk1,hk1)の条件を満たす。なお、演算/は、RSA暗号方式のセットアップ時に生成した2つの素数p,qの積n=pqを法とする剰余環での乗法を・とし、この演算におけるx2の逆元をx2-1としたとき、x1/x2=x1・x2-1と表される。
【００２８】
また上記のような公開鍵暗号として、例えば楕円ElGamal暗号方式が考えられる。すなわち、(KEM.Gen,KEM.Enc,KEM.Dec)=(ECEG.Gen,ECEG.Enc,ECEG.Dec)である。このとき(fk1,gk1,hk1)として例えば、(fk1,gk1,hk1)=(((x1,x2)→x1-x2),((y1,y2)→y1+y2),((z1,z2)→z1+z2))が挙げられ、これらは上記の(fk1,gk1,hk1)の条件を満たす。なお、演算-は、楕円ElGamal暗号方式のセットアップ時に生成した楕円曲線上の点がなす加法（+）群におけるx2の逆元を-x2としたとき、x1-x2=x1+(-x2)と表される。
【００２９】
ただし、本発明で利用できる公開鍵暗号方式は上記の二つ（RSA暗号方式、楕円ElGamal暗号方式）に限定されないものとする。
【００３０】
＜セットアップ：公開鍵暗号方式を用いない場合＞
k1ビット長の鍵空間をKEY1とし、k2ビット（k2∈N）長の鍵空間をKEY2とし、関数fk1、hk1、gk1はそれぞれ上述の条件(1)(2)、および以下の(3a)を満たす。ただし、上述の条件(1)は必須条件ではなく、満足することが好適な条件とされる。
(3a)任意のk1∈Nに対し、関数gk1:KEY1×KEY1→KEY1が存在し、任意のK,K1,K2∈KEY1に対しgk1(fk1(K0,K1),fk1(K1,K2))=fk1(K0,K2)を満たす。
【００３１】
このような関数の組(fk1,gk1,hk1)として例えば、(fk1,gk1,hk1)=(((x1,x2)→x1-x2),((y1,y2)→y1+y2),((z1,z2)→z1+z2))や、(fk1,gk1,hk1)=(((x1,x2)→x1/x2),((y1,y2)→y1・y2),((z1,z2)→z1・z2))があり、これらは上記の(fk1,gk1,hk1)の性質を満たす。なお、x1-x2について、演算-は鍵空間に加法群としての構造が入っているときの加法（+）群における差を意味する。x1/x2について、演算/は鍵空間に乗法群としての構造が入っているときの乗法（・）群における商を意味する。以下では、(fk1,gk1,hk1)=(((x1,x2)→x1-x2),((y1,y2)→y1+y2),((z1,z2)→z1+z2))や、(fk1,gk1,hk1)=(((x1,x2)→x1/x2),((y1,y2)→y1・y2),((z1,z2)→z1・z2))の場合で説明する。
【実施例１】
【００３２】
以下、公開鍵暗号を用いるバリエーションである、実施例１の通信システムについて説明する。【００３３】
図１に示すように、本実施例の通信システム１は、送信機能を有する通信端末１１と、受信機能を有する通信端末１２と、鍵更新機能を有する通信端末１３と、サーバ装置１４を含む構成である。これらの装置はネットワーク９を介して通信可能に接続されている。なお、通信端末１１、通信端末１２、通信端末１３、サーバ装置１４はそれぞれが複数存在してもよい。説明の便宜上、以下ではこれらの装置が各一つずつ存在するものとする。【００３４】
図２に示すように、通信端末１１は、共通鍵暗号文取得部１１１と、共通鍵記憶部１１１Ａと、関数演算結果取得部１１２と、セッション鍵記憶部１１２Ａと、公開鍵暗号文取得部１１３と、公開鍵記憶部１１３Ａと、暗号文送信部１１４を含む構成であって、共通鍵記憶部１１１Ａには共通鍵Kが予め記憶され、セッション鍵記憶部１１２Ａには他の通信端末と共有するセッション鍵K1が予め記憶され、公開鍵記憶部１１３Ａには公開鍵pkが予め記憶されているものとする。【００３５】
図７に示すように、共通鍵暗号文取得部１１１は、共通鍵Kに基づいてメッセージmを暗号化(DEM.Enc(K,m))して共通鍵暗号文CDEMを取得する（Ｓ１１１）。関数演算結果取得部１１２は、関数fk1に基づいて共通鍵Kとセッション鍵K1を演算して関数演算結果fk1(K,K1)を取得する（Ｓ１１２）。公開鍵暗号文取得部１１３は、関数演算結果fk1(K,K1)を公開鍵pkに基づいて暗号化(KEM.Enc(pk,fk1(K,K1)))して公開鍵暗号文CKEMを取得する（Ｓ１１３）。暗号文送信部１１４は、共通鍵暗号文CDEMと公開鍵暗号文CKEMをサーバ装置１４に送信する（Ｓ１１４）。【００３６】
図３に示すように、通信端末１２は、暗号文受信部１２１と、関数演算結果復号部１２２と、秘密鍵記憶部１２２Ａと、共通鍵取得部１２３と、セッション鍵記憶部１２３Ａと、メッセージ復号部１２４を含む構成であって、秘密鍵記憶部１２２Ａには秘密鍵skが予め記憶され、セッション鍵記憶部１２３Ａには、他の通信端末と共有するセッション鍵K1が予め記憶されているものとする。【００３７】
図７に示すように、暗号文受信部１２１は、サーバ装置１４から共通鍵暗号文CDEMと公開鍵暗号文CKEMを受信する（Ｓ１２１）。関数演算結果復号部１２２は、受信した公開鍵暗号文CKEMを秘密鍵skに基づいて復号（KEM.Dec(sk,CKEM)）して関数演算結果fk1(K,K1)を取得する（Ｓ１２２）。共通鍵取得部１２３は、関数hk1に基づいてセッション鍵K1と関数演算結果fk1(K,K1)を演算（hk1(fk1(K,K1),K1)）して共通鍵Kを取得する（Ｓ１２３）。メッセージ復号部１２４は、受信した共通鍵暗号文CDEMを、取得した共通鍵Kに基づいて復号（DEM.Dec(K,CDEM)）してメッセージmを取得する（Ｓ１２４）。【００３８】
図４に示すように、通信端末１３は、鍵更新用関数演算結果取得部１３１と、セッション鍵記憶部１３１Ａと、鍵更新用公開鍵暗号文取得部１３２と、公開鍵記憶部１３２Ａと、鍵更新用データ送信部１３３を含む構成であって、セッション鍵記憶部１３１Ａには、他の通信端末と共有するセッション鍵K1が予め記憶され(更新後のセッション鍵K2なども記憶される)、公開鍵記憶部１３２Ａには公開鍵pkが予め記憶されているものとする。【００３９】
図８に示すように、鍵更新用関数演算結果取得部１３１は、関数fk1に基づいてセッション鍵K1と更新済セッション鍵K2（以下、更新後のセッション鍵K2ともいう）とを演算して鍵更新用関数演算結果fk1(K1,K2)を取得する（Ｓ１３１）。鍵更新用公開鍵暗号文取得部１３２は、鍵更新用関数演算結果fk1(K1,K2)を公開鍵pkに基づいて暗号化（KEM.Enc(pk,fk1(K1,K2))）して鍵更新用公開鍵暗号文C'KEMを取得する（Ｓ１３２）。鍵更新用データ送信部１３３は、鍵更新用公開鍵暗号文C'KEMをサーバ装置１４に送信する（Ｓ１３３）。【００４０】
図５に示すように、サーバ装置１４は、暗号文受信部１４１と、暗号文記憶部１４１Ａと、暗号文送信部１４２と、鍵更新用データ受信部１４３と、新規データ取得部１４４を含む構成である。【００４１】
図７に示すように、暗号文受信部１４１は、通信端末１１から共通鍵暗号文CDEMと公開鍵暗号文CKEMを受信する（Ｓ１４１）。暗号文記憶部１４１Ａは、受信した共通鍵暗号文CDEMと公開鍵暗号文CKEMを記憶する（Ｓ１４１Ａ１）。暗号文送信部１４２は、通信端末１２に共通鍵暗号文CDEMと公開鍵暗号文CKEMを送信する（Ｓ１４２）。【００４２】
図８に示すように、鍵更新用データ受信部１４３は、通信端末１３から鍵更新用公開鍵暗号文C'KEMを受信する（Ｓ１４３）。新規データ取得部１４４は、関数gk1に基づいて公開鍵暗号文CKEMと鍵更新用公開鍵暗号文C'KEMを演算（gk1(CKEM,C'KEM)）して新たな公開鍵暗号文C''KEMを取得する（Ｓ１４４）。【００４３】
なお、ステップＳ１２２において新たな公開鍵暗号文C''KEMを秘密鍵skに基づいて復号（KEM.Dec(sk,C''KEM)）すると関数演算結果fk1(K,K2)を取得することができる。さらにステップＳ１２３において関数hk1に基づいて更新後のセッション鍵K2と関数演算結果fk1(K,K2)を演算（hk1(fk1(K,K2),K2)）することで共通鍵Kを取得することができるため、更新後のセッション鍵K2を用いたメッセージmの復号が可能であることが確認された。また、サーバ装置１４で取り扱われているC'KEMやC''KEMによっても、更新後のセッション鍵K2を知ることは困難であるため、サーバ装置１４に対してセッション鍵を秘匿しながら更新することが可能であることが確認された。【００４４】
上述の実施例１では、送信機能を有する通信端末１１、受信機能を有する通信端末１２、鍵更新機能を有する通信端末１３を例示した。しかし本発明の通信端末は上記の例に限定されない。例えば、送信機能、受信機能、鍵更新機能のうちいずれか二つの機能を備える通信端末として実現してもよい。また図６に示すように、送信機能、受信機能、鍵更新機能の全てを備える通信端末１０として実現してもよい。【００４５】
［実施例１の実装例Ａ］
以下の実装例Ａでは、公開鍵暗号方式としてRSA暗号方式を用いた例を説明する。通信端末１１、通信端末１２、通信端末１３は、サーバ装置１４と通信を行うものとする。通信端末１１、通信端末１２、通信端末１３はパソコンやスマートフォン等挙げられるが特に限定しない。なお、本実装例の通信システムにおいては、メッセージをやり取りするユーザのグループを形成することができる。各グループをここではメッセージルームと呼ぶことにする。
・所属するメッセージルームの識別子をroomIDとする。
・公開鍵暗号方式(KEM.Enc,KEM.Dec)に関する、所属するルーム（roomID）の公開鍵をpkroomIDと秘密鍵をskroomIDとする。【００４６】
＜暗号化、メッセージ送信＞
通信端末１１の利用者をＡ、通信端末１２の利用者をＢとする。通信端末１１、通信端末１２はセッション鍵K1を取得済みとし、これをそれぞれセッション鍵記憶部１１２Ａ、セッション鍵記憶部１２３Ａに保持しているものとする。このセッション鍵K1をサーバ装置１４は知らない。利用者Ａが利用者Ｂにメッセージm1を送るものとする。【００４７】
通信端末１１は、乱数Kをメッセージ暗号化のための共通鍵として予め生成し、共通鍵記憶部１１１Ａに予め記憶しておくものとする。メッセージ暗号化の際に用いる共通鍵暗号方式を(DEM.Enc,DEM.Dec)とする。【００４８】
通信端末１１は、共通鍵記憶部１１１Ａから共通鍵Kを、セッション鍵記憶部１１２Ａからセッション鍵K1を、公開鍵記憶部１１３Ａから公開鍵pkroomIDを取り出し、(CDEM,CRSA)=(DEM.Enc(K,m1),RSA.Enc(pkroomID, K/K1))を計算する。なお、RSA.Enc関数に入力するK/K1について、演算/は、RSA暗号方式のセットアップ時に生成した2つの素数p,qの積n=pqを法とする剰余環での乗法を・とし、この演算におけるK1の逆元をK1-1としたとき、K/K1=K・K1-1と表される。通信端末１１は、サーバ装置１４に(CDEM,CRSA)を送信する。【００４９】
＜メッセージ受信、復号＞
サーバ装置１４は通信端末１１から受信した (CDEM,CRSA)を暗号文記憶部１４１Ａに保存する。なお、通信端末１１から送信されたメッセージ毎に(CDEM,CRSA)は保存する必要がある。サーバ装置１４は、通信端末１２に(CDEM,CRSA)を送信する。通信端末１２はサーバ装置１４から(CDEM,CRSA)を受信する。【００５０】
通信端末１２は、秘密鍵記憶部１２２Ａから秘密鍵skroomIDを取り出し、Temp=RSA.Dec(skroomID,CRSA)を計算する。通信端末１２は、セッション鍵記憶部１２３Ａからセッション鍵K1を取り出し、共通鍵K=Temp・K1を得る。通信端末１２は、この共通鍵Kを用いてメッセージm1を復号（m1=DEM.Dec(K1,CDEM)）する。【００５１】
＜セッション鍵更新＞
通信端末１３はセッション鍵をK1からK2に更新するものとする。サーバ装置１４は事前に通信端末１１から(CDEM,CRSA)=(DEM.Enc(K,m1),RSA.Enc(pkroomID,K/K1))を得ているものとする。ここで、m1は通信端末１１がroomIDが指し示すメッセージルームにおいて鍵更新以前に送信したメッセージであり、Kはそのメッセージを送信する際に生成した共通鍵である。通信端末１３は、セッション鍵記憶部１３１Ａから古いセッション鍵K1と新しいセッション鍵K2、公開鍵記憶部１３２Ａから公開鍵pkroomIDを取り出し、C'RSA=RSA.Enc(pkroomID,K1/K2)を計算する。通信端末１３は、サーバ装置１４にC'RSAを送信する。サーバ装置１４は通信端末１３からC'RSAを受信し、さらに暗号文記憶部１４１ＡからCRSAを取り出し、C''RSA=CRSA・C'RSA=RSA.Enc(pkroomID,K /K2)を計算し、暗号文記憶部１４１Ａに既に保存されているCRSAをC''RSAに上書き保存する処理を実行する。【００５２】
［実施例１の実装例Ｂ］
以下の実装例Ｂでは、公開鍵暗号方式として楕円ElGamal暗号方式を用いた例を説明する。【００５３】
＜暗号化、メッセージ送信＞
通信端末１１は、前述と同様に共通鍵K、セッション鍵K1、公開鍵pkroomIDを用いて、(CDEM,CECEG)=(DEM.Enc(K,m1),ECEG.Enc(pkroomID,K-K1))を計算する。なお、ECEG.Enc関数に入力するK-K1について、演算-は、楕円ElGamal暗号方式のセットアップ時に生成した楕円曲線上の点がなす加法（+）群における差を意味する。通信端末１１はサーバ装置１４に(CDEM,CECEG)を送信する。【００５４】
＜メッセージ受信、復号＞
サーバ装置１４は通信端末１１から(CDEM,CECEG)を受信し、暗号文記憶部１４１Ａに保存する。なお、通信端末１１から送信されたメッセージ毎に(CDEM,CECEG)は保存する必要がある。サーバ装置１４は、通信端末１２に(CDEM,CECEG)を送信する。通信端末１２はサーバ装置１４から(CDEM,CECEG)を受信する。通信端末１２は、秘密鍵記憶部１２２Ａから秘密鍵skroomIDを取り出し、Temp=ECEG.Dec(skroomID,CECEG)を計算する。通信端末１２は、セッション鍵記憶部１２３Ａからセッション鍵K1を取り出し、共通鍵K=Temp+K1を得る。この共通鍵Kを用いて、メッセージm1を復号（m1=DEM.Dec(K,CDEM)）する。【００５５】
＜セッション鍵更新＞
通信端末１３はセッション鍵をK1からK2に更新するものとする。サーバ装置１４は事前に通信端末１１から(CDEM,CECEG)=(DEM.Enc(K,m1),ECEG.Enc(pkroomID,K-K1))を得ているものとする。ここで、m1は通信端末１１がroomIDが指し示すメッセージルームにおいて鍵更新以前に送信したメッセージであり、Kはそのメッセージを送信する際に生成した共通鍵である。通信端末１３は、セッション鍵記憶部１３１Ａから古いセッション鍵K1と新しいセッション鍵K2、公開鍵記憶部１３２Ａから公開鍵pkroomIDを取り出し、C'ECEG=ECEG.Enc(pkroomID,K1-K2)を計算する。通信端末１３はサーバ装置１４にC'ECEGを送信する。
サーバ装置１４は通信端末１３からC'ECEGを受信し、さらに暗号文記憶部１４１ＡからCECEGを取り出し、C''ECEG=CECEG+C'ECEG=ECEG.Enc(pkroomID,K-K2)を計算し、暗号文記憶部１４１Ａに既に保存されているCECEGをC''ECEGに上書き保存する処理を実行する。
【実施例２】
【００５６】
以下、公開鍵暗号を用いないバリエーションである、実施例２の通信システムについて説明する。【００５７】
図９に示すように、本実施例の通信システム２は、送信機能を有する通信端末２１と、受信機能を有する通信端末２２と、鍵更新機能を有する通信端末２３と、サーバ装置２４を含む構成である。これらの装置はネットワーク９を介して通信可能に接続されている。なお、通信端末２１、通信端末２２、通信端末２３、サーバ装置２４はそれぞれが複数存在してもよい。説明の便宜上、以下ではこれらの装置が各一つずつ存在するものとする。【００５８】
図１０に示すように、通信端末２１は、共通鍵暗号文取得部１１１と、共通鍵記憶部１１１Ａと、関数演算結果取得部１１２と、セッション鍵記憶部１１２Ａと、暗号文送信部２１４を含む構成であって、暗号文送信部２１４以外の構成要件については、実施例１と同様である。なお、本実施例では公開鍵暗号を用いないため実施例１に存在した公開鍵暗号文取得部１１３、公開鍵記憶部１１３Ａは不要である。【００５９】
図１５に示すように、共通鍵暗号文取得部１１１は、共通鍵Kに基づいてメッセージmを暗号化(DEM.Enc(K,m))して共通鍵暗号文CDEMを取得する（Ｓ１１１）。関数演算結果取得部１１２は、関数fk1に基づいて共通鍵Kとセッション鍵K1を演算して関数演算結果fk1(K,K1)を取得する（Ｓ１１２）。以下、関数演算結果をZとも表記する。暗号文送信部２１４は、共通鍵暗号文CDEMと関数演算結果Zをサーバ装置１４に送信する（Ｓ２１４）。【００６０】
図１１に示すように、通信端末２２は、暗号文受信部２２１と、共通鍵取得部１２３と、セッション鍵記憶部１２３Ａと、メッセージ復号部１２４を含む構成であって、暗号文受信部２２１以外の構成要件については、実施例１と同様である。なお、本実施例では公開鍵暗号を用いないため実施例１に存在した関数演算結果復号部１２２と、秘密鍵記憶部１２２Ａは不要である。【００６１】
図１５に示すように、暗号文受信部２２１は、サーバ装置１４から共通鍵暗号文CDEMと関数演算結果Zを受信する（Ｓ２２１）。共通鍵取得部１２３は、関数hk1に基づいてセッション鍵K1と関数演算結果fk1(K,K1)を演算（hk1(fk1(K,K1),K1)）して共通鍵Kを取得する（Ｓ１２３）。メッセージ復号部１２４は、受信した共通鍵暗号文CDEMを、取得した共通鍵Kに基づいて復号（DEM.Dec(K,CDEM)）してメッセージmを取得する（Ｓ１２４）。【００６２】
図１２に示すように、通信端末２３は、鍵更新用関数演算結果取得部１３１と、セッション鍵記憶部１３１Ａと、鍵更新用データ送信部２３３を含む構成であって、鍵更新用データ送信部２３３以外の構成要件については、実施例１と同様である。なお、本実施例では公開鍵暗号を用いないため実施例１に存在した鍵更新用公開鍵暗号文取得部１３２と、公開鍵記憶部１３２Ａは不要である。【００６３】
図１６に示すように、鍵更新用関数演算結果取得部１３１は、関数fk1に基づいてセッション鍵K1と更新済セッション鍵K2（以下、更新後のセッション鍵K2ともいう）とを演算して鍵更新用関数演算結果fk1(K1,K2)を取得する（Ｓ１３１）。以下、鍵更新用関数演算結果をZ'とも表記する。鍵更新用データ送信部２３３は、鍵更新用関数演算結果Z'をサーバ装置２４に送信する（Ｓ２３３）。【００６４】
図１３に示すように、サーバ装置２４は、暗号文受信部２４１と、暗号文記憶部２４１Ａと、暗号文送信部２４２と、鍵更新用データ受信部２４３と、新規データ取得部２４４を含む構成である。【００６５】
図１５に示すように、暗号文受信部２４１は、通信端末２１から共通鍵暗号文CDEMと関数演算結果Zを受信する（Ｓ２４１）。暗号文記憶部２４１Ａは、受信した共通鍵暗号文CDEMと関数演算結果Zを記憶する（Ｓ２４１Ａ１）。暗号文送信部２４２は、通信端末２２に共通鍵暗号文CDEMと関数演算結果Zを送信する（Ｓ２４２）。【００６６】
図１６に示すように、鍵更新用データ受信部２４３は、通信端末２３から鍵更新用関数演算結果Z'を受信する（Ｓ２４３）。新規データ取得部２４４は、関数gk1に基づいて関数演算結果Zと鍵更新用関数演算結果Z'を演算（gk1(Z,Z')）して新たな関数演算結果Z''を取得する（Ｓ２４４）。【００６７】
なお、ステップＳ１２３において関数hk1に基づいて更新後のセッション鍵K2と関数演算結果fk1(K,K2)を演算（hk1(fk1(K,K2),K2)）することで共通鍵Kを取得することができるため、更新後のセッション鍵K2を用いたメッセージmの復号が可能であることが確認された。また、サーバ装置２４で取り扱われているZ'やZ''によっても、更新後のセッション鍵K2を知ることは困難であるため、サーバ装置２４に対してセッション鍵を秘匿しながら更新することが可能であることが確認された。【００６８】
上述の実施例２では、送信機能を有する通信端末２１、受信機能を有する通信端末２２、鍵更新機能を有する通信端末２３を例示した。しかし本発明の通信端末は上記の例に限定されない。例えば、送信機能、受信機能、鍵更新機能のうちいずれか二つの機能を備える通信端末として実現してもよい。また図１４に示すように、送信機能、受信機能、鍵更新機能の全てを備える通信端末２０として実現してもよい。【００６９】
［実施例２の実装例］
以下に、実施例２の実装例を示す。【００７０】
＜暗号化、メッセージ送信＞
通信端末２１は、(CDEM,Key)=(DEM.Enc(K,m1),K/K1)(または、(CDEM,Key)=(DEM.Enc(K,m1),K-K1))を計算する。通信端末２１はサーバ装置２４に(CDEM,Key)を送信する。【００７１】
＜メッセージ受信、復号＞
サーバ装置２４は通信端末２１から(CDEM,Key)を受信し、暗号文記憶部２４１Ａに保存する。なお、通信端末２１から送信されたメッセージ毎に(CDEM,Key)は保存する必要がある。サーバ装置２４は、通信端末２２に(CDEM,Key)を送信する。通信端末２２はサーバ装置２４から(CDEM,Key)を受信する。ここから通信端末２２はK=Temp・K1（またはK=Temp+K1）を得る。通信端末２２は、この共通鍵Kを用いてメッセージm1を復号（m1=DEM.Dec(K,CDEM)）する。  【００７２】
＜セッション鍵更新＞
通信端末２３はセッション鍵をK1からK2に更新するものとする。【００７３】
サーバ装置２４は事前に通信端末２１から(CDEM,Key)=(DEM.Enc(K,m1),K/K1)(または、(CDEM,Key)=(DEM.Enc(K,m1),K-K1))を得ているものとする。ここで、m1は通信端末２１がroomIDが指し示すメッセージルームにおいて鍵更新以前に送信したメッセージであり、Kはそのメッセージを送信する際に生成した共通鍵である。通信端末２３はセッション鍵記憶部１３１Ａから古いセッション鍵K1と新しいセッション鍵K2を取り出し、Key'=K1/K2(または、Key'=K1-K2)を計算する。通信端末２３はサーバ装置２４にKey'を送信する。サーバ装置２４は通信端末２３からKey'を受信し、さらに暗号文記憶部２４１ＡからKeyを取り出し、Key''=Key・Key'=K/K2（または、Key''=Key+Key'=K-K2）を計算し、暗号文記憶部２４１Ａに既に保存されているKeyをKey''に上書き保存する処理を実行する。【００７４】
上述の実施例２の通信システム２によれば、実施例１と同程度の安全性を確保しながら、公開鍵暗号アルゴリズムの実装を省略することができるため、実装のコストを低減することができる。【００７５】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（CentralProcessingUnit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。【００７６】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。【００７７】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。【００７８】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。【００７９】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。【００８０】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（DigitalVersatileDisc）、ＤＶＤ−ＲＡＭ（RandomAccessMemory）、ＣＤ−ＲＯＭ（CompactDiscReadOnlyMemory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Opticaldisc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（ElectronicallyErasableandProgrammable-ReadOnlyMemory）等を用いることができる。【００８１】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。【００８２】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（ApplicationServiceProvider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００８３】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
0006556955.tif 000005
【図２】
0006556955.tif 000006
【図３】
0006556955.tif 000007
【図４】
0006556955.tif 000008
【図５】
0006556955.tif 000009
【図６】
0006556955.tif 000010
【図７】
0006556955.tif 000011
【図８】
0006556955.tif 000012
【図９】
0006556955.tif 000013
【図１０】
0006556955.tif 000014
【図１１】
0006556955.tif 000015
【図１２】
0006556955.tif 000016
【図１３】
0006556955.tif 000017
【図１４】
0006556955.tif 000018
【図１５】
0006556955.tif 000019
【図１６】
0006556955.tif 000020