(57)【要約】【課題】  暗号通信において鍵の更新の際、安全に鍵を配送する。【解決手段】  共通鍵暗号方式であって、送信側と受信側で少なくとも第１の秘密鍵と第２の秘密鍵を共有し、送信側で、乱数を第１の秘密鍵で変換して第１の鍵を生成する段階と、乱数を第２の秘密鍵で変換して第２の鍵を生成する段階と、対象を第２の鍵で暗号化する段階と、第２の鍵で暗号化された対象と第１の鍵とを送信し、受信側で、第２の鍵で暗号化された対象と、第１の鍵を受信する段階と、該受信した第１の鍵を第１の秘密鍵で逆変換して乱数を得る段階と、該乱数および第２の秘密鍵を用いて第２の鍵を生成する段階と、第２の鍵を用いて暗号化された対象を復号する段階を有する受信方法およびプログラムを提供する。【選択図】  図１
2005295164.tif 000002
【特許請求の範囲】
【請求項１】
共通鍵暗号方式であって、送信側と受信側で少なくとも第１の秘密鍵と第２の秘密鍵を共有し、
送信側で、
乱数を第１の秘密鍵で変換して第１の鍵を生成する段階と、
乱数を第２の秘密鍵で変換して第２の鍵を生成する段階と、
対象を第２の鍵で暗号化する段階と、
第２の鍵で暗号化された対象と第１の鍵とを送信する段階を有する送信方法。
【請求項２】
共通鍵暗号方式であって、送信側と受信側で少なくとも第１の秘密鍵と第２の秘密鍵を共有し、
受信側で、
第２の鍵で暗号化された対象と、第１の鍵を受信する段階と、
該受信した第１の鍵を第１の秘密鍵で逆変換して乱数を得る段階と、
該乱数および第２の秘密鍵を用いて第２の鍵を生成する段階と、
第２の鍵を用いて暗号化された対象を復号する段階を有する受信方法。
【請求項３】
３つ以上の秘密鍵を有し、乱数を該秘密鍵で少なくとも１回変換して鍵を生成し、暗号化された対象と鍵とを送信する送信方法であって、該暗号化された対象の暗号鍵の個数と該送信される鍵の個数の合計数が前記秘密鍵の個数と前記秘密鍵で変換される乱数の個数との合計数未満である請求項１に記載の方法。
【請求項４】
３つ以上の秘密鍵を有し、受信した鍵を各秘密鍵で少なくとも１回逆変換して乱数を得て、暗号化された対象を復号する受信方法であって、該暗号化された対象の暗号鍵の個数と前記受信した鍵の個数の合計数が前記秘密鍵の個数と前記各秘密鍵で逆変換して得られる乱数の個数の合計数未満である請求項２に記載の方法。
【請求項５】
共通鍵暗号コンピュータプログラムであって、
乱数を第１の秘密鍵で変換して第１の鍵を生成し、
乱数を第２の秘密鍵で変換して第２の鍵を生成し、
対象を第２の鍵で暗号化し、
第２の鍵で暗号化された対象と第１の鍵とを送信するコンピュータプログラム。
【請求項６】
共通鍵暗号コンピュータプログラムであって、
第１の鍵を受信し、
受信した第１の鍵を第１の秘密鍵で逆変換して乱数を得、
該乱数および第２の秘密鍵を用いて第２の鍵を生成し、
第２の鍵を用いて暗号を復号するコンピュータプログラム。
【請求項７】
３つ以上の秘密鍵を生成し、乱数を該秘密鍵で少なくとも１回変換して第１または第２の鍵を生成する請求項５、に記載のコンピュータプログラム。
【請求項８】
３つ以上の秘密鍵を生成し、受信した第１又は第２の鍵を各秘密鍵で少なくとも１回逆変換し乱数を得る請求項６、に記載のコンピュータプログラム。
【請求項９】
送信側で請求項１に記載の方法を実施し、受信側で請求項２に記載の方法を実施する通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号方式に関するものであり、特に共通鍵暗号方式における秘密鍵の配送方法に関する。
【背景技術】
【０００２】
共通鍵暗号方式は暗号、復号の際の演算量が少ないためコンピュータによる処理が高速に行うことができる利点を有している。しかしながら送信者、受信者間で秘密鍵の受け渡しを行うため、安全に秘密鍵を受け渡す方法が望まれている。
【０００３】
例えば送受信両者が共通のマスターキーを保持し、送信データをワークキーで暗号化し、このワークキーをマスターキーで暗号化して、暗号文と暗号化ワークキーを相手に送信する方法がある。
【０００４】
この場合、ワークキーの代わりにあらゆる組み合わせの乱数を用いて解読を試みることができる。あらゆる組み合わせのうち１つは正しいワークキーであるので、鍵の全数探索により、暗号文は解読できる。従って、もとの平文に冗長性があれば、解読の試みによって得られた、意味のある情報に対応するワークキーが正しいワークキーである。
【０００５】
正しいワークキーが得られてしまえば、暗号化ワークキーを暗号文として扱って復号すればマスターキーを得ることが出来る。よって、このような従来方法を使用した場合、ワークキー解読のためにあらゆる組み合わせの乱数を試すのに長時間を要することを考慮しても、マスターキーは頻繁に変更しなければならない。
【特許文献１】特開２０００−１０１５６４
【特許文献２】特開２００２−３００１５１
【発明の開示】
【発明が解決しようとする課題】
【０００６】
マスターキーを頻繁に変更する場合、送り側と受け側で食い違いが生じる可能性があり、これを解決する方法があるが、処理が複雑である。よって１つのマスターキーを長く使用するには解読されにくい秘密鍵の配送法が必要である。
【課題を解決するための手段】
【０００７】
本発明は、上述の問題に鑑みて開発されたものであって、解読されにくい秘密鍵の配送を実現することを目的とする。具体的には、本発明は、共通鍵暗号方式であって、送信側と受信側で第１の秘密鍵と第２の秘密鍵を共有し、送信側で、乱数を第１の秘密鍵で変換して第１の鍵を生成する段階と、乱数を第２の秘密鍵で変換して第２の鍵を生成する段階と、対象を第２の鍵で暗号化する段階と、第２の鍵で暗号化された対象と第１の鍵とを送信する送信方法を提供する。
本発明による上記の方法によった場合には、仮に第２の鍵の代わりにあらゆる組み合わせの乱数を用いて解読を試みた結果第２の鍵が知られてしまったとしても、第２の鍵は乱数を第２の秘密鍵で変換した結果なので、１回の解読結果だけからでは第２の秘密鍵も使用された乱数も知ることはできない。さらに、解読された第２の鍵と暗号化された第１の鍵から、第１の秘密鍵の候補を選択しようとしても、使用された乱数が特定されていなければ第１の秘密鍵の候補を選択することもできない。乱数は、頻繁に、最も頻繁な場合は送信ごとに変更することができる。したがって、第１、２の秘密鍵を秘匿するだけで通信の安全性を保つことが出来る。
【０００８】
本発明は、また、共通鍵暗号方式であって、送信側と受信側で第１の秘密鍵と第２の秘密鍵を共有し、受信側で、第２の鍵で暗号化された対象と、第１の鍵を受信する段階と、該受信した第１の鍵を第１の秘密鍵で逆変換して乱数を得る段階と、該乱数および第２の秘密鍵を用いて第２の鍵を生成する段階と、第２の鍵を用いて暗号化された対象を復号する段階を有する受信方法を提供する。これによって頻繁に乱数を変更しても容易に復号することが出来る。
【０００９】
また上記の処理を３つ以上の秘密鍵について行うことも有効である。これによってより計算が複雑になり、解読されにくい暗号通信を行うことが出来る。また上記の方法はコンピュータ上で行うためこれらの方法を実現するプログラムも提供する。
【発明を実施するための最良の形態】
【００１０】
図１は本発明の送信側の処理を示した図である。まず送信者、受信者共に共通の秘密鍵（いわゆるマスターキー）として第１の秘密鍵ａ１、第２の秘密鍵ｂ２を持つ。この共通鍵は乱数を用いることが好ましいが、乱数以外でもよい。
【００１１】
次に送信者Ａは平文を暗号化する。まず乱数Ｒ３を生成する。この乱数は例えば物理的なノイズなどを用いて発生させた真性乱数が望ましいが、疑似乱数を使用することも出来る。つまり再現性のない乱数が好ましい。次にこの乱数Ｒ３を第１の秘密鍵ａ１、第２の秘密鍵ｂ２でそれぞれ変換４、６を行って、第１の鍵Ｒａ５、第２の鍵Ｒｂ７をそれぞれ生成する。尚、変換４と変換６は共通の処理でもよく、異なる処理でもよい。本実施例では第２の鍵Ｒｂ７で暗号化を行うので、この第２の鍵Ｒｂ７はいわゆるワークキーである。
【００１２】
この第２の鍵Ｒｂ７を用いて暗号化を行う。同図に示すように第２の鍵Ｒｂ７によって平文Ｄ８を暗号化９し、暗号文Ｄ（Ｒｂ）１０を得る。その後、第１の鍵Ｒａ５と暗号文Ｄ（Ｒｂ）１０を相手に送信する。
【００１３】
次に図２を用いて受信後の処理を説明する。受信者Ｂは、第１の鍵Ｒａ５と暗号文Ｄ（Ｒｂ）１０を受信すると、あらかじめ保持している第１の秘密鍵ａ１で第１の鍵Ｒａ５を逆変換１１することにより乱数Ｒ３を得る。次にこの乱数Ｒ３を、あらかじめ保持している第２の秘密鍵ｂ２で変換し第２の鍵Ｒｂ７を得る。
【００１４】
上述のように平文Ｄ８は第２の鍵Ｒｂ７で暗号化されているため、受信者Ｂが計算によって得た第２の鍵Ｒｂ７で解読することが出来る。該第２の鍵Ｒｂ７で暗号文Ｄ（Ｒｂ）１０を復号化１２することによって平文Ｄ８を得ることが出来る。
【００１５】
このように第１、第２の秘密鍵が共有されていれば、暗号化のための乱数Ｒ３を頻繁に変更しても常に受信側で乱数Ｒ３を復号することが出来るので、１つのセッションごとに乱数を変えることによって暗号の鍵を頻繁に変更することになり、安全な通信をすることが出来る。
【００１６】
ここで本発明の安全性を検討する。第１、第２の秘密鍵ａ，ｂと乱数Ｒとの変換を、ここでは排他的論理和（ｘｏｒ）で考える。また鍵長を２ビットとした。変換表を表１に示す。
【表１】
2005295164.tif 000003
【００１７】
まず第１、２の秘密鍵ａ、ｂをａ＝１、ｂ＝２、乱数Ｒ＝３とする。変換表よりＲａ＝２、Ｒｂ＝１である。平文をＲｂで暗号化して得られる暗号文Ｙが全数探索により解読されて、ワークキーＲｂが判明したとする。今、Ｒａは暗号文と共に送信しているのでＲａは知られている。つまり、Ｒａ＝（Ｒ  ｘｏｒ  ａ）、Ｒｂ＝（Ｒ  ｘｏｒ  ｂ）であるので、３変数（Ｒ，ａ，ｂ）２方程式（Ｒａ，Ｒｂが判明）の不定方程式となるため秘密鍵鍵ａ、ｂは特定出来ない。
【００１８】
例えば表１より、Ｒａ＝２のとき、Ｒ、ａの組み合わせはそれぞれ（Ｒ，ａ）＝（０，２）（１，３）（２，０）（３，１）の４種類である。同様にＲｂ＝１のとき、（Ｒ，ｂ）＝（０，１）（１，０）（２，３）（３，２）である。つまり（Ｒ，ａ，ｂ）の組み合わせは（０，２，１）（１，３，０）（２，０，３）（３，１，２）の４通り考えられる。
【００１９】
以上のことから第２の鍵Ｒｂが全数探索などにより判明しても第１、２の秘密鍵ａ、ｂを特定するだけの情報がないため安全である。
【００２０】
次に秘密鍵配送法の別の実施例を説明する。送信者Ａ、受信者Ｂで共通に第１、第２の秘密鍵を持つことは上述の通りである。次に、送信者Ａは２つの乱数Ｒ１、Ｒ２を生成する。この２つの乱数Ｒ１、Ｒ２それぞれを第１、第２の秘密鍵で変換してＲ１ａ、Ｒ１ｂを得る。さらにＲ１、Ｒ２からＲ１２を得る。これは例えばＲ１、Ｒ２の排他的論理和、またはハッシュ化などにより行うことが出来る。平文ＤをＲ１２で暗号化し、Ｒ１ａ、Ｒ２ｂ、および暗号文Ｄ（Ｒ１２）を送信する。
【００２１】
受信側では、Ｒ１ａ、Ｒ２ｂ、Ｄ（Ｒ１２）を受け取った後、第１、第２の秘密鍵ａ、ｂからＲ１ａ、Ｒ１ｂを逆変換してＲ１、Ｒ２を得る。次にこれらＲ１、Ｒ２からＲ１２を計算により求める。最後に暗号文Ｄ（Ｒ１２）をＲ１２で逆変換（復号）することによって平文Ｄを得ることが出来る。
【００２２】
上記のような方法で暗号通信を安全に行うことが出来る。これら各処理をプログラムとして実現することによりインターネットまたは携帯電話などの通信網において重要な情報を安全に通信することが出来るシステムを構築することが出来る。また本発明は３つ以上の秘密鍵についても適用できる。暗号文が見破られたときに得られる鍵の個数と、送受信時に受け渡しする鍵情報の個数との合計数よりも、暗号化に用いる乱数の個数と秘密鍵の個数との合計が大きければ、前述の不定方程式系となるので、秘密鍵は特定できず安全である。従って、例え暗号文が解読された場合でも、秘密鍵は更新せずとも、次回以降の暗号化に安全に利用できる。
【００２３】
以上のように本発明によれば、復号化のための鍵は乱数Ｒと第１または第２の秘密鍵によって得られるが、送信では乱数を第１の秘密鍵で暗号化した結果を送るため、１回の送信ごとに乱数を変更することによって鍵を安全に配送することが出来、解読が困難な暗号通信が出来る。
【図面の簡単な説明】
【００２４】
【図１】図１は本発明の送信前の暗号化の処理を示したブロック図である。
【図２】図２は本発明の受信後の復号化の処理を示したブロック図である。
【符号の説明】
【００２５】
１  第１の秘密鍵
２  第２の秘密鍵
３  乱数
４  変換鍵
５  第１の鍵
６  変換文
７  第２の鍵
８  平文
９  暗号化
１０  暗号文
１１  逆変換
１２  複合化
【図１】
2005295164.tif 000004
【図２】
2005295164.tif 000005