JP2006254417A - 秘密通信システム及び通信装置及びプログラム - Google Patents

秘密通信システム及び通信装置及びプログラム Download PDF

Info

Publication number
JP2006254417A
JP2006254417A JP2006025527A JP2006025527A JP2006254417A JP 2006254417 A JP2006254417 A JP 2006254417A JP 2006025527 A JP2006025527 A JP 2006025527A JP 2006025527 A JP2006025527 A JP 2006025527A JP 2006254417 A JP2006254417 A JP 2006254417A
Authority
JP
Japan
Prior art keywords
key
temporary
shared
initial
communication
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.)
Pending
Application number
JP2006025527A
Other languages
English (en)
Inventor
Minoru Fujishima
実 藤島
Hidehiko Kaneko
秀彦 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Tokyo NUC
Original Assignee
University of Tokyo NUC
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 University of Tokyo NUC filed Critical University of Tokyo NUC
Priority to JP2006025527A priority Critical patent/JP2006254417A/ja
Publication of JP2006254417A publication Critical patent/JP2006254417A/ja
Pending legal-status Critical Current

Links

Abstract

【課題】 共有鍵を安全に共有することができる暗号化方式を実現する。
【解決手段】 一時鍵発生手段22が乱数である一時鍵riを発生する。暗号化手段14が第1初期鍵ki1を用いて一時鍵riを暗号化し暗号文ci1を得る。送信手段20が暗号文ci1を受信装置50に送信する。暗号化手段14は、第2初期鍵ki2でも一時鍵riを暗号化し、共有鍵ksを得る。一方、受信装置50では、通信手段60が暗号文ci1を受信し、復号化手段56に供給する。復号化手段56は、暗号文ci1を復号化し、元の一時鍵riを得る。暗号化手段54が第2初期鍵ki2を用いてこの一時鍵riを暗号化することによって、送信装置10側と同様に受信装置50側でも共有鍵ksを得ることができる。以降、この共有鍵ksを用いて秘密の通信を行う。
【選択図】 図1

Description

本発明は、暗号を用いた秘密通信を行う装置に関する。
近年、相互に通信する機能を備え、高度な演算処理能力を持ったセンサを多数集合させて、センサネットワークを構成する構想が広く知られている。このセンサネットワークを構成するセンサは、超小型集積回路から構成され、極めて微細なセンサである。特に、MEMS技術やRF集積回路技術が発達したことによって、センサネットワークで用いられる集積回路が安価に作成できるようになったことから、センサネットワークはにわかに注目を集めている。
このように、センサネットワークは微細なセンサの集合体であるため、種々の場所に容易に敷設できるものである。したがって、天候や動物の生態などのモニタリング、警備のための監視など様々な分野での利用が検討されている。その結果、センサネットワークは、ユビキタス社会の早期実現に寄与するものと考えられている。
センサネットワークにおける重要な課題の一つとして、各センサ間の通信の安全性確保がある。なお、センサネットワークを構成する各センサは、ノードと呼ばれるので、センサ間の通信は、ノード間通信と呼ばれる。また、センサネットワークで用いられる集積回路に要求される主要な性質としては、次の2点を上げることができる。第1点は、超小型であることである。そして、第2点は、無数にあるノード(つまり各センサ)のバッテリを交換することが困難であるため、低消費電力であることである。
なお、センサネットワークにおいて伝達する情報を通す通信網を選択する技術が下記特許文献1に示されている。
また、センサネットワークの管理者の負担を減少させる管理方法が下記特許文献2に記載されている。
また、同じ回路を繰り返し用いることによって回路規模を小さくすることができる暗号化装置が下記特許文献3示されている。
また、公開鍵暗号方式の処理に用いるハッシュ値を利用して回路規模を小さくすることができる装置が下記特許文献4に示されている。
ところで、代表的な共有鍵暗号の一つであるAESのように大規模な回路面積が必要な暗号方法に関して下記非特許文献1に記載がある。
また、カオスを基にした暗号が下記非特許文献2に記載がある。
暗号回路の回路規模に関する記述が下記非特許文献3及び下記非特許文献4に記載されている。
また、MEMSとRF用のIC技術に関し、非特許文献5に記載がある。
また、暗号システムに対する攻撃について、既知暗号文攻撃、既知平文攻撃、選択平文攻撃、選択暗号文攻撃、等が知られており、これらは非特許文献6に記載がある。
また、代表的な共有鍵暗号の一つであるAESにおいて必要なゲート数について、下記非特許文献7、非特許文献8に記載がある。
さらに、下記非特許文献9には、ゲート数を削減した新しい乱数生成装置が記載されている。
特開2003−110749号公報 特開2003−115092号公報 特開平10−333569号公報(特許登録第3088337号) 特開2004−054128号公報 A. Perrig, R. Szewczyk, J.D. Tygar, V.Wen, and D.E. Culler, "SPINS: Security protocols for sensor networks", Wireless networks 8,521-534, 2002, Kluwer Academic Publications. G. Jakimoski, L. Kocarev, "Chaos and cryptography based on chaotic maps", IEEE Trans. Circuits Syst. I, vol.49, pp. 163-169, Feb 2001. A. Hodjat and Ingrid Verbauwhede, "Minimum Area Cost for a 30 to 70 Gbits/s AES Processor" Proceedings of the IEEE Computer Society Annual Symposium on VLSI Emerging Trends in VLSI Systems Design, pp. 83-88, Feb 2004. I. Verbauwhede, P. Schaumont, H. Kuo, "Design and Performance Testing of a 2.29-GB/s Rijndael Processor", IEEE Journal of Solid-State Circuits, vol.38, no.3, pp. 569-572, Mar 2003. A. Sinha and A. Chandrakasan, "Dynamic power management in wireless sensor networks" IEEE Design and Test of Computers, pp. 62-74, Mar-Apr 2001. H. Feistel "Cryptography and computer privacy ", 1973. S. Mangard, M. Aigner and S. Dominikus, "A Highly Regular and Scalable Hardware Architecuture", IEEE Transactions on Computers, vol. 52, no. 4, Apr 2003. A. Satoh, S. Morioka, K. Takano, and S. Munetoh, "A Compact Rijndael Hardware Architecture with S-Box Optimization," Proc. Advances in Cryptology-ASIACRYPT 2001, pp. 239-254, 2001. S. Yasuda, T. Tanamoto, H. Satake, and S. Fujita, "Novel Random Number Generator Using MOS Gate After Soft-Breakdown", Extended Abstracts of the 2002 International Conference on Solid States Device and Materials, pp. 250-251, 2002.
そこで、このような点を満足するノード間の安全な通信システムが必要である。安全な通信のためには暗号を用いた秘密通信(又は暗号化通信とも呼ぶ)を使用することが考えられるが、現状の暗号技術では上記2点を満足することは困難である。
現状の問題点
例えば、代表的な公開鍵暗号の一つであるRSAのように大量の電力を消費する非対称暗号は、センサネットワークに使用することはできない。また、代表的な共有鍵暗号の一つであるAESのように大規模な回路面積が必要な暗号方法も、同様にセンサネットワークに使用することはできない。このことは下記非特許文献1に記載がある。特に、従来の共有鍵暗号方式では、一つの秘密鍵を暗号化に用い、その鍵を複雑な演算を用いることで,盗聴者に知られないようにするというアプローチが取られていた。その結果として、回路規模や消費電力を犠牲にせざるを得ず、大規模な回路面積と大きな消費電力が必要であった。
また、カオスを基にした暗号も実装の難しさからセンサネットワークに適用することも困難である。このことは上記非特許文献2に記載がある。
これら、現在用いられている暗号方式は、回路規模が大規模になりがちであり小型にすることは困難である。また電力消費も大きく小型のバッテリ駆動のようなアプリケーションに用いることは困難である。
暗号方式の回路規模に関する記述が上記非特許文献3及び非特許文献4に記載されている。特に、上記非特許文献3においては、AESに利用する半導体集積回路の回路規模に関する記述がある。
したがって、現時点でのこれらの方式をセンサネットワークに適用することは困難である。このように、センサネットワークで用いるために、小型で低消費電力な暗号回路・暗号装置が広く望まれている。
ところで、共有鍵暗号方式では、「共有鍵を安全に共有できること」が重要であることは言うまでもない。共有鍵を安全に共有できれば、例えばバーナム暗号と呼ばれるストリーム暗号が可能となる。バーナム暗号とは送るメッセージに対してメッセージと等しい長さの秘密鍵(共有鍵)を用いる暗号方式である。このメッセージと等しい長さの一時的な秘密鍵(共有鍵)があれば、メッセージにその秘密鍵(共有鍵)を使って単に排他的論理和を施すだけでも安全であることが知られている。単なる排他的論理和を用いる場合は、ハードウェアは極めてシンプルなものとなる。
本発明は、このような状況に鑑みなされたものであり、その目的は、共有鍵暗号方式における共有鍵を安全に共有するシステムを提供することである。
また、本発明の他の目的は、従来より小型で、また、従来より低消費電力の暗号システム及びそのシステムに用いる装置を実現することである。
上記目的を達成するために、本発明は、暗号化を共有する秘密鍵を2種類用意し、第1の秘密鍵(第1初期鍵と呼ぶ)で一時鍵を暗号化して送信すると共に、第2の秘密鍵(第2初期鍵と呼ぶ)で一時鍵を暗号化して共通の鍵(共有鍵)を得ている。したがって、通信者間で安全に一時的な共有鍵を共有することができる。
また、このように2種の秘密鍵を送信者と受信者の間で共有する手法を採用し、役割を分担させたので、回路規模が大きくなってしまうことを効果的に防止することができる。そのことは同時に消費電力の低減ももたらす。
このように、本願の発明者らは、小型で安全な暗号システムを実現するため、2個の秘密鍵を用いて、暗号処理を、キーロンダリング(Key Laundering)と呼ばれる処理と、メッセージ送信処理とに、分離して実行する手法を開発したのである。
また、後述するように、本発明に係る暗号システム、暗号装置は従来用いられている暗号と同程度の強度を持つものであり、従来の暗号システムと置き換えることが可能である。
以下、具体的に述べる。
(1)上記課題を解決するために、本発明は、第1の通信装置と第2の通信装置とを含む秘密通信システムにおいて、前記第1の通信装置は、第1初期鍵k1と、第2初期鍵k2と、を記憶する送信側秘密鍵記憶手段と、一時鍵rを生成する一時鍵生成手段と、
前記一時鍵rを前記第1初期鍵k1で暗号化し暗号文c1を生成し、前記一時鍵rを前記第2初期鍵k2で暗号化し共有鍵ksを生成する暗号化手段と、前記暗号文c1を前記第2の通信装置に送信する送信手段と、送信側共有鍵生成手段と、を含み、前記第2の通信装置は、第1初期鍵k1と、第2初期鍵k2と、を記憶する受信側秘密鍵記憶手段と、前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する一時鍵復号化手段と、前記一時鍵rを前記第2初期鍵k2で暗号化し、共有鍵ksを生成する受信側共有鍵生成手段と、を含み、前記共有した前記共有鍵ksを用いて秘密通信を行う秘密通信システムである。
このような構成によって、送信側と受信側で安全に共有鍵を共有することができる。特に、一時的な共有鍵を安全に共有することができる。また、本システムによれば、小さな回路規模で暗号による秘密通信を行うことができる。
(2)また、本発明は、上記(1)記載の秘密通信システムに用いられる第1の通信装置において、前記第1初期鍵k1と、前記第2初期鍵k2と、を記憶する前記送信側秘密鍵記憶手段と、前記一時鍵rを生成する前記一時鍵生成手段と、前記一時鍵rを前記第1初期鍵k1で暗号化し前記暗号文c1を生成し、前記一時鍵rを前記第2初期鍵k2で暗号化し前記共有鍵ksを生成する暗号化手段と、前記暗号文c1を前記第2の通信装置に送信する前記送信手段と、前記送信側共有鍵生成手段と、を含み、前記共有鍵を用いた秘密通信を行うことを特徴とする第1の通信装置である。
このような構成によれば、乱数を相手方に送信し、この乱数に基づき共有鍵を生成することができる。
(3)また、本発明は、上記(1)記載の秘密通信システムに用いられる第2の通信装置において、前記第1初期鍵k1と、前記第2初期鍵k2と、を記憶する前記受信側秘密鍵記憶手段と、前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する前記一時鍵復号化手段と、前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する前記受信側共有鍵生成手段と、を含み、前記共有鍵ksを用いて秘密通信を行うことを特徴とする第2の通信装置である。
このような構成によれば、相手方から送られてきた乱数に基づき共有鍵を生成することができる。
(4)また、本発明は、コンピュータを、上記(2)記載の第1の通信装置として動作させるプログラムにおいて、前記コンピュータに、前記一時鍵rを生成する一時鍵生成手順と、前記一時鍵rを前記第1初期鍵k1で暗号化し、前記暗号文c1を生成する一時鍵暗号化手順と、前記暗号文c1を前記第2の通信装置に送信する送信手順と、前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する送信側共有鍵生成手順と、前記共有鍵を用いた秘密通信を行う手順と、を実行させることを特徴とするプログラムである。
このような構成によって、コンピュータを、第1の通信装置として動作させることができる。
(5)また、本発明は、コンピュータを、上記(3)記載の第2の通信装置として動作させるプログラムにおいて、前記コンピュータに、前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する一時鍵復号化手順と、前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する受信側共有鍵生成手順と、前記共有鍵ksを用いて秘密通信を行う手順と、を実行させることを特徴とするプログラムである。
このような構成によって、コンピュータを、第1の通信装置として動作させることができる。
以上述べたように、本発明によれば、通信する者の間で共有鍵を安全に共有することができる。
以下、本発明の好適な実施の形態を図面に基づき説明する。
以下の説明においては、第1章において、本実施の形態において採用する暗号の原理・アルゴリズムを説明する。第2章では、この暗号を実現する装置の構成について説明する。また、第3章では、暗号強度について述べる。第4章では、バリエーションについて述べる。
第1章 原理・アルゴリズム
1.定義
まず、本明細書で用いる記号の定義説明を行う。
n :送信の際に用いる鍵のビット長である。なお、本実施の形態では、送信対象であるメッセージmiのビット長もこのnとしている。このnは、正の整数であるが、一般には、128〜4096(ビット)程度が選ばれるが、それより短いビット長でもよいし、それより長いビット長でもかまわない。
以下の各記号が表すデータや鍵、暗号文、平文などは、本実施の形態では全てnビットである。
mi :送信対象のメッセージであり、nビットから成る。
ksi:送信の際に用いる鍵である。この鍵は、送信者と受信者との間で共有されてお り、この鍵ksiを用いて暗号通信(秘密通信)が行われる。後述するように 、このksiは、第1初期鍵ki1、第2初期鍵ki2とから、生成される。 秘密通信に用いられるこの共有鍵ksiは、請求の範囲における共有鍵ksの 好適な一例に相当する。
ri :送信の際に用いる鍵を生成するための乱数であり、nビットから成る。この乱 数riは、後述する乱数発生手段で発生させる。この乱数riは、一時的に作 成する一時鍵として用いられる。そこで、このriは「一時鍵」と呼ぶ。この 「一時鍵」riは、請求の範囲の一時鍵rの好適な一例に相当する。
c1i:乱数(一時鍵r)を暗号化したデータであり、nビットから成る。
なお、本特許では、鍵kを用いて平文pを暗号化し、暗号文cを得る処理をc =fk(p)と表す。つまり、関数fkは、鍵kを用いて暗号化する関数を意 味する。同様に、f−1k(c)は、暗号文cを復号化する処理を意味する。
すなわち、p=f−1k(c)である。
c2i:送信メッセージMを暗号化した暗号文であり、nビットから成る。
ki1:第1初期鍵であり、nビットから成る。この第1初期鍵ki1は、送信者と受 信者の間で共有されている秘密鍵である。
ki2:第2初期鍵であり、nビットから成る。この第1初期鍵ki1は、送信者と受 信者の間で共有されている秘密鍵である。
なお、上記各記号のiは、1以上の正の整数であり、後述するように鍵の生成の回数を表すものである。例えば、最初の鍵の生成では乱数r1が用いられるが、2回目の鍵の生成の場合は、iは2となり、乱数r2が用いられる。以下同様である。
2. メッセージの送信に用いる共有鍵の生成
本実施の形態において特徴的なことは、送信者と受信者との間のメッセージの暗号化に用いる鍵を第1初期鍵ki1及び第2初期鍵ki2とから生成していることである。本実施の形態では、特にこの処理をキーロンダリング(Key Laundering)と呼んでいる。図1にはこのキーロンダリング処理の概念図が示されている。
この図に示すように、送信者と受信者とは、共に第1秘密鍵ki1と、第2秘密鍵ki2とを保持しており、当然ながら互いにその内容を知っている。
まず、送信者は、所定の乱数発生手段を用いて乱数riを発生させる。そして、この乱数riを第1初期鍵ki1を用いて暗号化し、暗号化文ci1を得る。本実施の形態では、第1初期鍵ki1で暗号化する処理をfki1と記すので、式で表せば、以下の通りとなる。

ci1 = fki1(ri) ・・・(1)

そして、送信者は得られたci1を受信者に送信する。
このような暗号化文ci1を受信した受信者は、暗号化に用いた鍵である第1初期鍵ki1を保有しているので、この第1初期鍵ki1を用いて暗号化文ci1を復号し、元のデータである乱数riを得ることができる。式で表せば以下の通りとなる。

ri = f−1ki1(ci1) ・・・(2)

このようにして、送信者と受信者との間で、乱数riを共有することができた。(図1参照)。
引き続き、受信者はこの共有できた乱数riを第2初期鍵ki2を用いて暗号化することによって、最終的に得たい通信に用いる共有鍵ksiを得る(下記式参照)。

ksi = fki2(ri) ・・・(3)

この式(3)の計算は、第2初期鍵ki2及び乱数riを知っている送信者も行うことができる。したがって、送信者もこの式(3)を計算することによって、共有鍵ksiを得ることができる。
このようにして、送信者と受信者との間で共有鍵ksiを共有することができた後は、この共有鍵を用いた暗号化通信を送信者と受信者との間で実行することができる。共有鍵を用いた暗号化通信は、従来から広く行われているので特段の説明は要しないであろう。
なお、上記iは既に述べたように、鍵の生成の回数を表す数である。特に、共有鍵暗号では、暗号強度を維持するため、定期的に共有鍵を変更することが一般的である。例えば、1週間毎に共有鍵を変更する等の運用が実際に行われている。そのような共有鍵の変更の場合には、またあらためて乱数riの生成から始まる上記プロセス(キーロンダリング)を実行すればよい。このように、上述した各記号のiは、1以上の正の整数であり、共有鍵の生成の回数を表す数である。例えば、一番最初に共有鍵を生成する場合には、乱数r1を生成し、この乱数r1を利用したキーロンダリングプロセスが実行され。共有鍵ks1が生成される。そして、1週間後に共有鍵を変更する場合には、そのときに乱数r2を生成し、上述したキーロンダリングプロセスが再び実行される。そして、最終的に共有鍵ks2が生成され、この共有鍵ks2を用いた暗号通信がその時点から実行される。以下、同様である。このようにして、一時的に共有する共有鍵を、通信する者の間で共有することができる。

第2章 通信装置の実際
本実施の形態に係る通信装置として、送信装置10と受信装置50とを図面に基づき説明する。
1 送信装置
図2には、本実施の形態に係る送信装置10の構成ブロック図が示されている。この送信装置10は、請求の範囲の第1の通信装置の好適な一例に相当する。
この図に示すように、送信装置10は、第1初期鍵ki1と、第2初期鍵ki2とを記憶する記憶手段12を備えている。この第1初期鍵ki1と、第2初期鍵ki2とは、送信側の送信者と受信側の受信者とによって共有されている秘密の鍵であり、上で述べたようにnビット(nは正の整数)長のデータである。
記憶手段12は、データを記憶できるものであれば、どのようなものでもかまわない。磁気的・光学的にデータを記憶するハードディスクや各種光ディスク手段も好ましい。また、フラッシュメモリ等の各種半導体記憶手段を採用することも好ましい。
また、記憶手段12は秘密鍵である第1初期鍵ki1と、第2初期鍵ki2とを記憶するので、装置から外して別途保管するように構成することも好ましい。そのような場合も本請求の範囲の技術的範囲に含まれることは言うまでもない。
また、送信装置10は、第1初期鍵ki1又は第2初期鍵ki2による暗号化を実行する暗号化手段14と、第1初期鍵ki1又は第2初期鍵ki2による復号化を実行する復号化手段16と、を備えている。つまり、暗号化手段14は、暗号化の対象である平文pに対して関数fki1(p)又はfki2(p)を計算し、暗号文cする計算手段である。また、復号化手段16は、復号化の対象である暗号文cに対して関数f−1ki1(c)又はf−1ki2(c)を計算し、元の平文pを復元する計算手段である。
なお、ここで関数fの種類は従来から知られている種々の暗号化のアルゴリズムを採用することが可能である。
このような暗号化手段14、復号化手段16は、速い計算速度を実現するため、一般にハードウェア(LSI等)で構成することが好ましい。もちろん速度を要求しない用途においては、プログラムとこのプログラムを実行するコンピュータから構成してもよい。
特に本実施の形態において特徴的なことは、このハードウェア(LSI等)の規模を小さく抑えることができることである。これについては後に詳述する。
また、送信装置10は、暗号化手段14が暗号化した暗号文を外部に送信し、外部から受信した暗号文を復号化手段16に供給する通信手段20を備えている。この通信手段16は従来から知られている種々の通信手段を用いることができる。無線による通信でもよいし、有線による通信でもよい。例えば、LANインターフェース手段や、インターネットと接続するためのインターフェースでもよい。また、電話通信手段でもよいし、無線による移動体通信のための手段を用いることも好ましい。
さらに、送信装置10は、一時鍵を生成するための一時鍵生成手段22を備えている。この一時鍵生成手段22は、乱数rを一時鍵として生成する乱数発生手段である。したがって、従来から知られている種々の乱数を発生する手段を用いることが可能である。処理速度の点から所定のハードウェアを用いて構成することが好ましいが、用途によっては乱数発生プログラムと、そのプログラムを実行するコンピュータから構成することも好ましい。
本実施の形態で特徴的なことは、この一時鍵生成手段22が生成する一時鍵が、正規の送信者や受信者も知ることができないように隠されている点である。このように、正規の送信者や受信者ですら共有鍵の生成に使われる一時鍵(乱数)が何かを知ることができないので、本実施の形態では暗号強度を維持することが可能となる。詳細は後述する。
2 受信装置
図3には、本実施の形態に係る受信装置50の構成ブロック図が示されている。この図に示すように、受信装置50は、既に説明した上述した第1初期鍵ki1と、第2初期鍵ki2とを記憶する記憶手段52を備えている。この第1初期鍵ki1と、第2初期鍵ki2とは、送信側の送信者と受信側の受信者とによって共有されている秘密の鍵である。
また、この記憶手段52は、上記記憶手段12と同様にデータを記憶できる各種装置を利用可能である。
また、受信装置50は、第1初期鍵ki1又は第2初期鍵ki2による暗号化を実行する暗号化手段54と、第1初期鍵ki1又は第2初期鍵ki2による復号化を実行する復号化手段56と、を備えている。
暗号化手段54は、上述した暗号化手段14と同様のものである。また、復号化手段56は、上述した復号化手段16と同様のものであり、同様の動作を実行する。また、上述した暗号化手段14と復号化手段16と同様に、速い計算速度を実現するため、一般にハードウェア(LSI等)で構成することが好ましい。本実施の形態において特徴的なことは、このハードウェア規模を減少させることができることであり、その結果、消費電力の低減を実現できることである。
なお、暗号化手段54は、請求の範囲の受信側共有鍵生成手段の好適な一例に相当する。また、復号化手段56は、請求の範囲の一時鍵復号化手段の好適な一例に相当する。
また、受信装置50は、暗号化手段54が暗号化した暗号文cを外部に送信し、外部から受信した暗号文cを復号化手段56に供給する通信手段60を備えている。この通信手段60は、上述した通信手段20と同様に従来から知られている種々の通信手段を用いることができる。このように受信装置50は、一時鍵生成手段22を備えていない点を除き、上記送信装置10と同様の構成である。
なお、本実施の形態では、説明の便宜上、送信装置10と受信装置50に分けて説明しているが、実際には受信装置50側にも一鍵生成手段22を備えさせ、送信装置10としても動作しうるように構成するのが一般には好ましい。その場合は、一時鍵riを生成する側が「送信装置」となり、他方が「受信装置」となる。
このように本実施の形態では、一時鍵riを生成する側を説明の都合上「送信装置」と呼び、他方を「受信装置」と呼んでいるが、両者にそれ以上の相違点はない。上で述べたように、いずれか一方の通信装置が一時鍵を生成すればよい。
本実施の形態において特徴的なことは、一時鍵riを送信者側も受信者側も知ることができない点である。このような特徴によって、送信者と受信者との間で共有鍵を安全に共有することができる。知ることができないとは、この一時鍵riを送信者や受信者に知らせるための特段の表示手段や報知の手段を備えていないことを意味する。
3 動作
図2及び図3に示された送信装置10及び受信装置50による通信の動作は、図1で示した動作と原理的には同様の動作である。
(1)通信を開始しようとする送信者は、送信装置10を操作して一時鍵riを生成する。
本実施の形態において特徴的なことは、この乱数である一時鍵riが外部に公開されていないことである。このような構成によって、送信者と受信者との間で後述する共有鍵ksを安全に共有することが可能となる。
(2)次に、この一時鍵riを暗号化手段14で暗号化(ci1=fki1(ri))し、暗号文ci1を得る(図2参照)。この暗号化で用いる鍵は第1初期鍵ki1である。また、このとき、一時鍵riは、外部には供給されず、送信者にも知らされない。
(3)このci1は、通信手段20が、所定の通信路を介して受信者の受信装置50に送信する。
(4)さらに、送信装置10における暗号化手段14は、一時鍵riを第2初期鍵ki2でも暗号化し、その結果を共有鍵ksとして用いる。すなわち、ks=fki2(ri)を計算するのである。このようにして得られた共有鍵ksは、復号化手段16にも供給され、以降、この秘密の共有鍵ksを用いた暗号化通信が可能となる。
(5)一方、暗号文ci1が送られてきた受信装置50においては、通信手段60がこの暗号文ci1を受信する(図3参照)。通信手段60は、この暗号文ci1を復号化手段56に供給する。
(6)通信手段60は、受信した暗号文ci1を復号化手段56に供給する。
(7)復号化手段56は、この暗号文ci1を第1初期鍵ki1を用いて復号化(ri=f−1ki1(ci))し、元の一時鍵riを得る。この一時鍵riは暗号化手段54に供給される。このとき、一時鍵riは外部に公開はされない。そのため、送信者だけでなく受信者も一時鍵riを知ることはない。
本実施の形態において特徴的なことは、このように一時鍵riが、送信者にも受信者にも公開されていないことである。このような構成によって、送信者と受信者との間で安全に共有鍵ksを共有することができ、この共有鍵ksを用いた暗号通信を実行することが可能である。
(8)暗号化手段54は、復号した一時鍵riを、第2初期鍵ki2を用いて暗号化することによって、共有鍵ksを得る(ks=fki2(ri))。
以上のような動作によって、送信者と受信者は、共通の秘密の共有鍵ksを安全に得ることができた。以降は、この秘密の共有鍵ksを用いて暗号化・復号化を行うことによって暗号通信を実行するとができる。秘密の共有鍵を用いた暗号通信は従来からよく知られているものであるため、ここでは詳細な説明は省略する。

4 暗号化・復号化
4−a 擬似コード
本実施の形態において用いている暗号化・復号化のアルゴリズムを説明する。
本実施の形態において用いている暗号化関数fk(p)は、コンピュータコード風に記述すれば(擬似コードとも呼ぶ)、
fk(p):
for (j=0; j<n−1; j++) {
if (k[j] = = 1) {
p[j]とp[j+1]を入れ替える。
(ただしp[n]はp[0]と読み替える)。


となる。ここで、pは平文であり、上記処理後のpが暗号文cとなる。また、k[j]は、鍵kのjビット目を表す。鍵kはnビットであるので、k[0]〜k[n−1]までビットが存在する。また、p[j]は、平文pのjビット目を表す。平文pはnビットであるので、p[0]〜p[n−1]までビットが存在する。
上記コードは、変数jを初期値0から始め、インクリメント(+1)していき、最終的にjがn−2となるまで、次の処理を繰り返すものである。
ここで言う次の処理とは、鍵kのjビット目の値が「1」の場合に、平文pのjビット目とj+1ビット目の値を交換する処理である。この処理を順次j=0〜n−2の間で繰り返し、処理が終了した場合に、最終的に得ようとする暗号文cが完成する。
また、本実施の形態において用いている復号化関数f−1k(c)は、上記暗号化関数fkと処理的にはまったく同様である。すなわちコンピュータコード風に記述すれば(擬似コードとも呼ぶ)、
−1k(c):
for (j=0; j<n−1; j++) {
if (k[j] = = 1) {
c[j]とc[j+1]を入れ替える。
(ただしc[n]はc[0]と読み替える)。


となる。ここで、cは暗号文であり、上記処理後のcが原文(平文)であるpとなる。したがって、図2や図3の例では、暗号化手段14、54と、復号化手段16、56とを別体に表したが、共通のハードウェアを用いることも可能である。ただし、送信と受信とを同時に実行することを可能にするためには、暗号化と復号化にそれぞれ専用のハードウェアを備えさせた方が好ましい。
なお、本実施の形態においては上記のような暗号化・復号化のアルゴリズムを用いているが、従来から知られている他のアルゴリズムを用いることももちろん好ましい。
4−b ハードウェアの実際
図4には、上記4−aで述べた暗号関数を処理するための暗号化手段14(又は復号化手段16)のハードウェアの構成概念図が示されている。この図に示すように、暗号化手段14は、3個のnビットレジスタから構成される。まず、暗号化手段14は、暗号化の鍵kを格納する鍵レジスタ14aを備えている。この鍵レジスタ14aには、鍵の各ビットk1、k2、k3、・・・、knが格納されている。また、暗号化手段14は、データレジスタ14bと、テンポラリーレジスタ14cとを備えている。これらもまたnビットのレジスタである。
暗号化を行うには、このデータレジスタ12bに平文pをまず格納する。すなわち、データレジスタ12bの各ビットD1、D2、D3、・・・Dnには、それぞれ、平文pの各ビットp1、p2、p3・・・pnが格納される。データレジスタ12bはいわゆるシフトレジスタを構成しており、図4の左方向から平文pの各ビットがシリアルにデータレジスタに読み込まれる。
次に、上述したように、鍵kの各ビットの値に基づき、その値が「1」であれば対応する平文pの2ビットを交換していく。この交換は、既に擬似コードで説明したように、k1ビットに対応する平文pの2ビットから開始し、以下順次、k2、k3・・・knまで順次交換が行われる。
このビットの交換処理は、いずれか一方のビットをテンポラリーレジスタ12cに退避し、他方のビットを一方のビットに移動させ、最後に、退避していたビットの値を他方のビットに移動させることによって行われる。このようにテンポラリーレジスタ12cはビット交換の際の一時退避場所として用いられる。
4−c ハードウェア量
上記図4に示すような暗号化回路に必要なゲート数を算出する。ゲート数はその回路をLSI等で構成した場合の規模の目安となるよい基準であるので、このゲート数によって回路規模のおおよその目安を付けることが可能である。
ここでは、鍵kや平文pのビット長nが128ビットである場合について求める。
まず、鍵レジスタ12aは、1ビットを保持するのに4ゲートでフリップフロップを構成する必要がある。そこで、4ゲート×128ビットとなり、この結果512ゲート必要となる。次にデータレジスタ12bは、同様の理由で、4ゲート×128ビットとなり、この結果512ゲート必要となる。またテンポラリーレジスタ12cは図4では128ビット分必要であるかのように記載したが、交換は、一度にたかだか1ビットしか行われない。そこで、テンポラリーレジスタ12cは実質的には1ビットのみ保持できればよく、その結果4ゲート必要となる。
以上のようにして、図4のハードウェアの場合は、必要な総ゲート数は合計1028ゲート(=512+512+4)となる。
これに対して、上述した非特許文献3等によれば、AESに利用される半導体集積回路(LSI)は約15,000ゲート程度の規模である。したがって、本実施の形態によれば、従来の暗号方式と比べて回路規模を小さくすることができ、センサネットワークのように、非常に小さい装置にも実装可能な暗号方式を実現することが可能である。
また、回路規模が小さいことに伴って、消費電力の低減も図ることが可能となる。
第3章 暗号強度
一般に暗号の強度で問題になるのは
・選択平文攻撃(任意のメッセージを与えその暗号文から鍵を推定する)
・選択暗号文攻撃(任意の暗号文を与えその対応する平文から鍵を推定する)
である。しかし、上述したように、本実施の形態においては、送信者はハードウェアで生成される乱数(一時鍵ri)を知ることができず、受信者もハードウェアで復号される乱数(一時鍵ri)を知ることはできない。
したがって、第三者は、上記いずれの攻撃も本暗号方式に適用することはできない。さらに、その乱数(一時鍵ri)から最終的に生成される共有鍵ksは、万が一盗聴者に盗聴され、その内容が知られてしまった場合でも、生成の元となった乱数(一時鍵ri)を知ることができなければ、やはり上記の攻撃はいずれも不可能である。
一回の通信における暗号方式は上記「選択平文攻撃」や「選択暗号文攻撃」にそれほど強くなくても、2つの暗号を組み合わせることによって、いずれの攻撃に対しても強い暗号を実現することが可能となったのである。
なお、この2つの暗号を組み合わせた場合、盗聴者が得ることができる可能性のある情報は、乱数(一時鍵(ri)を暗号化して受信者に送付する際に通信路に現れるコード、すなわちCi1(=fki1(ri))と、共有鍵ksと、である。ここで、共有鍵ks自体は、メッセージを盗聴者が生成して選択平文攻撃が成功すれば得ることができる。
そして、本実施の形態並びに本発明において重要な点は、知る可能性のあるこの二個の情報(fki1(ri)、及び、共有鍵ks)はいずれもシステムが自動生成するコードであり、盗聴者は任意に選ぶことはできないという点である。
このような構成によって、盗聴者が実行できる攻撃は、一般には既知平文攻撃のみとなる。この既知平文攻撃とは、与えられたメッセージに対する暗号文から鍵を推定する攻撃手法である。したがって、このように2種の暗号を合わせた結果、既知平文攻撃だけを検討し、対応すれば、暗号通信は安全なものとなる。
さて、共有鍵暗号方式の代表的な例であるRSAもAESも「選択平文攻撃」や「選択暗号文攻撃」に対する強度を高めるために極めて複雑な処理をしている。これに対して、本実施の形態及び本発明の手法によれば、個々の暗号回路はそのいずれの強度も保障する必要がなくなるというメリットを有している。
このようなメリットが得られるための条件は、「暗号方式を2個組み合わせた結果が既知暗号文攻撃に強いこと」という条件のみである。この条件は、演算が可換でなければ容易に達成できる。
したがって、上述した例においては、例としてビットの交換をする暗号処理を説明した。このビットの交換は、排他的論理和を取るという暗号処理と同様に極めてシンプルに構成できるので、本実施の形態によれば、結果的に回路が小型化できるという効果が得られよう。なお、ビットの交換をする暗号処理の場合は、ハードウェアの大部分は、排他的論理和でも交換でもなく、データを一時的に退避するためのレジスタになります。
第4章 コンピュータ及びプログラムによるインプリメント
図2及び図3に記載した例では、暗号化手段14、54、復号化手段16、56等がLSIなどのハードウェアで構成される例を説明したが、用途によっては、図2や図3に記載の構成を、コンピュータ及びそのコンピュータが実行するプログラムで実現することも好ましい。
コンピュータには、ハードディスク等の記憶手段が備えられている場合が多い。したがって、このハードディスク等を、記憶手段12、52として用いることが可能である。第1初期鍵ki1や、第2初期鍵ki2の安全な保管のために、記憶手段12、52を可搬型の記憶媒体を用いて構成することも好ましい。例えば、フラッシュメモリにこれらの鍵を格納しておき、使用する毎にコンピュータに接続し、使用しない場合は、別途金庫の中等に保管しておくことも場合によっては好ましいであろう。もちろんこのような場合も本発明の技術的範囲に属することは言うまでもない。
また、プログラムによって、暗号化手段14、54や復号化手段16、56を実現することも容易である。第3章において擬似コードでこれら暗号化手段14、54や復号化手段16、56の動作を記述したが、この記述をプログラムとしてコンピュータに実行させることが好ましい。このようにすれば、コンピュータが、暗号化手段14、54や復号化手段16、56として動作するので、送信装置10や受信装置50を容易に実現可能である。
また、一般にコンピュータは、外部との通信手段を備えている。例えば、インターネットと接続する手段、LAN(ローカルエリアネットワーク)と接続する手段、その他種々の通信手段を備えているので、これらを用いて通信手段20、60を構成することは容易である。
さらに、乱数を発生することは、コンピュータの基本的な機能の一種として昔から使用されている。コンピュータ言語の中には乱数を発生する関数を有するものもあり、また、乱数をコンピュータ上で乱数を発生するアルゴリズムも大昔から知られている。したがって、コンピュータに乱数を発生させるプログラムを作成することは容易である。その結果、乱数発生手段である一時鍵発生手段22、62をコンピュータ及びその実行するプログラムから構成することは容易である。
動作
以上のようなプログラムに基づき、コンピュータは暗号通信を以下のように実行する。
(1)まず、送信側のコンピュータは乱数発生プログラムを実行し、所定のnビットの乱数を生成し、一時鍵riを生成する。
(2)次に、送信側のコンピュータは、この一時鍵riを暗号化プログラムを実行し、第1初期鍵ki1を用いて暗号化(ci1=fki1(ri))し、暗号文ci1を得る。第1初期鍵は予めハードディスク等の記憶手段に格納しておく。
また、このとき、一時鍵riは、外部には供給されず、送信者にも知らされない。この手順は、請求の範囲の送信側一時鍵暗号化手順の好適な一例に相当する。
(3)この暗号文ci1は、送信側のコンピュータが所定の通信インターフェースを利用して所定の通信路を介して相手方に送信する。
(4)さらに、送信側のコンピュータは一時鍵riを第2初期鍵ki2でも暗号化し、その結果を共有鍵ksとして用いる。すなわち、暗号化プログラムを実行してks=fki2(ri)を計算するのである。この第2初期鍵ki2もハードディスク等所定の記憶手段に格納しておく。この動作は、請求の範囲の送信側共有鍵生成手順の好適な一例に相当する。また、このようにして得られた共有鍵ksは、以降の暗号通信の復号にも用いるべく、所定の記憶手段に格納しておく。
(5)一方、暗号文ci1が送られてきた受信側のコンピュータは、所定の通信インターフェースを用いて上記暗号文ci1を受信する。受信した暗号文ci1を復号化手段56に供給する。
(6)受信側のコンピュータは、復号化プログラムを実行し、受信した暗号文ci1を第1初期鍵ki1を用いて復号化(ri=f−1ki1(ci))し、元の一時鍵riを得る。第1初期鍵ki1は、予めハードディスク等の所定の記憶手段に格納しておく。この動作は、請求の範囲の一時鍵復号化手順の好適な一例に相当する。
(7)受信側のコンピュータは、暗号化プログラムを実行し、復号した一時鍵riを、第2初期鍵ki2を用いて暗号化することによって、共有鍵ksを得る(ks=fki2(ri))。この第2初期鍵ki2も、予めハードディスク等所定の記憶手段に格納しておく。この動作は、請求の範囲の受信側共有鍵生成手順の好適な一例に相当する。
また、受信側コンピュータは得られた共有鍵ksを、以降の暗号通信に用いるため、所定の記憶手段に格納しておく。
以上のような動作によって、送信側のコンピュータと、受信側のコンピュータは、共通の秘密の共有鍵ksを得ることができた。以降は、この秘密の共有鍵ksを用いて暗号化・復号化を行うことによって暗号通信を実行するとができる。
なお、上述の実施の形態では、送信者も受信者も一時鍵riを知ることがない構成を説明したが、場合によっては、送信者や受信者が一時鍵riを知ることができる構成を採用してもよい。盗聴者となりうる第三者に知られないことが達成できれば、暗号強度を維持できるので、一定の要件の下で、送信者や受信者が一時鍵riを知ることができるような構成も、本特許の技術的範囲に含まれる。
ただし、一般的には、この一時鍵は通信の度に生成される文字通り一時的なものであるため、送信者や受信者が知る必要性は少ない。そのため、一般的には、先に述べたように、送信者も受信者も一時鍵riを知ることができないように構成することが好ましく、また便利な場合が多いであろう。

第5章 共有鍵の生成処理(Key Laundering)の変形例
上記第1章〜第4章において述べた共有鍵Ksiの生成処理の変形例を説明する。
1.鍵の長さ
まず、第1章においては、共にnビットの第1初期鍵ki1、第2初期鍵ki2を用いたが、本章では、長さの異なる鍵を使用する
第1初期鍵ki1:2nビットの鍵
第2初期鍵ki2:nビットの鍵
共有鍵Ksi :nビットの鍵
ここで、nは、正の整数であり、第1章と同様に送信対象のメッセージmiのビット数と等しい数である。
2.暗号化関数
第1章〜第4章で述べた暗号化関数fkは、第1初期鍵ki1第2初期鍵ki2共に同じ関数を用いていた(例えば鍵との排他的論理和を取る等)。しかし、本章では、第1初期鍵ki1を用いた暗号化関数fki1と、第2初期鍵ki2を用いた暗号化関数fki2とは異なる形の関数を採用する。
本章では、上記第1章〜第4章と区別するために、特に第1初期鍵ki1を用いた関数fki1を「E1」と記し、第2初期鍵fki2を用いた関数fki2を「E2」と記す。
3.送信者側の処理・受信者側の処理
3−a.
送信者側においては、一時鍵riを、関数E1で暗号化し、得られた暗号文Ci1を受信者側に送信する。また、送信者側においては、一時鍵riを、関数E2で暗号化し、共通鍵Ksiを得る。
受信者側においては、暗号文Ci1を、関数E1の逆関数E1−1で復号し、一時鍵riを得る。さらに、受信者側においては、一時鍵riを、関数E2で暗号化し、共通鍵Ksiを得る。
以上のような処理によって送信者と受信者とは共通鍵ksiを共有することができる。この動作自体は、上記第1章〜第4章と同様である。
3−b. E1、E2の内容
関数E1
受信者側においては、送信されてきたCi1に対して逆関数E1−1を適用する。この逆関数E1−1のテーブルの一例を図6に示す。
図6においては、第1初期鍵ki1が4ビット(すなわちn=2)の例を示す。そして、逆関数E1−1は、
(1)鍵の前半の2ビットを加算する。
(2)鍵の後半の2ビットを排他的論理和する。
と言う、算術演算(加算)と、論理演算(排他的論理和)とを順に適用する関数である。
図6には、送信されてきた2ビットの暗号文Ci1が、この逆関数E1−1」によってどのように変換されるかを示すテーブルが示されている。このテーブルは、2ビットの空間から2ビットの空間への写像を表すことは言うまでもない。
例えば、このテーブルの最上段の例では、第1初期鍵ki1が「0000」である場合の写像が示されている。この第1初期鍵ki1の前半の2ビット「00」が送信されてきたCi1に加算され、次に後半の2ビットである「00」との排他的論理和が取られる。
その結果、「00、01、10、11」という2ビット空間は、「00、01、10、11」という空間に写像(マッピング)される。
なお、図6において、第1初期鍵ki1が「0000」である場合の写像において、「+:00、XOR:00」は、第1初期鍵ki1の前半2ビットである「00」を算術的に加算し、後半の2ビットである「00」を排他的論理和することを意味する。その他の表示も同様である。
ところで、最上段に示されているように、第1初期鍵ksiが「1010」の場合も、この逆関数E1−1は「0000」の場合と同様の写像となる。
第1初期鍵ki1は4ビットであるので、16通りの値を取りうるが、同じ写像となる鍵が本実施の形態では2個ずつ存在するので、結果として8種類の写像が存在することになる。したがって、図6のテーブルでは、8種類の写像が示されているのである。
受信者側では、送信側から送られてきたCi1(=E1(ri))を上記逆関数E1−1で復号し、riを復元する。上で説明したように、このriに関数E2(fki2)を適用すれば、送信側と共通の共有鍵ksiを得ることができる。
関数E2
関数E2のテーブルの一例を図7に示す。
図7においては、第2初期鍵ki2が2ビット(すなわちn=2)の例を示す。そして、関数E2は、
(1)鍵の2ビットに基づき、ビットの置き換えを行う。
(2)鍵の2ビットを排他的論理和する。
と言う、演算を順に適用する関数である。
ビットの置き換え
ここで、ビットの置き換え(Permutate)は、以下のような演算である。
j = 1 to n まで下記処理を繰り返す。
If j<>n
then If k(j)=1
then m(j) <−> m(j+1)
If k(j)=0
then do nothing (何もしない)
If j=n
then If k(j)=1
then m(j) <−> m(1)
If k(j)=0
then do nothing (何もしない)
end
なお、ここで、k(j)は、鍵のjビット目を意味する。図7の例では、第2初期鍵ki2が2ビットの例を示しているので、k(1)と、k(2)とがある。また、m(j)は、演算対象であるメッセージのjビット目を意味する。図7の例では、2ビットの例を示しているので、m(1)と、m(2)とがある。さらに、また、<−>は、ビットの置き換え(ビットの値の交換)を表す。
例えば、m(1)が「0」であり、m(2)が「1」の場合、これらを置き換え(Permutate)すると、m(1)は、「1」となり、m(2)は「0」となる。
図7には、2ビットのデータが関数E2によってどのように変換されるかを示すテーブルが示されている。このテーブルは、2ビットの空間から2ビットの空間への写像を表すことは言うまでもない。
例えば、このテーブルの中間段階p(k2)の最上段の例では、第2初期鍵ki2が「00」である場合の写像が示されている。この場合、第2初期鍵ki2の全ビットが0であるので、置き換えは一切行われない。そのため、中間段階であるP(k2)においては、恒等写像となっている。
なお、第2初期鍵ki2が「11」の場合も、中間段階であるp(k2)においては、恒等写像となる。これは、第2初期鍵ki2の第1ビット目が「1」であるので、メッセージの第1ビットm(1)と、第2ビットm(2)とが交換される。さらに第2初期鍵ki2の第2ビット目も「1」であるので、メッセージの第2ビットm(2)と、第1ビットm(1)とが交換される。この結果、図7の中間段階であるp(k2)においては恒等写像となり、第2初期鍵ki2が「00」の場合と同様である。なお、図7において、Permutate:XXは、鍵「XX」に基づく置き換え(ビットの交換)を意味し、例えば、Permutate:00は、鍵「00」に基づく置き換え処理を意味する。
さて、図7の中間段階p(k2)の2段目には第2初期鍵ki2が「10」及び「01」の場合の例が示されている。これらの中間段階p(k2)は同様の中間結果となる。
排他的論理和
次に、関数E2は、上記置き換えの後、同じく第2初期鍵ki2による排他的論理和を取る。この動作が図中XOR:XXで示されており、鍵XXと排他的論理和を取る処理を意味する。例えば、XOR:00は、鍵「00」を、処理対象であるメッセージと排他的論理和を取る処理である。
この結果、図7のE2(k2)の第1段目には第2初期鍵ki2が「00」である場合の変換後のメッセージの内容が示されている。ここに示されているのは、2ビット空間から2ビット空間への写像であることは言うまでもない。同様に、第2段目には第2初期鍵ki2が「11」である場合の写像が示されている。同様に、第3段目、第4段目には、第2初期鍵ki2が「01」「11」の場合の写像が示されている。
共有鍵Ksiの生成
さて、受信側では、送信側から送られてきたCi1を、これまで説明した逆関数E1−1を適用し、さらに関数E2を適用すれば、共有鍵Ksiが得られる。この逆関数E1−1と、関数E2によるトータルの写像の結果が図8に示されている。
鍵のエントロピー
さて、E1、E2にこのような関数を採用した場合、鍵の選択によっては、同じ写像となってしまう場合がある。そこで、鍵のエントロピーの値がどの程度に成るのかを知ることは暗号強度を検討する上で重要である。以下、エントロピーの値が、第1初期鍵ki1のエントロピーと第2初期鍵ki2のエントロピーのいずれか小さい方、すなわち、min(H(ki1)、H(ki2))より大きいことを示す。
この実施例では、n=2であり、第1初期鍵ki1は、2n、すなわち4ビットであり、第2初期鍵ki2は、n、すなわち2ビットであることを思い出されたい。
まず、第1初期鍵ki1のエントロピーH(ki1)を求めよう。
図6で既に示したように、4ビットの第1初期鍵ki1に関し取りうる写像は8種類である。そのため、
H(ki1) = (−(2/2)log(2/2))×8
= 3
となる。
次に、第2初期鍵ki2のエントロピーH(ki2)を求めよう。
図7で既に示したように、2ビットの第2初期鍵ki1に関し取りうる写像は4種類ある。そのため、
H(ki2) = (−(2/2)log(2/2))×4
= 2
となる。したがって、min(H(ki1)、H(ki2))は、2ビットである。
次に、全体の処理におけるエントロピーH(ki1、ki2)を求めよう。
図8で既に示したように、合計6ビットの「第1初期鍵ki1と第2初期鍵ki2」に関し取りうる写像は24種類ある。そのため、
H(ki1、ki2)
= (−(2/2)log(2/2))×24
= 4.5
以上のことから、
H(ki1、ki2)=4.5 > 2=min(H(ki1)、H(ki2))と言える。
4.処理の実例
上記3.では、送信側及び受信側の基本的な動作を説明した。この動作においては算術加算「+」が用いられているが、実際に処理を行う場合、処理速度を向上させるために、部分加算を実行することが好ましい。以下、そのような動作を具体的に説明する。
4−a. 送信者側
送信者側の動作を説明する。コンピュータの擬似コード風にアルゴリズムを記述する。

Step1. 乱数riの生成。
Step2.
if (nが偶数){
for (p=0; p < n; p=p+2)
ri1[p:p+1] ← ri[p:p+1] + k1[p:p+1]
(ここで、ri[p+1] + k1[p+1]のキャリーは無視する)

else if (nが奇数) {
ri1[0] ← ri1[0] + k1[0] (キャリーは無視する)
for (p=1; p < n; p=p+2)
ri1[p:p+1] ← ri[p:p+1] + k1[p:p+1]
(ここで、ri[p+1] + k1[p+1]のキャリーは無視する)

このような処理によって、乱数riから、中間変数ri1を生成する。このような加算の動作は図9にも示されている。上記コード及び図9に示すように、2ビットずつまとめて加算が行われる。2ビットを超えるキャリーは無視する。
Step3.ci1 ← ri1 EXOR k1[n:2n−1].
乱数ri1と、第1初期鍵ki1のビットとをそれぞれ排他的論理和を取り、得られた数をci1に入れる。このci1は、受信者側に送信される。
Step4.
for (p=0; p < n; p++) {
if(k2[p] = = 1){
ri2[p] <− ri[p+1]
ri2[p+1] <− ri[p]
(ri2[n] はri2[0]であることに注意)


Step6. 共有鍵Ksiにri2を代入する。
このようにして、乱数riから、中間変数ri2を生成する。
以上のようにして、送信者側のKey Laundering処理が行われ、共有鍵ksiが得られる。
4−b. 受信者側
受信者側の動作を説明する。コンピュータの擬似コード風にアルゴリズムを記述する。ci1は、送信者側から送信されてきたメッセージである。

Step1. ri1 ← ci1 EXOR k1[n:2n−1].
このような処理によって、受信したメッセージci1から中間変数ri1を作成する。

Step2.
if (nが偶数) {
for (p=0; p < n; p=p+2)
ri[p:p+1] ← ri1[p:p+1] − k1[p:p+1]

else if (nが奇数) {
ri[0] ← ri1[0] − k1[0]
for (p=1; p < n; p=p+2)
ri[p:p+1] ← ri1[p:p+1] + k1[p:p+1]

このような処理によって、ri1から乱数riを作成する。
上記ステップ2の減算は、図10にも示されている。上記コード及び図10に示すように、2ビットずつまとめて減算が行われる。2ビットを越えるキャリー(ボロー)は無視する。

Step3.
for (p=0; p<n−1; p++) {
if (k2[p] = = 1) {
ri2[p] <− ri[p+1]
ri2[p+1] <− ri[p]
(ここで、ri[n]はri[0]であることに注意)


(#このような処理によって、中間変数ri2をriから作成する)
Step4. ksiにriを代入
以上のようにして、受信者側のKey Laundering処理が行われ、共有鍵ksiが得られる。なお、「++」は、インクリメント、すなわち+1する動作を意味する。
本実施の形態の原理を説明する説明図である。 本実施の形態の送信装置の構成ブロック図である。 本実施の形態の受信装置の構成ブロック図である。 暗号化手段の構成概念図 盗聴者が選択平文攻撃を起こす場合の動作の概念図である。 逆関数E1−1のテーブルを表す図である。 関数E2のテーブルを表す図である。 逆関数E1−1と、関数E2によるトータルの写像の結果を示す説明図である。 第5章で説明する送信側における加算の具体的な動作の説明図である。 第5章で説明する送信側における減算の具体的な動作の説明図である。
符号の説明
10 送信装置
12 記憶手段
14 暗号化手段
14a 鍵レジスタ
14b データレジスタ
14c テンポラリーレジスタ
16 復号化手段
20 通信手段
50 受信装置
52 記憶手段
54 暗号化手段
56 復号化手段
60 通信手段

Claims (5)

  1. 第1の通信装置と第2の通信装置とを含む秘密通信システムにおいて、
    前記第1の通信装置は、
    第1初期鍵k1と、第2初期鍵k2と、を記憶する送信側秘密鍵記憶手段と、
    一時鍵rを生成する一時鍵生成手段と、
    前記一時鍵rを前記第1初期鍵k1で暗号化し暗号文c1を生成し、前記一時鍵rを前記第2初期鍵k2で暗号化し共有鍵ksを生成する暗号化手段と、
    前記暗号文c1を前記第2の通信装置に送信する送信手段と、
    送信側共有鍵生成手段と、
    を含み、
    前記第2の通信装置は、
    第1初期鍵k1と、第2初期鍵k2と、を記憶する受信側秘密鍵記憶手段と、
    前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する一時鍵復号化手段と、
    前記一時鍵rを前記第2初期鍵k2で暗号化し、共有鍵ksを生成する受信側共有鍵生成手段と、
    を含み、
    前記共有した前記共有鍵ksを用いて秘密通信を行う秘密通信システム。
  2. 請求項1記載の秘密通信システムに用いられる第1の通信装置において、
    前記第1初期鍵k1と、前記第2初期鍵k2と、を記憶する前記送信側秘密鍵記憶手段と、
    前記一時鍵rを生成する前記一時鍵生成手段と、
    前記一時鍵rを前記第1初期鍵k1で暗号化し前記暗号文c1を生成し、前記一時鍵rを前記第2初期鍵k2で暗号化し前記共有鍵ksを生成する暗号化手段と、
    前記暗号文c1を前記第2の通信装置に送信する前記送信手段と、
    前記送信側共有鍵生成手段と、
    を含み、前記共有鍵を用いた秘密通信を行うことを特徴とする第1の通信装置。
  3. 請求項1記載の秘密通信システムに用いられる第2の通信装置において、
    前記第1初期鍵k1と、前記第2初期鍵k2と、を記憶する前記受信側秘密鍵記憶手段と、
    前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する前記一時鍵復号化手段と、
    前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する前記受信側共有鍵生成手段と、
    を含み、
    前記共有鍵ksを用いて秘密通信を行うことを特徴とする第2の通信装置。
  4. コンピュータを、請求項2記載の第1の通信装置として動作させるプログラムにおいて、前記コンピュータに、
    前記一時鍵rを生成する一時鍵生成手順と、
    前記一時鍵rを前記第1初期鍵k1で暗号化し、前記暗号文c1を生成する一時鍵暗号化手順と、
    前記暗号文c1を前記第2の通信装置に送信する送信手順と、
    前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する送信側共有鍵生成手順と、
    前記共有鍵を用いた秘密通信を行う手順と、
    を実行させることを特徴とするプログラム
  5. コンピュータを、請求項3記載の第2の通信装置として動作させるプログラムにおいて、前記コンピュータに、
    前記第1の通信装置から送られてきた前記暗号文c1を前記第1秘密鍵を用いて復号し、前記一時鍵rを生成する一時鍵復号化手順と、
    前記一時鍵rを前記第2初期鍵k2で暗号化し、前記共有鍵ksを生成する受信側共有鍵生成手順と、
    前記共有鍵ksを用いて秘密通信を行う手順と、
    を実行させることを特徴とするプログラム。

JP2006025527A 2005-02-10 2006-02-02 秘密通信システム及び通信装置及びプログラム Pending JP2006254417A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006025527A JP2006254417A (ja) 2005-02-10 2006-02-02 秘密通信システム及び通信装置及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005033887 2005-02-10
JP2006025527A JP2006254417A (ja) 2005-02-10 2006-02-02 秘密通信システム及び通信装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2006254417A true JP2006254417A (ja) 2006-09-21

Family

ID=37094361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006025527A Pending JP2006254417A (ja) 2005-02-10 2006-02-02 秘密通信システム及び通信装置及びプログラム

Country Status (1)

Country Link
JP (1) JP2006254417A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008227846A (ja) * 2007-03-12 2008-09-25 Ricoh Co Ltd グルーピング方法、無線通信システム、無線機器、乱数配信端末、グルーピングプログラム及び記録媒体
JP2009540707A (ja) * 2006-06-13 2009-11-19 エヌイーシー ヨーロッパ リミテッド 秘密鍵確立プロセス

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212039A (ja) * 1988-02-19 1989-08-25 Toshiba Corp 暗号化鍵共有装置
JPH02195377A (ja) * 1989-01-24 1990-08-01 Matsushita Electric Ind Co Ltd 鍵共有機能付きicカード
JP2000078669A (ja) * 1998-08-28 2000-03-14 Lucent Technol Inc セッションキ―を確立する方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01212039A (ja) * 1988-02-19 1989-08-25 Toshiba Corp 暗号化鍵共有装置
JPH02195377A (ja) * 1989-01-24 1990-08-01 Matsushita Electric Ind Co Ltd 鍵共有機能付きicカード
JP2000078669A (ja) * 1998-08-28 2000-03-14 Lucent Technol Inc セッションキ―を確立する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540707A (ja) * 2006-06-13 2009-11-19 エヌイーシー ヨーロッパ リミテッド 秘密鍵確立プロセス
JP2008227846A (ja) * 2007-03-12 2008-09-25 Ricoh Co Ltd グルーピング方法、無線通信システム、無線機器、乱数配信端末、グルーピングプログラム及び記録媒体

Similar Documents

Publication Publication Date Title
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
Panda Data security in wireless sensor networks via AES algorithm
Kuang et al. Quantum permutation pad for universal quantum-safe cryptography
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
Sarkar et al. Role of cryptography in network security
Parmar et al. Concealed data aggregation in wireless sensor networks: A comprehensive survey
Gupta et al. Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover
Hayouni et al. A novel energy-efficient encryption algorithm for secure data in WSNs
Valluri et al. Exceptional key based node validation for secure data transmission using asymmetric cryptography in wireless sensor networks
Athulya et al. Security in mobile ad-hoc networks
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
Kumar et al. A novel framework for secure file transmission using modified AES and MD5 algorithms
Lara-Nino et al. Post-quantum cryptography on wireless sensor networks: Challenges and opportunities
JP2006254417A (ja) 秘密通信システム及び通信装置及びプログラム
Rahma A modified on twofish algorithm based on cyclic group and irreducible polynomial in GF (28)
WO2018011825A1 (en) Encryption and decryption of messages
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
Buja et al. The direction of lightweight ciphers in mobile big data computing
Singha et al. Encoding algorithm using bit level encryption and decryption technique
Parikibandla et al. FPGA performance evaluation of present cipher using LCC key generation for IoT sensor nodes
Singh A Note on Symmetric Key Cryptosystems
Wang et al. Public-key encryption based on generalized synchronization of coupled map lattices
Hasan et al. Variable Rounds Block Cipher Algorithm Design
JP5755600B2 (ja) コミットメントシステム、共通参照情報生成装置、コミット生成装置、コミット受信装置、コミットメント方法
Padhi et al. SecOMN: Improved security approach for Opportunistic Mobile Networks using cyber foraging

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110606

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111011