(57)【要約】【課題】暗号の堅牢性を向上させる。【解決手段】本願に係る暗号化装置は、暗号化対象となる情報を取得する取得部と、前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化部とを有することを特徴とする。例えば、暗号化装置１００は、平文に対して、それぞれ異なるカントール関数Φａ、関数Φｂをフィボナッチ列の順に適用することで、暗号化を行う。この結果、暗号化装置１００は、微分法等の攻撃手法に基づいて、暗号鍵の推定を困難にするので、暗号の堅牢性を向上させることができる。【選択図】図１
2018013554.tif 000002
【特許請求の範囲】
【請求項１】
暗号化対象となる情報を取得する取得部と、
前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化部と
を有することを特徴とする暗号化装置。
【請求項２】
前記暗号化部は、異なる２つの関数をフィボナッチ列の順に適用することで、前記情報を暗号化する
ことを特徴とする請求項１に記載の暗号化装置。
【請求項３】
前記暗号化部は、所定の結晶における結晶透過率を示す関数を適用する
ことを特徴とする請求項１または２に記載の暗号化装置。
【請求項４】
前記暗号化部は、結晶透過率を示す関数を準周期構造を有する順に適用することで、カントール関数の機能を構成する関数を前記取得された情報に対して適用する
ことを特徴とする請求項３に記載の暗号化装置。
【請求項５】
暗号化装置が実行する暗号化方法であって、
暗号化対象となる情報を取得する取得工程と、
前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化工程と
を含むことを特徴とする暗号化方法。
【請求項６】
暗号化装置が実行する暗号化方法であって、
暗号化対象となる情報を取得する取得工程と、
前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化工程と
を含むことを特徴とする暗号化方法で生成される暗号化データ。
【請求項７】
コンピュータに、
暗号化対象となる情報を取得する取得手順と、
前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化手順と
を実行させることを特徴とする暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、暗号化方法、暗号化データおよび暗号化プログラムに関する。
【背景技術】
【０００２】
近年、インターネットの飛躍的な普及に伴い、インターネットを介した情報配信が盛んに行われている。このような情報配信においては、セキュリティを担保するため、共通鍵暗号方式や公開鍵暗号方式により暗号化された情報を配信するといった処理が行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第６７９２１０８号明細書
【非特許文献】
【０００４】
【非特許文献１】「1次元フィボナッチ配列における電子輸送現象のフラクタル性」、野亦  厚史  東京理科大学  博士論文  2008年  3月20日
【非特許文献２】「Self−similarity  appearance  conditions  for  electronic  transmission  probability  and  Landauer  resistance  in  a  Fibonacci  array  of  T  stubs」、Atsushi  Nomata,  Shinkichi  Horie,  PHYSICAL  REVIEW  B  76,  235113  2007
【非特許文献３】「Fractal  feature  of  localized  electronic  states  in  Fibonacci  arrays  of  Aharonov−Bohm  rings」、Atsushi  Nomata,  Shinkichi  Horie,  PHYSICAL  REVIEW  B  75,  115130  2007
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、セキュリティを担保することができない場合がある。
【０００６】
近年、物質の量子的なふるまいを利用する量子コンピューティングの技術が進歩しているが、このような量子コンピューティングの技術を用いた場合には、暗号化された情報から、暗号鍵や復号鍵を有意な時間内で取得することができるため、暗号化された情報が第３者により復号化される恐れがある。
【０００７】
本願は、上記に鑑みてなされたものであって、暗号の堅牢性を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
本願に係る暗号化装置は、暗号化対象となる情報を取得する取得部と、前記取得された情報に対して複数の関数を準周期構造を有する順に適用することで、当該情報を暗号化する暗号化部とを有することを特徴とする。
【発明の効果】
【０００９】
実施形態の一態様によれば、暗号の堅牢性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係る暗号化装置が実行する暗号化処理の一例を示す図である。
【図２】図２は、実施形態に係る暗号化装置の構成例を示す図である。
【図３】図３は、実施形態に係るルールテーブルに登録される情報の一例を示す図である。
【図４】図４は、実施形態に係る暗号化装置が暗号化を行う処理の一例を示す図である。
【図５】図５は、実施形態に係る暗号化装置が用いる準周期構造のバリエーションを示す図である。
【図６】図６は、自己相似フォトニック結晶を通る波の波数のスペクトルの一例を示す図である。
【図７】図７は、透過確率と波数との関係の一例を示す図である。
【図８】図８は、実施形態に係る暗号化処理および復号化処理の流れの一例を説明するフローチャートである。
【図９】図９は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願に係る暗号化装置、暗号化方法、暗号化データおよび暗号化プログラムを実施するための形態（以下、「実施形態」と記載する。）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る暗号化装置、暗号化方法、暗号化データおよび暗号化プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１２】
［実施形態］
〔１−１．暗号化装置の一例〕
まず、図１を用いて、暗号化装置が実行する暗号化処理の一例について説明する。図１は、実施形態に係る暗号化装置が実行する暗号化処理の一例を示す図である。図１では、暗号化装置１００は、以下に説明する暗号化処理を実行する情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。
【００１３】
より具体的には、暗号化装置１００は、インターネット等の所定のネットワークＮを介して、利用者が使用する端末装置３００（例えば、図２）等といった任意の装置と通信が可能である。また、暗号化装置１００は、暗号化装置１００と同様の機能を有する暗号化装置２００と通信が可能である。例えば、暗号化装置１００は、以下の暗号化処理によって暗号化された平文である暗号文を暗号化装置２００に送信する。このような場合、暗号化装置２００は、暗号文を平文に復号し、復号した平文を利用者等に提供する。
【００１４】
同様に、暗号化装置２００は、利用者等から取得した平文を暗号化処理によって暗号化し、暗号文を暗号化装置１００に送信する。このような場合、暗号化装置１００は、暗号文を平文に復号し、復号した平文を利用者等に提供する。すなわち、暗号化装置１００、２００は、暗号化および復号化を行うことで、暗号化通信を行う情報処理装置である。
【００１５】
〔１−２．暗号化処理の一例〕
ここで、共通鍵暗号方式や公開鍵暗号方式等といった従来の暗号方式では、セキュリティを担保することができない場合がある。例えば、従来の暗号方式では、暗号化や復号化に用いる鍵を有意な時間内に暗号文から求めることができないように、十分に大きな暗号鍵空間をあらかじめ準備したり、因数分解といった古典的なコンピュータでは計算に時間がかかる問題を利用している。しかしながら、近年、物質の量子的なふるまいを利用する量子コンピューティングの技術が進歩しているが、このような量子コンピューティングの技術を用いた場合には、暗号化された情報から、暗号鍵や復号鍵を有意な時間内で取得することができる可能性がある。
【００１６】
そこで、暗号化装置１００は、以下の処理を実行する。まず、暗号化装置１００は、暗号化の対象となる情報、すなわち、平文を取得する。そして、暗号化装置１００は、平文に対して複数の関数を準周期構造を有する順に適用することで、平文を暗号化した暗号文を生成する。その後、暗号化装置１００は、生成した暗号文を暗号化装置２００に送信する。
【００１７】
このような場合、暗号化装置２００は、暗号化装置１００が平文を暗号化する際に用いた各関数の逆関数を、暗号化装置１００が平文に対して適用した順とは逆の順に適用することで、暗号文を平文に復号する。以下、簡易な例について説明する。
【００１８】
例えば、暗号化装置１００は、所定の第１関数と第２関数とを、第１関数、第２関数、第１関数、第１関数、第２関数の順に平文に適用することで、暗号化文を生成する。具体的には、暗号化装置１００は、平文を第１関数に入力した際の出力を第２関数の入力とし、この第２関数の出力を第１関数の入力とし、この第１関数の出力を再度第１関数の入力とし、この第１関数の出力を第２関数の入力とし、この第２関数の出力を暗号文とする。
【００１９】
一方、暗号化装置２００は、第１関数の逆関数である第１逆関数と、第２関数の逆関数である第２逆関数をあらかじめ保持する。そして、暗号化装置２００は、暗号化装置１００から受信した暗号文に対して、第２逆関数、第１逆関数、第１逆関数、第２逆関数、第１逆関数の順に適用することで、暗号文を平文に復号する。
【００２０】
〔１−３．準周期構造について〕
ここで、暗号化装置１００が複数の関数を適用する順について説明する。上述したように、暗号化装置１００は、複数の関数を準周期構造を有する順に適用する。ここで、準周期構造を有する順とは、例えば、あるルールに基づいてＡとＢとを並べた際にＡとＢとの出現回数の比が無理数に収束する、すなわち、周期的ではなくなるものであり、具体的には、フィボナッチ列やペンローズタイリング、フォトニック結晶等の準格子等が該当する。
【００２１】
例えば、暗号化装置１００は、予め定められた第１関数と第２関数とを、フィボナッチ列の順に適用することで、平文の暗号化を行う。より具体的には、暗号化装置１００は、第１関数と第２関数とをフィボナッチ列等、準周期構造を有する順に適用する。例えば、暗号化装置１００は、所定の結晶における結晶透過率を示す第１関数および第２関数とを適用する。より概念的な例を挙げると、暗号化装置１００は、自己相似構造を有するフォトニック結晶等、透過率がそれぞれ異なる部分が準周期構造を有する順に並ぶ結晶に対する入射光の波数を平文とし、結晶の透過光の波数を暗号文とする。すなわち、暗号化装置１０は結晶透過率を示す関数等、複数の関数を準周期構造を有する順に適用することで、カントール関数の機能を構成する関数を平文に対して適用する。なお、暗号化装置１０は、それぞれ異なるカントール関数である第１関数と第２関数とを適用してもよい。
【００２２】
このような処理の結果、暗号化装置１００は、量子コンピュータ等を用いても鍵の生成が困難な暗号を生成することができる。すなわち、上述したように、フィボナッチ列等といった準周期構造を有する順に関数を適用した場合には、連続ではあるものの絶対連続ではないという特徴、いわゆる悪魔の階段と呼ばれる特徴を出力が有することとなる。すなわち、暗号化装置１００は、入力に対してカントール関数を適用した際と同様の出力を得る。このような出力、すなわち、暗号文がこのような特徴を有する場合、微分や積分を用いた暗号攻撃を行うことが困難となる。なお、暗号化装置１００は、適用する関数としてカントール関数を用いることで、さらに微分や積分を用いた暗号攻撃をさらに困難にしてもよい。
【００２３】
また、上述した暗号方式を用いた場合、攻撃者は、第１関数と第２関数とを適用する順序のみならず、第１関数と第２関数とをいくつ適用したかを特定する必要がある。このような問題は、自己相似構造を有するフォトニック結晶において透過率がそれぞれ異なる部分がどのような構造を有しているかといった問題と対応するが、このような問題を古典的または量子的な計算手法により効率的に解決する手法については、確立されていない。このため、上述した暗号方式を用いた場合、有意な時間内で暗号文から古典的または量子的な計算手法により平文を求めるのは、十分に困難であると言える。この結果、暗号化装置１００は、上述した暗号方式を適用することで、暗号の堅牢性を向上させることができる。
【００２４】
〔１−４．暗号化処理および復号化処理の一例について〕
次に、図１を用いて、暗号化装置１００、２００が実行する暗号化処理の一例について説明する。例えば、暗号化装置１００は、送信対象となる平文を取得する（ステップＳ１）。このような場合、暗号化装置１００は、準周期構造を有する順に複数のカントール関数を平文に対して適用することで、平文の暗号化を行う（ステップＳ２）。例えば、暗号化装置１００は、平文に対してカントール関数である関数Φａおよび関数Φｂをフィボナッチ列と対応する順に適用する（ステップＳ３）。より具体的には、暗号化装置１００は、関数Φａ、関数Φｂ、関数Φａ、関数Φａ、関数Φｂ、関数Φａ、関数Φｂ・・・といった順で、カントール関数である関数Φａおよび関数Φｂを平文に対して適用する。そして、暗号化装置１００は、所定の数のカントール関数を適用した出力を暗号文とする（ステップＳ４）。なお、図１に示す例では、関数Φａおよび関数Φｂを後述するＡＢ（Aharonov-Bohm）リングと呼ばれる円で表した。具体的には、図１に示す例では関数Φａを大きな円で表し関数Φｂを小さな円で示した。その後、暗号化装置１００は、暗号文を暗号化装置２００へと送信する（ステップＳ５）。
【００２５】
一方、暗号化装置２００は、暗号文を受信すると、暗号化装置１００が暗号化に用いたカントール関数の逆関数を暗号化に用いた順とは逆の順に所定の数だけ暗号文に適用する（ステップＳ６）。例えば、暗号化装置２００は、暗号化装置１００が・・・関数Φａ、関数Φａ、関数Φｂ、関数Φａ、関数Φｂ、関数Φａの順にカントール関数を適用した場合は、暗号文に対して、関数Φａの逆関数である関数Φａ−と、関数Φｂの逆関数である関数Φｂ−とを、関数Φａ−、関数Φｂ−、関数Φａ−、関数Φｂ−、関数Φａ−、関数Φａ−・・・の順に適用する。そして、暗号化装置２００は、暗号文に所定の数だけカントール関数の逆関数を適用した出力を平文とし（ステップＳ７）、平文を出力して（ステップＳ８）、処理を終了する。
【００２６】
〔１−５．ルールについて〕
ここで、上述した暗号方式を用いた暗号化通信を行う場合、暗号化装置１００、２００は、暗号化に用いる複数の関数や複数の関数を適用する順番、関数を適用する数などをあらかじめ共有しておけばよい。例えば、暗号化装置１００、２００は、暗号化に用いる複数のカントール関数、復号化に用いる逆関数、関数を適用する数を示すルールをあらかじめ記憶し、いずれのルールで暗号化された情報を送受信するかを通知すればよい。また、例えば、暗号化装置１００、２００は、送信対象となる平文の内容やビット数、送受信を行う日時等に応じて、暗号化および復号化に用いる関数や関数を適用する順序、適用する関数の数等を動的に変更してもよい。すなわち、暗号化装置１００、２００は、複数の関数を順周期構造を有する順に適用することで、平文を暗号化するのであれば、任意のルールに従って、上述した暗号化処理を実行してよい。
【００２７】
〔１−６．数式の一例〕
次に、暗号化装置１００が上述した暗号化を行う際に用いる数式の一例について説明する。なお、以下に示す数式は、あくまで一例であり、複数の関数を準周期構造を有する順に適用するのであれば、暗号化装置１００は、他の形式の数式を利用してもよい。
【００２８】
〔１−６−１．電磁ポテンシャルを示す数式の利用〕
まず、準周期構造の一例として、電磁ポテンシャルが異なる領域をフィボナッチ列に従って配列した空間を電子が移動する際のアハラノフ＝ボーム効果を示す数式を利用する例について説明する。
【００２９】
例えば、電子の波動関数をΦ（ｘ）とすると、電子の状態を示すシュレーディンガー方程式は、以下の式（１）で示すことができる。ここで、式（１）中のΦは、式（２）で表される磁束である。
【００３０】
【数１】
2018013554.tif 000003
【００３１】
【数２】
2018013554.tif 000004
【００３２】
ここで、各領域のアフラノフ＝ボーム効果をＡＢリングと呼ばれる図式で表すと、電子を移動させる全領域のアフラノフ＝ボーム効果は、図１に示すように、フィボナッチ列に従って各領域に対応するＡＢリングを並べることで模式的に示すことができる。より具体的には、暗号化装置１００は、関数Φａ、関数Φｂを各領域の磁束Φと見做すことで、電磁ポテンシャルが異なる領域をフィボナッチ列に従って配列した空間を電子が移動する際のアハラノフ＝ボーム効果を、上述した暗号化処理に落とし込むことができる。なお、以下の説明では、関数Φａと対応するＡＢリングをユニットα、関数Φｂと対応するＡＢリングをユニットβと記載する。なお、ユニットαおよびユニットβは、それぞれ異なる磁束を有する領域に対応する。
【００３３】
ここで、ＡＢリングに対して電子が伝達していく領域（入射側の領域）を第１領域、ＡＢリングのうち電子の入射部から電子の出射部までを時計回りに結ぶ領域を第２領域、ＡＢリングのうち電子の出射部から電子の入射部までを時計回りに結ぶ領域を第３領域、ＡＢリングから電子が出射する領域を第４領域とする。第１領域における波動関数をΦ１、第２領域における波動関数をΦ２、第３領域における波動関数をΦ３、第４領域における波動関数をΦ４とすると、各波動関数Φ１〜Φ４は、以下の式（３）〜式（６）で示すことができる。
【００３４】
ここて、ｔαは、伝達する電子の振幅を示し、ｒαは、反射した電子の振幅を示し、Ｃ２、Ｄ２、Ｃ３、Ｄ３は、第２領域および第３領域における波動関数の振幅を示す。また、ｋは、以下の式（７）に示すエネルギーを有する電子の波数を示す。
【００３５】
【数３】
2018013554.tif 000005
【００３６】
【数４】
2018013554.tif 000006
【００３７】
【数５】
2018013554.tif 000007
【００３８】
【数６】
2018013554.tif 000008
【００３９】
【数７】
2018013554.tif 000009
【００４０】
また、式（４）のｋＩおよび式（５）のｋＩＩは、以下の式（８）および式（９）で示す値である。
【００４１】
【数８】
2018013554.tif 000010
【００４２】
【数９】
2018013554.tif 000011
【００４３】
この結果、ユニットαに対する伝達側の振幅ｔαおよび反射側の振幅ｒαは、以下の式（１０）および式（１１）で示すことができる。ここで、式（１０）および式（１１）中のａは、ＡＢリングの半周長である。また、式（１０）および式（１１）中のΔｓ（ｋ，ｆ，ａ）は、以下の式（１２）で示すことができる。
【００４４】
【数１０】
2018013554.tif 000012
【００４５】
【数１１】
2018013554.tif 000013
【００４６】
【数１２】
2018013554.tif 000014
【００４７】
この結果、ユニットαにおける電子の転送行列は、以下の式（１３）で示すことができる。また、ユニットβにおける電子の転送行列も、ＡＢリングの半周長ａの値をｂとすることで、上述した式（３）〜式（１３）より同様に求めることができる。
【００４８】
【数１３】
2018013554.tif 000015
【００４９】
ここで、ユニットαおよびユニットβがフィボナッチ列の順に並んでいる場合、入射側から数えてｊ−１番目のＡＢリングの転送行列をＭｊ−１、ｊ番目のＡＢリングの転送行列をＭｊとすると、ｊ＋１番目のＡＢリングの転送行列をＭｊ＋１は、以下の式（１４）で示すことができる。ここで、フィボナッチ列のルールに基づき、Ｍ０＝Ｍβとし、Ｍ１＝Ｍαとした。すなわち、最初のＡＢリングをユニットαとした。
【００５０】
【数１４】
2018013554.tif 000016
【００５１】
この結果、Ｎ個のＡＢリングをフィボナッチ列の順に並べた場合における全体の転送行列は、以下の式（１５）で示すことができる。
【００５２】
【数１５】
2018013554.tif 000017
【００５３】
ここで、式（１５）中におけるｔＮは、全領域を伝達する電子の振幅を示し、ｒＮは、全領域から反射する電子の振幅を示す。この結果、全領域が電子を伝達する確率、すなわち、透過確率は、以下の式（１６）で示すことができる。
【００５４】
【数１６】
2018013554.tif 000018
【００５５】
なお、温度が零である場合において、全領域の抵抗は、以下の式（１６）で示すランダウアーの公式より求めることができる。
【００５６】
【数１７】
2018013554.tif 000019
【００５７】
さて、上述した式（１５）は、Ｎ個のＡＢリングをフィボナッチ列の順に並べた場合における全領域の転送行列である。このような行列は、関数Φａ（すなわち、ユニットαに対応）と、関数Φｂ（すなわち、ユニットβに対応）とをフィボナッチ列の順に並べた際において、平文に対して適用する行列であると見做すことができる。また、Ｎ個のＡＢリングによって伝達される電子を平文とした場合には、式（１６）で示される透過確率を暗号文と見做すことができる。
【００５８】
そこで、暗号化装置１００は、平文をＡＢリングに入射する電子と見做し、上述した式（１５）を用いて、式（１６）で示される透過確率を求めることで、平文を暗号化した暗号文を算出する。具体的には、暗号化装置１００は、平文を示すビット列を電子の波数ｋとする。また、暗号化装置１００は、式（１１）および式（１２）に示すｆやａの値をパラメータとして設定する。例えば、暗号化装置１００は、ユニットαとユニットβとで式（１２）に示すａの値をｂに変更すればよい。
【００５９】
この結果、暗号化装置１００は、式（１５）を用いて、平文のビット列から式（１６）に示す透過確率ＴＮを算出し、算出した透過確率ＴＮの値を暗号文として送信する。なお、暗号化装置２００は、式（１６）で示す透過確率ＴＮの値から、式（１５）に示す転送行列の逆行列を用いて、入射側の電子の波数ｋの値を算出し、算出した値から平文を求めればよい。
【００６０】
〔１−６−２．他の数式の利用〕
ここで、暗号化装置１００は、上述した式以外にも、準周期構造の他の例として、自己相似構造を有する物体が電子を伝達する際の透過確率を示す式を用いてもよく、自己相似構造を有する結晶中を光子が移動する際の透過確率を示す式を用いてもよい。例えば、自己相似構造として、ＵｎｉｔＡおよびＵｎｉｔＢといったＴスタブに対応する２種類の構造がフィボナッチ列の順に並べられているものとする。このような場合、ｎ番目のスタブにおける伝達側の確率振幅をＡｎ、Ｂｎとし、Ａｎ＝αｎ＋ｉβｎ、Ｂｎ＝αｎ−ｉβｎとすると、転送行列Ｍｎとαｎおよびβｎは、以下の式（１８）の関係を有し、転送行列Ｍｎは、以下の式（１９）で示すことができる。なお式（１９）に示すｋは、電子の波数（すなわち、平文に対応）し、ｌｎは、ｎ番目のセグメントの長さを示し、Ｌｎは、ｎ番目のスタブの長さを示す。
【００６１】
【数１８】
2018013554.tif 000020
【００６２】
【数１９】
2018013554.tif 000021
【００６３】
この結果、透過確率ＴＮは、以下の式（２０）で示すことができる。
【００６４】
【数２０】
2018013554.tif 000022
【００６５】
暗号化装置１００は、上述した式（１９）に示す転送行列を用いて、式（２０）に示す透過確率を算出し、算出した透過確率を暗号文として送信する。このように、暗号化装置１００は、平文に対して、複数の関数を準周期構造を有する順に適用した暗号化を行うのであれば、任意の現象の数式を利用した暗号化を行ってよい。すなわち、暗号化装置１００は、伝達に関連する変数が異なる領域が準周期構造を有する順に配置された系において、伝達対象が系全体を透過する透過確率を示すような数式を用いるのであれば、実際に各領域に対応する数式を平文に適用せずとも、系全体を示す数式を平文に適用することで、暗号文を作成してもよい。
【００６６】
なお、暗号化装置１００は、上述した式（１０）〜（１６）や式（１８）〜（２０）をあらかじめ記憶しておき、平文を波数として上述した式（１０）〜（１６）や式（１８）〜（２０）を適用することで、暗号化を行えばよい。
【００６７】
〔２．暗号化装置の構成〕
以下、上記した暗号化処理を実現する暗号化装置１００が有する機能構成の一例について説明する。図２は、実施形態に係る暗号化装置の構成例を示す図である。図２に示すように、暗号化装置１００は、通信部２０、記憶部３０、および制御部４０を有する。
【００６８】
通信部２０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部２０は、ネットワークＮと有線または無線で接続され、暗号化装置２００や端末装置３００との間で情報の送受信を行う。
【００６９】
ここで、端末装置３００は、任意の利用者が使用するスマートフォンやタブレット等のスマートデバイスであり、３Ｇ（3rd  Generation）やＬＴＥ（Long  Term  Evolution）等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。なお、端末装置３００は、スマートデバイスのみならず、デスクトップＰＣやノートＰＣ等の情報処理装置であってもよい。
【００７０】
記憶部３０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部３０は、ルールテーブル３１を記憶する。
【００７１】
ルールテーブル３１には、暗号化に用いる各種のルールが登録される。例えば、図３は、実施形態に係るルールテーブルに登録される情報の一例を示す図である。図３に示す例では、ルールテーブル３１には、「ルールＩＤ」、「第１関数」、「第２関数」、「適用順序」、「適用個数」等といった項目を有する情報が登録される。なお、暗号を復号化する際に用いる逆関数等、ルールテーブル３１には、図３に示す情報以外の情報が登録されていてもよい。
【００７２】
ここで、「ルールＩＤ」とは、ルールを識別するための情報である。まだ、「第１関数」および「第２関数」とは、平文に対して適用される関数である。また、「適用順序」とは、「第１関数」および「第２関数」を適用する順序を示す情報である。また、「適用個数」とは、対応付けられた「第１関数」および「第２関数」をいくつ適用するかを示す情報である。
【００７３】
例えば、図３に示す例では、ルールＩＤ「ルール＃１」、第１関数「φ１」、第２関数「φ２」、適用順序「フィボナッチ列」、適用個数「５０」とが対応付けて登録されている。このような情報は、平文に対し、第１関数「φ１」と第２関数「φ２」とを「フィボナッチ列」の順に「５０」個だけ適用することで暗号化を行う旨を示す。
【００７４】
図２に戻り、説明を続ける。制御部４０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等のプロセッサによって、暗号化装置１００内部の記憶装置に記憶されている各種プログラムがＲＡＭ等を作業領域として実行されることにより実現される。また、制御部４０は、コントローラ（controller）であり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されてもよい。
【００７５】
図２に示すように、制御部４０は、取得部４１、暗号化部４２、送信部４３、受信部４４、復号化部４５、および出力部４６を有する。
【００７６】
取得部４１は、暗号化対象となる情報、すなわち、平文を取得する。例えば、取得部４１は、端末装置３００から、送信対象となる情報を受信すると、受信した情報を平文として暗号化部４２に出力する。
【００７７】
暗号化部４２は、取得された情報に対して複数の関数を準周期構造を有する順に適用することで、情報を暗号化する。より具体的には、暗号化部４２は、異なる２つのカントール関数をフィボナッチ列の順に適用することで、平文を暗号化する。例えば、暗号化部４２は、フォトニック結晶等、それぞれ透過率が異なる領域が準周期構造を有する順に配置された結晶における光の結晶透過率を示す関数を適用することで、平文を暗号化する。
【００７８】
例えば、図４は、実施形態に係る暗号化装置が暗号化を行う処理の一例を示す図である。例えば、図４中（Ａ）に示す例では、準周期構造の例として、光等の波の透過率が異なる領域Ｃと領域Ａとがフィボナッチ列に従って配置された自己相似フォトニック結晶（以下、「結晶」と記載する場合がある。）の模式図を示した。
【００７９】
ここで、結晶に入射する光等の波の波数をｋとすると、入射波Ａｉ（ｋ）、反射波Ａｒ（ｋ）、透過波Ａｔ（ｋ）の振幅の関係は、結晶の転送行列をＭＡ（ｎ）と記載すると、（Ａｔ  ０）＝（Ａｉ  Ａｒ）ＭＡ（ｎ）と表すことができる。そこで、暗号化部４２は、このような結晶の転送行列ＭＡ（ｎ）を暗号化の鍵とみなし、入射波Ａｉ（ｋ）の波数を平文と見做し、透過波Ａｔ（ｋ）の波数を暗号文と見做すことで、平文の暗号化を実現する。なお、このような処理を行う際に用いる具体的な数式は、上述した式（１）〜（１７）に対応する。
【００８０】
なお、図４中（Ａ）に示す系と対応する暗号化を行った場合、攻撃者は、各領域における透過率のみならず、各領域がどのように並んでいるか、どれくらいの数並んでいるかを特定する必要がある。具体的な例について説明すると、攻撃者は、透過波Ａｔ（ｋ）の波数から、転送行列をＭＡ（ｎ）を求める必要があるが、このような問題を効率的に解決する古典的および量子的アルゴリズムは発見されていない。このため、図４中（Ａ）に示す系と対応する暗号化を行った場合、古典的な計算のみならず、量子的な計算を行ったとしても、有意な時間内に暗号文から平文を求めることが十分に困難であると言える。この結果、暗号化訴追１００は、暗号方式の堅牢性を向上させることができる。
【００８１】
また、図４中（Ｂ）に示す例では、準周期構造の他の例として、ＵｎｉｔＡおよびＵｎｉｔＢといったＴスタブに対応する２種類の構造がフィボナッチ列の順に並べられている例について記載した。このような構造を有する場合、転送行列Ｍｎは、上述した式（１９）で示すことができ、透過確率ＴＮは、上述した式（２０）で示すことができる。暗号化部４２は、これら図４に示す構造を有する系の転送行列を暗号鍵とし、系に入射する波の波数を平文とし、透過確率の波数を暗号文とすることで、平文に対し、複数のカントール関数を準周期構造を有する順に適用した際と同様の暗号文を取得することができる。
【００８２】
なお、暗号化部４２は、図４に示す準周期構造以外にも、任意の準周期構造を用いた暗号化を行ってもよい。例えば、図５は、実施形態に係る暗号化装置が用いる準周期構造のバリエーションを示す図である。例えば、暗号化部４２は、図５中（Ａ）に示すように、準周期構造を有する順に並ぶ各Ｔスタブが枝分かれを有する構造を採用してもよい。より具体的には、暗号化部４２は、ＵｎｉｔＡやＵｎｉｔＢといった１つのＴスタブにさらに枝のようにＴスタブがついていてもよく、その枝のＴスタブにさらにＴスタブが付くように繰り返された構造でもよい。
【００８３】
また、暗号化部４２は、図４中（Ｂ）に示すように、ＴスタブとＡＢリングとの組合せを用いてもよい。例えば、暗号化部４２は、準周期構造を有する順にＵｎｉｔＡやＵｎｉｔＢといったＴスタブが並び、かつ、各スタブにユニットαまたはユニットβに対応するＡＢリングが組み合わさるといった構造を採用し、平文の暗号化を行ってもよい。例えば、図５中（Ｂ）に示す例では、暗号化部４２は、ＵｎｉｔＢに対応するＴスタブとユニットβに対応するＡＢリングとの組合せ、ＵｎｉｔＡに対応するＴスタブとユニットαに対応するＡＢリングとの組合せ、ＵｎｉｔＢに対応するＴスタブとユニットβに対応するＡＢリングとの組合せ、ＵｎｉｔＡに対応するＴスタブとユニットβに対応するＡＢリングとの組合せ、の準に関数を平文に対して適用することで暗号化を実現する。
【００８４】
図２に戻り、説明を続ける。送信部４３は、暗号化部４２によって暗号化された情報、すなわち、暗号文を宛先となる暗号化装置２００へと送信する。なお、送信部４３は、暗号化装置２００との間で量子通信や暗号化通信等、任意の通信方式による通信を行ってよい。
【００８５】
受信部４４は、暗号化装置２００によって暗号化された暗号文を受信する。このような場合、受信部４４は、暗号文を復号化部４５に出力する。
【００８６】
復号化部４５は、暗号化装置２００によって暗号化された暗号文の復号化を行う。例えば、復号化部４５は、暗号文を透過波の波数と見做し、暗号化装置２００が暗号化に用いた転送行列の逆行列を暗号文に対して適用することで、平文を求める。すなわち、復号化部４５は、暗号化装置２００が平文に対して各関数を適用した順番とは逆の順に、各関数の逆関数を暗号文に対して適用することで、暗号文の復号化を行う。
【００８７】
出力部４６は、復号化された平文を出力する。例えば、出力部４６は、復号化部４５によって復号化された平文を端末装置３００に送信する。
【００８８】
なお、暗号化装置１００、２００は、暗号化通信を行う前に、例えば、ルールテーブル３１に登録されたルールのうちいずれのルールを使用するかを共有する。そして、暗号化装置１００は、共有したルールに従って、暗号化や復号化を行えばよい。
【００８９】
また、暗号化装置１００、２００は、ルールとして複数の関数を記憶するのではなく、例えば、各関数を準周期構造を有する順に適用した際と同様の処理を実現する行列、すなわち、カントール関数となる転送行列をあらかじめ記憶し、暗号化通信の前にいずれのカントール関数を使用するかを共有してもよい。
【００９０】
〔３．暗号文の堅牢性について〕
ここで、図６、図７を用いて上述した暗号化方式により暗号化された暗号文の堅牢性について説明する。例えば、図６は、自己相似フォトニック結晶を通る波の波数のスペクトルの一例を示す図である。図６に示す例では、上述した図４中（Ａ）に示すように、透過率が異なる領域をフィボナッチ列の順に配置された自己相似フォトニック結晶を通る波の波数が有するスペクトルの一例について記載した。
【００９１】
例えば、図６中の最上段に示すように、自己相似フォトニック結晶を通る波の波数が有するスペクトルは、ある領域では連続性を有する様にも見える。しかしながら、図６中（Ａ）に示すように、各領域を徐々に拡大して解析した場合には、波数のスペクトルは、図６中（Ｂ）に示すように、非連続な領域により構成されている。このため、図４中（Ａ）に示すような自己相似フォトニック結晶を通る波の波数が有するスペクトルは、微分が不可能であるため、微分法等により透過光の波数から入射光の波数を算出することができない。なお、フォトニック結晶にかぎらず、半導体、超伝導素子、音波を伝導する媒体等、波を構成する物質を活用し、並進対象性を持たない波を構成することにより、本願手法に当てはめてもよい。
【００９２】
また、図７は、透過確率と波数との関係の一例を示す図である。図７に示す例では、図１に示すような２種類のＡＢリングをフィボナッチ列の順に並べた系に対する入射光の波数をｋとし、ｋをπで除算した値を横軸方向とし、透過確率を縦軸方向として、波数ｋの入射光に対する系の透過確率をプロットした図である。図７に示すように、２種類のＡＢリングをフィボナッチ列の順に並べた系において、波数ｋに対する透過確率の値は、非連続な値を取ることが明らかである。このため、図１に示すような２種類のＡＢリングをフィボナッチ列の順に並べた系においては、微分法等により透過光の波数から透過確率を算出することができない。
【００９３】
そこで、暗号化装置１００は、系に対する入射光の波数を平文とし、透過光の波数や透過確率を暗号文とする。このため、攻撃者は、上述した暗号化方式で暗号化された暗号文から、微分を用いた手法により平文を算出することができない。また、平文と暗号文とのセットが入手できたとしても、平文と暗号文とから暗号鍵を生成する処理は、上述した各種の系に対する入射派の波数と透過波の波数とから、系のエネルギースペクトルを算出する処理と同等の困難性を有するが、準周期構造を有する系のエネルギースペクトルを算出するのは十分な困難性を有する。このため、暗号化装置１００は、上述した暗号化手法により、暗号方式の堅牢性を向上させることができる。
【００９４】
〔４．暗号化装置が実行する処理の流れの一例〕
次に、図８を用いて、暗号化装置１００が実行する暗号化処理の流れおよび暗号化装置２００が実行する復号化処理の流れの一例について説明する。図８は、実施形態に係る暗号化処理および復号化処理の流れの一例を説明するフローチャートである。まず、暗号化装置１００は、暗号化対象となる平文を取得する（ステップＳ１０１）。このような場合、暗号化装置１００は、２つのカントール関数を準周期構造を有する順に所定の数だけ平文に適用することで（ステップＳ１０２）、暗号文を生成する。そして、暗号化装置１００は、暗号文を送信先となる暗号化装置２００へと送信する（ステップＳ１０３）。
【００９５】
このような場合、暗号化装置２００は、暗号文を送信元から受信すると（ステップＳ１０４）、ステップＳ１０２にて暗号化装置１００が用いた２つのカントール関数の逆関数を、対応するカントール関数を暗号化装置１００が平文に適用した順とは逆の順に適用することで（ステップＳ１０５）、暗号文を復号化する。そして、暗号化装置２００は、復号化した平文を出力し（ステップＳ１０６）、処理を終了する。なお、暗号化装置２００は、情報を送信する際にステップＳ１０１〜ステップＳ１０３を実行してもよく、暗号化装置１００は、情報を受信した際にステップＳ１０４〜Ｓ１０６を実行してもよい。
【００９６】
〔５．変形例〕
上記では、暗号化装置１００による暗号化処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、暗号化装置１００が実行する暗号化処理のバリエーションについて説明する。
【００９７】
〔５−１．装置構成〕
上述した例では、暗号化装置１００は、暗号化装置１００内で暗号化処理および復号化処理を実行した。しかしながら、実施形態は、これに限定されるものではない。例えば、暗号化装置１００は、図２に示した取得部４１、暗号化部４２、および送信部４３のみを有し、平文の暗号化および暗号文の送信のみを行う装置であってもよい。また、図２に示す、受信部４４、復号化部４５および出力部４６を有する他のサーバを、暗号文の復号化を行う復号化装置として暗号化装置１００とは別に設置してもよい。また、暗号化装置１００は、暗号化のルールが１つのみである場合には、ルールテーブル３１を記憶していなくともよい。また、暗号化装置１００は、ルールテーブル３１を、外部のストレージサーバに登録させてもよい。
【００９８】
〔５−２．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【００９９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示した取得部４１、暗号化部４２、および送信部４３は統合されてもよい。
【０１００】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１０１】
〔６．プログラム〕
また、上述してきた実施形態に係る暗号化装置１００は、例えば図９に示すような構成のコンピュータ１０００によって実現される。図９は、ハードウェア構成の一例を示す図である。コンピュータ１０００は、出力装置１０１０、入力装置１０２０と接続され、演算装置１０３０、一次記憶装置１０４０、二次記憶装置１０５０、出力ＩＦ（Interface）１０６０、入力ＩＦ１０７０、ネットワークＩＦ１０８０がバス１０９０により接続された形態を有する。
【０１０２】
演算装置１０３０は、一次記憶装置１０４０や二次記憶装置１０５０に格納されたプログラムや入力装置１０２０から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置１０４０は、ＲＡＭ等、演算装置１０３０が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置１０５０は、演算装置１０３０が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ＲＯＭ(Read  Only  Memory)、ＨＤＤ、フラッシュメモリ等により実現される。
【０１０３】
出力ＩＦ１０６０は、モニタやプリンタといった各種の情報を出力する出力装置１０１０に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、ＵＳＢ（Universal  Serial  Bus）やＤＶＩ（Digital  Visual  Interface）、ＨＤＭＩ（登録商標）（High  Definition  Multimedia  Interface）といった規格のコネクタにより実現される。また、入力ＩＦ１０７０は、マウス、キーボード、およびスキャナ等といった各種の入力装置１０２０から情報を受信するためのインタフェースであり、例えば、ＵＳＢ等により実現される。
【０１０４】
なお、入力装置１０２０は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置１０２０は、ＵＳＢメモリ等の外付け記憶媒体であってもよい。
【０１０５】
ネットワークＩＦ１０８０は、ネットワークＮを介して他の機器からデータを受信して演算装置１０３０へ送り、また、ネットワークＮを介して演算装置１０３０が生成したデータを他の機器へ送信する。
【０１０６】
演算装置１０３０は、出力ＩＦ１０６０や入力ＩＦ１０７０を介して、出力装置１０１０や入力装置１０２０の制御を行う。例えば、演算装置１０３０は、入力装置１０２０や二次記憶装置１０５０からプログラムを一次記憶装置１０４０上にロードし、ロードしたプログラムを実行する。
【０１０７】
例えば、コンピュータ１０００が暗号化装置１００として機能する場合、コンピュータ１０００の演算装置１０３０は、一次記憶装置１０４０上にロードされたプログラムを実行することにより、制御部４０の機能を実現する。
【０１０８】
〔７．効果〕
上述したように、暗号化装置１００は、暗号化対象となる情報を取得し、情報に対して複数の関数を準周期構造を有する順に適用することで、情報を暗号化する。具体的には、暗号化装置１００は、異なる２つの関数をフィボナッチ列の順に適用することで、情報を暗号化する。例えば、暗号化装置１００は、結晶透過率を示す関数を準周期構造を有する順に適用することで、情報を暗号化する。
【０１０９】
この結果、暗号化装置１００は、全体としてカントール関数の機能を構成する関数を平文に対して適用するので、カントール関数が有する悪魔の階段と呼ばれる特徴を暗号文に持たせることができる、すなわち、暗号文を不連続にすることができるので、古典的な計算方式および量子的な計算方式を問わず、微分法等により暗号文から暗号鍵を推定する行為を十分に困難にすることができる。この結果、暗号化装置１００は、暗号方式の堅牢性を向上させることができる。
【０１１０】
また、暗号化装置１００は、例えば、平文や暗号文から暗号鍵や復号鍵を生成する問題を、自己相似フォトニック結晶のエネルギースペクトルを算出する問題と同程度の困難性を有する問題とすることができるので、暗号方式の堅牢性を向上させることができる。
【０１１１】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０１１２】
また、上記してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、特定部は、特定手段や特定回路に読み替えることができる。
【符号の説明】
【０１１３】
２０  通信部
３０  記憶部
３１  ルールテーブル
４０  制御部
４１  取得部
４２  暗号化部
４３  送信部
４４  受信部
４５  復号化部
４６  出力部
１００、２００  暗号化装置
３００  端末装置
【図１】
2018013554.tif 000023
【図２】
2018013554.tif 000024
【図３】
2018013554.tif 000025
【図４】
2018013554.tif 000026
【図５】
2018013554.tif 000027
【図６】
2018013554.tif 000028
【図７】
2018013554.tif 000029
【図８】
2018013554.tif 000030
【図９】
2018013554.tif 000031