TOP > 国内特許検索 > 暗号処理システム > 明細書

明細書 :暗号処理システム

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2014-219548 (P2014-219548A)
公開日 平成26年11月20日(2014.11.20)
発明の名称または考案の名称 暗号処理システム
国際特許分類 G09C   1/00        (2006.01)
FI G09C 1/00 610A
請求項の数または発明の数 5
出願形態 OL
全頁数 16
出願番号 特願2013-098521 (P2013-098521)
出願日 平成25年5月8日(2013.5.8)
発明者または考案者 【氏名】六井 淳
出願人 【識別番号】504155293
【氏名又は名称】国立大学法人島根大学
個別代理人の代理人 【識別番号】100081673、【弁理士】、【氏名又は名称】河野 誠
【識別番号】100141483、【弁理士】、【氏名又は名称】河野 生吾
審査請求 未請求
テーマコード 5J104
Fターム 5J104AA18
5J104JA03
5J104JA13
5J104PA07
要約 【課題】 平文の暗号化の処理又は暗号文の復号化の処理を高速で行うことが可能であるとともに、安全性も高い暗号処理システムを提供することを課題とする。
【解決手段】 暗号化又は復号化に用いる暗号鍵は、平文を所定データ長毎に分割して得られる複数の平文分割データと、暗号文を上記データ長毎に分割して得られる複数の暗号文分割データとを、全てノードnとして配置可能な木構造データTの該リンク情報と、各平文分割データから各暗号文分割データを求めることが可能であるとともに各暗号文分割データから各平文分割データを求めることが可能なように木構造データTの対応するノードnにランダムに配置された各平文分割データ及び各暗号文分割データの該配置情報とを含む。
【選択図】 図3
特許請求の範囲 【請求項1】
平文を暗号文に暗号化するか、或いは暗号文を平文に復号化する暗号処理システムであって、
データが入力される入力部と、
暗号鍵を提供する提供部と、
前記入力部から入力された平文を提供部から提供された暗号鍵に基づいて暗号化するか、或いは入力部から入力された暗号を、提供部から提供された暗号鍵に基づいて復号化する変換部と、
該変換部で変換されたデータを出力する出力部とを備え、
上記暗号鍵は、
平文を所定データ長毎に分割して得られる複数の平文分割データと、暗号文を所定データ長毎に分割して得られる複数の暗号文分割データとを、全てノードとして配置可能な木構造データの該リンク情報と、
各平文分割データから各暗号文分割データを求めることが可能であるとともに各暗号文分割データから各平文分割データを求めることが可能なように木構造データの対応するノードにランダムに配置された各平文分割データ及び各暗号文分割データの該配置情報とを含む
暗号処理システム。
【請求項2】
前記変換部は入力部から入力される平文を暗号化する暗号化部であり、
該暗号化部は、
入力された平文を上記所定データ長毎に分割する分割処理と、
分割処理によって分割された各平文分割データから、提供部により提供される暗号鍵に基づいて、各暗号文分割データを算出するメイン処理と、
メイン処理によって求められた各暗号文分割データを結合して暗号化された暗号文を生成する結合処理とを行う
請求項1に記載の暗号処理システム。
【請求項3】
前記変換部は入力部から入力される暗号文を復号化する復号化部であり、
該復号化部は、
入力された暗号文を上記所定データ長毎に分割する分割処理と、
分割処理によって分割された各暗号文分割データから、提供部により提供される暗号鍵に基づいて、各平文分割データを算出するメイン処理と、
メイン処理によって求められた各平文分割データを結合して復号化された平文を生成する結合処理とを行う
請求項1または2の何れかに記載の暗号処理システム。
【請求項4】
平文分割データ又は暗号文分割データの数を11以上とした
請求項1乃至3の何れかに記載の暗号処理システム。
【請求項5】
暗号鍵を生成する生成部と、
パスワードを取得する取得部とを備え、
前記生成部は、
上記取得部で取得されるパスワードに基づいて再現可能な擬似乱数を発生させる発生処理と、
発生処理によって発生させた擬似乱数に基づいて木構造データの上記リンク情報及び配置情報を再現可能にランダムに決定する決定処理と、
上記木構造データのリンク情報及び配置情報に基づいて暗号鍵を成形する生成処理とを行う
請求項1乃至4の何れかに記載の暗号処理システム。
発明の詳細な説明 【技術分野】
【0001】
この発明は、平文の暗号化又は暗号文の復号化を行う暗号処理システムに関する。
【背景技術】
【0002】
情報化社会の到来に伴って、通信内容や記憶装置に記憶されたデータの秘密保持を目的とした暗号技術の研究が盛んに行われ、実用化されている。この一例として、暗号化及び復号化のための情報が示された暗号鍵を用いて、平文の暗号化や暗号文の復号化を行うDES(Data Encryption Standard)やAES(Advanced Encryption Standard)等の暗号方式を用いた暗号処理システムが開発され、公知になっている(例えば、特許文献1,2を参照。)。
【先行技術文献】
【0003】

【特許文献1】特開2000-162965号公報
【特許文献2】特許第5042272号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記文献に示す暗号処理システムでは、解読の困難性を高めて安全性を確保する場合、暗号鍵のビット長が長く設定するか、或いは複数回の暗号化処理を行う等によって、解読のために必要な計算量を増加させる必要があるので、安全性と、暗号化又は復号化の処理の高速化とを両立することが困難である。
【0005】
本発明は、平文の暗号化の処理又は暗号文の復号化の処理を高速で行うことが可能であるとともに、安全性も高い暗号処理システムを提供することを課題とする。
【課題を解決するための手段】
【0006】
本発明の暗号処理システムは、平文を暗号文に暗号化するか、或いは暗号文を平文に復号化する暗号処理システムであって、データが入力される入力部と、暗号鍵を提供する提供部と、前記入力部から入力された平文を提供部から提供された暗号鍵に基づいて暗号化するか、或いは入力部から入力された暗号を、提供部から提供された暗号鍵に基づいて復号化する変換部と、該変換部で変換されたデータを出力する出力部とを備え、上記暗号鍵は、平文を所定データ長毎に分割して得られる複数の平文分割データと、暗号文を所定データ長毎に分割して得られる複数の暗号文分割データとを、全てノードとして配置可能な木構造データの該リンク情報と、各平文分割データから各暗号文分割データを求めることが可能であるとともに各暗号文分割データから各平文分割データを求めることが可能なように木構造データの対応するノードにランダムに配置された各平文分割データ及び各暗号文分割データの該配置情報とを含むことを特徴とする。
【0007】
前記変換部は入力部から入力される平文を暗号化する暗号化部であり、該暗号化部は、入力された平文を上記所定データ長毎に分割する分割処理と、分割処理によって分割された各平文分割データから、提供部により提供される暗号鍵に基づいて、各暗号文分割データを算出するメイン処理と、メイン処理によって求められた各暗号文分割データを結合して暗号化された暗号文を生成する結合処理とを行うものとしてもよい。
【0008】
前記変換部は入力部から入力される暗号文を復号化する復号化部であり、該復号化部は、入力された暗号文を上記所定データ長毎に分割する分割処理と、分割処理によって分割された各暗号文分割データから、提供部により提供される暗号鍵に基づいて、各平文分割データを算出するメイン処理と、メイン処理によって求められた各平文分割データを結合して復号化された平文を生成する結合処理とを行うものとしてもよい。
【0009】
平文分割データ又は暗号文分割データの数を11以上としたものとしてもよい。
【0010】
暗号鍵を生成する生成部と、パスワードを取得する取得部とを備え、前記生成部は、上記取得部で取得されるパスワードに基づいて再現可能な擬似乱数を発生させる発生処理と、発生処理によって発生させた擬似乱数に基づいて木構造データの上記リンク情報及び配置情報を再現可能にランダムに決定する決定処理と、上記木構造データのリンク情報及び配置情報に基づいて暗号鍵を成形する生成処理とを行うものとしてもよい。
【発明の効果】
【0011】
暗号鍵を有していれば、暗号鍵に示されたリンク情報及び配置情報に基づいて、木構造データを迅速且つ簡易的に取得可能し、この木構造データから、少ない計算量で、直ちに平文への復号化処理または暗号文への暗号化を行うことが可能であるため、処理速度の高速化を図ることが可能である。これに加えて、暗号鍵がなければ、木構造データの取得も困難であるため、暗号解読が困難であり、安全性が高い。
【図面の簡単な説明】
【0012】
【図1】本発明を適用した暗号処理システムのブロック図ある。
【図2】暗号化装置及び復号化装置の概略図である。
【図3】暗号化及び復号化の具体的手段を示す概念図である。
【図4】暗号化装置及び復号化装置の暗号生成部が行う暗号鍵生成処理のフロー図である。
【図5】擬似乱数生成手段の一例の構成を示す概念図である。
【図6】暗号化部が暗号鍵に基づいて行う平文の暗号化処理の手順を示す説明図であるとともに、復号化部が暗号鍵に基づいて行う暗号文の復号化処理の手順を示す説明図である。
【図7】暗号化部の処理フロー図である。
【図8】復号化部の処理フロー図である。
【図9】(A),(B)は、それぞれ木構造データの他例を示す概念図である。
【図10】(A)乃至(E)は、それぞれ本暗号処理システムの検証実験の結果を示す一覧表である。
【図11】(A)は暗号化する際の処理速度を示し、(B)は復号化する際の処理速度を示している。
【発明を実施するための形態】
【0013】
図1は、本発明を適用した暗号処理システムのブロック図ある。
図示する暗号処理システムは、暗号化装置1及び復号化装置2の一方又は両方(図示する例では両方)を備えている。本暗号処理システムは、通信の暗号化や保存されたデータの暗号化等、広い範囲に適用可能である。

【0014】
図2は、暗号化装置及び復号化装置の概略図である。
暗号化装置1及び復号化装置2は共にコンピュータである。このコンピュータ1、2は、AT互換機と呼ばれる通常のPCであり、CPU3と、RAM4と、SSDやHDD等の記憶装置6と、キーボードやマウス等の入力インターフェイス7と、モニタに画像を出力するビデオカード8と、フロッピー(登録商標)やCD-R等の記憶媒体からデータを読込むとともに該記憶媒体にデータを書込む外部記憶装置9と、他のPCとTCP/IP通信可能なネットワークインターフェイス11とを備えている。

【0015】
上記RAM4上に実行されるプログラムによって、コンピュータが暗号化装置1及び復号化装置2として機能する。

【0016】
図1に示す通り、上記暗号化装置1は、暗号化されていないデータである平文が入力される入力部(入力手段)12と、暗号化のための暗号鍵を提供する暗号鍵提供部(提供部、暗号鍵提供手段)13と、前記記憶装置6または記憶媒体が設置された外部記憶装置9からなる記憶部14と、複数の英数字や記号からなる文字列であるパスワードが入力インターフェイス7等を介して入力された際にこのパスワードを取得するパスワード取得部(取得部,パスワード取得手段)16と、パスワード取得部16で取得されたパスワードから暗号鍵を生成する暗号鍵生成部(生成部,暗号鍵生成手段)17と、該入力部12から入力された平文を、暗号鍵提供部13から提供される暗号鍵に基づいて暗号化する暗号化部(変換部,暗号化手段)18と、該暗号化部18で暗号化されたデータである暗号文を出力する出力部19とを備えている。

【0017】
入力部12から入力される平文は、通常のブロック暗号やストリーム暗号とは異なり、そのままのサイズで、暗号化部18に渡される。

【0018】
暗号鍵生成部17は、自身で生成した暗号鍵を、記憶部14に記憶するか、或いは暗号鍵提供部13に直接渡す。暗号鍵提供部13は、上記のように暗号鍵生成部17から直接暗号鍵を受取るか、或いは、上記のようにして予め記憶部14に記憶された暗号鍵を読込む。なお、暗号鍵提供部13が公開鍵等で暗号化された通信経路を介してネットワークインターフェイス11から暗号鍵を取得してもよい。

【0019】
上記復号化装置2は、暗号化されたデータである暗号文が入力される入力部(入力手段)21と、復号化のための暗号鍵を提供する暗号鍵提供部(提供部、暗号鍵提供手段)22と、前記記憶装置6または記憶媒体が設置された外部記憶装置9からなる記憶部23と、複数の英数字や記号からなる文字列であるパスワードが入力インターフェイス7等を介して入力された際にこのパスワードを取得するパスワード取得部(取得部,パスワード取得手段)24と、パスワード取得部24で取得されたパスワードから暗号鍵を生成する暗号鍵生成部(生成部,暗号鍵生成手段)26と、該入力部21から入力された暗号文を、暗号鍵提供部22から提供される暗号鍵に基づいて復号化する復号化部(変換部,暗号化手段)27と、該復号化部27で復号化されたデータである平文を出力する出力部28とを備えている。

【0020】
暗号鍵生成部26は、自身で生成した暗号鍵を、記憶部23に記憶するか、或いは暗号鍵提供部22に直接渡す。暗号鍵提供部26は、上記のように暗号鍵生成部26から直接暗号鍵を受取るか、或いは、上記のようにして予め記憶部23に記憶された暗号鍵を読込む。なお、暗号鍵提供部22が公開鍵等で暗号化された通信経路を介してネットワークインターフェイス11から暗号鍵を取得してよい。

【0021】
本暗号処理システムでは、平文を暗号化して暗号文を作成する際に用いる暗号鍵と、該暗号文を復号化して平文を作成する際に用いる暗号鍵とが同一であり、このため、該暗号鍵は、共通鍵となる。

【0022】
図3は、暗号化及び復号化の具体的手段を示す概念図である。
平文のデータ(例えば、図3の「A」)は、所定のデータ長を有する複数の平文分割データ(例えば、図3の「a1」,「a2」,「a3」,「a4」)に分割される。平文を分割する数(分割数)Nは、任意の値に設定できるが、好ましくは11以上に設定し、さらに好ましくは12以上に設定する。分割された各平文分割データ同士は、それぞれ異なるデータ長としてもよいし、或いは互いに同一データ長としてもよい。

【0023】
同様に、暗号文のデータ(例えば、図3の「B」)は、所定のデータ長を有する複数の暗号文分割データ(例えば、図3の「b1」,「b2」,「b3」,「b4」)に分割される。暗号文の分割数Nも、任意の値に設定できるが、好ましくは11以上に設定し、さらに好ましくは12以上に設定する。分割された各暗号文分割データ同士は、それぞれ異なるデータ長としてもよいし、或いは互いに同一データ長としてもよい。

【0024】
ちなみに、本例では、平文を暗号化することにより暗号文と、該暗号文を復号化することにより得られる平文とは、共に、等分に分割され、分割数Nも同数に設定されている。すなわち、平文と暗号文のデータサイズは同一で、各分割データも互いに全て同一である。

【0025】
本暗号処理システムでは、全ての平文分割データを個別に格納するとともに、全ての暗号文分割データを個別に格納することが可能な数のノードnを有する木構造データT(同図の状態9参照)を規定する。そして、木構造データTにおいて、平文分割データを格納するノードnである平文用ノードna(例えば、図3の状態9の「a1」,「a2」,「a3」,「a4」)と、暗号文分割データを格納するノードnである暗号文用ノードnb(例えば、図3の状態9の「a2」,「n1」,「n2」,「n3」)とは、一部で重複してもよいが、全てで重複してはならず、平文分割データ又は暗号文分割データの何れも格納されないノードも存在しないようにする。

【0026】
この木構造データTは、最上層に配置されたノードn(例えば、図3の状態9の「n3」)が「根ノード(ルートノード)」になり、下層のノードnである「子ノード」から上層のノードnである「親ノード」に延びるリンクLは必ず1つであり、「親ノード」となるノードnから「子ノード」となるノードnに延びるリンクLは必ず複数であり、これを言換えると、「子ノード」になるノードnと、該ノードnの「親ノード」になるノードnとの関係は、多対一になる。最下層に配置されたノードn(例えば、図3の状態9の「a1」,「a2」,「a3」,「a4」)が「葉ノード(リーフノード)」になる。

【0027】
あるノードnに着目すると、このノードnを「親ノード」とした場合における該ノードnの「子ノード」となる全てのノードnに格納されたデータに基づいて、この「親ノード」となるノードnに格納されるデータの情報が求められる。例えば、「親ノード」となるノードn(例えば、図3の状態9の「n1」)に対して、「子ノード」となる2つのノードn(例えば、図3の状態9の「a1」,「a2」)を考えた場合、「子ノード」となる一方のノードnに格納されたデータと、他方のノードnに格納されたデータとの差分を求め、この差分データを「親ノード」となるノードnに格納してもよい。

【0028】
また、「親ノード」となる1つのノードnに対して、「子ノード」となるノードnが3つ以上ある場合には、「子ノード」となる3つ以上のノードnから選択した2つのノードnの差分を求め、この差分と、残りの「子ノード」となるノードnから選択された1つのノードnとからさらに差分を求め、以下、「子ノード」となる全てのノードnが選択されるまで順次この処理を繰返して、「親ノード」となるノードnに格納するデータを求めてもよい。

【0029】
さらに、「親ノード」となるノードn及び該ノードnにリンクLで繋がれた「子ノード」となる全てのノードnに対し、これらのノードnの何れか1つが、格納されるデータが未知である「未知ノード」であるとともに、残りが、格納されるデータが既知である「既知ノード」である場合、この「既知ノード」となるノードnに格納された既知データから、「未知ノード」となるノードnに格納された未知データが求められれば、「子ノード」の格納データから「親ノード」に格納されるデータを算出する手段は、差分に限定されることもなく、その他の乗算や除算や減算を用いてもよい。

【0030】
そして、このようなリンク構造(ツリー構造)を有する木構造データTの全ノードnのうちから、各平文分割データを個別に格納するノードnを、平文用ノードnaとして、ランダムに選択するとともに、各暗号文分割データを個別に格納するノードnも、暗号文用ノードnbとして、ランダムに選択する。

【0031】
ただし、この平文用ノードnaのランダム選択にあたっては1つの条件が課せられる。具体的には、各平文用ノードnaに格納された平文分割データから、木構造データTの平文用ノードna以外の各ノードnに格納されたデータを求めることができるようにして、平文用ノードnaのランダム選択が行われる。図示する例では、「葉ノード」となる各ノードnが平文用ノードnaになっている。

【0032】
同様に、この暗号文用ノードnbを、木構造データTの全ノードnのうちからランダムに選択する際にも同一の条件が課せられる。具体的には、各暗号文用ノードnbに格納された暗号文分割データから、木構造データTの暗号文用ノードnb以外の各ノードnに格納されたデータを求めることができるようにして、暗号文用ノードnbのランダム選択が行われる。

【0033】
暗号鍵は、この木構造データの木構造及び配置情報を有し、この暗号鍵の情報に基づいてデータの暗号化及び復号化が行われる。

【0034】
以下、図3乃至図5に基づいて、上記木構造データのアルゴリズムを用いた暗号鍵生成の具体的手段を説明する。

【0035】
図4は、暗号化装置及び復号化装置の暗号生成部が行う暗号鍵生成処理のフロー図である。
暗号鍵生成部17,26は、暗号鍵を生成する処理が開始されると、平文から分割した複数の平文分割データを各別に格納する複数のノードn(すなわち、平文用ノードna)を、それぞれ「未処理ノード」として選択範囲に加え、ステップS1に進む。ちなみに、このようにして「未処理ノード」としてセットされたノードnは、後述する処理(具体的には、ステップS6の処理)によって、順次、「処理済みノード」にセットされる。

【0036】
ステップS1では、選択範囲の中から、1つのノードnを「選択ノード」としてランダムに選択し、この選択したノードnが「処理済ノード」であれば、再度、選択範囲中からランダムに1つのノードnを「選択ノード」として選択し、以下、「未処理ノード」が選択されるまで、このステップS1の処理を繰返し、「未処理ノード」が「選択ノード」としてランダムに選択された時点で、該選択されたノードnを、左右一方側(図示する例では左側)に「子ノード」として配置し、ステップS2に進む。

【0037】
ステップS2では、選択範囲に含まれるノードnの中に、ステップS2でランダム選択したノードn以外で、「未処理ノード」が存在するか否かをチェックし、「未処理ノード」が存在すれば、ステップS3に進む。

【0038】
ステップS3では、選択範囲の中から、1つのノードnを「選択ノード」としてランダムに選択し、この選択されたノードnが「処理済ノード」である場合、或いは該ノードnがその回のループのステップS1で「選択ノード」とされている場合、再度、選択範囲中からランダムに1つのノードnを「選択ノード」として選択し、「未処理ノード」で且つその回のループのステップS1で「選択ノード」にされていないノードnを選択するまで、このステップS3の処理を繰返し、該条件を満たすノードnが「選択ノード」としてランダム選択された時点で、該選択されたノードnを、左右他方側(図示する例では右側)に「子ノード」として配置し、ステップS4に進む。

【0039】
ステップS4では、そのループ処理のステップS1及びステップS3で選んだ2つのノードnを、「子ノード」に有する「親ノード」と、「子ノード」となる一対のノードnからこの「親ノード」となるノードnに繋がるリンクLを生成し、ステップS5に進む。ちなみに、「親ノード」となるノードnに格納されるデータは、後述したように全ての子ノードnから求められるものであれば何れでもよいが、ここでは、「子ノード」となる一対のノードnの差分データを、「親ノード」となるノードnに格納する。

【0040】
ステップS5では、その回のループ処理でステップS1及びステップS3で「子ノード」として選択した一対のノードnがそれぞれ「葉ノード」であるか否かを確認し、両方とも「葉ノード」であれば、ステップS6に進む。

【0041】
ステップS6では、その回のループ処理で「子ノード」」とした一対のノードn及び「親ノード」とした1つのノードnのうちからランダムに選択された2つのノードnを、「対象ノード」とするとともに、残りの1つのノードnを、暗号文分割データが格納されない「非対象ノード」として、ステップS7に進む。ちなみに、この「対象ノード」となるノードnは、上述した暗号文用ノードnbである。

【0042】
ステップS7では、その回のループ処理でステップS1及びステップS3で「子ノード」としてランダム選択した2つの各ノードnを、「処理済みノード」にセットするとともに、その回のループのステップS4で「親ノード」として生成したノードnを、「未処理ノード」にセットして上述した選択範囲に追加し、その回のループ処理を終了させ、ステップS1に処理を戻して、次の回のループ処理に移行する。

【0043】
ステップS5において、その回のループ処理で「子ノード」とした一対のノードnの一方が「葉ノード」であり、他方が「葉ノード」でない場合、ステップS8に進む。ステップS8では、上記「葉ノード」且つ「子ノード」であるノードnと、その回のループ処理で生成された「親ノード」であるノードnとの何れか一方を、ランダムに選択して「対象ノード」とするとともに、他方を、上述した「非対象ノード」として、ステップS7に進む。

【0044】
ステップS5において、その回のループ処理で「子ノード」として選択した一対のノードnが何れも「葉ノード」でない場合には、ステップS9に進む。ステップS9では、「親ノード」を「非対象ノード」とし、ステップS7に進む。

【0045】
また、ステップS2において、選択範囲中のノードnが全て「処理済みノード」である場合には、ステップS10に進む。ステップS10では、その回のループ処理で、ステップS1で「子ノード」として選択されたノードnを「根ノード」にするとともに、該ノードnを、「処理済みノード」にセットし、これによって木構造データTの木構造及び配置情報を格納された暗号鍵が生成され、以上をもって暗号鍵を生成する処理を終了させる。

【0046】
以上のようにして、上述した木構造及び配置の条件を満たす木構造データTがランダムに生成され、この木構造及び配置情報が暗号鍵に格納され、これらの情報に基づいて、データの暗号化及びデータの復号化が行われる。

【0047】
ちなみに、図3の状態1は、ステップS1→ステップS2→ステップS3の処理に対応し、状態2は、ステップS4の処理に対応し、状態3は、ステップS5→ステップS6→ステップS7の処理に対応し、状態4は、ステップS1→ステップS2→ステップS3の処理に対応し、状態5は、ステップS4の処理に対応し、状態6は、ステップS5→ステップS8→ステップS7の処理に対応し、状態7は、ステップS1→ステップS2→ステップS3の処理に対応し、状態8は、ステップS4の処理に対応し、状態9は、ステップS5→ステップS8→ステップS7→ステップS1→ステップS2→ステップS10の処理に対応している。

【0048】
なお、上記したステップS1、ステップS3、ステップS6及びステップS8の処理(決定処理)によって、木構造データTの木構造及び配置状態をランダムに選択して決定する際、本例では擬似乱数を用いて再現可能にランダム選択を行う。

【0049】
この擬似乱数の生成には、従来公知の種々の手段を用いることができるが、ここでは、フィボナッチLFSR(Linear Feedback Shift Register)からなる擬似乱数生成手段29(図5参照)を用いる。擬似乱数生成手段29はRAM4上に実行される前記プロフラムによって実装される他、上記フィボナッチLFSRについては従来公知であるため、詳細は割愛するが、その構成を以下に簡単に説明する。

【0050】
図5は、擬似乱数生成手段の一例の構成を示す概念図である。生成する乱数は、予め定めた所定(図示する例ではMビットであり、さらに具体的には63ビット)ビット長のデータサイズを有し、ある状態からその次の状態への移行(以下、「次状態への移行」)にあたっては、各ビットXの値が、隣接する最終のビットX(図5における最右端のM番目のビットX)側のビットXに1つづつずれるとともに、全ビットXから予め選定された複数の各ビット(タップ)Xsの排他的論理和が順次求められ、その最終結果が最初のビットX(図5における最左端の1番目のビットX)にフィードバックされる。このようにして、周期の長い再現性のある乱数が順次擬似的に生成されていく。

【0051】
なお、このフィボナッチLFSRでは、初期値Rの決定も非常に重要になるが、この初期値Rを、パスワード取得手段16,24で取得されるパスワード及び上述した分割数Nの一方又は両方(図示する例では両方)に基づいて決定する。

【0052】
これに加えて、タップXsの選定や、排他的論理和を求めるXORゲート31aからなる論理回路31の構成を、パスワード取得手段16,24で取得されるパスワード及び上述した分割数Nの一方又は両方に依存させてもよい。

【0053】
そして、この擬似乱数生成手段29は、ランダム選択毎に「次状態への移行」の処理を繰返して、擬似的に乱数を生成する処理(発生処理)を行い、このように生成した乱数を用いてランダム選択処理(決定処理)を行う。例えば、ステップS1→ステップS2→ステップS3→ステップS4→ステップS5→ステップS6→ステップS7と処理を進む場合、ステップS1、ステップS3及びステップS6の計3回、ランダム選択が行われ、このランダム選択の処理毎に「次状態への移行」の処理が行われる。

【0054】
ちなみに、このランダム選択毎に行われる「次状態への移行」の処理は、必ずしも1回づつである必要はなく、予め定めた所定回数実行して、最後の「次状態への移行」の処理により擬似生成される乱数を、ランダム選択に用いてもよい。このようにランダム選択に用いない擬似乱数生成を行う「空回し処理」によって、より解読され難い乱数を擬似的に生成することが可能になる。

【0055】
ランダム選択の際、このように再現可能な擬似乱数を用いた場合、同一のパスワードを用いることにより同一の暗号鍵(具体的には、木構造データの同一の木構造及び配置情報)を暗号化装置1及び復号化装置2の両方で生成できる。このため、暗号化装置1において上記パスワードを入力するのみによって、暗号化のための暗号鍵を生成可能であるとともに、復号化装置2において上記パスワードを入力するのみによって、復号化のための暗号鍵を生成可能であり、利便性が高い。

【0056】
次に、図6及び図7に基づいて、暗号化部18の構成を詳述する。

【0057】
図6は、暗号化部が暗号鍵に基づいて行う平文の暗号化処理の手順を示す説明図であるとともに、復号化部が暗号鍵に基づいて行う暗号文の復号化処理の手順を示す説明図であり、図7は、暗号化部の処理フロー図である。暗号化部18は、入力部12から入力された平文を受取ると、ステップS11から処理を開始する。ステップS11では、上記分割数N個に平文を分割して、平文分割データを生成する分割処理を行い、処理が終了すると、ステップS12に進む。

【0058】
ステップS12では、暗号鍵提供部13から提供される暗号鍵を受取り、この暗号鍵から、木構造データTのリンク情報及び配置情報を取得し、まず、各平文分割データを、木構造データTの平文用ノードnaに格納し(図6の「暗号化処理1」)、この各平文用ノードnaに格納されたデータから、残りのノードnに格納されたデータを求め、上記暗号鍵から、木構造データTの各暗号文用ノードnbに格納されたデータを、暗号文分割データとして取得する(同図の「暗号化処理2」)。このステップS12の処理が暗号化のためのメイン処理になり、このメイン処理が終了すると、ステップS13に進む。

【0059】
ステップS13では、直前のステップS12で取得した各暗号文分割データを結合させて暗号文を生成する結合処理を行い、処理を終了させる。

【0060】
次に、図6及び図8に基づいて、復号化部27の構成を詳述する。

【0061】
図8は、復号化部の処理フロー図である。復号化部27は、入力部12から入力された暗号文を受取ると、ステップS21から処理を開始する。ステップS21では、上記分割数N個に暗号文を分割して、暗号文分割データを生成する分割処理を行い、分割処理が終了すると、ステップS22に進む。

【0062】
ステップS22では、暗号鍵提供部13から提供される暗号鍵を受取り、この暗号鍵から、木構造データTのリンク情報及び配置情報を取得し、まず、各暗号文分割データを、木構造データTの暗号文用ノードnbに格納し(図6の「復号化処理2」)、この各暗号文用ノードnbに格納されたデータから、残りのノードnに格納されたデータを求め、上記暗号鍵から、木構造データTの各平文用ノードnaに格納されたデータを、平文分割データとして取得する(同図の「復号化処理2」)。このステップS22の処理が復号化のためのメイン処理になり、このメイン処理が終了すると、ステップS23に進む。

【0063】
ステップS23では、直前のステップS22で取得した各平文分割データを結合させて平文を生成する結合処理を行い、処理を終了させる。

【0064】
以上のように構成される暗号処理システムによれば、木構造データTのリンク情報及び配置状態を、暗号鍵によって取得できれば、少ない処理工程で、迅速に暗号化及び復号化を行うことができる一方で、上記リンク情報及び配置情報を取得できなれば、暗号文の復号化は困難であり、処理の迅速化と、暗号強度の向上とを両立できる。

【0065】
しかも、擬似乱数によって、分割数Nやパスワードによる再現性を持たせて暗号鍵を生成するため、暗号鍵をデータとして、保持しておく必要がなく、利便性の暗号強度も両立可能になる。

【0066】
なお、擬似乱数生成手段29による乱数生成の手段として、本例では、フィボナッチLFSRを用いているが、これに限定されるものではなく、ガロアLFSRや、その他の擬似乱数を生成する公知の手段を用いてもよい。

【0067】
また、パスワードによる再現性を持たせることなく、暗号鍵を生成する場合には、擬似乱数ではなく、ランダム選択による決定処理時に真正乱数を用いて、木構造データTを生成し、これに基づいて暗号鍵を生成する生成処理を行ってもよい。この場合には、暗号化及び復号化にあたって、暗号鍵をデータとして保持する必要はあるが、暗号文を解読される可能性はさらに低くなる。

【0068】
さらに、木構造データTの構成も図3及び図6に示すような構成に限定されない。

【0069】
図9(A),(B)は、それぞれ木構造データの他例を示す概念図である。木構造データTは、「リーフノード」以外のノードnに平文分割データを配置してもよく(同図(A)参照)、さらには、「親ノード」となるノードnが「子ノード」となるノードnを3個以上有していてもよい(同図(B)参照)。

【0070】
次に、図10及び図11に基づき、本暗号処理システムの検証結果について説明する。

【0071】
図10(A)乃至(E)は、それぞれ本暗号処理システムの検証実験の結果を示す一覧表である。
まず、同図(A)の一覧表に示す検証では、木構造データTの木構造を総当りにより解析した。具体的には、パスワードが5桁で英数字が混在するもの(同表の「A」で示すもの)と、英数字が混在するもの(同表の「B」で示すもの)と、英字のみのもの(同表の「C」で示すもの)と、数字のみのもの(同表の「D」で示すもの)と、英数字が混在するもの(同表の「E」で示すもの)とのそれぞれに対して、分割数Nを5~10の範囲で1つづつ変化させ、各分割数Nに対して、総当りにより、木構造データTの木構造の解析を行った。

【0072】
ちなみに、用いるコンピュータは、本願の出願時点で高性能されるAT互換機のコンピュータを用い、初期値Rは、パスワードを用いて以下の式から求め、求めた値を、Xビット(具体的には63ビット)の2進数表示して用いる。

【0073】
【数1】
JP2014219548A_000003t.gif

【0074】
Nは上述した分割数であり、mはパスワードの文字数であり、PW[i-1]は、パスワードにおけるi番目の文字の文字コードである。

【0075】
その結果は、同表に示す通りであり、解析に要する時間及び回数は、分割数Nの上昇に伴って飛躍的に上昇している。そして、同表には示していないが、分割数Nが11になると、解析が困難になり、分割数Nが12になると、解析に要する時間が35年以上となるという結果になり、事実上、解析が不可能になった。

【0076】
続いて、図10(B)の一覧表に示す検証では、乱数再現により、木構造データTの木構造の解析を行った。その他の条件は、同図(A)と同様である。

【0077】
その結果は、同表に示す通りであり、上述したノードnの総当りによる解析によりも少ない時間や回数で解析を行うことができる場合が多くあり、全体的には、解析に要する時間や回数は減少し、効率的な解析が行われている。ちなみに、パスワード自体の解読は、乱数の再現に帰着されるので、乱数発生時に乱数値に基づいて上述の「空回し処理」を行うことにより、再現されるリスクを大幅に低減することが可能になる。その詳細は、後述する。

【0078】
続いて、図10(C)の一覧表に示す検証では、木構造データTのリンク構造(木構造)が既知であると仮定し、総当りにより、暗号文用ノードnbを特定する解析を行った。用いるパスワードの種類は、同図(A)に示すものと同様であり、分割数Nを8→12→16→20→21→22と変化させ、各分割数Nに対して、総当りにより、暗号文用ノードnbを特定する解析を行った。

【0079】
その結果は、同表に示す通りであり、分割数Nが少ない場合には、少ない時間及び回数が解析可能であったが、分割数Nが増加ほど解析は困難になっている。そして、分割数Nが16を超えたあたりから、解析の難易度が極端に上がり、同表には示していないが、分割数Nが26に達した段階で、解析は不可能になった。

【0080】
続いて、図10(D)の一覧表に示す検証では、木構造データTのリンク構造(木構造)が既知であると仮定し、乱数再現により、分割用ノードnbを特定する解析を行った。その他の条件は、同図(C)に示すものと同様である。

【0081】
その結果は、同表に示す通りであり、同図(C)に示す総当り解析に比べて、概ね解析に要する時間や回数が減少している。

【0082】
続いて、同図(E)の一覧表に示す検証では、木構造データTの木構造を総当りにより解析した。ただし、木構造データTの生成にあたっては、擬似乱数生成手段29により「次状態への移行」の処理を行う際、上述した処理に加えて、乱数発生回数がj回である場合、パスワードのj番目の文字コードをMビットの2進数表示して、各ビットXに加え、これを擬似的に生成した乱数として用い、上述した「空回し処理」を行う。ちなみに、jは、パスワードの文字数以上にはならず、パスワードの文字数を超えた場合には、その値が1に戻される。その他の条件は同図(A)と同様である。

【0083】
その結果は、同表に示す通りであり、解析に要する時間や回数は、同図(A)に示す総当り解析と同程度になっている。すなわち、総当り解析に対しては、「空回し処理」の効果は殆ど見られないことが分った。一方、この木構造データTの木構造の解析を、乱数再現により行うと、分割数Nが4の段階で、解析が困難になり、この「空回し処理」は、乱数再現による解析に対して、有効であることが分った。

【0084】
図11(A)は暗号化する際の処理速度を示し、(B)は復号化する際の処理速度を示している。同図(A)は、分割数Nが80と、96と、112と、128のそれぞれの場合において、平文のデータサイズを1MB→4MB→16MB→32MB→64MB→128MBと変化させ、この平文を暗号鍵により暗号化する処理に要す時間から、処理速度を求め、これをグラフ化したものである。暗号化装置1としては、上述の検証と同一のコンピュータを用いた。

【0085】
このグラフに示されるように、概ね1700Mbit/secの処理速度が確保され、実用に耐え得る良好な結果となった。

【0086】
また、同図(B)は、分割数Nが80と、96と、112と、128のそれぞれの場合において、暗号文のデータサイズを1MB→4MB→16MB→32MB→64MB→128MBと変化させ、この暗号文を暗号鍵により復号化する処理に要す時間から、処理速度を求め、これをグラフ化したものである。復号化装置2としては、上述の検証と同一のコンピュータを用いた。

【0087】
このグラフに示されるように、概ね1450Mbit/secの処理速度が確保され、実用に耐え得る良好な結果となった。
【符号の説明】
【0088】
12 入力部(入力手段)
13 暗号鍵提供部(提供部,暗号鍵提供手段)
16 パスワード取得部(取得部,パスワード取得手段)
17 暗号鍵生成部(生成部,暗号鍵生成手段)
18 暗号化部(変換部,暗号化手段)
19 出力部(出力手段)
21 入力部(入力手段)
22 暗号鍵提供部(提供部,暗号鍵提供手段)
24 パスワード取得部(取得部,パスワード取得手段)
26 暗号鍵生成部(生成部,暗号鍵生成手段)
27 暗号化部(変換部,暗号化手段)
28 出力部(出力手段)
n ノード
T 木構造データ
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10