JP2004356720A - セキュリティ装置、セキュリティ方法、及びプログラム - Google Patents
セキュリティ装置、セキュリティ方法、及びプログラム Download PDFInfo
- Publication number
- JP2004356720A JP2004356720A JP2003149235A JP2003149235A JP2004356720A JP 2004356720 A JP2004356720 A JP 2004356720A JP 2003149235 A JP2003149235 A JP 2003149235A JP 2003149235 A JP2003149235 A JP 2003149235A JP 2004356720 A JP2004356720 A JP 2004356720A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- information
- security device
- shared
- exchange information
- 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
Links
Images
Abstract
【課題】秘密情報通信の安全性を向上させる。
【解決手段】セキュリティ装置10において、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出し、このR行列によって特定されるT行列を共有情報aに順次作用させ、セキュリティ装置20に送る。また、セキュリティ装置20において、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式の解であるR行列を算出し、このR行列によって特定されるT行列を共有情報aに順次作用させ、セキュリティ装置10に送る。そして、セキュリティ装置10、20は、それぞれ送られた演算結果に自己のT行列を順次作用させ、共通鍵Kを生成する。
【選択図】 図1
【解決手段】セキュリティ装置10において、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出し、このR行列によって特定されるT行列を共有情報aに順次作用させ、セキュリティ装置20に送る。また、セキュリティ装置20において、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式の解であるR行列を算出し、このR行列によって特定されるT行列を共有情報aに順次作用させ、セキュリティ装置10に送る。そして、セキュリティ装置10、20は、それぞれ送られた演算結果に自己のT行列を順次作用させ、共通鍵Kを生成する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、秘密情報を安全に送信するセキュリティ装置、セキュリティ方法、及びその機能をコンピュータに実行させるためのプログラムに関し、特に、安全性の向上を図ったセキュリティ装置、セキュリティ方法、及びプログラムに関する。
【0002】
【従来の技術】
従来より、離散対数問題を応用したDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式が提案されている(例えば、非特許文献1参照。)。
まず、この従来のDiffile−Hellman鍵配送方式による鍵配送手順について説明する。なお、甲乙間は、安全でない通信回線によって結ばれているものとする。
鍵の配送を行う場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。
【0003】
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbから、鍵k=btmodNを求める。
一方、甲は、整数演算装置を用い、乙から送信されたcから、鍵k=csmodNを求める。 ここで、乙が求めた鍵kは、k=btmodN=astmodNとなり、甲が求めた鍵k=csmodN=astmodNと一致することになる。これにより、甲乙間で、共通鍵kの配送が行われたことになる。
【0004】
つぎに、この従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式について説明する。以下では、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号するものとする。
この場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。この整数sが秘密鍵として機能し、bが公開鍵として機能することになる。
【0005】
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbからk=btmodNを求め、このkで平文Mを暗号化した後、この暗号文と計算したcとを、甲に送信する。
これを受け取った甲は、整数演算装置を用い、送られたcからk=csmodNを計算し、このkを用い、送られた暗号文を復号する。
【0006】
【非特許文献1】
岡本龍明、山本博資、「現代暗号」、第3版、産業図書株式会社、2000年1月25日、P200〜202。
【0007】
【発明が解決しようとする課題】
しかし、従来のDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式では、安全性が十分でない場合があるという問題点がある。
すなわち、これらの鍵配送方式や公開鍵暗号方式は、離散対数問題の求解困難性をその安全性の根拠としているが、既にこの離散対数問題を、量子コンピュータを用いて効率的に解くアルゴリズムが知られている。従って、将来量子コンピュータが実用化された場合、これらの鍵配送方式や公開鍵暗号方式の安全性が確保できなくなる。
【0008】
この発明はこのような点に鑑みてなされたものであり、秘密情報通信の安全性を向上させることが可能なセキュリティ装置を提供することを目的とする。
また、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能なセキュリティ方法を提供することである。
さらに、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能な機能をコンピュータに実行させるためのプログラムを提供することである。
【0009】
【課題を解決するための手段】
この発明では上記課題を解決するために、まず、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上述のR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が、
【数16】
で表されるnN×nN行列T(λ)を所定の要素aに作用させる。
【0010】
ここで、このように特定されるnN×nN行列T(λ)は可換である。すなわち、例えば、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用いて同様に生成したnN×nN行列T(α)が存在する場合、T(λ)・T(α)=T(α)・T(λ)が成立する(詳細は後述)。したがって、このnN×nN行列T(λ)を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる(詳細は後述)。
【0011】
また、このnN×nN行列T(λ)を利用した秘密通信の安全性は、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【0012】
【発明の実施の形態】
以下、この発明の実施の形態を、図面を参照して説明する。
本形態の原理:
まず、この形態における原理について説明する。
この形態の秘密通信は、従来のDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式等における安全性の根拠となる離散対数問題のかわりに、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素(例えば、ベクトル)aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とするものである。
【0013】
すなわち、この形態の例の秘密通信に利用するセキュリティ装置は、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出するR行列生成手段と、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、R行列生成手段において生成されたR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が上述の式(1)で表されるnN×nN行列T(λ)を所定の要素aに作用させる行列演算手段とを有する。なお、「Rb0b1b2b3」は4階テンソルを意味し、Rb0b1b2b3の添え字「b0b1b2b3」は「b0b1b2b3」を意味する(以下、同様)。
【0014】
このようなセキュリティ装置において生成されたnN×nN行列T(λ)(以下「T行列」という。)は可換であり、このような性質を利用して共通鍵の配送や公開鍵暗号方式等を実現することができる(詳細は後述)。
また、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素(例えば、ベクトル)aと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0015】
なお、「ヤン・バクスター(Yang−Baxter)方程式」は、数学や物理学において一般的に知られている関数方程式であり、その数学的背景を示す文献としては、「R.J. Baxter, ”Exactly Solved Models in Statistical Mechanics,” Academic Press,1982」「V. Chari, A.Pressly, ”A Guide to Quantum Groups,”Cambridge University Press, 1994.」「神保道夫,”量子群とヤン・バクスター方程式”,シュプリンガー・フェアラーク東京,1990」等がある。また、一般に、ヤン・バクスター方程式の解を与えるごとに、統計力学に関する可解格子模型と呼ばれる模型を設定することができ、この可解格子模型の一般論においてtransfer matrixと呼ばれるものが、上述のT行列に相当する。そして、このT行列が可換であることは、上述の式(1)によって定まるT行列の生成に用いたR行列がヤン・バクスター方程式を満たすことの理論的帰結である(詳細は後述)。
【0016】
また、好ましくは、所定の要素aは、nN次元のベクトルaであり、行列演算手段は、ベクトルaにnN×nN行列T(λ)を作用させた結果であるnN次元のベクトルdのB=(B0,B1,…,BN−1)成分を、
【数17】
によって演算する手段である。
【0017】
この場合、ベクトルaにT行列を作用させた結果T(λ)aは、その成分ごとに求められることになるが、この際、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の秘密通信を実現することができる。
【0018】
また、R行列生成手段が算出するR行列の一例としては、例えば、qを可換環の可逆な元(例えば、有限体上の0でない元)とし、L(λ)を可換環の元λに対応する元とし、nを2とした場合における、成分がR0000=R1111=1、R1010=R0101=L(λ)、R1001=1−qL(λ)、R0110=1−q−1L(λ)となるR行列を挙げることができる。
【0019】
次に、この形態の詳細について説明を行っていく。
第1の実施の形態:
第1の実施の形態は、この発明を共通鍵の配信に利用する形態である。以下、この第1の実施の形態について説明を行う。
図1は、この形態における共通鍵の配信処理を説明するためのシーケンス図の例示であり、図2は、この形態におけるセキュリティシステム1の全体構成を説明するための概念図の例示である。また、図3は、セキュリティ装置10のハードウェア構成を説明するためのブロック図の例示であり、図4は、図3に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置10の機能構成を説明するためブロック図の例示であり、図5は、セキュリティ装置20の機能構成を説明するためのブロック図の例示である。さらに図6は、セキュリティ装置10の処理を説明するためのフローチャートの例示であり、図7は、セキュリティ装置20の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム1の構成及びその処理動作の説明を行っていく。
【0020】
〔システムの全体構成〕
図2に例示するように、この形態のセキュリティシステム1は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置10、20が、インターネット等の安全でないネットワーク30によって通信可能に接続されることによって構成される。
【0021】
〔ハードウェア構成〕
図3に例示するように、この形態におけるセキュリティ装置10は、例えば、CPU(Central processing Unit:中央処理装置)11、主記憶装置12、ハードディスク装置等の外部記憶装置13、キーボード、マウス等の入力装置14、CD−ROMドライブ等の記録媒体読書き装置15、液晶ディスプレイ等の出力装置16、通信制御装置17、及びそれらのデータのやり取りを可能とするバス18を有しており、これらは、通信制御装置17を介し、ネットワーク30と通信可能なように接続され、或いは接続可能なように構成されている。なお、ここでは説明を省略するが、セキュリティ装置20も、例えば、セキュリティ装置10と同様なハードウェア構成をとるものとする。
【0022】
〔処理手順の全体〕
この形態のセキュリティシステム1では、セキュリティ装置10とセキュリティ装置20とで共通鍵の配信を行う。この例の場合、この共通鍵の配信はセキュリティ装置10からセキュリティ装置20に共有情報a(後述)を送信する共有情報送信処理、セキュリティ装置10からセキュリティ装置20に交換情報d(後述)を送信する交換情報送信処理1、セキュリティ装置20からセキュリティ装置10に交換情報e(後述)を送信する交換情報送信処理2、セキュリティ装置10において共通鍵Kを算出する共通鍵演算処理1、及びセキュリティ装置20において共通鍵Kを算出する共通鍵演算処理2を経て、この共通鍵の配信が行われる(図1)。
【0023】
〔共有情報送信処理〕
まず、セキュリティ装置10の擬似乱数生成部10a(共有情報抽出手段に相当)において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてnN次元(n,Nは自然数)のベクトルである共有情報aを生成する。生成した共有情報aは擬似乱数生成部10aから記憶部10bに送られ、そこで格納される(ステップS1)。なお、擬似乱数生成部10aにおける擬似乱数の生成は、例えば、SHA−1等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【0024】
また、生成された共有情報aは擬似乱数生成部10aから通信部10cに送られ、そこからネットワーク30を通じてセキュリティ装置20に送られる(ステップS2)。送信された共有情報aは、セキュリティ装置20の通信部20cにおいて受信(共有情報抽出手段に相当)され、記憶部20bに送られた後、そこに格納される(ステップS20)。
【0025】
〔交換情報送信処理1〕
まず、セキュリティ装置10の擬似乱数生成部10d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。生成した自然数s及び集合Λ={λ1,λ2,…,λs}は、擬似乱数生成部10dから記憶部10bに送られ、そこで安全に格納される(ステップS3)。なお、擬似乱数生成部10dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部10aの場合と同様な方法によって行う。
【0026】
次に、R行列生成部10eにおいて、記憶部10bから集合Λ={λ1,λ2,…,λs}を抽出し、このλpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「R行列」という。)を算出する(ステップS4)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(λp)、R1001=1−qL(λp)、R0110=1−q−1L(λp)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(λp)を可換環の元λpに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部10eが有する図示しないメモリに格納されるとともに、行列演算部10fに送られる。
このR行列が送られた行列演算部10fは、記憶部10bから共有情報a及び自然数sを抽出し、これらを用いてT行列演算を行って交換情報dを生成する(ステップS5)。
【0027】
すなわち、この例の行列演算部10fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
【数18】
とした場合における、nN×nN行列T(λ1), T(λ2),…, T(λs)を、擬似乱数生成部10aにおいて抽出され、記憶部10bから読みこまれた共有情報aに順次作用させる(d=T(λ1) T(λ2) …T(λs)a)。
【0028】
また、より具体的には、この例の行列演算部10fは、例えば、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数19】
によって演算する。
【0029】
このように生成された交換情報dは、通信部10cに送られ、通信部10c(交換情報出力手段に相当)は、この交換情報dを、ネットワーク30を通じてセキュリティ装置20に送信する(ステップS6)。送信された交換情報dは、セキュリティ装置20の通信部20c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS21)、行列演算部20hに送られる。
【0030】
〔交換情報送信処理2〕
まず、セキュリティ装置20の擬似乱数生成部20d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。生成した自然数s及び集合δ={α1,α2,…,αu}は、擬似乱数生成部20dから記憶部20bに送られ、そこで安全に格納される(ステップS22)。なお、擬似乱数生成部20dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部10aの場合と同様な方法によって行う。
【0031】
次に、R行列生成部20eにおいて、記憶部20bから集合δ={α1,α2,…,αu}を抽出し、このαrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(R行列)を算出する(ステップS23)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(αr)、R1001=1−qL(αr)、R0110=1−q−1L(αr)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(αr)を可換環の元αrに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部20eが有する図示しないメモリに格納されるとともに、行列演算部20fに送られる。
このR行列が送られた行列演算部20fは、記憶部20bから共有情報a及び自然数uを抽出し、これらを用いてT行列演算を行って交換情報eを生成する(ステップS24)。
【0032】
すなわち、この例の行列演算部20fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元αrに対してR行列生成部20eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
【数20】
とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を、通信部20cにおいて抽出され、記憶部20bから読みこまれた共有情報aに順次作用させる(e=T(α1) T(α2) …T(αu)a)。
【0033】
また、より具体的には、この例の行列演算部20fは、例えば、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数21】
によって演算する。
【0034】
このように生成された交換情報eは、通信部20cに送られ、通信部20c(交換情報出力手段に相当)は、この交換情報eを、ネットワーク30を通じてセキュリティ装置10に送信する(ステップS25)。送信された交換情報eは、セキュリティ装置10の通信部10c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS7)、行列演算部10hに送られる。
【0035】
〔共通鍵演算処理1〕
まず、セキュリティ装置10の行列演算部10hにおいて、R行列生成部10eから、ここで生成され記憶されているR行列を抽出し(ステップS8)、さらに、記憶部10bから自然数sを抽出する。そして、この行列演算部10hにおいて、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を上述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を、通信部10cから行列演算部10hに送られた交換情報eに順次作用させる(K=T(λ1) T(λ2) …T(λs)e)(T行列演算/ステップS9)。
【0036】
より具体的には、この例の行列演算部10hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数22】
によって演算する。
このような演算結果Kは鍵出力部10iに送られ、そこから共通鍵Kとして出力される(ステップS10)。
【0037】
〔共通鍵演算処理2〕
まず、セキュリティ装置20の行列演算部20hにおいて、R行列生成部20eから、ここで生成され記憶されているR行列を抽出し(ステップS26)、さらに、記憶部20bから自然数uを抽出する。そして、この行列演算部20hにおいて、元αrに対してR行列生成部20eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を上述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…, T(αu)を、通信部20cから行列演算部20hに送られた交換情報dに順次作用させる(K=T(α1) T(α2) …T(αu)d)(T行列演算/ステップS27)。
【0038】
より具体的には、この例の行列演算部20hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数23】
によって演算する。
このような演算結果Kは鍵出力部20iに送られ、そこから共通鍵Kとして出力される(ステップS28)。
【0039】
〔T行列の可換性〕
上述のようにセキュリティ装置10において演算された共通鍵は、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs) を順次作用させた結果である(K=T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)。
【0040】
一方、セキュリティ装置20において演算された共通鍵は、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果である(K=T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)。
従って、セキュリティ装置10において演算された共通鍵とセキュリティ装置20において演算された共通鍵とが一致するためには、これらのT行列が可換であることが必要である。以下に、このT行列の可換性について説明する。
【0041】
<定義>
この説明の表記を以下のように定義する。
(a)Rs,t:V(×)V(×)V→V(×)V(s,t=1,2,3の場合)
<ei(×)ej(×)ek>
V:基底e1,…,enのベクトル空間
V(×)V:VとVのテンソル積
具体的には、
R1,2(ei(×)ej(×)ek)=Σx,y Ri,j,x,y ex(×)ey(×)ek
R1,3(ei(×)ej(×)ek)=Σx,y Ri,k,x,y ex(×)ej(×)ey
R2,3(ei(×)ej(×)ek)=Σx,y Rj,k,x,y ei(×)ex(×)ey
となる。すなわち、Rs,tは、Rの上付き添え字s番目の基底(R1,2(ei(×)ej(×)ek)の場合、1番目の基底ei)と、Rの上付き添え字t番目の基底(R1,2(ei(×)ej(×)ek)の場合、2番目の基底ej)に関して全ての値をとりつつ、Rの和を求めた結果を指す。なお、この和を求めるに当たり、Rの上付き添え字s,tに該当しない場所の基底(R1,2(ei(×)ej(×)ek)の場合、3番目の基底ek)は固定である。
【0042】
(b)T ̄(λ)
【数24】
【0043】
(c)トレース
【数25】
<導出>
次に、以上の定義を用いてT行列の可換性について説明する。
まず、以上の定義より、ヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列に対して、
【数26】
【0044】
なお、ここで、1つ目の変形は上述の定義(b)によるものであり、2つ目の変形は、上述の定義(a)より、共通する上付き添え字を有しないRの演算は互いに独立であることから、その順序を入れ替えても演算結果は変わらないことによるものである。
【0045】
さらに上述の式(9)の
【数27】
となり、上述の式(8)が成立していることが分かる。これはその他のNについても同様である。
【0046】
次に、このように成立する上述の式(10)の両辺に、逆行列
【数28】
ベクトル空間上での線形変換としての逆行列を意味する。
【0047】
次にこの式(11)のトレース(定義(c))をとると、
【数29】
を満たすため、この式(13)は、T(μ)T(ν)=T(ν)T(μ)と変形でき、このT行列が可換であることが分かる。なおT行列を前述の式(1)として一般化できることの数学的背景は、前述した「R.J. Baxter, ”Exactly Solved Models in Statistical Mechanics,” Academic Press,1982」「V. Chari, A.Pressly, ”A Guide to Quantum Groups,”Cambridge University Press, 1994.」「神保道夫,”量子群とヤン・バクスター方程式”,シュプリンガー・フェアラーク東京,1990」等の文献によって明らかである。
【0048】
このように、この形態では、セキュリティ装置10の擬似乱数生成部10aにおいて、セキュリティ装置20と共有される共有情報aを抽出し、擬似乱数生成部10dにおいて、秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。次に、R行列生成部10eにおいて、元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(第1のR行列)を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成された第1のR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を上述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を共有情報aに順次作用させ、その演算結果である交換情報dを通信部10cからセキュリティ装置20に出力する。
【0049】
また、通信部10cにおいて、セキュリティ装置20から送信された交換情報eの入力を受け付け、行列演算部10hにおいて、この交換情報eに、nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させ、共通鍵Kを求める。
一方、セキュリティ装置20の通信部20cにおいて、セキュリティ装置10と共有される共有情報aが抽出し、擬似乱数生成部20dにおいて、秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。次に、R行列生成部20eにおいて、この元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(第2のR行列)を算出する。そして、行列演算部20fにおいて、元αrに対して、R行列生成部20eで生成された第2のR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、上述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を共有情報aに順次作用させ、その演算結果である交換情報eを通信部20cからセキュリティ装置10に出力する。
【0050】
また、通信部20cにおいて、交換情報dの入力を受け付け、行列演算部20hにおいて、この交換情報dに、nN×nN行列T(α1), T(α2),…, T(αu)を順次作用させ、共通鍵Kを求める。
ここで、セキュリティ装置10において演算された共通鍵は、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs) を順次作用させた結果である(K=T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)。一方、セキュリティ装置20において演算された共通鍵は、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果である(K=T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)。そして、上述のようにT行列は可換である。従って、セキュリティ装置10において演算された共通鍵とセキュリティ装置20において演算された共通鍵とは一致する。
【0051】
また、この形態では「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0052】
さらに、ヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用い、上述の式(1)で表されるnN×nN行列T(λ)は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるd、eは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【0053】
また、この形態の例では、共有情報aをnN次元のベクトルとし、セキュリティ装置10の行列演算部10fは、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(3)によって演算し、行列演算部10hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(6)によって演算することとした。
【0054】
同様に、セキュリティ装置20の行列演算部20fは、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(5)によって演算し、行列演算部20hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(7)によって演算することとした。
【0055】
そのため、ベクトルにT行列を作用させる演算を行うにあたり、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の共通鍵配送を実現することができる。
【0056】
第2の実施の形態:
第2の実施の形態は、この発明を利用した公開鍵暗号方式に関するものである。以下、この第2の実施の形態について説明を行う。
図8は、この形態における公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示であり、図9は、この形態におけるセキュリティシステム100の全体構成を説明するための概念図の例示である。図10は、図3に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置110の機能構成を説明するためブロック図の例示であり、図11は、セキュリティ装置120の機能構成を説明するためのブロック図の例示である。また図12は、セキュリティ装置110の処理を説明するためのフローチャートの例示であり、図13は、セキュリティ装置120の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム100の構成及びその処理動作の説明を行っていく。なお、セキュリティ装置110、120のハードウェア構成については、第1の実施の形態と同様であるため、ここではその説明を省略する。
【0057】
〔システムの全体構成〕
図9に例示するように、この形態のセキュリティシステム100は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置110、120が、インターネット等の安全でないネットワーク130によって通信可能に接続されることによって構成される。
【0058】
〔処理手順の全体〕
この形態のセキュリティシステム100では、セキュリティ装置110において公開鍵を公開し、この公開鍵を用いてセキュリティ装置120で暗号化を行い、その暗号文をセキュリティ装置110で復号する。この例の暗号処理は、セキュリティ装置110からセキュリティ装置120に共有情報aを送信する共有情報送信処理、セキュリティ装置110からセキュリティ装置120に交換情報dを送信する交換情報送信処理、セキュリティ装置120からセキュリティ装置110に暗号文Eを送信する暗号文送信処理、及びセキュリティ装置110においてこの暗号文を復号して平文Mを算出する復号処理によって構成される(図8)。
【0059】
〔共有情報送信処理〕
まず、セキュリティ装置110の擬似乱数生成部110a(共有情報抽出手段に相当)において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてnN次元(n,Nは自然数)の共有情報aを生成する。生成した共有情報aは擬似乱数生成部110aから記憶部110bに送られ、そこで格納される(ステップS30)。なお、擬似乱数生成部110aにおける擬似乱数の生成は、例えば、SHA−1等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【0060】
また、生成された共有情報aは擬似乱数生成部110aから通信部110cに送られ、そこからネットワーク130を通じてセキュリティ装置120に送られる(ステップS31)。送信された共有情報aは、セキュリティ装置120の通信部120cにおいて受信(共有情報抽出手段に相当)され、記憶部120bに送られた後、そこに格納される(ステップS51)。
【0061】
〔交換情報送信処理〕
まず、セキュリティ装置110の擬似乱数生成部110d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。生成した自然数s及び集合Λ={λ1,λ2,…,λs}は、擬似乱数生成部110dから記憶部110bに送られ、そこで安全に格納される(ステップS32)。なお、擬似乱数生成部110dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部110aの場合と同様な方法によって行う。
【0062】
次に、R行列生成部110eにおいて、記憶部110bから集合Λ={λ1,λ2,…,λs}を抽出し、このλpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(R行列)を算出する(ステップS33)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(λp)、R1001=1−qL(λp)、R0110=1−q−1L(λp)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(λp)を可換環の元λpに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部110eが有する図示しないメモリに格納されるとともに、行列演算部110fに送られる。
このR行列が送られた行列演算部110fは、記憶部110bから共有情報a及び自然数sを抽出し、これらを用いてT行列演算を行って交換情報dを生成する(ステップS34)。
【0063】
すなわち、この例の行列演算部110fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、前述の式(2)とした場合における、nN×nN行列T(λ1), T(λ2),…, T(λs)を、擬似乱数生成部110aにおいて抽出され、記憶部110bから読みこまれた共有情報aに順次作用させる(d=T(λ1) T(λ2) …T(λs)a)。
また、より具体的には、この例の行列演算部110fは、例えば、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(3)によって演算する。
【0064】
このように生成された交換情報dは、通信部110cに送られ、通信部110c(交換情報出力手段に相当)は、この交換情報dを、ネットワーク130を通じてセキュリティ装置120に送信する(ステップS35)。送信された交換情報dは、セキュリティ装置120の通信部120c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS52)、行列演算部120hに送られる。
なお、この例では、共有情報a及び交換情報dが公開鍵に相当し、自然数s及びの集合Λが秘密鍵に相当する。
【0065】
〔暗号文送信処理〕
まず、セキュリティ装置120の擬似乱数生成部120d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。生成した自然数s及び集合δ={α1,α2,…,αu}は、擬似乱数生成部120dから記憶部120bに送られ、そこで安全に格納される(ステップS53)。なお、擬似乱数生成部120dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部110aの場合と同様な方法によって行う。
【0066】
次に、R行列生成部120eにおいて、記憶部120bから集合δ={α1,α2,…,αu}を抽出し、このαrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(R行列)を算出する(ステップS54)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(αr)、R1001=1−qL(αr)、R0110=1−q−1L(αr)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(αr)を可換環の元αrに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部120eが有する図示しないメモリに格納されるとともに、行列演算部120fに送られる。
このR行列が送られた行列演算部120fは、1記憶部20bから共有情報a及び自然数uを抽出し、これらを用いてT行列演算を行って交換情報eを生成する(ステップS55)。
【0067】
すなわち、この例の行列演算部120fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元αrに対してR行列生成部120eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を前述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を、通信部120cにおいて抽出され、記憶部120bから読みこまれた共有情報aに順次作用させる(e=T(α1) T(α2) …T(αu)a)。
【0068】
また、より具体的には、この例の行列演算部120fは、例えば、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、前述の式(5)によって演算する。
そして、このように生成された交換情報eは、通信部120cに送られ、通信部120cの図示しないメモリに記憶される。
次に、行列演算部120hにおいて、R行列生成部120eから、ここで生成され記憶されているR行列を抽出し(ステップS56)、さらに、記憶部120bから自然数uを抽出する。そして、この行列演算部120hにおいて、前述のnN×nN行列T(α1),T(α2),…,T(αu)を、通信部120cから行列演算部120hに送られた交換情報dに順次作用させる(T(α1) T(α2)…T(αu)d)(T行列演算/ステップS57)。
【0069】
また、より具体的には、この例の行列演算部120hは、例えば、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(7)によって演算する。
このように求められたベクトルT(α1)T(α2)…T(αu)dは、ハッシュ演算部120iに送られ、このベクトルT(α1)T(α2)…T(αu)dが送られたハッシュ演算部120iは、セキュリティ装置110と共用されるハッシュ関数Hを用い、このベクトルT(α1)T(α2)…T(αu)dのハッシュ値(H(T(α1)T(α2)…T(αu)d))を演算する(ステップS58)。そして、このように求められたハッシュ値(H(T(α1)T(α2)…T(αu)d))は、排他的論理和演算部120kに送られる。
【0070】
一方、メッセージ入力部120jからは平文であるメッセージ(M)の入力が受け付けられ(ステップS59)、入力されたメッセージ(M)は、排他的論理和演算部120kに送られる。
排他的論理和演算部120kでは、ハッシュ演算部120iから送られたハッシュ値(H(T(α1)T(α2)…T(αu)d))(第2の行列演算ステップによる演算結果に相当)と、メッセージ入力部120jから送られたメッセージ(M)との排他的論理和を暗号化情報として生成する(H(T(α1)T(α2)…T(αu)d)(+)M)(ステップS60)。なお、「A(+)B」は、AとBとの排他的論理和を意味するものとする。
【0071】
この排他的論理和の演算結果(H(T(α1)T(α2)…T(αu)d)(+)M)は、通信部120cに送られ、通信部120c(暗号情報出力手段に相当)は、行列演算部120hによる演算結果である交換情報eと、排他的論理和演算部120kにより生成された演算結果(H(T(α1)T(α2)…T(αu)d)(+)M)(暗号化情報に相当)とを、暗号文Eとして、ネットワーク130を通じ、セキュリティ装置110に送信(出力)する(ステップS61)。
【0072】
〔復号処理〕
セキュリティ装置120から送信された暗号文E(e,H(T(α1)T(α2)…T(αu)d)(+)M)は、セキュリティ装置110の通信部110c(暗号情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS36)、この暗号情報Eを構成する交換情報eは行列演算部110hに、暗号化情報H(T(α1)T(α2)…T(αu)d)(+)Mは排他的論理和演算部110jに送られる。
【0073】
交換情報eを受け取った行列演算部110hは、R行列生成部110eから、ここで生成され記憶されているR行列を抽出し(ステップS37)、さらに、記憶部110bから自然数sを抽出する。そして、この行列演算部110hにおいて、通信部110cから行列演算部110hに送られた交換情報eに、前述したnN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる(T(λ1)T(λ2)…T(λs)e)(T行列演算/ステップS38)。
【0074】
また、より具体的には、この例の行列演算部110hは、例えば、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(6)によって演算する。
このように求められたT(λ1)T(λ2)…T(λs)eは、ハッシュ演算部110iに送られ、ハッシュ演算部110iは、セキュリティ装置120と共用されるハッシュ関数Hを用い、このT(λ1)T(λ2)…T(λs)eのハッシュ値(H(T(λ1)T(λ2)…T(λs)e))を演算する(ステップS39)。
【0075】
このように求められたハッシュ値(H(T(λ1)T(λ2)…T(λs)e))は排他的論理和演算部110jに送られ、排他的論理和演算部110jは、通信部入力された暗号化情報H(T(α1)T(α2)…T(αu)d)(+)Mとハッシュ値(H(T(λ1)T(λ2)…T(λs)e))(第2の行列演算ステップによる演算結果に相当)との排他的論理和(H(T(α1)T(α2)…T(αu)d)(+)M(+)H(T(λ1)T(λ2)…T(λs)e))を演算する(ステップS40)。
【0076】
ここで、前述のようにT行列は可換であり、第1の実施の形態で説明したようにT(α1)T(α2)…T(αu)dとT(λ1)T(λ2)…T(λs)eは等しい。よって、H(T(α1)T(α2)…T(αu)d)とH(T(λ1)T(λ2)…T(λs)e)も等しくなり、この排他的論理和(H(T(α1)T(α2)…T(αu)d)(+)M(+)H(T(λ1)T(λ2)…T(λs)e))の演算結果は平文であるメッセージMとなる。このように復号されたメッセージ(M)は、メッセージ出力部110kに送られ、メッセージ出力部110kは、このメッセージ(M)を出力する(ステップS41)。
【0077】
このように、この形態では、まず、セキュリティ装置110の擬似乱数生成部110aにおいて、セキュリティ装置120と共有される共有情報を抽出し、擬似乱数生成部110dにおいて、秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。次に、R行列生成部110eにおいて、元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(第1のR行列)を算出し、行列演算部110fにおいて、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部110eで生成された第1のR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を前述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を共有情報aに順次作用させ、通信部110cにおいて、この演算結果である交換情報dをセキュリティ装置120出力する。
【0078】
一方、セキュリティ装置120では、その通信部120cにおいて、セキュリティ装置10と共有される共有情報aを抽出し、擬似乱数生成部120dにおいて、秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。次に、R行列生成部120eにおいて、元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(第2のR行列)を算出する。そして、元αr に対して第2のR行列生成部120eで生成された第2のR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、前述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を共有情報aに順次作用させる。
【0079】
また、通信部120cにおいて、交換情報dの入力を受け付け、行列演算部120hにおいて、この交換情報dにnN×nN行列T(α1),T(α2),…,T(αu)を順次作用させる。そして、排他的論理和演算部120kにおいて、行列演算部120hによる演算結果(この例では、さらにハッシュ演算部120iにおいてそのハッシュ値をとったもの(H(T(α1),T(α2),…,T(αu)d)))と平文(M)との排他的論理和を暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)として生成し、行列演算部120fによる演算結果である交換情報eと、排他的論理和演算部120kにより生成された暗号化情報とをセキュリティ装置110に出力する。
【0080】
そして、セキュリティ装置110では、その通信部110cにおいて、交換情報eと暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)との入力を受け付け、行列演算部110hにおいて、交換情報eに、nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる。その後、排他的論理和演算部110jにおいて、この暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)と行列演算部110hによる演算結果(この例では、さらにハッシュ演算部110iにおいて、そのハッシュ値を取ったもの(H(T(λ1),T(λ2),…,T(λs)e)))との排他的論理和を演算し、平文Mを復号する。
【0081】
ここで、上述のようにT行列は可換である。従って、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果(T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)と、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果(T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)とは等しく、これらに同じハッシュ関数を作用させた結果も等しい。よって、暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)と演算結果(H(T(λ1),T(λ2),…,T(λs)e))との排他的論理和はMとなり、この平文Mが復号されることになる。
【0082】
また、この形態では「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd= T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd= T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0083】
さらに、ヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用い、上述の式(1)で表されるnN×nN行列T(λ)は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるd、eは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【0084】
また、この形態の例では、共有情報aをnN次元のベクトルとし、セキュリティ装置110の行列演算部110fは、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(3)によって演算し、行列演算部110hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(6)によって演算することとした。
【0085】
同様に、セキュリティ装置120の行列演算部120fは、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(5)によって演算し、行列演算部120hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(7)によって演算することとした。
そのため、ベクトルにT行列を作用させる演算を行うにあたり、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の公開鍵暗号方式を実現することができる。
【0086】
なお、この発明は、上述の第1の実施の形態或いは第2の実施の形態に限定されるものではない。例えば、集合Λ={λ1,λ2,…,λs}に属する元λpの少なくとも一部が相互に同じ元であってもよく、集合δ={α1,α2,…,αu}に属する元αrの少なくとも一部が相互に同じ元であってもよい。そして、共通する元に関する演算(R行列演算、T行列演算)を重複して行わず、それらについて演算済みの結果をそのまま利用する構成としてもよい。
【0087】
また、これらの形態では、コンピュータ上で所定のプログラムを実行させることにより、セキュリティ装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
さらに、上述のように、この形態における処理機能は、コンピュータによって実現することができる。この場合、セキュリティ装置が有すべき機能の処理内容はプログラムによって記述され、このプログラムをコンピュータで実行することにより、処理機能をコンピュータ上で実現することができる。
【0088】
なお、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto−Optical disc)等を、半導体メモリとしてEPROM(Erasable and Programmable ROM)等を用いることができる。
【0089】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0090】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、コンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【0091】
【発明の効果】
以上説明したようにこの発明では、まず、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上述のR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が、前述した式(1)で表されるnN×nN行列T(λ)を所定の要素aに作用させる。
【0092】
ここで、このように特定されるnN×nN行列T(λ)は可換である。すなわち、例えば、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用いて同様に生成したnN×nN行列T(α)が存在する場合、T(λ)・T(α)=T(α)・T(λ)が成立する。したがって、このnN×nN行列T(λ)を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる。
【0093】
また、このnN×nN行列T(λ)を利用した秘密通信の安全性は、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【図面の簡単な説明】
【図1】第1の実施の形態の共通鍵の配信処理を説明するためのシーケンス図の例示。
【図2】セキュリティシステムの全体構成を説明するための概念図の例示。
【図3】セキュリティ装置のハードウェア構成を説明するためのブロック図の例示。
【図4】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図5】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図6】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図7】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図8】第2の実施の形態の公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示。
【図9】セキュリティシステムの全体構成を説明するための概念図の例示。
【図10】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図11】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図12】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図13】セキュリティ装置の処理を説明するためのフローチャートの例示。
【符号の説明】
1、100 セキュリティシステム
10、20、110、120 セキュリティ装置
【発明の属する技術分野】
この発明は、秘密情報を安全に送信するセキュリティ装置、セキュリティ方法、及びその機能をコンピュータに実行させるためのプログラムに関し、特に、安全性の向上を図ったセキュリティ装置、セキュリティ方法、及びプログラムに関する。
【0002】
【従来の技術】
従来より、離散対数問題を応用したDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式が提案されている(例えば、非特許文献1参照。)。
まず、この従来のDiffile−Hellman鍵配送方式による鍵配送手順について説明する。なお、甲乙間は、安全でない通信回線によって結ばれているものとする。
鍵の配送を行う場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。
【0003】
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbから、鍵k=btmodNを求める。
一方、甲は、整数演算装置を用い、乙から送信されたcから、鍵k=csmodNを求める。 ここで、乙が求めた鍵kは、k=btmodN=astmodNとなり、甲が求めた鍵k=csmodN=astmodNと一致することになる。これにより、甲乙間で、共通鍵kの配送が行われたことになる。
【0004】
つぎに、この従来のDiffile−Hellman鍵配送方式を応用した公開鍵暗号方式について説明する。以下では、乙から甲へ暗号文を送信し、甲が送られた暗号文を復号するものとする。
この場合、甲は、まず、擬似乱数生成装置を用いてあるN以下の整数aを定め、このaを通信回線を介して乙に送信する。次に、甲は、擬似乱数生成装置を用いてある整数sを定めた後、整数演算装置を用いてb=asmodNを計算し、整数sを秘密に保ったまま、計算したbを乙に送信する。この整数sが秘密鍵として機能し、bが公開鍵として機能することになる。
【0005】
これに対し、乙は、擬似乱数生成装置を用いてある整数tを定めた後、整数演算装置を用いてc=atmodNを計算し、整数sを秘密に保ったまま、計算したcを甲に送信する。また、乙は、整数演算装置を用い、甲から送信されたbからk=btmodNを求め、このkで平文Mを暗号化した後、この暗号文と計算したcとを、甲に送信する。
これを受け取った甲は、整数演算装置を用い、送られたcからk=csmodNを計算し、このkを用い、送られた暗号文を復号する。
【0006】
【非特許文献1】
岡本龍明、山本博資、「現代暗号」、第3版、産業図書株式会社、2000年1月25日、P200〜202。
【0007】
【発明が解決しようとする課題】
しかし、従来のDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式では、安全性が十分でない場合があるという問題点がある。
すなわち、これらの鍵配送方式や公開鍵暗号方式は、離散対数問題の求解困難性をその安全性の根拠としているが、既にこの離散対数問題を、量子コンピュータを用いて効率的に解くアルゴリズムが知られている。従って、将来量子コンピュータが実用化された場合、これらの鍵配送方式や公開鍵暗号方式の安全性が確保できなくなる。
【0008】
この発明はこのような点に鑑みてなされたものであり、秘密情報通信の安全性を向上させることが可能なセキュリティ装置を提供することを目的とする。
また、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能なセキュリティ方法を提供することである。
さらに、この発明の他の目的は、秘密情報通信の安全性を向上させることが可能な機能をコンピュータに実行させるためのプログラムを提供することである。
【0009】
【課題を解決するための手段】
この発明では上記課題を解決するために、まず、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上述のR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が、
【数16】
で表されるnN×nN行列T(λ)を所定の要素aに作用させる。
【0010】
ここで、このように特定されるnN×nN行列T(λ)は可換である。すなわち、例えば、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用いて同様に生成したnN×nN行列T(α)が存在する場合、T(λ)・T(α)=T(α)・T(λ)が成立する(詳細は後述)。したがって、このnN×nN行列T(λ)を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる(詳細は後述)。
【0011】
また、このnN×nN行列T(λ)を利用した秘密通信の安全性は、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【0012】
【発明の実施の形態】
以下、この発明の実施の形態を、図面を参照して説明する。
本形態の原理:
まず、この形態における原理について説明する。
この形態の秘密通信は、従来のDiffile−Hellman鍵配送方式及びその応用としての公開鍵暗号方式等における安全性の根拠となる離散対数問題のかわりに、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素(例えば、ベクトル)aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とするものである。
【0013】
すなわち、この形態の例の秘密通信に利用するセキュリティ装置は、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出するR行列生成手段と、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、R行列生成手段において生成されたR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が上述の式(1)で表されるnN×nN行列T(λ)を所定の要素aに作用させる行列演算手段とを有する。なお、「Rb0b1b2b3」は4階テンソルを意味し、Rb0b1b2b3の添え字「b0b1b2b3」は「b0b1b2b3」を意味する(以下、同様)。
【0014】
このようなセキュリティ装置において生成されたnN×nN行列T(λ)(以下「T行列」という。)は可換であり、このような性質を利用して共通鍵の配送や公開鍵暗号方式等を実現することができる(詳細は後述)。
また、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素(例えば、ベクトル)aと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0015】
なお、「ヤン・バクスター(Yang−Baxter)方程式」は、数学や物理学において一般的に知られている関数方程式であり、その数学的背景を示す文献としては、「R.J. Baxter, ”Exactly Solved Models in Statistical Mechanics,” Academic Press,1982」「V. Chari, A.Pressly, ”A Guide to Quantum Groups,”Cambridge University Press, 1994.」「神保道夫,”量子群とヤン・バクスター方程式”,シュプリンガー・フェアラーク東京,1990」等がある。また、一般に、ヤン・バクスター方程式の解を与えるごとに、統計力学に関する可解格子模型と呼ばれる模型を設定することができ、この可解格子模型の一般論においてtransfer matrixと呼ばれるものが、上述のT行列に相当する。そして、このT行列が可換であることは、上述の式(1)によって定まるT行列の生成に用いたR行列がヤン・バクスター方程式を満たすことの理論的帰結である(詳細は後述)。
【0016】
また、好ましくは、所定の要素aは、nN次元のベクトルaであり、行列演算手段は、ベクトルaにnN×nN行列T(λ)を作用させた結果であるnN次元のベクトルdのB=(B0,B1,…,BN−1)成分を、
【数17】
によって演算する手段である。
【0017】
この場合、ベクトルaにT行列を作用させた結果T(λ)aは、その成分ごとに求められることになるが、この際、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の秘密通信を実現することができる。
【0018】
また、R行列生成手段が算出するR行列の一例としては、例えば、qを可換環の可逆な元(例えば、有限体上の0でない元)とし、L(λ)を可換環の元λに対応する元とし、nを2とした場合における、成分がR0000=R1111=1、R1010=R0101=L(λ)、R1001=1−qL(λ)、R0110=1−q−1L(λ)となるR行列を挙げることができる。
【0019】
次に、この形態の詳細について説明を行っていく。
第1の実施の形態:
第1の実施の形態は、この発明を共通鍵の配信に利用する形態である。以下、この第1の実施の形態について説明を行う。
図1は、この形態における共通鍵の配信処理を説明するためのシーケンス図の例示であり、図2は、この形態におけるセキュリティシステム1の全体構成を説明するための概念図の例示である。また、図3は、セキュリティ装置10のハードウェア構成を説明するためのブロック図の例示であり、図4は、図3に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置10の機能構成を説明するためブロック図の例示であり、図5は、セキュリティ装置20の機能構成を説明するためのブロック図の例示である。さらに図6は、セキュリティ装置10の処理を説明するためのフローチャートの例示であり、図7は、セキュリティ装置20の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム1の構成及びその処理動作の説明を行っていく。
【0020】
〔システムの全体構成〕
図2に例示するように、この形態のセキュリティシステム1は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置10、20が、インターネット等の安全でないネットワーク30によって通信可能に接続されることによって構成される。
【0021】
〔ハードウェア構成〕
図3に例示するように、この形態におけるセキュリティ装置10は、例えば、CPU(Central processing Unit:中央処理装置)11、主記憶装置12、ハードディスク装置等の外部記憶装置13、キーボード、マウス等の入力装置14、CD−ROMドライブ等の記録媒体読書き装置15、液晶ディスプレイ等の出力装置16、通信制御装置17、及びそれらのデータのやり取りを可能とするバス18を有しており、これらは、通信制御装置17を介し、ネットワーク30と通信可能なように接続され、或いは接続可能なように構成されている。なお、ここでは説明を省略するが、セキュリティ装置20も、例えば、セキュリティ装置10と同様なハードウェア構成をとるものとする。
【0022】
〔処理手順の全体〕
この形態のセキュリティシステム1では、セキュリティ装置10とセキュリティ装置20とで共通鍵の配信を行う。この例の場合、この共通鍵の配信はセキュリティ装置10からセキュリティ装置20に共有情報a(後述)を送信する共有情報送信処理、セキュリティ装置10からセキュリティ装置20に交換情報d(後述)を送信する交換情報送信処理1、セキュリティ装置20からセキュリティ装置10に交換情報e(後述)を送信する交換情報送信処理2、セキュリティ装置10において共通鍵Kを算出する共通鍵演算処理1、及びセキュリティ装置20において共通鍵Kを算出する共通鍵演算処理2を経て、この共通鍵の配信が行われる(図1)。
【0023】
〔共有情報送信処理〕
まず、セキュリティ装置10の擬似乱数生成部10a(共有情報抽出手段に相当)において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてnN次元(n,Nは自然数)のベクトルである共有情報aを生成する。生成した共有情報aは擬似乱数生成部10aから記憶部10bに送られ、そこで格納される(ステップS1)。なお、擬似乱数生成部10aにおける擬似乱数の生成は、例えば、SHA−1等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【0024】
また、生成された共有情報aは擬似乱数生成部10aから通信部10cに送られ、そこからネットワーク30を通じてセキュリティ装置20に送られる(ステップS2)。送信された共有情報aは、セキュリティ装置20の通信部20cにおいて受信(共有情報抽出手段に相当)され、記憶部20bに送られた後、そこに格納される(ステップS20)。
【0025】
〔交換情報送信処理1〕
まず、セキュリティ装置10の擬似乱数生成部10d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。生成した自然数s及び集合Λ={λ1,λ2,…,λs}は、擬似乱数生成部10dから記憶部10bに送られ、そこで安全に格納される(ステップS3)。なお、擬似乱数生成部10dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部10aの場合と同様な方法によって行う。
【0026】
次に、R行列生成部10eにおいて、記憶部10bから集合Λ={λ1,λ2,…,λs}を抽出し、このλpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「R行列」という。)を算出する(ステップS4)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(λp)、R1001=1−qL(λp)、R0110=1−q−1L(λp)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(λp)を可換環の元λpに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部10eが有する図示しないメモリに格納されるとともに、行列演算部10fに送られる。
このR行列が送られた行列演算部10fは、記憶部10bから共有情報a及び自然数sを抽出し、これらを用いてT行列演算を行って交換情報dを生成する(ステップS5)。
【0027】
すなわち、この例の行列演算部10fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
【数18】
とした場合における、nN×nN行列T(λ1), T(λ2),…, T(λs)を、擬似乱数生成部10aにおいて抽出され、記憶部10bから読みこまれた共有情報aに順次作用させる(d=T(λ1) T(λ2) …T(λs)a)。
【0028】
また、より具体的には、この例の行列演算部10fは、例えば、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数19】
によって演算する。
【0029】
このように生成された交換情報dは、通信部10cに送られ、通信部10c(交換情報出力手段に相当)は、この交換情報dを、ネットワーク30を通じてセキュリティ装置20に送信する(ステップS6)。送信された交換情報dは、セキュリティ装置20の通信部20c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS21)、行列演算部20hに送られる。
【0030】
〔交換情報送信処理2〕
まず、セキュリティ装置20の擬似乱数生成部20d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。生成した自然数s及び集合δ={α1,α2,…,αu}は、擬似乱数生成部20dから記憶部20bに送られ、そこで安全に格納される(ステップS22)。なお、擬似乱数生成部20dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部10aの場合と同様な方法によって行う。
【0031】
次に、R行列生成部20eにおいて、記憶部20bから集合δ={α1,α2,…,αu}を抽出し、このαrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(R行列)を算出する(ステップS23)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(αr)、R1001=1−qL(αr)、R0110=1−q−1L(αr)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(αr)を可換環の元αrに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部20eが有する図示しないメモリに格納されるとともに、行列演算部20fに送られる。
このR行列が送られた行列演算部20fは、記憶部20bから共有情報a及び自然数uを抽出し、これらを用いてT行列演算を行って交換情報eを生成する(ステップS24)。
【0032】
すなわち、この例の行列演算部20fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元αrに対してR行列生成部20eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
【数20】
とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を、通信部20cにおいて抽出され、記憶部20bから読みこまれた共有情報aに順次作用させる(e=T(α1) T(α2) …T(αu)a)。
【0033】
また、より具体的には、この例の行列演算部20fは、例えば、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数21】
によって演算する。
【0034】
このように生成された交換情報eは、通信部20cに送られ、通信部20c(交換情報出力手段に相当)は、この交換情報eを、ネットワーク30を通じてセキュリティ装置10に送信する(ステップS25)。送信された交換情報eは、セキュリティ装置10の通信部10c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS7)、行列演算部10hに送られる。
【0035】
〔共通鍵演算処理1〕
まず、セキュリティ装置10の行列演算部10hにおいて、R行列生成部10eから、ここで生成され記憶されているR行列を抽出し(ステップS8)、さらに、記憶部10bから自然数sを抽出する。そして、この行列演算部10hにおいて、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を上述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を、通信部10cから行列演算部10hに送られた交換情報eに順次作用させる(K=T(λ1) T(λ2) …T(λs)e)(T行列演算/ステップS9)。
【0036】
より具体的には、この例の行列演算部10hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数22】
によって演算する。
このような演算結果Kは鍵出力部10iに送られ、そこから共通鍵Kとして出力される(ステップS10)。
【0037】
〔共通鍵演算処理2〕
まず、セキュリティ装置20の行列演算部20hにおいて、R行列生成部20eから、ここで生成され記憶されているR行列を抽出し(ステップS26)、さらに、記憶部20bから自然数uを抽出する。そして、この行列演算部20hにおいて、元αrに対してR行列生成部20eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を上述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…, T(αu)を、通信部20cから行列演算部20hに送られた交換情報dに順次作用させる(K=T(α1) T(α2) …T(αu)d)(T行列演算/ステップS27)。
【0038】
より具体的には、この例の行列演算部20hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、
【数23】
によって演算する。
このような演算結果Kは鍵出力部20iに送られ、そこから共通鍵Kとして出力される(ステップS28)。
【0039】
〔T行列の可換性〕
上述のようにセキュリティ装置10において演算された共通鍵は、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs) を順次作用させた結果である(K=T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)。
【0040】
一方、セキュリティ装置20において演算された共通鍵は、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果である(K=T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)。
従って、セキュリティ装置10において演算された共通鍵とセキュリティ装置20において演算された共通鍵とが一致するためには、これらのT行列が可換であることが必要である。以下に、このT行列の可換性について説明する。
【0041】
<定義>
この説明の表記を以下のように定義する。
(a)Rs,t:V(×)V(×)V→V(×)V(s,t=1,2,3の場合)
<ei(×)ej(×)ek>
V:基底e1,…,enのベクトル空間
V(×)V:VとVのテンソル積
具体的には、
R1,2(ei(×)ej(×)ek)=Σx,y Ri,j,x,y ex(×)ey(×)ek
R1,3(ei(×)ej(×)ek)=Σx,y Ri,k,x,y ex(×)ej(×)ey
R2,3(ei(×)ej(×)ek)=Σx,y Rj,k,x,y ei(×)ex(×)ey
となる。すなわち、Rs,tは、Rの上付き添え字s番目の基底(R1,2(ei(×)ej(×)ek)の場合、1番目の基底ei)と、Rの上付き添え字t番目の基底(R1,2(ei(×)ej(×)ek)の場合、2番目の基底ej)に関して全ての値をとりつつ、Rの和を求めた結果を指す。なお、この和を求めるに当たり、Rの上付き添え字s,tに該当しない場所の基底(R1,2(ei(×)ej(×)ek)の場合、3番目の基底ek)は固定である。
【0042】
(b)T ̄(λ)
【数24】
【0043】
(c)トレース
【数25】
<導出>
次に、以上の定義を用いてT行列の可換性について説明する。
まず、以上の定義より、ヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列に対して、
【数26】
【0044】
なお、ここで、1つ目の変形は上述の定義(b)によるものであり、2つ目の変形は、上述の定義(a)より、共通する上付き添え字を有しないRの演算は互いに独立であることから、その順序を入れ替えても演算結果は変わらないことによるものである。
【0045】
さらに上述の式(9)の
【数27】
となり、上述の式(8)が成立していることが分かる。これはその他のNについても同様である。
【0046】
次に、このように成立する上述の式(10)の両辺に、逆行列
【数28】
ベクトル空間上での線形変換としての逆行列を意味する。
【0047】
次にこの式(11)のトレース(定義(c))をとると、
【数29】
を満たすため、この式(13)は、T(μ)T(ν)=T(ν)T(μ)と変形でき、このT行列が可換であることが分かる。なおT行列を前述の式(1)として一般化できることの数学的背景は、前述した「R.J. Baxter, ”Exactly Solved Models in Statistical Mechanics,” Academic Press,1982」「V. Chari, A.Pressly, ”A Guide to Quantum Groups,”Cambridge University Press, 1994.」「神保道夫,”量子群とヤン・バクスター方程式”,シュプリンガー・フェアラーク東京,1990」等の文献によって明らかである。
【0048】
このように、この形態では、セキュリティ装置10の擬似乱数生成部10aにおいて、セキュリティ装置20と共有される共有情報aを抽出し、擬似乱数生成部10dにおいて、秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。次に、R行列生成部10eにおいて、元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(第1のR行列)を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成された第1のR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を上述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を共有情報aに順次作用させ、その演算結果である交換情報dを通信部10cからセキュリティ装置20に出力する。
【0049】
また、通信部10cにおいて、セキュリティ装置20から送信された交換情報eの入力を受け付け、行列演算部10hにおいて、この交換情報eに、nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させ、共通鍵Kを求める。
一方、セキュリティ装置20の通信部20cにおいて、セキュリティ装置10と共有される共有情報aが抽出し、擬似乱数生成部20dにおいて、秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。次に、R行列生成部20eにおいて、この元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(第2のR行列)を算出する。そして、行列演算部20fにおいて、元αrに対して、R行列生成部20eで生成された第2のR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、上述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を共有情報aに順次作用させ、その演算結果である交換情報eを通信部20cからセキュリティ装置10に出力する。
【0050】
また、通信部20cにおいて、交換情報dの入力を受け付け、行列演算部20hにおいて、この交換情報dに、nN×nN行列T(α1), T(α2),…, T(αu)を順次作用させ、共通鍵Kを求める。
ここで、セキュリティ装置10において演算された共通鍵は、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs) を順次作用させた結果である(K=T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)。一方、セキュリティ装置20において演算された共通鍵は、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果である(K=T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)。そして、上述のようにT行列は可換である。従って、セキュリティ装置10において演算された共通鍵とセキュリティ装置20において演算された共通鍵とは一致する。
【0051】
また、この形態では「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0052】
さらに、ヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用い、上述の式(1)で表されるnN×nN行列T(λ)は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるd、eは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【0053】
また、この形態の例では、共有情報aをnN次元のベクトルとし、セキュリティ装置10の行列演算部10fは、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(3)によって演算し、行列演算部10hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(6)によって演算することとした。
【0054】
同様に、セキュリティ装置20の行列演算部20fは、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(5)によって演算し、行列演算部20hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(7)によって演算することとした。
【0055】
そのため、ベクトルにT行列を作用させる演算を行うにあたり、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の共通鍵配送を実現することができる。
【0056】
第2の実施の形態:
第2の実施の形態は、この発明を利用した公開鍵暗号方式に関するものである。以下、この第2の実施の形態について説明を行う。
図8は、この形態における公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示であり、図9は、この形態におけるセキュリティシステム100の全体構成を説明するための概念図の例示である。図10は、図3に例示したハードウェア構成において所定のプログラムを実行させることによって実現されるセキュリティ装置110の機能構成を説明するためブロック図の例示であり、図11は、セキュリティ装置120の機能構成を説明するためのブロック図の例示である。また図12は、セキュリティ装置110の処理を説明するためのフローチャートの例示であり、図13は、セキュリティ装置120の処理を説明するためのフローチャートの例示である。以下、これらの図を用いて、この形態におけるセキュリティシステム100の構成及びその処理動作の説明を行っていく。なお、セキュリティ装置110、120のハードウェア構成については、第1の実施の形態と同様であるため、ここではその説明を省略する。
【0057】
〔システムの全体構成〕
図9に例示するように、この形態のセキュリティシステム100は、例えば、公知のコンピュータに所定のプログラムを実行させることによって実現されるセキュリティ装置110、120が、インターネット等の安全でないネットワーク130によって通信可能に接続されることによって構成される。
【0058】
〔処理手順の全体〕
この形態のセキュリティシステム100では、セキュリティ装置110において公開鍵を公開し、この公開鍵を用いてセキュリティ装置120で暗号化を行い、その暗号文をセキュリティ装置110で復号する。この例の暗号処理は、セキュリティ装置110からセキュリティ装置120に共有情報aを送信する共有情報送信処理、セキュリティ装置110からセキュリティ装置120に交換情報dを送信する交換情報送信処理、セキュリティ装置120からセキュリティ装置110に暗号文Eを送信する暗号文送信処理、及びセキュリティ装置110においてこの暗号文を復号して平文Mを算出する復号処理によって構成される(図8)。
【0059】
〔共有情報送信処理〕
まず、セキュリティ装置110の擬似乱数生成部110a(共有情報抽出手段に相当)において、例えば、擬似乱数を複数発生させ、これらの擬似乱数を用いてnN次元(n,Nは自然数)の共有情報aを生成する。生成した共有情報aは擬似乱数生成部110aから記憶部110bに送られ、そこで格納される(ステップS30)。なお、擬似乱数生成部110aにおける擬似乱数の生成は、例えば、SHA−1等の一方向性ハッシュ関数を用いて構成される計算量理論に基づく擬似乱数生成アルゴリズム等を用いて行う。
【0060】
また、生成された共有情報aは擬似乱数生成部110aから通信部110cに送られ、そこからネットワーク130を通じてセキュリティ装置120に送られる(ステップS31)。送信された共有情報aは、セキュリティ装置120の通信部120cにおいて受信(共有情報抽出手段に相当)され、記憶部120bに送られた後、そこに格納される(ステップS51)。
【0061】
〔交換情報送信処理〕
まず、セキュリティ装置110の擬似乱数生成部110d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。生成した自然数s及び集合Λ={λ1,λ2,…,λs}は、擬似乱数生成部110dから記憶部110bに送られ、そこで安全に格納される(ステップS32)。なお、擬似乱数生成部110dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部110aの場合と同様な方法によって行う。
【0062】
次に、R行列生成部110eにおいて、記憶部110bから集合Λ={λ1,λ2,…,λs}を抽出し、このλpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(R行列)を算出する(ステップS33)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(λp)、R1001=1−qL(λp)、R0110=1−q−1L(λp)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(λp)を可換環の元λpに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部110eが有する図示しないメモリに格納されるとともに、行列演算部110fに送られる。
このR行列が送られた行列演算部110fは、記憶部110bから共有情報a及び自然数sを抽出し、これらを用いてT行列演算を行って交換情報dを生成する(ステップS34)。
【0063】
すなわち、この例の行列演算部110fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部10eで生成されたR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、前述の式(2)とした場合における、nN×nN行列T(λ1), T(λ2),…, T(λs)を、擬似乱数生成部110aにおいて抽出され、記憶部110bから読みこまれた共有情報aに順次作用させる(d=T(λ1) T(λ2) …T(λs)a)。
また、より具体的には、この例の行列演算部110fは、例えば、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(3)によって演算する。
【0064】
このように生成された交換情報dは、通信部110cに送られ、通信部110c(交換情報出力手段に相当)は、この交換情報dを、ネットワーク130を通じてセキュリティ装置120に送信する(ステップS35)。送信された交換情報dは、セキュリティ装置120の通信部120c(交換情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS52)、行列演算部120hに送られる。
なお、この例では、共有情報a及び交換情報dが公開鍵に相当し、自然数s及びの集合Λが秘密鍵に相当する。
【0065】
〔暗号文送信処理〕
まず、セキュリティ装置120の擬似乱数生成部120d(秘密情報生成手段に相当)において、例えば、擬似乱数を複数発生させ、これの擬似乱数を用いて、自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。生成した自然数s及び集合δ={α1,α2,…,αu}は、擬似乱数生成部120dから記憶部120bに送られ、そこで安全に格納される(ステップS53)。なお、擬似乱数生成部120dにおける擬似乱数の生成も、例えば、上述の擬似乱数生成部110aの場合と同様な方法によって行う。
【0066】
次に、R行列生成部120eにおいて、記憶部120bから集合δ={α1,α2,…,αu}を抽出し、このαrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(R行列)を算出する(ステップS54)。ここで算出されるR行列としては、例えば、その成分がR0000=R1111=1、R1010=R0101=L(αr)、R1001=1−qL(αr)、R0110=1−q−1L(αr)となるものを例示することができる。なお、この例の解は、qを可換環の可逆な元とし、L(αr)を可換環の元αrに対応する元とし、nを2としている。そして、このように算出されたR行列は、例えば、このR行列生成部120eが有する図示しないメモリに格納されるとともに、行列演算部120fに送られる。
このR行列が送られた行列演算部120fは、1記憶部20bから共有情報a及び自然数uを抽出し、これらを用いてT行列演算を行って交換情報eを生成する(ステップS55)。
【0067】
すなわち、この例の行列演算部120fでは、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元αrに対してR行列生成部120eで生成されたR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を前述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を、通信部120cにおいて抽出され、記憶部120bから読みこまれた共有情報aに順次作用させる(e=T(α1) T(α2) …T(αu)a)。
【0068】
また、より具体的には、この例の行列演算部120fは、例えば、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、前述の式(5)によって演算する。
そして、このように生成された交換情報eは、通信部120cに送られ、通信部120cの図示しないメモリに記憶される。
次に、行列演算部120hにおいて、R行列生成部120eから、ここで生成され記憶されているR行列を抽出し(ステップS56)、さらに、記憶部120bから自然数uを抽出する。そして、この行列演算部120hにおいて、前述のnN×nN行列T(α1),T(α2),…,T(αu)を、通信部120cから行列演算部120hに送られた交換情報dに順次作用させる(T(α1) T(α2)…T(αu)d)(T行列演算/ステップS57)。
【0069】
また、より具体的には、この例の行列演算部120hは、例えば、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(7)によって演算する。
このように求められたベクトルT(α1)T(α2)…T(αu)dは、ハッシュ演算部120iに送られ、このベクトルT(α1)T(α2)…T(αu)dが送られたハッシュ演算部120iは、セキュリティ装置110と共用されるハッシュ関数Hを用い、このベクトルT(α1)T(α2)…T(αu)dのハッシュ値(H(T(α1)T(α2)…T(αu)d))を演算する(ステップS58)。そして、このように求められたハッシュ値(H(T(α1)T(α2)…T(αu)d))は、排他的論理和演算部120kに送られる。
【0070】
一方、メッセージ入力部120jからは平文であるメッセージ(M)の入力が受け付けられ(ステップS59)、入力されたメッセージ(M)は、排他的論理和演算部120kに送られる。
排他的論理和演算部120kでは、ハッシュ演算部120iから送られたハッシュ値(H(T(α1)T(α2)…T(αu)d))(第2の行列演算ステップによる演算結果に相当)と、メッセージ入力部120jから送られたメッセージ(M)との排他的論理和を暗号化情報として生成する(H(T(α1)T(α2)…T(αu)d)(+)M)(ステップS60)。なお、「A(+)B」は、AとBとの排他的論理和を意味するものとする。
【0071】
この排他的論理和の演算結果(H(T(α1)T(α2)…T(αu)d)(+)M)は、通信部120cに送られ、通信部120c(暗号情報出力手段に相当)は、行列演算部120hによる演算結果である交換情報eと、排他的論理和演算部120kにより生成された演算結果(H(T(α1)T(α2)…T(αu)d)(+)M)(暗号化情報に相当)とを、暗号文Eとして、ネットワーク130を通じ、セキュリティ装置110に送信(出力)する(ステップS61)。
【0072】
〔復号処理〕
セキュリティ装置120から送信された暗号文E(e,H(T(α1)T(α2)…T(αu)d)(+)M)は、セキュリティ装置110の通信部110c(暗号情報入力手段に相当)において受信され(入力を受け付けられ)(ステップS36)、この暗号情報Eを構成する交換情報eは行列演算部110hに、暗号化情報H(T(α1)T(α2)…T(αu)d)(+)Mは排他的論理和演算部110jに送られる。
【0073】
交換情報eを受け取った行列演算部110hは、R行列生成部110eから、ここで生成され記憶されているR行列を抽出し(ステップS37)、さらに、記憶部110bから自然数sを抽出する。そして、この行列演算部110hにおいて、通信部110cから行列演算部110hに送られた交換情報eに、前述したnN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる(T(λ1)T(λ2)…T(λs)e)(T行列演算/ステップS38)。
【0074】
また、より具体的には、この例の行列演算部110hは、例えば、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を前述の式(6)によって演算する。
このように求められたT(λ1)T(λ2)…T(λs)eは、ハッシュ演算部110iに送られ、ハッシュ演算部110iは、セキュリティ装置120と共用されるハッシュ関数Hを用い、このT(λ1)T(λ2)…T(λs)eのハッシュ値(H(T(λ1)T(λ2)…T(λs)e))を演算する(ステップS39)。
【0075】
このように求められたハッシュ値(H(T(λ1)T(λ2)…T(λs)e))は排他的論理和演算部110jに送られ、排他的論理和演算部110jは、通信部入力された暗号化情報H(T(α1)T(α2)…T(αu)d)(+)Mとハッシュ値(H(T(λ1)T(λ2)…T(λs)e))(第2の行列演算ステップによる演算結果に相当)との排他的論理和(H(T(α1)T(α2)…T(αu)d)(+)M(+)H(T(λ1)T(λ2)…T(λs)e))を演算する(ステップS40)。
【0076】
ここで、前述のようにT行列は可換であり、第1の実施の形態で説明したようにT(α1)T(α2)…T(αu)dとT(λ1)T(λ2)…T(λs)eは等しい。よって、H(T(α1)T(α2)…T(αu)d)とH(T(λ1)T(λ2)…T(λs)e)も等しくなり、この排他的論理和(H(T(α1)T(α2)…T(αu)d)(+)M(+)H(T(λ1)T(λ2)…T(λs)e))の演算結果は平文であるメッセージMとなる。このように復号されたメッセージ(M)は、メッセージ出力部110kに送られ、メッセージ出力部110kは、このメッセージ(M)を出力する(ステップS41)。
【0077】
このように、この形態では、まず、セキュリティ装置110の擬似乱数生成部110aにおいて、セキュリティ装置120と共有される共有情報を抽出し、擬似乱数生成部110dにおいて、秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}とを生成する。次に、R行列生成部110eにおいて、元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(第1のR行列)を算出し、行列演算部110fにおいて、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、元λp に対してR行列生成部110eで生成された第1のR行列の成分をRp b0b1b2b3とし、元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を前述の式(2)とした場合における、nN×nN行列T(λ1),T(λ2),…,T(λs)を共有情報aに順次作用させ、通信部110cにおいて、この演算結果である交換情報dをセキュリティ装置120出力する。
【0078】
一方、セキュリティ装置120では、その通信部120cにおいて、セキュリティ装置10と共有される共有情報aを抽出し、擬似乱数生成部120dにおいて、秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}とを生成する。次に、R行列生成部120eにおいて、元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(第2のR行列)を算出する。そして、元αr に対して第2のR行列生成部120eで生成された第2のR行列の成分をRr b0b1b2b3とし、元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、前述の式(4)とした場合における、nN×nN行列T(α1),T(α2),…,T(αu)を共有情報aに順次作用させる。
【0079】
また、通信部120cにおいて、交換情報dの入力を受け付け、行列演算部120hにおいて、この交換情報dにnN×nN行列T(α1),T(α2),…,T(αu)を順次作用させる。そして、排他的論理和演算部120kにおいて、行列演算部120hによる演算結果(この例では、さらにハッシュ演算部120iにおいてそのハッシュ値をとったもの(H(T(α1),T(α2),…,T(αu)d)))と平文(M)との排他的論理和を暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)として生成し、行列演算部120fによる演算結果である交換情報eと、排他的論理和演算部120kにより生成された暗号化情報とをセキュリティ装置110に出力する。
【0080】
そして、セキュリティ装置110では、その通信部110cにおいて、交換情報eと暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)との入力を受け付け、行列演算部110hにおいて、交換情報eに、nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる。その後、排他的論理和演算部110jにおいて、この暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)と行列演算部110hによる演算結果(この例では、さらにハッシュ演算部110iにおいて、そのハッシュ値を取ったもの(H(T(λ1),T(λ2),…,T(λs)e)))との排他的論理和を演算し、平文Mを復号する。
【0081】
ここで、上述のようにT行列は可換である。従って、共有情報aにT行列T(α1),T(α2),…,T(αu)を順次作用させた結果eに対し、さらに、T行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果(T(λ1)T(λ2)…T(λs)e、e=T(α1)T(α2)…T(αu)a)と、共有情報aにT行列T(λ1),T(λ2),…,T(λs)を順次作用させた結果dに対し、さらに、T行列T(α1),T(α2),…,T(αu)を順次作用させた結果(T(α1)T(α2)…T(αu)d、d=T(λ1)T(λ2)…T(λs)a)とは等しく、これらに同じハッシュ関数を作用させた結果も等しい。よって、暗号化情報(H(T(α1),T(α2),…,T(αu)d)(+)M)と演算結果(H(T(λ1),T(λ2),…,T(λs)e))との排他的論理和はMとなり、この平文Mが復号されることになる。
【0082】
また、この形態では「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd= T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd= T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性を安全性の根拠とすることになるが、この問題の解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にした場合であっても知られていない。よって、この形態の構成では、従来にない高い安全性を実現することができる。
【0083】
さらに、ヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用い、上述の式(1)で表されるnN×nN行列T(λ)は、一般に対角化していない。従って、この行列をベクトルに作用させることによって生成されるd、eは、単なる離散対数問題の線形結合とはならず、量子コンピュータを用い離散対数問題を効率的に解くアルゴリズムを用いたとしても、一般にこの「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、ベクトルaと、さらにベクトルd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題を効率的に解くことはできない。従って、この形態では、従来にない高い安全性を実現することができる。
【0084】
また、この形態の例では、共有情報aをnN次元のベクトルとし、セキュリティ装置110の行列演算部110fは、共有情報aにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(3)によって演算し、行列演算部110hは、交換情報eにnN×nN行列T(λp)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(6)によって演算することとした。
【0085】
同様に、セキュリティ装置120の行列演算部120fは、共有情報aにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を上述の式(5)によって演算し、行列演算部120hは、交換情報dにnN×nN行列T(αr)を1回作用させた結果であるnN次元のベクトルのB=(B0,B1,…,BN−1)成分を、上述の式(7)によって演算することとした。
そのため、ベクトルにT行列を作用させる演算を行うにあたり、一旦T行列全体を生成し、このT行列全体をメモリに格納しておく必要はない。そのため、安全性確保のため巨大な情報量を有するT行列を用いた場合であっても、そのT行列全体を格納する巨大な容量のメモリを必要とすることなく、この形態の公開鍵暗号方式を実現することができる。
【0086】
なお、この発明は、上述の第1の実施の形態或いは第2の実施の形態に限定されるものではない。例えば、集合Λ={λ1,λ2,…,λs}に属する元λpの少なくとも一部が相互に同じ元であってもよく、集合δ={α1,α2,…,αu}に属する元αrの少なくとも一部が相互に同じ元であってもよい。そして、共通する元に関する演算(R行列演算、T行列演算)を重複して行わず、それらについて演算済みの結果をそのまま利用する構成としてもよい。
【0087】
また、これらの形態では、コンピュータ上で所定のプログラムを実行させることにより、セキュリティ装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
さらに、上述のように、この形態における処理機能は、コンピュータによって実現することができる。この場合、セキュリティ装置が有すべき機能の処理内容はプログラムによって記述され、このプログラムをコンピュータで実行することにより、処理機能をコンピュータ上で実現することができる。
【0088】
なお、この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto−Optical disc)等を、半導体メモリとしてEPROM(Erasable and Programmable ROM)等を用いることができる。
【0089】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0090】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することしてもよく、さらに、コンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
【0091】
【発明の効果】
以上説明したようにこの発明では、まず、λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出する。そして、n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上述のR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が、前述した式(1)で表されるnN×nN行列T(λ)を所定の要素aに作用させる。
【0092】
ここで、このように特定されるnN×nN行列T(λ)は可換である。すなわち、例えば、α、β、γをα=β−γを満たすビット列とした場合におけるヤン・バクスター方程式R(α)12R(β)13R(γ)23=R(γ)23R(β)13R(α)12の解であるR行列を用いて同様に生成したnN×nN行列T(α)が存在する場合、T(λ)・T(α)=T(α)・T(λ)が成立する。したがって、このnN×nN行列T(λ)を利用して、例えば、共通鍵の配送や公開鍵暗号方式等の秘密通信を実現することができる。
【0093】
また、このnN×nN行列T(λ)を利用した秘密通信の安全性は、「可換環の元の有限集合Λ={λ1,λ2,…,λs}を秘密情報として、可換環の元λからnN×nN行列T(λ)を構成する方法と、所定の要素aと、さらにd=T(λ1) T(λ2)…T(λs)aが与えられたとき、可換環の元の有限集合Λ’={λ’1,λ’2,…,λ’s}でd=T(λ1) T(λ2)…T(λs)aとなるものを求めよ」という問題の求解困難性に基づく。しかし、このような解を効率的に求めるアルゴリズムは、たとえ量子コンピュータを用いることを前提にしたとしても知られていない。よって、この発明では、従来にない高い安全性を実現することができる。
【図面の簡単な説明】
【図1】第1の実施の形態の共通鍵の配信処理を説明するためのシーケンス図の例示。
【図2】セキュリティシステムの全体構成を説明するための概念図の例示。
【図3】セキュリティ装置のハードウェア構成を説明するためのブロック図の例示。
【図4】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図5】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図6】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図7】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図8】第2の実施の形態の公開鍵暗号方式による暗号処理を説明するためのシーケンス図の例示。
【図9】セキュリティシステムの全体構成を説明するための概念図の例示。
【図10】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図11】セキュリティ装置の機能構成を説明するためブロック図の例示。
【図12】セキュリティ装置の処理を説明するためのフローチャートの例示。
【図13】セキュリティ装置の処理を説明するためのフローチャートの例示。
【符号の説明】
1、100 セキュリティシステム
10、20、110、120 セキュリティ装置
Claims (15)
- 秘密情報通信を行うセキュリティ装置において、
λ、μ、νを、λ=μ−νを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λ)12R(μ)13R(ν)23=R(ν)23R(μ)13R(λ)12の解であるR行列を算出するR行列生成手段と、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記R行列生成手段において生成されたR行列の成分をRb0b1b2b3とした場合における、B=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λ)BB’が、
を有することを特徴とするセキュリティ装置。 - 上記R行列生成手段は、
qを可換環の可逆な元とし、L(λ)を可換環の上記元λに対応する元とし、nを2とした場合における、成分がR0000=R1111=1、R1010=R0101=L(λ)、R1001=1−qL(λ)、R0110=1−q−1L(λ)となる上記R行列を算出する手段であること、
を特徴とする請求項1又は2の何れかに記載のセキュリティ装置。 - 共通鍵の配送を行うセキュリティ装置において、
共通鍵の配信相手と共有される共有情報aを抽出する共有情報抽出手段と、
秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「R行列」という。)を算出するR行列生成手段と、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記元λp に対して上記R行列生成手段で生成された上記R行列の成分をRp b0b1b2b3とし、上記元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
上記第1の行列演算手段による演算結果である第1の交換情報を出力する交換情報出力手段と、
第2の交換情報eの入力を受け付ける交換情報入力手段と、
上記交換情報入力手段によって入力された上記第2の交換情報eに、上記nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる第2の行列演算手段と、
を有することを特徴とするセキュリティ装置。 - 上記R行列生成手段は、
qを可換環の可逆な元とし、L(λp)を可換環の上記元λpに対応する元とし、nを2とした場合における、成分がRp 0000=Rp 1111=1、Rp 1010=Rp 0101=L(λp)、Rp 1001=1−qL(λp)、Rp 0110=1−q−1L(λp)となる上記R行列を算出する手段であること、
を特徴とする請求項4或いは5の何れかに記載のセキュリティ装置。 - 公開鍵暗号方式による秘密通信を行うセキュリティ装置において、
通信相手と共有される共有情報aを抽出する共有情報抽出手段と、
秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「R行列」という。)を算出するR行列生成手段と、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記元λp に対して上記R行列生成手段で生成された上記R行列の成分をRp b0b1b2b3とし、上記元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
上記第1の行列演算手段による演算結果である第1の交換情報を出力する交換情報出力手段と、
第2の交換情報eと暗号化情報との入力を受け付ける暗号情報入力手段と、
上記暗号情報入力手段によって入力された上記第2の交換情報eに、上記nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる第2の行列演算手段と、
上記暗号情報入力手段によって入力された上記暗号化情報と上記第2の行列演算手段による演算結果との排他的論理和を演算する排他的論理和演算手段と、
を有することを特徴とするセキュリティ装置。 - 上記R行列生成手段は、
qを可換環の可逆な元とし、L(λp)を可換環の上記元λpに対応する元とし、nを2とした場合における、成分がRp 0000=Rp 1111=1、Rp 1010=Rp 0101=L(λp)、Rp 1001=1−qL(λp)、Rp 0110=1−q−1L(λp)となる上記R行列を算出する手段であること、
を特徴とする請求項7或いは8の何れかに記載のセキュリティ装置。 - 公開鍵暗号方式による秘密通信を行うセキュリティ装置において、
通信相手と共有される共有情報aを抽出する共有情報抽出手段と、
秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}と、を生成する秘密情報生成手段と、
上記秘密情報生成手段において生成された上記元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(以下、「R行列」という。)を算出するR行列生成手段と、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記元αr に対して上記R行列生成手段で生成された上記R行列の成分をRr b0b1b2b3とし、上記元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、
第1の交換情報dの入力を受け付ける交換情報入力手段と、
上記交換情報入力手段において入力された上記第1の交換情報dに、上記nN×nN行列T(α1),T(α2),…,T(αu)を順次作用させる第2の行列演算手段と、
上記第2の行列演算手段による演算結果と平文との排他的論理和を暗号化情報として生成する排他的論理和演算手段と、
上記第1の行列演算手段による演算結果である第2の交換情報と、上記排他的論理和演算手段により生成された上記暗号化情報と、を出力する暗号情報出力手段と、
を有することを特徴とするセキュリティ装置。 - 上記R行列生成手段は、
qを可換環の可逆な元とし、L(αr)を可換環の上記元αrに対応する元とし、nを2とした場合における、成分がRr 0000=Rr 1111=1、Rr 1010=Rr 0101=L(αr)、Rr 1001=1−qL(αr)、Rr 0110=1−q−1L(αr)となる上記R行列を算出する手段であること、
を特徴とする請求項10或いは11の何れかに記載のセキュリティ装置。 - 共通鍵の配送を行うセキュリティ方法において、
第1のセキュリティ装置において行われる、
第2のセキュリティ装置と共有される共有情報を抽出する第1の共有情報抽出ステップと、
秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}と、を生成する第1の秘密情報生成ステップと、
上記第1の秘密情報生成ステップにおいて生成された上記元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「第1のR行列」という。)を算出する第1のR行列生成ステップと、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記元λp に対して上記第1のR行列生成ステップで生成された上記第1のR行列の成分をRp b0b1b2b3とし、上記元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
上記第1の行列演算ステップによる演算結果である第1の交換情報を出力する第1の交換情報出力ステップと、
第2の交換情報の入力を受け付ける第1の交換情報入力ステップと、
上記第1の交換情報入力ステップによって入力された上記第2の交換情報に、上記nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる第2の行列演算ステップと、
上記第2のセキュリティ装置において行われる、
上記第1のセキュリティ装置と共有される上記共有情報を抽出する第2の共有情報抽出ステップと、
秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}と、を生成する第2の秘密情報生成ステップと、
上記第2の秘密情報生成ステップにおいて生成された上記元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(以下、「第2のR行列」という。)を算出する第2のR行列生成ステップと、
上記元αrに対して上記第2のR行列生成ステップで生成された上記第2のR行列の成分をRr b0b1b2b3とし、上記元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、
上記第3の行列演算ステップによる演算結果である第2の交換情報を出力する第2の交換情報出力ステップと、
上記第1の交換情報の入力を受け付ける第2の交換情報入力ステップと、
上記第2の交換情報入力ステップによって入力された上記第1の交換情報に、上記nN×nN行列T(α1), T(α2),…, T(αu)を順次作用させる第4の行列演算ステップと
を有することを特徴とするセキュリティ方法。 - 公開鍵暗号方式による秘密通信を行うセキュリティ方法において、
第1のセキュリティ装置において行われる、
第2のセキュリティ装置と共有される共有情報を抽出する第1の共有情報抽出ステップと、
秘密情報である自然数sと、ビット列で表現される可換環の元λp(p={1,2,…,s})の集合Λ={λ1,λ2,…,λs}と、を生成する第1の秘密情報生成ステップと、
上記第1の秘密情報生成ステップにおいて生成された上記元λpのそれぞれに対し、μp、νpを、λp=μp−νpを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(λp)12R(μp)13R(νp)23=R(νp)23R(μp)13R(λp)12の解(以下、「第1のR行列」という。)を算出する第1のR行列生成ステップと、
n,Nを自然数とし、bi(i={0,1,2,3})、Bj(j={0,1,…,N−1})及びBk(k={0,1,…,N−1})を0以上n−1以下の整数とし、上記元λp に対して上記第1のR行列生成ステップで生成された上記第1のR行列の成分をRp b0b1b2b3とし、上記元λpに対応するnN×nN行列T(λp)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(λp)BB’を、
上記第1の行列演算ステップによる演算結果である第1の交換情報を出力する第1の交換情報出力ステップと、
上記第2のセキュリティ装置において行われる、
上記第1のセキュリティ装置と共有される共有情報を抽出する第2の共有情報抽出ステップと、
秘密情報である自然数uと、ビット列で表現される可換環の元αr(r={1,2,…,u})の集合δ={α1,α2,…,αu}と、を生成する第2の秘密情報生成ステップと、
上記第2の秘密情報生成ステップにおいて生成された上記元αrのそれぞれに対し、βr、γrを、αr=βr−γrを満たすビット列で表現される可換環の元とした場合におけるヤン・バクスター方程式R(αr)12R(βr)13R(γr)23=R(γr)23R(βr)13R(αr)12の解(以下、「第2のR行列」という。)を算出する第2のR行列生成ステップと、
上記元αr に対して上記第2のR行列生成ステップで生成された上記第2のR行列の成分をRr b0b1b2b3とし、上記元αrに対応するnN×nN行列T(αr)のB=(B0,B1,…,BN−1),B’=(B’0,B’1,…,B’N−1)成分T(αr)BB’を、
上記第1の交換情報の入力を受け付ける交換情報入力ステップと、
上記交換情報入力ステップにおいて入力された上記第1の交換情報に、上記nN×nN行列T(α1),T(α2),…,T(αu)を順次作用させる第3の行列演算ステップと、
上記第3の行列演算ステップによる演算結果と平文との排他的論理和を暗号化情報として生成する排他的論理和演算ステップと、
上記第2の行列演算ステップによる演算結果である第2の交換情報と、上記排他的論理和演算ステップにより生成された上記暗号化情報と、を出力する暗号情報出力ステップと、
上記第1のセキュリティ装置において行われる、
上記第2の交換情報と上記暗号化情報との入力を受け付ける暗号情報入力ステップと、
上記暗号情報入力ステップによって入力された上記第2の交換情報に、上記nN×nN行列T(λ1),T(λ2),…,T(λs)を順次作用させる第4の行列演算ステップと、
上記暗号情報入力ステップによって入力された上記暗号化情報と上記第4の行列演算ステップによる演算結果との排他的論理和を演算する排他的論理和演算ステップと、
を有することを特徴とするセキュリティ方法。 - 請求項1から12の何れかに記載されたセキュリティ装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003149235A JP2004356720A (ja) | 2003-05-27 | 2003-05-27 | セキュリティ装置、セキュリティ方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003149235A JP2004356720A (ja) | 2003-05-27 | 2003-05-27 | セキュリティ装置、セキュリティ方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004356720A true JP2004356720A (ja) | 2004-12-16 |
Family
ID=34045403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003149235A Pending JP2004356720A (ja) | 2003-05-27 | 2003-05-27 | セキュリティ装置、セキュリティ方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004356720A (ja) |
-
2003
- 2003-05-27 JP JP2003149235A patent/JP2004356720A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6964688B2 (ja) | 暗号文に対する近似演算を行う装置及び方法 | |
US11811923B2 (en) | Single node multi-party encryption | |
WO2014007310A1 (ja) | 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム | |
JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
JP6556955B2 (ja) | 通信端末、サーバ装置、プログラム | |
Sokouti et al. | Medical image encryption: an application for improved padding based GGH encryption algorithm | |
JP6971917B2 (ja) | 復号装置、暗号化装置及び暗号システム | |
JP5732429B2 (ja) | 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
Salam et al. | ShiftMod cipher: A symmetrical cryptosystem scheme | |
JP7117964B2 (ja) | 復号装置、暗号システム、復号方法及び復号プログラム | |
Chida et al. | High-throughput secure AES computation | |
JP7449911B2 (ja) | 同型暗号文に対する非多項式演算を行う装置 | |
KR101133988B1 (ko) | 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템 | |
JP4528114B2 (ja) | 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム | |
JP7325689B2 (ja) | 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム | |
Mittal et al. | Preserving privacy in clouds using fully homomorphic encryption | |
JP2011040932A (ja) | 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体 | |
JP4758814B2 (ja) | 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体 | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
WO2018011825A1 (en) | Encryption and decryption of messages | |
JP6885325B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム | |
JP2004356720A (ja) | セキュリティ装置、セキュリティ方法、及びプログラム | |
KR20200099957A (ko) | 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법 | |
Chuang et al. | An Efficient GDPR-Compliant Data Management for IoHT Applications |