(57)【要約】【課題】  通信の送信側にも受信側にも処理に要する負担をあまりかけずに、充分な秘匿性を確保する通信の暗号化方法および通信システムを提供する。【解決手段】  平文データおよび暗号鍵データを多次元配列し、その暗号鍵データの配列を、多次元のうち少なくとも１つの次元において所定のシフトまたはシフトの組合せを実行した後に、平文データをシフトされた暗号鍵データを用いて暗号化する。【選択図】  図５
2008250298.tif 000002
【特許請求の範囲】
【請求項１】
平文データを暗号鍵データで暗号化して送信する送信装置と、この送信装置から送信された暗号文を復号鍵データで復号して平文データを得る受信装置とを有する通信システムの通信方法において、
前記送信装置は、
前記平文データをＮ次元（Ｎは２以上の自然数）配列するステップと、
前記暗号鍵データを前記Ｎ次元配列するステップと、
前記Ｎ次元配列された前記暗号鍵データの配列を変換するステップと、
前記平文データを、前記変換された暗号鍵データを用いて暗号化して暗号文を生成するステップと、
前記生成した暗号文を、前記受信装置へ送信するステップと、を含み、
前記受信装置は、
前記送信装置から送信された暗号文を受信するステップと、
前記復号鍵データを前記Ｎ次元配列するステップと、
前記Ｎ次元配列された前記復号鍵データの配列を変換するステップと、
前記変換された前記復号鍵データを用いて、前記暗号文を復号するステップと、
前記復号されたデータの配列を逆変換して、前記平文データを得るステップと、
を含むことを特徴とする通信方法。
【請求項２】
平文データを暗号鍵データで暗号して送信する送信装置と、この送信装置から送信された暗号文を復号鍵データで復号して平文データを得る受信装置とを有する通信システムにおいて、
前記送信装置は、
前記平文データおよび前記暗号鍵データをＮ次元（Ｎは２以上の自然数）配列する第１のＮ次元配列部と、
前記Ｎ次元配列された前記暗号鍵データの配列を変換する第１の配列変換部と、
前記Ｎ次元配列された平文データを、前記変換された暗号鍵データを用いて暗号化して暗号文を生成する暗号化部と、
前記暗号化部で生成した暗号文を前記受信装置へ送信する送信部と、を含み、
前記受信装置は、
前記送信装置から送信された暗号文を受信する受信部と、
前記復号鍵データを前記Ｎ次元配列する第２のＮ次元配列部と、
前記Ｎ次元配列された前記復号鍵データの配列を変換する第２の配列変換部と、
前記変換された前記復号鍵データを用いて、前記暗号文を復号する復号部と、
前記復号されたデータの配列を、逆変換して前記平文データを得る平文復元部と、
を含むことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信方法および通信システムに関し、特に、暗号化して通信する通信方法および通信システムに関する。
【背景技術】
【０００２】
情報通信端末間などでデータの送受信を行う場合、その通信の秘匿性を高めるために、現在種々の暗号化方法が提案されている。特に無線通信においては、通信に用いる情報のパケットを盗聴することは比較的容易であるため、たとえパケットを盗聴されたとしても、その内容の解読を困難にして、データの送信者と受信者との間で安全な通信路を確立する暗号化の技術は、高度情報化社会において極めて重要なものとなっている。
【０００３】
現在、代表的な暗号化の技術としては、大きく分類すると、共通鍵暗号方式と公開鍵暗号方式の２つがある。
【０００４】
共通鍵暗号方式は、データの送信者と受信者の両者が同じ鍵を保持し、この同じ鍵を用いて暗号化と復号を行う。共通鍵暗号方式の代表的なものとしては、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）、ＲＣ４などがある。以下、この方式の概略を、図を用いて説明する。
【０００５】
図７に示すように、まず、暗号化を行う「情報の送信側」は、共通鍵データおよび共通パラメータに、ハッシュ関数などを用いて一方向暗号鍵変換処理を行って、逐次暗号鍵を生成する。ここではこの逐次暗号鍵を「共通鍵」と考えることができる。この共通鍵を用いて、暗号化前の平文データの排他的論理和を演算することにより暗号文を生成する。この排他的論理和については後述する。一方、暗号化された情報を復号する「情報の受信側」は、送信側から受け取った暗号文を、暗号化に用いた鍵と同じ共通鍵を用いて、暗号文のデータの排他的論理和を演算することにより平文データを得ることができる。しかしながら、復号を行う受信側は、この暗号化通信を行うにあたり、予め共通鍵を送信側から取得しておく必要がある。そのため、この共通鍵の受渡しの際に第三者による盗聴が行われると、その後の暗号化通信を容易に解読されるリスクが生じることになる。
【０００６】
そこで、情報通信のセキュリティ強度を高めるために、暗号化に用いた鍵とは異なる鍵を用いて復号を行うのが、公開鍵暗号方式である。この方式では、「公開鍵」と「秘密鍵」の２つの鍵をペアとして用いて、一方で暗号化した平文は、ペアの鍵でないと復号できない仕組みになっている。情報の送信側は、情報の受信側が作成した２つの鍵ペアのうち、第三者に公開される「公開鍵」を用いて暗号化を行い、暗号文を受信した受信側は、自分の「秘密鍵」を用いてそれを復号する。公開鍵暗号方式では、ＲＳＡ（Rivest Sharmir Adleman）という方式が標準的に用いられている。
【０００７】
公開鍵暗号方式であれば、上述した共通鍵暗号方式の弱点であった「鍵の受渡し」の際のリスクが解消することになる。しかしながら、この公開鍵暗号方式は、採用するアルゴリズムの数学的な処理が複雑になるため、暗号化および復号に時間がかかるという欠点がある。
【０００８】
そこで、上記２つの方式、すなわち共通鍵暗号方式と公開鍵暗号方式の両者の弱点を補間し合う技術として、ハイブリッド暗号方式が提案されている。以下、この方式の概略を、図を用いて説明する。
【０００９】
図８に示すように、ハイブリッド暗号方式では、送信側は、平文データを暗号化する際には、処理が比較的簡単な共通鍵暗号方式で暗号化し、受信側も共通鍵を用いて暗号文を復号する。そして、共通鍵暗号方式の弱点である鍵の受渡しの際には、受信側が作成した公開鍵と秘密鍵のペアの鍵のうち、公開鍵によって共通鍵そのものを暗号化して、暗号化した共通鍵を受信側に受け渡す。暗号化した共通鍵を受け取った受信側は、自分の秘密鍵を用いて共通鍵を復号し、この復号した共通鍵を用いて、暗号文を復号することで平文データを得る。このように、処理の複雑な公開鍵暗号方式を、鍵の受渡し時にのみ利用することによって、暗号化および復号に要する処理を軽減している。
【００１０】
このハイブリッド暗号方式を用いれば、確かに、相当程度安全に共通鍵を受け渡すことが可能になる。この暗号方式においても、平文の暗号化は、基本的には比較的処理の簡単な共通鍵暗号方式によって行っている。共通鍵暗号方式の暗号化は、バーナム暗号（Vernam cipher）などにより排他的論理和を演算することで、同じ鍵を用いて暗号化および復号を行うようにしている。例えば図９（Ａ）に示すように、仮に平文が全て１のビット列であるとして、その平文に図示のような逐次暗号鍵を用いて、両者の排他的論理和（ＸＯＲ）を演算すると、暗号文が出来上がる。図９（Ｂ）に示すように、この暗号文に対して、正しい鍵である逐次暗号鍵を用いて再び排他的論理和を演算すると、元の平文に復号することができるが、図９（Ｃ）に示すように、偽の鍵を用いて排他的論理和を演算して復号を試みても、元の平文に戻すことはできない。
【００１１】
しかしながら、この共通鍵暗号方式の暗号化および復号の際に行う排他的論理和の演算は、単純で規則的な繰り返しによる演算処理であるため、生成された暗号文は、やはり盗聴による攻撃を受けると、解読される危険性がある。
【００１２】
そのため、排他的論理和の演算を行う代わりに、ラテン方陣およびラテン方体を変換表として用いて暗号化を行うことにより、データの秘匿性を高める技術が開示されている（例えば、特許文献１および２参照）。これらの技術によれば、排他的論理和のように演算の結果が常に一義的に決定されるのではなく、複数の自然数とすることができ、暗号文の秘匿性を高めることができる。
【特許文献１】特開平１０−１０９７１号公報
【特許文献２】特開２０００−２２７７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記特許文献に開示の技術においても、暗号化を行う前段階では、データそのものに対して何ら秘匿性を高めるような処理を行っていないため、暗号化通信の秘匿性を高めるための措置が必ずしも十分とは言えない。また、これら特許文献に記載されている暗号方式は、ブロック暗号方式によるものであり、無線通信などの場合のように、処理遅延を極力回避することが求められるような場合には適していない。
【００１４】
したがって、かかる事情に鑑みてなされた本発明の目的は、情報通信を行う送信側にも受信側にも処理に要する負担をあまりかけずに、充分な秘匿性を確保できる通信方法および通信システムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成する請求項１に係る通信方法の発明は、
平文データを暗号鍵データで暗号化して送信する送信装置と、この送信装置から送信された暗号文を復号鍵データで復号して平文データを得る受信装置とを有する通信システムの通信方法において、
前記送信装置は、
前記平文データをＮ次元（Ｎは２以上の自然数）配列するステップと、
前記暗号鍵データを前記Ｎ次元配列するステップと、
前記Ｎ次元配列された前記暗号鍵データの配列を変換するステップと、
前記平文データを、前記変換された暗号鍵データを用いて暗号化して暗号文を生成するステップと、
前記生成した暗号文を、前記受信装置へ送信するステップと、を含み、
前記受信装置は、
前記送信装置から送信された暗号文を受信するステップと、
前記復号鍵データを前記Ｎ次元配列するステップと、
前記Ｎ次元配列された前記復号鍵データの配列を変換するステップと、
前記変換された前記復号鍵データを用いて、前記暗号文を復号するステップと、
前記復号されたデータの配列を逆変換して、前記平文データを得るステップと、
を含むことを特徴とするものである。
【００１６】
さらに、上記目的を達成する請求項２に係る通信システムの発明は、
平文データを暗号鍵データで暗号して送信する送信装置と、この送信装置から送信された暗号文を復号鍵データで復号して平文データを得る受信装置とを有する通信システムにおいて、
前記送信装置は、
前記平文データおよび前記暗号鍵データをＮ次元（Ｎは２以上の自然数）配列する第１のＮ次元配列部と、
前記Ｎ次元配列された前記暗号鍵データの配列を変換する第１の配列変換部と、
前記Ｎ次元配列された平文データを、前記変換された暗号鍵データを用いて暗号化して暗号文を生成する暗号化部と、
前記暗号化部で生成した暗号文を前記受信装置へ送信する送信部と、を含み、
前記受信装置は、
前記送信装置から送信された暗号文を受信する受信部と、
前記復号鍵データを前記Ｎ次元配列する第２のＮ次元配列部と、
前記Ｎ次元配列された前記復号鍵データの配列を変換する第２の配列変換部と、
前記変換された前記復号鍵データを用いて、前記暗号文を復号する復号部と、
前記復号されたデータの配列を、逆変換して前記平文データを得る平文復元部と、
を含むことを特徴とするものである。
【発明の効果】
【００１７】
本発明によれば、平文データおよび暗号鍵データを多次元配列し、その暗号鍵データの配列を、多次元のうち少なくとも１つの次元において所定のシフトまたはシフトの組合せをそれぞれ実行してから、シフトされた平文データを暗号鍵データを用いて暗号化するようにしたので、暗号化通信を行う送信側にも受信側にも処理に要する負担をあまりかけずに、暗号強度を飛躍的に向上させて、通信の秘匿性を充分に確保することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について、図を参照して説明する。
【００１９】
図１は、本発明の実施の形態にかかる通信システムの送信装置１００および受信装置２００の要部の概略構成を示すブロック図である。本実施の形態は、ハイブリッド暗号方式を採用して通信を行うもので、送信装置１００は、平文データを供給するアプリケーション１１と、平文データをＮ次元に配列するＮ次元配列部１２と、Ｎ次元配列した平文データに所定のシフト処理を行う配列シフト部１３と、配列シフトした平文データを暗号化する暗号化部１４と、暗号化した暗号文を受信装置２００に送信する送信部１５と、を備えている。送信装置１００はさらに、アプリケーション１１から供給された平文から所定の暗号強度を判定する暗号強度判定部１６と、受信装置２００との間の公開鍵情報を交換する公開鍵方式鍵交換部１８と、受信装置２００と共通の情報を共有するために暗号強度判定部１６の判定結果および公開鍵方式鍵交換部１８の公開鍵情報を記憶して送信部１５および一方向暗号鍵変換部１９に出力する送受信装置共通情報記憶部１７と、送受信装置共通情報記憶部１７からの送受信装置共通情報に基づいて暗号鍵の基になるデータに一方向変換処理を行う一方向暗号鍵変換部１９と、一方向暗号鍵変換部１９により変換された暗号鍵データをＮ次元に配列する鍵Ｎ次元配列部２０と、鍵Ｎ次元配列部２０によりＮ次元配列された暗号鍵データに所定のシフト処理を行う鍵配列シフト部２１と、を備えている。
【００２０】
また、図１に示す受信装置２００は、暗号化した暗号文を送信装置１００から受信する受信部２１１と、受信した暗号文に基づいて送信装置１００との間の公開鍵情報を交換する公開鍵方式鍵交換部２１２と、送信装置１００と共通の情報を共有するために受信した情報および公開鍵方式鍵交換部２１２からの公開鍵情報を記憶して暗号強度判定部２１４および一方向暗号鍵変換部２１６に出力する送受信装置共通情報記憶部２１３と、送受信装置共通情報記憶部２１３からの出力に基づいて暗号強度を判定する暗号強度判定部２１４と、受信部２１１で受信した暗号文を暗号強度判定部２１４での暗号強度の判定結果に基づいてＮ次元に配列するＮ次元配列部２１５と、送受信装置共通情報記憶部２１３からの出力に基づいて鍵の基になるデータに一方向変換処理を行う一方向暗号鍵変換部２１６と、一方向暗号鍵変換部２１６により変換された暗号鍵データをＮ次元に配列する鍵Ｎ次元配列部２１７と、鍵Ｎ次元配列部２１７によりＮ次元配列された暗号鍵データに所定のシフト処理を行う鍵配列シフト部２１８と、Ｎ次元配列部２１５でＮ次元配列された暗号文を鍵配列シフト部２１８でシフトされた共通鍵で復号する復号部２１９と、復号された復号文に暗号強度判定部２１４での暗号強度の判定結果に基づいて所定のシフト処理を行って平文データに変換する配列シフト部２２０と、復号した平文データを処理するアプリケーション２２１と、を備えている。また、受信装置２００は、送信装置１００から受信した暗号文をＮ次元配列部２１５においてＮ次元配列しているが、送信装置１００が、送信部１５において、Ｎ次元配列されたままの暗号文を送信することが可能な場合、受信装置２００において、再度Ｎ次元配列する必要がない。この場合は、受信装置２００におけるＮ次元配列部２１５を構成に含めなくともよい。このような構成では、受信装置２００においては、暗号鍵データの方をＮ次元配列してシフト処理を行うのみで、Ｎ次元配列されたまま送信装置１００から送信された暗号文を平文データへ復号することができる。本実施例においては、送信装置１００における送信部１５が、Ｎ次元配列されている暗号文を、１次元配列化した後に送信する場合についての説明を行う。
【００２１】
次に、図２〜４を用いて、暗号化の前段階に実行する、送信装置１００のＮ次元配列部１２および鍵Ｎ次元配列部２０が行うＮ次元の配列、ならびに配列シフト部１３および鍵配列シフト部２１が行う配列のシフト処理について説明する。
【００２２】
暗号化または復号を行うにあたって排他的論理和を演算する際に、平文データのビット列と逐次暗号鍵のビット列との開始位置をずらしてしまうと、当然、暗号化が正しく行われない。したがって、暗号化では、平文データのビット列と逐次暗号鍵のビット列との位置は、例えば図２に示すように、厳密に揃える必要がある。なお、図２に示す数字および記号は、ビット列の位置関係を表しているに過ぎず、そのビットのデータそのものを表しているのではない。
【００２３】
本実施の形態では、従来は一次元であった平文データのビット列および逐次暗号鍵のビット列の配列を、暗号化を行う前段階にて、まず、それぞれＮ次元（Ｎは２以上の自然数）に配列して、さらに、このＮ次元に配列したデータについて、排他的論理和の演算の開始位置をそれぞれ意図的に異なる態様で移動（シフト）させたものを暗号化することによって、高い暗号強度を持った暗号方式とする。そのシフト量は暗号化パラメータとして導入して、復号する際に利用するようにする。
【００２４】
まず、１次元シフトについて説明する。１次元シフトにおいては、図３（Ａ）に示すように、元の（シフト前の）ビット列をＸ軸方向に例えば＋８だけ移動する。なお、ビット列をＸ軸方向に＋８だけ移動（シフト）させることを、便宜的に［Ｘ：＋８］と記す。ビット列中のビットをＸ軸方向に＋８移動させて、元のビット長からはみ出すビットは、そのままビット列の始点に移動させる。
【００２５】
このような処理をイメージ的に図示すると、図４（Ａ）のようになる。なお、図４（Ａ）は、ビット列のシフトが［Ｘ：＋７］の例を示している。
【００２６】
次に２次元の場合を説明する。本実施の形態では、平文データおよび暗号鍵データを用いて暗号化を行う前に、Ｎ次元配列部１２にて平文データのビット列を、鍵Ｎ次元配列部２０にて暗号鍵データのビット列をそれぞれ所定長に区切り、それぞれを２次元構造に配列する。例えば、８ビット×４ビットの２次元構造では、図３（Ｂ）に示すような配列になる。
【００２７】
上記のような２次元ビット配列に対して、配列シフト部１３や鍵配列シフト部２１においてビット配列のシフトを行うが、２次元においては、シフトする方向はＸ軸方向およびＹ軸方向の２方向がある。例えばビット配列のシフトをＸ：＋２とすると、図３（Ｃ）に示すようになる。さらに［Ｙ：−１］のシフトを行うと、図３（Ｄ）に示すようになる。
【００２８】
このような処理をイメージ的に図示すると、図２（Ｂ）のようになる。なお、図２（Ｂ）は、ビット列に［Ｘ：＋４］のシフトを行った後さらに［Ｙ：−２］のシフトを行う例を示している。このようなビット配列について、シフトを複数回組み合わせて行うこともできる。
【００２９】
次に３次元の場合について説明する。３次元の場合には、Ｎ次元配列部１２および鍵Ｎ次元配列部２０は、平文データおよび暗号鍵データのビット列をそれぞれ所定長に区切り、それぞれを２次元構造に配列したビット平面を、さらにＺ軸方向に重畳させて、例えば図２（Ｃ）に示すようなビットの立方体を生成する。図２（Ｃ）の左端に示す例では、１２ビット×８ビット×６ビットの立方体になっている。３次元の場合には、シフトする方向はＸ軸方向、Ｙ軸方向およびＺ軸方向の３方向がある。図２（Ｃ）に示した例では、まず［Ｘ：＋３］を行い、次に［Ｚ：＋１］を行い、さらに［Ｙ：−２］を行っている。
【００３０】
以上のような処理は、その概念を図示できるのは３次元までであるが、演算上は、容易に４次元以上のＮ次元（Ｎは自然数）に拡張することが可能である。
【００３１】
このような演算を行うことにより、送信装置１００のＮ次元配列部１２および鍵Ｎ次元配列部２０は、ビットを配列する際に、配列するビットの次元数Ｎおよび各次元方向のビット数を任意に決めて配列することができる。さらに、配列シフト部１３および鍵配列シフト部２１は、上述のようなシフト処理を、Ｎ次元の任意の方向について、任意の順序で、任意の量（シフト量）を、任意の回数だけシフトさせることが可能である。また、図３および図４においては、２以上の次元における、ひとつの次元の方向へ配列する各ビット列において、全てのビット列で同一のシフト量のシフト処理を行って説明したが、ひとつの方向の各ビット列について異なるシフト量のシフト処理を行うようにすることも可能である。例えば、図４（Ｂ）において、Ｘ方向のシフトをする際に、一番上のビット列は［Ｘ：＋３］、次のビット列は［Ｘ：−２］、その次のビット列は［Ｘ：０］、のようなシフト処理を行うこともできる。
【００３２】
Ｎ次元配列部１２および配列シフト部１３はそれぞれ、上述したビット列のＮ次元配列および配列シフトを平文データついて実行し、同様に鍵Ｎ次元配列部２０および鍵配列シフト部２１はそれぞれ、上述したビット列のＮ次元配列および配列シフトを暗号鍵データについて実行する。Ｎ次元配列部１２および鍵Ｎ次元配列部２０は、平文データおよび暗号鍵データのＮ次元配列を実行する際には、平文データおよび暗号鍵データの両方で、配列するビットの次元数Ｎおよび各次元方向のビット数を揃えるようにして、暗号化および復号を行うにあたり排他的論理和を演算する際に対応するビットが存在するようにする。それに対し、配列シフト部１３および鍵配列シフト部２１は、平文データおよび暗号鍵データの配列シフトを実行する際には、平文データおよび暗号鍵データの両方で同じ配列シフトを実行することも当然可能であるが、平文データと暗号鍵データとで関連性のない異なる配列シフトを実行することで、両者を暗号化する以前の段階でデータの配列を著しく散在させたものにすることができる。
【００３３】
以下、図５の概念図を参照して、本発明の実施の形態による送信装置１００の暗号化処理におけるデータの流れを説明する。
【００３４】
図５の上方から下方への流れは、暗号鍵データの流れを表している。暗号化処理を行う前提として、図上方に示す共通鍵データおよび共通パラメータに、ハッシュ関数などを用いて一方向暗号鍵変換処理を行うことにより、逐次暗号鍵を生成する。ここではこの逐次暗号鍵を「共通鍵」と考えることができる。このような共通鍵に関連する情報は、送受信装置共通情報記憶部１７が供給して、一方向暗号鍵変換部１９が変換処理を行うことにより共通鍵になる。
【００３５】
図５の左方から右方への流れは、平文データが暗号化されて暗号文になる際のデータの流れを表している。まず、送信装置１００のアプリケーション１１が、暗号化すべき平文データを、Ｎ次元配列部１２および暗号強度判定部１６に供給する。暗号強度判定部１６は、平文データの構成および／または内容から、所定の条件に従って平文を暗号化する強度を決定し、これに基づいてＮ次元配列部１２および配列シフト部１３に平文配列情報を供給する。送受信装置共通情報記憶部１７はこの平文配列情報を記憶すると共に、送信部１５を介して受信装置２００に送信し、送受信装置共通情報記憶部２１３と共有するようにする。この平文配列情報とは、具体的には、Ｎ次元配列部１２が配列するビットの次元数Ｎおよび各次元方向のビット数、および配列シフト部１３がビット列をシフトするＮ次元の方向、シフト方向の順序、シフト量、シフト回数などの情報を含む。
【００３６】
次に、Ｎ次元配列部１２は、平文配列情報に含まれる、配列するビットの次元数Ｎおよび各次元方向のビット数に基づいて、平文データをＮ次元に配列する。その後、配列シフト部１３は、平文配列情報に含まれる、配列シフト部１３がシフトするＮ次元の方向、シフト方向の順序、シフト量、シフト回数に基づいて、Ｎ次元に配列した平文データの配列をシフトさせる。
【００３７】
暗号化前のデータの配列をさらに散在させるために、暗号強度判定部１６からの平文転置情報に基づいて、Ｎ次元配列中の各ビットについて、１ビット以上のビットを所定の規則に従って転置させる転置処理を含めるようにすることもできる。この処理は、配列シフト部１３がビット配列をシフトする処理の前または後に実行することができる。この転置処理については、従来の暗号方式から公知の転置処理と同様の手順に従って行うことができるため、ここでは詳細な説明は省略する。
【００３８】
一方、暗号化に使用する暗号鍵については、鍵Ｎ次元配列部２０が、上述した「共通鍵」を、暗号強度判定部１６が供給する上述の平文配列情報と同様の構成の鍵配列情報に従って、平文データに施したのと同じ次元数Ｎおよび各次元方向のビット数に基づいて、暗号鍵データをＮ次元に配列する。次に、鍵配列シフト部２１は、鍵配列情報に基づいて、このＮ次元配列した共通鍵を、シフトするＮ次元の方向、シフト方向の順序、シフト量、シフト回数のうち少なくとも１つを平文データの配列のシフトと異なるようシフトさせる。さらに、この共通鍵の配列シフト処理の前または後に、暗号強度判定部１６からの鍵転置情報に基づいて、Ｎ次元配列した各次元方向のビット列について、１ビット以上のビットを所定の規則に従って転置させる転置処理を含めるようにすることもできるのは上述と同様である。
【００３９】
このようにして、平文をＮ次元配列し、さらに配列シフト（および転置処理）したものを、共通鍵をＮ次元配列し、さらに平文とは異なる配列シフト（および転置処理）したものを、暗号化部１４が暗号化する。この暗号化は、具体的には、従来の排他的論理和の演算により行うため、処理が簡単で高速に行うことができる。
【００４０】
暗号化した暗号文はＮ次元配列構造になっているため、受信装置２００に送信するために、送信部１５にて１次元配列化して、それを暗号文として受信装置２００に送信する。
【００４１】
なお、暗号強度判定部１６が判定した暗号の強度に基づいて生成される平文配列情報、平文転置情報、鍵配列情報、および鍵転置情報は、暗号化部１４にて平文データを暗号化するのに使用した共通鍵と共に、受信装置２００から取得した公開鍵により暗号化されて、送信部１５を介して受信装置２００に送信される。このようにして送信された各情報および共通鍵は、受信装置２００の受信部２１１が受信して、受信装置２００の前記公開鍵とペアになっている秘密鍵により復号して、送受信装置共通情報記憶部２１３が記憶するようにする。
【００４２】
さらに、上述した暗号化の一連の処理において、平文データについては、Ｎ次元配列化を配列シフト処理よりも前に行い、共通鍵については、鍵Ｎ次元配列化を鍵配列シフト処理よりも前に行うようにするが、これら平文データの処理と共通鍵の処理の順序については、受信装置１００の構成により、どちらを先に行っても、または同時に行うようにしてもよい。
【００４３】
以下、図６の概念図を参照して、本発明の実施の形態による送信装置２００の復号化処理におけるデータの流れを説明する。
【００４４】
図６の上方から下方への流れは、暗号鍵データの流れを表している。暗号化処理を行う前提として、図上方に示す共通鍵データおよび共通パラメータに、ハッシュ関数などを用いて一方向暗号鍵変換処理を行うことにより、逐次暗号鍵を生成する。ここではこの逐次暗号鍵を「共通鍵」と考えることができる。このような共通鍵に関連する情報は、送受信装置共通情報記憶部２１３が供給して、一方向暗号鍵変換部２１６が変換処理を行うことにより共通鍵にすることができるが、ハイブリッド方式では、共通鍵そのものを受信装置２００の秘密鍵とペアになっている公開鍵で送信装置１００が暗号化したものを、受信装置２００が受信し秘密鍵で復号して用いる。
【００４５】
図６の左方から右方への流れは、暗号文を復号して平文データになる際のデータの流れを表している。まず、送信装置１００から暗号文を受信した受信装置２００の受信部２１１が、復号すべき暗号文を、Ｎ次元配列部２１５に供給する。
【００４６】
さらに、受信部２１１は、暗号化した平文配列情報、平文転置情報、鍵配列情報、および鍵転置情報などを、暗号化された共通鍵と共に、送信装置１００から受信して、公開鍵方式鍵交換部２１２および送受信装置共通情報記憶部２１３に供給する。送受信装置共通情報記憶部２１３は、暗号化した平文配列情報、平文転置情報、鍵配列情報、および鍵転置情報、ならびに共通鍵を、受信装置２００の秘密鍵を用いて復号して、平文配列情報、平文転置情報、鍵配列情報および鍵転置情報は暗号強度判定部２１４に供給して、また、共通鍵は一方向暗号鍵変換部２１６に供給する。暗号強度判定部２１４は、平文配列情報をＮ次元配列部２１５および配列シフト部２２０に供給して、さらに鍵配列情報を鍵Ｎ次元配列部２１７および鍵配列シフト部２１８に供給する。また、一方向暗号鍵変換部２１６は共通鍵を鍵Ｎ次元配列部２１７に供給して、鍵Ｎ次元配列部２１７は、鍵配列情報に基づいて１次元配列の共通鍵をＮ次元に配列し、さらに鍵配列シフト部２１８は、鍵配列情報に基づいてＮ次元に配列した共通鍵のデータ配列をシフトさせて、それを復号部２１９に供給する。
【００４７】
一方、Ｎ次元配列部２１５は、暗号強度判定部２１４からの平文配列情報に基づいて、受信部２１１から受信した暗号文をＮ次元に配列して、これを復号部２１９に供給する。復号部２１９は、Ｎ次元配列部２１５がＮ次元配列した暗号文と、鍵配列シフト部２１８がシフトしたＮ次元配列の共通鍵データとの排他的論理和を演算することにより復号して、これを配列シフト部２２０に供給する。配列シフト部２２０は、平文配列情報に基づいて、復号したデータ配列をシフトさせる。このようにしてシフトされたものが平文データとなるが、まだＮ次元配列のままであるため、それを１次元に配列した平文データをアプリケーション２２１に供給して、一連の復号処理が終了する。
【００４８】
なお、平文データおよび／または共通鍵に前述の転置処理を行ってから暗号化した場合は、共通鍵については鍵配列シフトの前または後に、鍵転置情報に基づいて転置処理を戻し、平文データについては暗号文を復号した後で配列シフトの前または後に、平文転置情報に基づいて転置処理を戻すようにする。
【００４９】
以上のように暗号化および復号の処理を行うようにすれば、従来のハイブリッド暗号方式にわずかな処理ステップを追加するだけで、暗号強度を著しく増大させることができる。この方法は、処理上の負担をほとんど増大させることがないため、例えばＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）のような、マルチキャリア通信を用いて大容量のデータの送受信を行う際にも有利である。さらに、本実施の形態の暗号化通信では、平文データの内容に応じて、Ｎ次元配列の次元数や、配列シフトのシフトを行う次元、順序、シフト量、シフト回数などを設定することができるため、秘匿性が要求される度合いに応じて、暗号強度を所望のように調節することが可能である。
【００５０】
なお、本発明は、上述した実施の形態にのみ限定されるものではなく、幾多の変更または変形が可能である。例えば、本実施の形態では、送信装置１００と受信装置２００とが無線通信を行うようにしたが、当然有線の通信を行う場合に本発明を適用することも可能である。また、上述した実施の形態では、暗号化の際に、平文データと共通鍵の両方について配列シフトの処理を行うようにしたが、求められる暗号強度によっては、平文データまたは共通鍵の一方のみに配列シフト処理を行うようにすることもできる。
【００５１】
さらに、本発明は、共通鍵暗号方式にわずかな処理ステップを追加して暗号強度を飛躍的に増大させるものであるため、上述した実施の形態のようにハイブリッド暗号方式に限定されるものでもなく、共通鍵暗号方式に基づく他の暗号方式に適用することも可能である。
【図面の簡単な説明】
【００５２】
【図１】本実施の形態の送信装置および受信装置の要部の概略構成を示すブロック図である。
【図２】平文データと鍵データとの位置関係を説明する図である。
【図３】本実施の形態の配列シフトを説明する図である。
【図４】本実施の形態のＮ次元配列部が行うＮ次元の配列処理、および配列シフト部が行う配列のシフト処理について説明する概念図である。
【図５】送信装置の暗号化の処理の流れを説明する概念図である。
【図６】受信装置の復号の処理の流れを説明する概念図である。
【図７】従来の共通鍵暗号方式を説明する概念図である。
【図８】従来のハイブリッド暗号方式を説明する概念図である。
【図９】バーナム暗号による共通鍵暗号方式の排他的論理和の演算処理を説明する図である。
【符号の説明】
【００５３】
１１  アプリケーション
１２  Ｎ次元配列部
１３  配列シフト部
１４  暗号化部
１５  送信部
１６  暗号強度判定部
１７  送受信装置共通情報記憶部
１８  公開鍵方式鍵交換部
１９  一方向暗号鍵変換部
２０  鍵Ｎ次元配列部
２１  鍵配列シフト部
１００  送信装置
２００  受信装置
２１１  受信部
２１２  公開鍵方式鍵交換部
２１３  送受信装置共通情報記憶部
２１４  暗号強度判定部
２１５  Ｎ次元配列部
２１６  一方向暗号鍵変換部
２１７  鍵Ｎ次元配列部
２１８  鍵配列シフト部
２１９  復号部
２２０  配列シフト部
２２１  アプリケーション
【図１】
2008250298.tif 000003
【図２】
2008250298.tif 000004
【図３】
2008250298.tif 000005
【図４】
2008250298.tif 000006
【図５】
2008250298.tif 000007
【図６】
2008250298.tif 000008
【図７】
2008250298.tif 000009
【図８】
2008250298.tif 000010
【図９】
2008250298.tif 000011