JP5032955B2 - 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム - Google Patents
暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム Download PDFInfo
- Publication number
- JP5032955B2 JP5032955B2 JP2007305933A JP2007305933A JP5032955B2 JP 5032955 B2 JP5032955 B2 JP 5032955B2 JP 2007305933 A JP2007305933 A JP 2007305933A JP 2007305933 A JP2007305933 A JP 2007305933A JP 5032955 B2 JP5032955 B2 JP 5032955B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- value
- unit
- bit string
- exclusive
- 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.)
- Active
Links
Images
Description
図20(b)に示すパディング関数pdは、2kビットの乱数r(=t(0))と、n-2kビットの平文m(=s(0))を入力とし、理想化されたハッシュ関数H1, H2, H3と排他的論理和(αとβとの排他的論理和を「α(+)β」と表現する)とを用いて、h(1)=H1(t(0)), s(1)=s(0)(+)h(1), h(2)=H2(s(1)), t(1)=t(0)(+)h(2), h(3)=H3(t(1)), s(2)=s(1)(+)h(3)と計算し、t(1)とs(2)とのビット結合t(1)|s(2)を出力する。そして、これを落とし戸付き一方向性置換関数fに入力し、u=f(t(1)|s(2))と計算したuを暗号文とする。なお、α|βは、αとβとのビット結合を意味する。
M. Bellare, and P. Rogaway,"Optimal Asymmetric Encryption", Advancecs in cryptology - Eurocrypt'94, LNCS 950, pp.92-111, Springer-Verlag, 1995. D. H. Phan and D. Pointcheval,"OAEP 3-Round: A Generic and Secure Asymmetric Encryption Padding", Advances in Cryptology -Asiacrypt ’04, LNCS 3329, pp.63-78, 2004, Springer-Verlag. J. Jonsson, "An OAEP variant with a tight security proof", [online], March 18, 2002, IACR e-print Archive 2002/034, インターネット<http://mirror.cr.yp.to/eprint.iacr.org/2002/034.pdf>
(A) 暗号化装置の記憶部にn‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを格納する平文格納過程と、
(B) 上記暗号化装置の記憶部にzビットの乱数rを格納する乱数格納過程と、
(C) 暗号化装置の第1ビット分割部が、平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第2平文m2をビット列s(0)とする第1ビット分割過程と、
(D) 暗号化装置の第1ビット結合部が、乱数rと第1平文m1とのビット結合値を生成し、当該ビット結合値をビット列t(0)とする第1ビット結合過程と、
(E) ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、
暗号化装置の第1ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第1ハッシュ関数演算過程と、
暗号化装置の第2ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第2ハッシュ関数演算過程と、
暗号化装置の第2排他的論理和演算部が、ビット列t(i)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i+1)とする第2排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程と上記第2ハッシュ関数演算過程と上記第2排他的論理和演算過程とを実行し、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程とを実行する、撹乱過程と、
ラウンド数Rが奇数である場合には、暗号化装置の第2ビット結合部が、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値yを生成する、第2ビット結合過程と、
(G) 暗号化装置の一方向性置換関数演算部が、ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出する一方向性置換関数演算過程と、
(H) 暗号化装置の送信部が、暗号文uを復号装置に送信する暗号文送信過程と、
(I) 暗号文uを復号装置の記憶部に格納する暗号文格納過程と、
(J) 復号装置の逆関数演算部が、暗号文uに対して上記落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出する逆関数演算過程と、
(K) 復号装置の第2ビット分割部が、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出する第2ビット分割過程と、
(L) ラウンド数Rが偶数である場合には、i=(R/2)‐1からi=0まで順番に、
復号装置の第3ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第3ハッシュ関数演算過程と、
復号装置の第4ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第4ハッシュ関数演算過程と、
復号装置の第4排他的論理和演算部が、ビット列s(i+1)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i)とする第4排他的論理和演算過程と、を実行し、
(M) 復号装置の第3ビット分割部が、ビット列t(0)をビット分割し、zビットの乱数rとv‐zビットの第1平文m1とを抽出する第3ビット分割過程と、
(N) 復号装置の第3ビット結合部が、第1平文m1とビット列s(0)とのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合過程と、を実行する。
〔第1実施形態〕
<全体構成>
図1(a)は、第1実施形態の暗号通信システム1の構成を例示した図である。
図1(a)に例示するように、本形態の暗号通信システム1は、公開鍵暗号方式によって暗号化を行う暗号化装置10と、それによって生成された暗号文を復号する復号装置20とを有し、それらはインターネット等の安全ではないネットワーク30を通じて通信可能に接続されている。なお、暗号化装置10と復号装置20との間の通信はネットワーク30を通じて行われるが、以下ではその旨を省略して説明する。
図1(b)は、暗号化装置10のハードウェア構成を例示したブロック図である。
なお、復号装置20のハードウェア構成は、暗号化装置10のそれと同様であるため説明を省略する。
第1実施形態の暗号化装置10及び復号装置20は、それぞれ、上述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
次に、本形態の処理について説明する。以下では、撹乱過程のラウンド数が偶数の場合の処理、及び、奇数の場合の処理をそれぞれ別個に説明する。しかし、撹乱過程のラウンド数が偶数であるか奇数であるかに応じ、以下の各処理が選択的に実行される構成であってもよい。
《暗号化処理》
図4は、ラウンド数R(R≧4)が偶数である場合における暗号化処理を説明するためのフローチャートである。以下、この図に従って説明を行う。
t(0)=r|m1
として記憶部11に格納する(第1ビット結合過程/ステップS4)。
h(2・i+1)=H(2・i+1) (t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部11に格納する(第1ハッシュ関数演算過程/ステップS6)。なお、本形態のハッシュ関数H(2・i+1)は、
H(2・i+1):{0,1}v→{0,1}n−v
の入出力域を持つ。また、当該ハッシュ関数H(2・i+1)としては、例えば、SHA-1等を用いることができる。
s(i+1)=s(i)(+) h(2・i+1)
を行い、その演算結果であるビット列s(i+1)を記憶部11に格納する(第1排他的論理和演算過程/ステップS7)。
h(2・i+2)=H(2・i+2) (s(i+1))
を算出し、当該ハッシュ値h(2・i+2)を記憶部11に格納する(第2ハッシュ関数演算過程/ステップS8)。なお、本形態のハッシュ関数H(2・i+2)は、
H(2・i+2):{0,1}n−v→{0,1}v
の入出力域を持つ。また、当該ハッシュ関数H(2・i+2)としては、例えば、SHA-1等を用いることができる。
t(i+1) =t(i)(+) h(2・i+2)
を行い、その演算結果であるビット列t(i+1)を記憶部11に格納する(第2排他的論理和演算過程/ステップS9)。
y=t(R/2)|s(R/2)
を生成し、当該ビット結合値yを記憶部11に格納する(第2ビット結合過程/ステップS12)。
u=f(y)
を算出し、当該暗号文uを暗号化装置の記憶部に格納する(一方向性置換関数演算過程/ステップS13)。なお、落とし戸付き一方向性置換関数fとしては、例えば、因数分解問題の求解困難性に安全性の根拠をおくRSA暗号の暗号化関数や、離散対数問題の求解困難性に安全性の根拠をおくElGamal暗号の暗号化関数等を例示できる(例えば、『岡本龍明,山本博資著、「現代暗号」、産業図書出版、ISBN4-7828-5353-X(参考文献1)』等参照)。
図5は、ラウンド数R(R≧4)が偶数である場合における復号処理を説明するためのフローチャートである。以下、この図に従って説明を行う。
上述のように送信された暗号文uは、復号装置20(図3)の受信部22で受信され、記憶部21に格納される(暗号文格納過程/ステップS21)。
y=f−1(u)
を抽出し、当該ビット結合値yを記憶部21に格納する(逆関数演算過程/ステップS22)。
y→ t(R/2), s(R/2)
それらを記憶部21に格納する(第2ビット分割過程/ステップS23)。
次に、制御部13aがi=(R/2)‐1と設定し、当該iをレジスタ(図示せず)に保持する(ステップS24)。
h(2・i+2)=H(2・i+2)(s(i+1))
を算出し、当該ハッシュ値h(2・i+2)を記憶部21に格納する(第3ハッシュ関数演算過程/ステップS25)。なお、各ハッシュ関数H(2・i+2)は、暗号化装置10のものと同一である。
t(i)=t(i+1) (+) h(2・i+2)
を行い、その演算結果であるビット列t(i)を記憶部21に格納する(第3排他的論理和演算過程/ステップS26)。
h(2・i+1)= H(2・i+1)(t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部21に格納する(第4ハッシュ関数演算過程/ステップS27)。
s(i)=s(i+1) (+) h(2・i+1)
を行い、その演算結果であるビット列s(i)を記憶部21に格納する(第4排他的論理和演算過程/ステップS28)。
t(0)→ r, m1
zビットの乱数rとv‐zビットの第1平文m1とを抽出し、当該乱数rと第1平文m1とを記憶部21に格納する(第3ビット分割過程/ステップS31)。なお、ステップS31のビット分割方法は、暗号化装置10が行うステップS4のビット結合方法に対応するものである。例えば、ステップS4において、乱数rを上位zビットとし、第1平文m1を残りのビットとしてビット結合されていたのであれば、ステップS31では、ビット列t(0)の上位zビットを乱数rとして抽出し、残りのビットを第1平文m1として抽出する。
m=m1 | s(0)
を生成し、当該ビット結合値を復号結果mとして出力する(第3ビット結合過程/ステップS32)。
《暗号化処理》
図6は、ラウンド数R(R≧4)が奇数である場合における暗号化処理を説明するためのフローチャートである。以下、この図に従って説明を行う。なお、ラウンド数Rが偶数である場合の処理と共通する事項については説明を省略する。
まず、暗号化装置10(図2)が、ラウンド数Rが偶数である場合の処理で説明したステップS1〜S9の処理を実行する。
h(2・i+1)=H(2・i+1) (t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部11に格納する(第1ハッシュ関数演算過程/ステップS44)。
s(i+1)=s(i)(+) h(2・i+1)
を行い、その演算結果であるビット列s(i+1)を記憶部11に格納する(第1排他的論理和演算過程/ステップS45)。
y=t((R‐1)/2)|s(((R‐1)/2)+1)
を生成し、当該ビット結合値yを記憶部11に格納する(ステップS46)。
u=f(y)
を算出し、当該暗号文uを暗号化装置の記憶部に格納し(一方向性置換関数演算過程/ステップS13)、暗号化装置10の送信部12が、記憶部11から読み込まれた暗号文uを復号装置20に送信する(暗号文送信過程/ステップS14)。
図7は、ラウンド数Rが奇数である場合における復号処理を説明するためのフローチャートである。以下、この図に従って説明を行う。なお、ラウンド数Rが偶数である場合の処理と共通する事項については説明を省略する。
次に、復号装置20の第2ビット分割部23cが、記憶部21からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、
y→ t((R‐1)/2), s(((R‐1)/2)+1)
それらを記憶部21に格納する(第2ビット分割過程/ステップS50)。
次に、復号装置20の第4ハッシュ関数演算部23fが、記憶部21からビット列t(i)を読み込み、当該ビット列t(i)にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値
h(2・i+1)= H(2・i+1)(t(i))
を算出し、当該ハッシュ値h(2・i+1)を記憶部21に格納する(第4ハッシュ関数演算過程/ステップS52)。
s(i)=s(i+1) (+) h(2・i+1)
を行い、その演算結果であるビット列s(i)を記憶部21に格納する(第4排他的論理和演算過程/ステップS53)。
その後、ラウンド数Rが偶数である場合の処理で説明したステップS25〜S32の処理を実行し、復号結果mを出力する。
次に、ラウンド数R=4, 5の場合の撹乱過程(ステップS5〜11又はS5〜S9,S41,S42)及び撹乱復元過程(ステップS24〜30又はS52〜S54,S25〜S30)の処理を例示する。
図8(a)は、ラウンド数R=4の場合における撹乱過程を説明するためのフローチャートである。この例では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)), t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(t(1)), s(1)=s(2) (+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
図9(a)は、ラウンド数R=5の場合における撹乱過程を説明するためのフローチャートである。この例では、
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)), t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
i=2: h(5)= H(5)(t(2)), s(2)=s(3) (+) h(5)
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(t(1)), s(1)=s(2) (+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
本形態では、n‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、zビットの乱数rと第1平文m1とのビット結合値r|m1と、第2平文m2とを入力として撹乱過程を実行することとした。前述のように、ハッシュ関数の出力域との関係ではr|m1のビット数vは2k以上でなければならないが、このビットの一部を第1平文m1とできることにより、従来よりもオーバーヘッドを向上できる。特に、z=k,v=3kとした場合には、オーバーヘッドがkビットとなり、オーバーヘッドを最小化できる。
次に、本発明の第2実施形態について説明する。
本形態は、第1実施形態の変形例であり、(1)暗号化装置が行う第2ビット結合過程で生成されるビット結合値yを、ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値とし、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値とする点、(2)復号装置が行う第2ビット分割過程において、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、それらを復号装置の記憶部に格納する点、及び(3)第2ビット分割過程で抽出された付加情報bが所定値を示す場合にのみ撹乱復元過程と第3ビット分割過程と第3ビット結合過程とが実行され、第2ビット分割過程で抽出された付加情報bが所定値以外の値を示す場合には、復号装置の偽装復号結果生成部が、n‐zビットの乱数を生成し、当該乱数を復号結果として出力する点である。
<全体構成>
第2実施形態の暗号通信システムは、第1実施形態の暗号化装置10を暗号化装置110に置換し、復号装置20を復号装置120に置換した構成となる。
第1実施形態と同様であるため説明を省略する。
第2実施形態の暗号化装置110及び復号装置120は、それぞれ、前述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
f(x)=xe mod N
を例示でき、その逆関数f−1としては、RSA暗号方式における復号関数
f−1(y)=yd mod N
を例示できる。なお、e, dはそれぞれRSA暗号の公開鍵,秘密鍵であり、x, yは0以上N未満の整数集合ZNの元である。また、付加情報bのビット長|b|には特に制限はないが、オーバーヘッドを小さくするという意味から|b|=1であることが望ましい。なお、前処理として、この付加情報bが暗号化装置110の記憶部11に格納され、さらに、付加情報bと同一値を示す付加情報b’が復号装置120の記憶部21とに格納される。或いは、これらの付加情報が予め各装置を構成するためのプログラムに記述される構成であってもよい。
次に、本形態の処理について説明する。以下では、第1実施形態の処理との相違点のみを説明する。また、本形態では、ラウンド数Rが偶数である場合と奇数である場合を同時に説明する。
図12(a)は、第2実施形態の暗号化処理を説明するためのフローチャートである
まず、暗号化装置110(図10)において、ラウンド数Rが偶数である場合にはステップS1〜S11の処理を行い、ラウンド数Rが奇数である場合にはステップS1〜S9,S41〜S45の処理を行う。
y=b|t(R/2)|s(R/2) (Rが偶数の場合)
を算出して、当該ビット結合値yを記憶部11に格納する。また、ラウンド数Rが奇数である場合には、暗号化装置110の第2ビット結合部113iが、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを記憶部11から読み込んで、それらのビット結合値
y=b|t((R‐1)/2)|s(((R‐1)/2)+1) (Rが奇数の場合)
を算出して、当該ビット結合値yを記憶部11に格納する(第2ビット結合過程/ステップS111)。
その後、暗号化装置110が第1実施形態と同様に、ステップS13,14の処理を実行し、暗号文uを復号装置120に送信する。
図12(b)は、第2実施形態の復号処理を説明するためのフローチャートである。
まず、復号装置120(図11)において、第1実施形態で説明したステップS21,S22の処理を実行する。その後、復号装置120の第2ビット分割部123cが、記憶部21からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出し、それらを記憶部21に格納する(第2ビット分割過程/ステップS121)。
y→ b, t(R/2), s(R/2) (Rが偶数の場合)
y→ b, t((R‐1)/2), s(((R‐1)/2)+1)(Rが奇数の場合)
本形態でも、第1実施形態と同様、安全性を確保しつつオーバーヘッドを小さくすることができる。
また、本形態では、ビット結合値yが付加情報bを具備し、復号装置120が当該付加情報bを用いて暗号文uの正当性を検証し、暗号文uが正当である場合には第1実施形態と同様に復号処理を行ってn‐zビットの復号結果を出力し、暗号文uが不当である場合にはn-zビットの乱数を復号結果として出力することとした。これにより、暗号文uが不当である場合に復号装置120が復号処理を行うことを抑制できる。さらに、暗号文uが不当である場合に正規の復号結果と同じビット数n-zの乱数を復号結果として出力することで、選択暗号文攻撃に有効な情報が攻撃者に漏えいすることを防止できる。
次に、本発明の第3実施形態について説明する。
第3実施形態は、第2実施形態の変形例であり、(1)付加情報bを少なくとも一部のハッシュ関数の入力に含める点、(2)復号装置において付加情報bの検証を行って暗号文の正当性を検証し、暗号文が不当である場合に乱数を復号結果として出力する処理を行わない点が第2実施形態と相違する。以下では、第1,2実施形態との相違点を中心に説明し、これらと共通する事項については説明を省略する。
第3実施形態の暗号通信システムは、第1実施形態の暗号化装置10を暗号化装置210に置換し、復号装置20を復号装置220に置換した構成となる。
第1実施形態と同様であるため説明を省略する。
第2実施形態の暗号化装置210及び復号装置220は、それぞれ、前述のようなハードウェアに所定のプログラムが読み込まれ、CPUがそれを実行することによって構築される。以下、このように構築される各装置の機能構成を説明する。
H(2・i+1):{0,1}v+|b|→{0,1}n−v …(1)
H(2・i+2):{0,1}n−v+|b|→{0,1}v …(2)
の入出力域を持ち、その他のiに対応するハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、
H(2・i+1):{0,1}v→{0,1}n−v …(3)
H(2・i+2):{0,1}n−v→{0,1}v …(4)
の入出力域を持つ。なお、上述したように付加情報bのビット長|b|に制限はないが、オーバーヘッドをできるだけ小さくするという観点から|b|=1であることが望ましい。
《暗号化処理》
第1実施形態との相違点は、(1)暗号化装置210が、ステップS12又はS46の代わりに、第2実施形態で説明したステップS111の処理を実行し、ビット結合値
y=b|t(R/2)|s(R/2) (Rが偶数の場合)
y=b|t((R‐1)/2)|s(((R‐1)/2)+1) (Rが奇数の場合)
を生成する点、(2)撹乱過程で、第1ハッシュ関数演算部213e及び/又は第2ハッシュ関数演算部213gでそれぞれ算出される、少なくとも一部のiに対応する(2・i+1=Rb及び/又は2・i+2=Rbである)ハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、付加情報bとビット列t(i)とのビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値
h(2・i+1)= H(2・i+1)(b|t(i)) …(5)
及び/又は付加情報bとビット列s(i+1)とのビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値
h(2・i+2)= H(2・i+2)(b|s(i+1)) …(6)
であり、その他のハッシュ値が第1,2実施形態と同様である点である。
第1実施形態との相違点は、(1)復号装置220が、ステップS23又はS50に代わりに、第2実施形態で説明したステップS121の処理を実行し、ビット結合値yから
y→ b, t(R/2), s(R/2)(Rが偶数の場合)
y→ b, t((R−1)/2), s(((R−1)/2)+1) (Rが奇数の場合)
を抽出する点、(2)撹乱復元過程で、第4ハッシュ関数演算部223f及び/又は第3ハッシュ関数演算部223dでそれぞれ算出される、少なくとも一部のiに対応する(2・i+1=Rb及び/又は2・i+2=Rbである)ハッシュ値h(2・i+1)及び/又はハッシュ値h(2・i+2)が、付加情報bとビット列t(i)とのビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値
h(2・i+1)= H(2・i+1)(b|t(i)) …(5)
及び/又は付加情報bとビット列s(i+1)とのビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値
h(2・i+2)= H(2・i+2)(b|s(i+1)) …(6)
であり、その他のハッシュ値が第1,2実施形態と同様である点である。
次に、本形態の撹乱過程・撹乱復元過程の具体例を説明する。
図15(a)は、第3実施形態におけるR=4の場合の撹乱過程の一例を説明するための図であり、図15(b)は、その撹乱復元過程を説明するための図である。
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
i=0: h(1)=H(1)(b|t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (b|s(2)),t(2) =t(1) (+) h(4)
が実行され、ビット列t(2)とビット列s(2)とが出力される。
i=1: h(4)=H(4)(b|s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(b|t(0)), s(0)=s(1)(+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
i=0: h(1)=H(1)(t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4) (s(2)),t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
i=2: h(5)= H(5)(t(2)), s(2)=s(3) (+) h(5)
i=1: h(4)=H(4)(s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(t(0)), s(0)=s(1) (+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
i=0: h(1)=H(1)(b|t(0)), s(1)=s(0) (+) h(1), h(2)=H(2) (b|s(1)), t(1) =t(0) (+) h(2)
i=1: h(3)=H(3)(b|t(1)), s(2)=s(1) (+) h(3), h(4)=H(4)(b|s(2)),t(2) =t(1) (+) h(4)
i=2: h(5)=H(5)(b|t(2)), s(3)=s(2) (+) h(5)
が実行され、ビット列t(2)とビット列s(3)とが出力される。
i=2: h(5)= H(5)(b|t(2)), s(2)=s(3)(+) h(5)
i=1: h(4)=H(4)(b|s(2)), t(1)=t(2) (+) h(4), h(3)= H(3)(b|t(1)), s(1)=s(2)(+) h(3)
i=0: h(2)=H(2)(b|s(1)), t(0)=t(1) (+) h(2), h(1)= H(1)(b|t(0)), s(0)=s(1)(+) h(1)
が実行され、ビット列t(0)とビット列s(0)とが出力される。
本形態でも、第1実施形態で説明したのと同様、安全性を確保しつつオーバーヘッドを小さくすることができる。また、本形態では、ビット結合値yが付加情報bを具備し、この付加情報bを少なくとも一部のハッシュ関数の入力値に含めることとしたため、安全性がより向上する。さらに、そのために第2実施形態のように復号時に付加情報bの値を検証したり、乱数を復号結果として生成する必要もない。
また、暗号化装置210と復号装置220との間で整合が採れるのであれば、ビット結合される何れかの情報にさらに他の情報をビット結合してもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
20,120,220 復号装置
Claims (10)
- (A) 暗号化装置の記憶部にn‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mを格納する平文格納過程と、
(B) 上記暗号化装置の記憶部にzビットの乱数rを格納する乱数格納過程と、
(C) 暗号化装置の第1ビット分割部が、平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第2平文m2をビット列s(0)とする第1ビット分割過程と、
(D) 暗号化装置の第1ビット結合部が、乱数rと第1平文m1とのビット結合値を生成し、当該ビット結合値をビット列t(0)とする第1ビット結合過程と、
(E) ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、
暗号化装置の第1ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第1ハッシュ関数演算過程と、
暗号化装置の第1排他的論理和演算部が、ビット列s(i)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i+1)とする第1排他的論理和演算過程と、
暗号化装置の第2ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第2ハッシュ関数演算過程と、
暗号化装置の第2排他的論理和演算部が、ビット列t(i)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i+1)とする第2排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程と上記第2ハッシュ関数演算過程と上記第2排他的論理和演算過程とを実行し、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算過程と上記第1排他的論理和演算過程とを実行する、撹乱過程と、
(F) ラウンド数Rが偶数である場合には、暗号化装置の第2ビット結合部が、ビット列t(R/2)とビット列s(R/2)とを含むビット結合値yを生成し、
ラウンド数Rが奇数である場合には、暗号化装置の第2ビット結合部が、ビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値yを生成する、第2ビット結合過程と、
(G) 暗号化装置の一方向性置換関数演算部が、ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出する一方向性置換関数演算過程と、
(H) 暗号化装置の送信部が、暗号文uを復号装置に送信する暗号文送信過程と、
(I) 暗号文uを復号装置の記憶部に格納する暗号文格納過程と、
(J) 復号装置の逆関数演算部が、暗号文uに対して上記落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出する逆関数演算過程と、
(K) 復号装置の第2ビット分割部が、ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出する第2ビット分割過程と、
(L) ラウンド数Rが偶数である場合には、i=(R/2)‐1からi=0まで順番に、
復号装置の第3ハッシュ関数演算部が、ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出する第3ハッシュ関数演算過程と、
復号装置の第3排他的論理和演算部が、ビット列t(i+1)とハッシュ値h(2・i+2)との排他的論理和演算を行い、その演算結果をビット列t(i)とする第3排他的論理和演算過程と、
復号装置の第4ハッシュ関数演算部が、ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出する第4ハッシュ関数演算過程と、
復号装置の第4排他的論理和演算部が、ビット列s(i+1)とハッシュ値h(2・i+1)との排他的論理和演算を行い、その演算結果をビット列s(i)とする第4排他的論理和演算過程と、を実行し、
ラウンド数Rが奇数である場合には、i=(R‐1)/2について、上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行し、さらに、i={(R‐1)/2}‐1からi=0まで順番に、上記第3ハッシュ関数演算過程と上記第3排他的論理和演算過程と上記第4ハッシュ関数演算過程と上記第4排他的論理和演算過程とを実行する、撹乱復元過程と、
(M) 復号装置の第3ビット分割部が、ビット列t(0)をビット分割し、zビットの乱数rとv‐zビットの第1平文m1とを抽出する第3ビット分割過程と、
(N) 復号装置の第3ビット結合部が、第1平文m1とビット列s(0)とのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合過程と、
を有することを特徴とする暗号通信方法。 - 請求項1に記載の暗号通信方法であって、
上記第2ビット結合過程で生成される上記ビット結合値yは、
ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値であり、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値であり、
上記第2ビット分割過程は、
ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出する過程であり、
少なくとも上記第3ビット結合過程は、
上記第2ビット分割過程で抽出された付加情報bが上記所定値を示す場合にのみ実行される過程であり、
上記第2ビット分割過程で抽出された付加情報bが上記所定値以外の値を示す場合に、復号装置の偽装復号結果生成部が、n‐zビットの乱数を生成し、当該乱数を復号結果として出力する偽装復号結果生成過程をさらに有する、
ことを特徴とする暗号通信方法。 - 請求項1に記載の暗号通信方法であって、
上記第2ビット結合過程で生成される上記ビット結合値yは、
ラウンド数Rが偶数である場合には、所定値を示す付加情報bとビット列t(R/2)とビット列s(R/2)とを含むビット結合値であり、ラウンド数Rが奇数である場合には、所定値を示す付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを含むビット結合値であり、
上記第2ビット分割過程は、
ビット結合値yをビット分割し、ラウンド数Rが偶数である場合には、少なくとも付加情報bとビット列t(R/2)とビット列s(R/2)を抽出し、ラウンド数Rが奇数である場合には、少なくとも付加情報bとビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを抽出する過程であり、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも一部のiに対応する、上記ハッシュ値h(2・i+1)及び/又は上記ハッシュ値h(2・i+2)は、
上記付加情報bとビット列t(i)とを含むビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値h(2・i+1)及び/又は上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値h(2・i+2)である、
ことを特徴とする暗号通信方法。 - 請求項3に記載の暗号通信方法であって、
ラウンド数Rが偶数である場合には、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも何れかのi≧1に対応する上記ハッシュ値h(2・i+1)が、上記付加情報bとビット列t(i)とを含むビット結合値にハッシュ関数H(2・i+1)を作用させたハッシュ値であるか、或いは、少なくとも何れかのi≦(R/2)‐2に対応する上記ハッシュ値h(2・i+2)が、上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値であり、
ラウンド数Rが奇数である場合には、
上記撹乱過程及び撹乱復元過程でそれぞれ算出される、少なくとも何れかのiに対応する上記ハッシュ値h(2・i+2)が、上記付加情報bとビット列s(i+1)とを含むビット結合値にハッシュ関数H(2・i+2)を作用させたハッシュ値である、
ことを特徴とする暗号通信方法。 - 請求項2から4の何れかに記載の暗号通信方法であって、
上記落とし戸付き一方向性置換関数fは、0以上N未満(Nは自然数)の値を入力とする関数であり、
nは、Nのビット長を|N|とし、付加情報bのビット長を|b|とした場合にn=|N|‐|b|を満たし、
上記付加情報bは、0を示すビット又はビット列であり、
上記第2ビット結合過程で生成される上記ビット結合値yは、付加情報bが先頭にビット結合された値である、
ことを特徴とする暗号通信方法。 - 請求項1から5の何れかに記載の暗号通信方法であって、
z=kであり、v=3kである、
ことを特徴とする暗号通信方法。 - n‐zビット(n>z≧k,kはセキュリティパラメータ)の平文mと、zビットの乱数rとが格納された記憶部と、
上記記憶部から平文mを読み込み、当該平文mを、v‐zビット(n>v-z≧2k)の第1平文m1と、n‐vビットの第2平文m2とにビット分割し、当該第1平文m1と、第2平文m2であるビット列s(0)と、を上記暗号化装置の記憶部に格納する第1ビット分割部と、
上記記憶部から乱数rと第1平文m1とを読み込み、これらのビット結合値を生成し、当該ビット結合値をビット列t(0)として上記記憶部に格納する第1ビット結合部と、
上記記憶部からビット列t(i)を読み込み、当該ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出し、当該ハッシュ値h(2・i+1)を上記記憶部に格納する第1ハッシュ関数演算部と、
上記記憶部からビット列s(i)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列s(i+1)として上記記憶部に格納する第1排他的論理和演算部と、
上記記憶部からビット列s(i+1)を読み込み、当該ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出し、当該ハッシュ値h(2・i+2)を上記記憶部に格納する第2ハッシュ関数演算部と、
上記記憶部からビット列t(i)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列t(i+1)として上記記憶部に格納する第2排他的論理和演算部と、
ラウンド数R(Rは4以上の整数)が偶数である場合には、i=0からi=(R/2)‐1まで順番(iは整数)に、上記第1ハッシュ関数演算部と上記第1排他的論理和演算部と上記第2ハッシュ関数演算部と上記第2排他的論理和演算部の処理を実行させ、ラウンド数Rが奇数である場合には、i=0からi={(R‐1)/2}‐1まで順番に、上記第1ハッシュ関数演算部と上記第1排他的論理和演算部と上記第2ハッシュ関数演算部と上記第2排他的論理和演算部の処理を実行させ、さらに、i=(R‐1)/2について上記第1ハッシュ関数演算部と上記第1排他的論理和演算部の処理を実行させる制御部と、
ラウンド数Rが偶数である場合には、上記記憶部からビット列t(R/2)とビット列s(R/2)とを読み込み、それらを含むビット結合値yを生成し、当該ビット結合値yを上記記憶部に格納し、ラウンド数Rが奇数である場合には、上記記憶部からビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを読み込み、それらを含むビット結合値yを生成し、当該ビット結合値yを上記記憶部に格納する第2ビット結合部と、
上記記憶部からビット結合値yを読み込み、当該ビット結合値yに対して落とし戸付き一方向性置換関数fを作用させた暗号文u=f(y)を算出し、当該暗号文uを上記記憶部に格納する一方向性置換関数演算部と、
上記記憶部から読み込まれた暗号文uを復号装置に送信する送信部と、
を有することと特徴とする暗号化装置。 - 請求項7に記載の暗号化装置から送信された暗号文uを格納する記憶部と、
上記記憶部から暗号文uを読み込み、当該暗号文uに対して落とし戸付き一方向性置換関数fの逆関数f−1を作用させ、ビット結合値y=f−1(u)を抽出し、当該ビット結合値yを上記記憶部に格納する逆関数演算部と、
上記記憶部からビット結合値yを読み込み、当該ビット結合値yをビット分割し、ラウンド数Rが偶数である場合にはビット列t(R/2)とビット列s(R/2)とを少なくとも抽出し、ラウンド数Rが奇数である場合にはビット列t((R‐1)/2)とビット列s(((R‐1)/2)+1)とを少なくとも抽出し、それらを上記記憶部に格納する第2ビット分割部と、
上記記憶部からビット列s(i+1)を読み込み、当該ビット列s(i+1)を含む値にハッシュ関数H(2・i+2)を作用させてvビットのハッシュ値h(2・i+2)を算出し、当該ハッシュ値h(2・i+2)を上記記憶部に格納する第3ハッシュ関数演算部と、
上記記憶部からビット列t(i+1)とハッシュ値h(2・i+2)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列t(i)として上記記憶部に格納する第3排他的論理和演算部と、
上記記憶部からビット列t(i)を読み込み、当該ビット列t(i)を含む値にハッシュ関数H(2・i+1)を作用させてn‐vビットのハッシュ値h(2・i+1)を算出し、当該ハッシュ値h(2・i+1)を上記記憶部に格納する第4ハッシュ関数演算部と、
上記記憶部からビット列s(i+1)とハッシュ値h(2・i+1)とを読み込み、これらの排他的論理和演算を行い、その演算結果をビット列s(i)として上記記憶部に格納する第4排他的論理和演算部と、
ラウンド数R(Rは4以上の整数)が偶数である場合には、i=(R/2)‐1からi=0まで順番に、上記第3ハッシュ関数演算部と上記第3排他的論理和演算部と上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させ、ラウンド数Rが奇数である場合には、i=(R‐1)/2について、上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させ、さらに、i={(R‐1)/2}‐1からi=0まで順番に、上記第3ハッシュ関数演算部と上記第3排他的論理和演算部と上記第4ハッシュ関数演算部と上記第4排他的論理和演算部の処理を実行させる制御部と、
上記記憶部からビット列t(0)を読み込み、当該ビット列t(0)をビット分割し、zビットの乱数rと、v‐zビットの第1平文m1とを抽出し、当該乱数rと第1平文m1とを上記記憶部に格納する第3ビット分割部と、
上記記憶部から、第1平文m1とビット列s(0)とを読み込み、これらのビット結合値を生成し、当該ビット結合値を復号結果として出力する第3ビット結合部と、
を有することを特徴とする復号装置。 - 請求項7に記載の暗号化装置としてコンピュータを機能させるためのプログラム。
- 請求項8に記載の暗号化装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007305933A JP5032955B2 (ja) | 2007-11-27 | 2007-11-27 | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007305933A JP5032955B2 (ja) | 2007-11-27 | 2007-11-27 | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009128774A JP2009128774A (ja) | 2009-06-11 |
JP5032955B2 true JP5032955B2 (ja) | 2012-09-26 |
Family
ID=40819732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007305933A Active JP5032955B2 (ja) | 2007-11-27 | 2007-11-27 | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5032955B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016119625A1 (zh) * | 2015-01-30 | 2016-08-04 | 南京法威克信息科技有限公司 | 乱码本有限单向变换及其加解密应用的方法、装置和电路 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114419719B (zh) * | 2022-03-29 | 2022-08-12 | 北京爱笔科技有限公司 | 一种生物特征的处理方法及装置 |
-
2007
- 2007-11-27 JP JP2007305933A patent/JP5032955B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016119625A1 (zh) * | 2015-01-30 | 2016-08-04 | 南京法威克信息科技有限公司 | 乱码本有限单向变换及其加解密应用的方法、装置和电路 |
Also Published As
Publication number | Publication date |
---|---|
JP2009128774A (ja) | 2009-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4555859B2 (ja) | 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
US20070206789A1 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
US20210135851A1 (en) | Encryption processing system and encryption processing method | |
JP2010049213A (ja) | 暗号化装置、復号装置、暗号通信システム、方法及びプログラム | |
JP2007114494A (ja) | 秘匿計算方法及び装置 | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP5038866B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP5032955B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
CN1985458B (zh) | 增强的自然蒙哥马利指数掩蔽和恢复的方法和装置 | |
JP2011040932A (ja) | 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体 | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP4922139B2 (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
JP5102536B2 (ja) | ストリーム暗号の暗号化装置、復号化装置、暗号化方法、復号化方法およびプログラム | |
US11522675B2 (en) | Apparatus and method for encryption and decryption based on tweak converter to which key table is applied | |
JP2013207387A (ja) | プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置 | |
JP5448801B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、プログラム、記録媒体 | |
JP5210712B2 (ja) | 圧縮rsa係数の計算方法 | |
JP2005084568A (ja) | セキュリティ方法、セキュリティ装置及びセキュリティプログラム | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
JP4676873B2 (ja) | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム | |
Vats et al. | LockNKey: Improvised Cloud Storage System using Threshold Cryptography Approach | |
JP4664514B2 (ja) | 素数生成装置及びプログラム | |
JP4802228B2 (ja) | 鍵生成装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100114 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110812 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120619 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5032955 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |