JP4087719B2 - 署名暗号方法、その装置およびそのプログラム - Google Patents
署名暗号方法、その装置およびそのプログラム Download PDFInfo
- Publication number
- JP4087719B2 JP4087719B2 JP2003014040A JP2003014040A JP4087719B2 JP 4087719 B2 JP4087719 B2 JP 4087719B2 JP 2003014040 A JP2003014040 A JP 2003014040A JP 2003014040 A JP2003014040 A JP 2003014040A JP 4087719 B2 JP4087719 B2 JP 4087719B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- random number
- signature
- value
- message
- 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.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
この発明はメッセージの内容を漏らすことなくさらに送信者が送ったことを確認できる署名暗号方法とその装置及びそれを実行させるプログラムに関する。
【0002】
【従来の技術】
署名暗号(signcryption)はメッセージ(一般のデータなども含む)mをデジタル署名してSig(m)=σを生成し、その署名σとメッセージを暗号化してE(σ,m)を生成する、あるいはメッセージmを暗号化してc=E(m)を生成し、その暗号文cをデジタル署名してσ=Sig(c)を生成してもよい。
従来の署名暗号としては例えば非特許文献1に示されている。ここでこの発明で利用する技術について少し述べる。
一方向性関数fとはxよりy=f(x)を計算することは容易であるが、逆にyからxを求めることは困難な関数である。一方向性置換fとは、関数fの定義域と値域が一致した1対1であり、一方向性関数であることもある。しかし落し戸付き(トラップドア:trap-door)一方向性置換は落し戸情報tkがあればその逆関数を演算することができるものである。またトラップドアハッシュ関数とは定義域D1 と定義域D2の要素を入力として値域D3の要素を出力とする関数で、それをHと書き、 m,m′をD1の要素、r,r′をD2の要素と書くとすると、H(m,r)=H(m′,r′)となる、異なる組(m,r),(m′,r′)を見つけることが困難なものである。しかしトラップドア情報TKがあれば例えば(r′,m′)とmを入力としてrを、つまりH(m,r)=H(m′,r′)となるrを見つけることができる。このrを演算する機能をトラップドアハッシュ関数Hのデータ変換機能SWという。トラップドアハッシュ関数については例えば非特許文献2に記載されている。
【0003】
【非特許文献1】
Y.Zheng,“Digital Signcryption or How to Achieve Cost(Signature & Encryption)≪Cost(Signature)+Cost(Encryption)”in Crypto'97,LNCS Vol. 1294)
【非特許文献2】
A.Shamir and Y.Tauman,“Improved Online/Offline Signature Schemes,”Crypto'01,pp.355-367,LNCS 2139)
【0004】
【発明が解決しようとする課題】
従来の署名暗号においては、例えば公開鍵暗号とデジタル署名を用いているが、その公開鍵暗号として例えばRSA暗号を使用すると安全性が問題となる。一方、安全性が問題とならない公開鍵暗号を使用すると一般に計算量が多くなる。
そこでこの発明の一つの目的は簡単な処理で署名暗号を可能とすることである。
【0005】
また従来の署名暗号はメッセージが存在していて初めてそれに対して署名暗号を行うことができ、その処理の一部、特に重い処理、つまり署名暗号処理中のかなりな部分を事前に計算しておくことができなかった。署名暗号において重い処理を事前に計算しておくことができれば、予めその事前計算を行っておくことにより、例えばネットワークのトラフィック輻輳していない時に事前計算した残りの処理を行って署名暗号文を伝送することができる。あるいはパーソナルコンピュータ等の機器を用いて認証などを行う際に、その機器がアイドリング状態にあるときに事前計算を行わせておけば、機器を効率的に使うことができる。またはICカード内で複数のメッセージに対する各事前計算をそれぞれ予め計算しておき、必要に応じてその都度取り出して使用する。これらのように事前計算ができればすこぶる便利である。
そこでこの発明の第二の目的は安全性が高く、かつ重い処理を事前に計算しておくことができる署名暗号を提供することにある。
【0006】
【課題を解決するための手段】
この発明によれば送信者の装置(以下、送信者装置と記す)は乱数Rを生成して乱数Rについてハッシュ関数Gを演算して共通鍵K=G(R)を生成し、またRについて落し戸付き一方向性置換fを演算し、演算結果c1を求め、また乱数rを生成してこれとメッセージmについてトラップドアハッシュ関数Hを計算してh=H(m,r)を求め、更にこのhとc1をデジタル署名演算してσ=Sig(c1,h)を生成する。またメッセージmおよび乱数rの連結を共通鍵Kで暗号化し、暗号文c2=E(m‖r)を生成し、(c1,c2,h,σ)を受信者の装置(以下、受信者装置と記す)に送信する。乱数Rは一方向性置換関数の定義域の値であり、乱数rはトラップドアハッシュ関数の一方の入力の定義域の値である。
【0007】
受信者装置は署名暗号(c1,c2,h,σ)を受信するとc1,h,σを用いて署名σが(c1,h)に対する正しい署名であるかを検証し、その検証に合格すると落し戸付き一方向性関数fの落し戸情報tkを用いてc1について逆関数f-1を計算し、計算結果R=f-1(c1)を得る。その計算結果Rについてハッシュ関数演算Gを施し、共通鍵K=G(R)を生成する。その共通鍵Kを用いて受信したc2を復号してm‖rを求める。このmとrについてトラップドアハッシュ関数Hを演算しh′=H(m,r)を生成し、このh′と受信したhとが等しいかを調べ、等しければ正しく処理されたものとしてメッセージmを出力する。
【0008】
ここで一方向性置換は基本的な演算で処理が簡単であり、また署名の検証とトラップドアハッシュ関数値h′と受信したhとが一致するかを検証し、この二つの検証に合格して初めて正しく処理されたものとしているから、処理が簡単でかつ安全性が高いものとなる。
また送信側でまずrの代わりにr′を用い、かつメッセージmの代わりに乱数m′を用いてトラップドアハッシュ関数値h=H(m′,r′)を求め、共通鍵の生成K、一方向性置換値c1、署名σを先と同様に求め、c1,σを受信者装置に送信する。
【0009】
受信者装置では前述と同様に署名σがc1,hに対する署名であることを検証しc1について逆関数値R=f-1(c1)を求めて更に共通鍵Kを求める。送信者装置においてメッセージを処理できる状態になるとそのメッセージmと前記乱数(m′,r′)とトラップドアハッシュ関数Hのトラップドア情報TKとを入力としてトラップドアハッシュ関数のデータ変換機能によりrを求め、つまりH(m′,r′)=H(m,r)となるrを求め、先と同様に暗号文c2=E(m‖r)を求めてc2を送信する。受信者装置はc2を受信すると先に求めた共通鍵Kで復号してm‖rを求め、更にトラップドアハッシュ関数値を求めて同様の処理を行う。
【0010】
このようにメッセージを送る状態になる前に事前処理を行いその後メッセージに対する処理は簡単な処理で済ますことができる。送信者装置におけるこの事前処理の結果は受信者装置に予め送っておいてもよく、メッセージに対する処理と共に送ってもよい。
【0011】
【発明の実施の形態】
実施形態1
図1および図2に実施形態1の流れ図を、図3および図4に機能構成をそれぞれ示す。
図3に示す送信者装置は例えばパーソナルコンピュータにより構成され、その乱数生成部11で乱数Rを生成し(S1)(図1参照)、この乱数Rについて共通鍵生成部12でハッシュ関数演算Gを施し、共通鍵K=G(R)を生成し、また落し戸付き一方向性置換部13で乱数Rについて一方向性置換fを施し、c1=f(R)を求める(S2)。
【0012】
また乱数生成部11から乱数rを生成し(S3)、キーボード、データベースに対するインターフェース等の入力部14より入力されたメッセージmと乱数rについてトラップドアハッシュ関数部15で、トラップドアハッシュ関数を演算し、ハッシュ値h=H(m,r)を求める(S4)。先の一方向性置換値c1とハッシュ関数値hについて、例えば記憶部16より取り出した署名鍵SKを用いて署名部17でデジタル署名を施し、署名σ=Sig(c1,h)を生成する(S5)。
メッセージmと乱数rの連結を共通鍵Kを用いて暗号部18で暗号化して暗号文c2=E(m‖r)を生成する(S6)。送信部19により一方向性置換値c1、暗号文c2、ハッシュ値h、署名σを受信者装置に送信する(S7)。
【0013】
制御部21は送信者装置の各部を順次動作させるものであり、例えばコンピュータの中央処理装置(CPU)である。図1においてステップS1およびS2とステップS3及びS4との順を入れ替えてもよい。メッセージmがこの送信者装置に入力されるとステップS1が処理を開始してもよく予め入力され、記憶部に格納されているメッセージmを用いてもよい。メッセージmは装置内部で演算処理などにより生成されたものでもよい。
【0014】
図2と図4を参照して受信者装置の処理を説明する。
受信者装置は例えばパーソナルコンピュータで構成され、受信部31で署名暗号(c1,c2,h,σ)を受信すると(S1)、検証部32で署名σが(c1,h)に対する正しい署名であることをこの例では記憶部33で取り出した検証鍵PKを用いて検証する(S2)。例えばσに対して検証演算を行い、その結果が(c1,h)と等しいかを調べる。その検証に合格すると受信したc1について逆関数部34で記憶部33で取り出した落し戸情報tkを用いて落し戸付き情報置換fの逆関数演算を行い、その結果、乱数R=f-1(c1)を得る(S3)。その逆関数値について共通鍵生成部35でハッシュ関数Gを演算して共通鍵Kを生成する(S4)。
【0015】
受信した暗号文c2を復号部36で共通鍵Kを用いて復号し、メッセージmと乱数rの連結m‖rを得る(S5)。そのメッセージmと乱数rについてトラップドアハッシュ関数部37でトラップドアハッシュ関数Hを演算し、ハッシュ値h′とする(S6)。そのハッシュ値h′と受信したハッシュ値hとを比較部38で比較し(S7)、一致すれば出力部39に指示して出力部39は復号部36で得られたメッセージmを出力する(S8)。ステップS2の検証が不合格の場合、またステップS7の比較が不一致であれば、例えばそのことを受信者装置に通知する(S9)。
受信者装置の制御部41は各部を順次動作させるもので例えばコンピュータの中央処理装置(CPU)である。
【0016】
実施形態2
実施形態2は事前計算として重い処理を予め行っておくことができるようにしたものである。図5と図7を参照して送信者装置の処理及び機能構成を説明する。
機能構成は図7に図3と対応する部分に同一番号を付して示してあり、図3の構成に対してトラップドアハッシュ関数Hのデータ変換を行うデータ変換部22を設けた点が異なるだけである。処理としては図5に図1と対応する過程に同一ステップ番号又はこれにダッシュ「′」をつけて示し、変更された部分について簡単に説明する。
【0017】
まずステップS1,S2としては図1と同一の処理を行い、次にステップS3′で乱数生成部11より乱数m′,r′を生成し、ステップS4′でトラップドアハッシュ関数演算をm′,r′について関数部15において行い、ステップS5′で関数値h=H(m′,r′)と置換値c1について署名σを署名部17において行い、ステップS7′で事前計算値として(c1,h,σ)を送信部19より受信者装置へ送信する。以上が送信者装置における事前処理である。
【0018】
例えばネットワークのトラフィックの輻輳状態がとけた時やデータベースより長いデータの取込みが終了した時やキーボード等からメッセージが入力された時などのメッセージmを送る状態になると(S10)、乱数m′,r′とメッセージmと記憶部16から取出したトラップドアハッシュ関数Hのトラップドア情報TKをデータ変換部22に入力してトラップドアハッシュ関数Hのデータ変換SWを演算し、その結果としてハッシュ値h=H(m,r)を満たす変換乱数r=SW((m′,r′),m)を得る(S11)。なお、このデータ変換SWは前記非特許文献2を見ればこの分野の人であれば容易に計算することができる。
【0019】
次にこの変換乱数rとメッセージmの連結に対して暗号部18で共通鍵Kを用いて暗号化して(S6)、その暗号文c2を受信者装置へ送信する(S12)。
受信者装置の機能構成は図4に示す実施形態1のそれと同一であり、その処理は図6に図2と対応する過程に同一ステップ番号又はこれにダッシュ「′」をつけて示し、変更された部分について簡単に説明する。
ステップS1′では事前処理値(c1,h,σ)を受信し、次のステップS2乃至S4は実施形態1と同一であり、このステップS4が終わるまでが受信者装置の事前処理である。
【0020】
次にステップS10で受信部31に暗号文c2が受信されると、そのステップS5でその暗号文c2を共通鍵Kを用いて復号部36で復号してその後ステップS6乃至S9の処理を行うことは実施形態1と同様である。
上述において一方向性置換fとしてはRSA関数、Rabin関数等を用い、ハッシュ関数としてはSHA−1,MD5等を用いる。
署名方法としてはSchnorr署名、RSA署名、ESIGN署名等を用い、共通鍵暗号方法としてはDES,T−DES,AES等を用い、トラップドアハッシュ関数としては前記非特許文献2に示すもの等を用いることができる。
【0021】
図3、図4及び図7にそれぞれ示す装置はコンピュータにより機能させてもよい。その場合はコンピュータに対応する装置のプログラムをCD−ROMや磁気ディスク等の記録媒体から又は通信回線を介してコンピュータ内にダウンロードしてコンピュータにそのプログラムを実行させればよい。
【0022】
【発明の効果】
以上述べたように実施形態1で述べた発明によれば一方向性置換という基本的な道具を用いるため処理が簡単でしかも署名検証とトラップドアハッシュ関数値の比較による検証との両検証に合格した時のみこの署名暗号が正しく処理されたものとしているため安全性が高い。
実施形態2の発明では実施形態1の効果を有し、更にメッセージを送る状態になる前に重い処理を事前計算しておくことができ、すこぶる便利である。
【図面の簡単な説明】
【図1】実施形態1の送信者装置の処理の例を示す流れ図。
【図2】実施形態1の受信者装置の処理の例を示す流れ図。
【図3】実施形態1の送信者装置の機能構成例を示す図。
【図4】実施形態1の受信者装置の機能構成例を示す図。
【図5】実施形態2の送信者装置の処理の例を示す流れ図。
【図6】実施形態2の受信者装置の処理の例を示す流れ図。
【図7】実施形態2の送信者装置の機能構成例を示す図。
Claims (9)
- 送信者の装置(以下、送信者装置と記す)の乱数生成部が、乱数Rを生成する過程と、
送信者装置の共通鍵生成部が、乱数Rについてハッシュ関数Gを演算して共通鍵K=G(R)を生成する過程と、
送信者装置の落とし戸付き一方向性置換部が、乱数Rについて落し戸付き一方向性置換fを演算して置換値c1=f(R)を求める過程と、
送信者装置の前記乱数生成部が、乱数rを生成する過程と、
送信者装置のトラップドアハッシュ関数部が、乱数rとメッセージmについてトラップドアハッシュ関数Hを計算してハッシュ値h=H(m,r)を求める過程と、
送信者装置の署名部が、ハッシュ値hと置換値c1についてデジタル署名演算して署名σ=Sig(c1,h)を生成する過程と、
送信者装置の暗号部が、メッセージmおよび乱数rの連結を共通鍵Kで暗号化し、暗号文c2=E(m‖r)を生成する過程と、
送信者装置の送信部が、置換値c1、暗号文c2、ハッシュ値h、署名σを署名暗号(c1,c2,h,σ)として受信者の装置(以下、受信者装置と記す)に送信する過程と、
受信者装置の受信部が、署名暗号(c1,c2,h,σ)を受信する過程と、
受信者装置の検証部が、受信した置換値c1、ハッシュ値h、署名σを用いて署名σが(c1,h)に対する正しい署名であることを検証する過程と、
受信者装置の逆関数部が、受信者装置のその検証に合格すると落し戸付き一方向性関数fの落し戸情報tkを用いて置換値c1について逆関数f-1を計算して乱数R=f-1(c1)を得る過程と、
受信者装置の共通鍵生成部が、その乱数Rについてハッシュ関数演算Gを施し、共通鍵K=G(R)を生成する過程と、
受信者装置の復号部が、その共通鍵Kを用いて受信した暗号文c2を復号してメッセージmと乱数rの連結を求める過程と、
受信者装置のトラップドアハッシュ関数部が、このメッセージmと乱数rについてトラップドアハッシュ関数Hを演算してハッシュ値h′=H(m,r)を求める過程と、
受信者装置の比較部が、このハッシュ値h′と受信したハッシュ値hとが等しいか否かを調べる過程と、
受信者装置の出力部が、両ハッシュ値が等しければ正しく処理された署名暗号としてメッセージmを出力する過程と
を有する署名暗号方法。 - 送信者装置の乱数生成部が、乱数Rを生成する過程と、
送信者装置の共通鍵生成部が、乱数Rについてハッシュ関数Gを演算として共通鍵K=G(R)を生成する過程と、
送信者装置の落とし戸付き一方向性置換部が、乱数Rについて落し戸付き一方向性置換fを計算して置換値c1=f(R)を求める過程と、
送信者装置の前記乱数生成部が、乱数m′およびr′を生成する過程と、
送信者装置のトラップドアハッシュ関数部が、乱数m′,r′についてトラップドアハッシュ関数Hを計算してハッシュ値h=H(m′,r′)を求める過程と、
送信者装置の署名部が、置換値c1とハッシュ値hに対するデジタル署名演算を施して署名σ=Sig(c1,h)を生成する過程と、
送信者装置の送信部が、置換値c1、ハッシュ値h、署名σを事前計算値(c1,h,σ)として受信者装置へ送信する過程と、
送信者装置のデータ変換部が、メッセージmが送信できる状態になると乱数m′およびr′とメッセージmについてトラップドアハッシュ関数Hのトラップドア情報TKを用いてトラップドアハッシュ関数Hのデータ変換SWを計算して変換乱数r=SW((m′,r′),m)を求める過程と、
送信者装置の暗号化部が、メッセージmと変換乱数rの連結を共通鍵Kを用いて暗号化して暗号文c2=E(m‖r)を計算する過程と、
送信者装置の送信部が、暗号文c2を受信者装置へ送信する過程と、
受信者装置の受信部が、受信者装置は事前計算値(c1,h,σ)を受信する過程と、
受信者装置の検証部が、受信した署名σが置換値c1とハッシュ値hに対する正しい署名になっているかを検証する過程と、
受信者装置の逆関数部が、その検証に合格すると落し戸付き一方向性関数fの落し戸情報tkを用いて逆関数f-1を計算して乱数Rを求める過程と、
受信者装置の共通鍵生成部が、乱数Rについてハッシュ関数Gを計算して共通鍵K=G(R)を生成する過程と、
受信者装置の前記受信部が、暗号文c2を受信する過程と、
受信者装置の復号部が、受信した暗号文c2を共通鍵Kで復号してメッセージmと変換乱数rの連結を求める過程と、
受信者装置のトラップドアハッシュ関数部が、そのメッセージmと変換乱数rについてトラップドアハッシュ関数Hを計算してハッシュ値h′=H(m,r)を求める過程と、
受信者装置の比較部が、ハッシュ値h′が受信したハッシュ値hと等しいか否か検証する過程と、
受信者装置の出力部が、両ハッシュ値が等しければメッセージmを正しく署名暗号処理されたと判断してメッセージmを出力する過程と
を有する署名暗号方法。 - メッセージmに対する署名暗号を生成して受信者装置へ送信する送信者装置であって、
署名鍵などが格納される記憶部と、
乱数R,rを生成する乱数生成部と、
メッセージを入力する入力部と、
乱数Rが入力され、ハッシュ関数Gを施して共通鍵K=G(R)を生成する共通鍵生成部と、
乱数Rが入力され、落し戸付き一方向性置換fを計算して置換値c1=f(R)を求める一方向性置換部と、
乱数rとメッセージmが入力され、トラップドアハッシュ関数Hを計算してハッシュ値h=H(m,r)を求めるトラップドアハッシュ演算部と、
置換値c1とハッシュ値hが入力され、署名鍵を用いた署名演算を行って署名σ=Sig(c1,h)を生成する署名部と、
メッセージmと乱数rが入力され、共通鍵Kにより暗号化して暗号文c2=E(m‖r)を生成する暗号部と、
置換値c1、暗号文c2、ハッシュ値h、署名σを署名暗号文(c1,c2,h,σ)として受信者装置へ送信する送信部と、
各部と順次動作させる制御部と
を具備する送信者装置。 - 受信した署名暗号を検証復号して正当なメッセージmを出力る受信者装置であって、
検証鍵、落し戸付き一方向性関数fの落し戸情報tkなどが格納される記憶部と、
署名暗号(c1,c2,h,σ)または、事前計算値(c1,h,σ)および暗号文c2を受信する受信部と、
受信した置換値c1、ハッシュ値hおよび署名σが入力され、検証鍵を用いてσが(c1,h)に対する正しい署名になっているかを検証する検証部と、
その検証部からの合格を示す信号で動作し、受信した置換値が入力され、落し戸情報tkを用いて落し戸付き一方向性関数fの逆関数f-1を計算して乱数R=f-1(c1)を求める逆関数部と、
乱数Rが入力され、ハッシュ関数Gを計算して共通鍵K=G(R)を生成する共通鍵生成部と、
受信した暗号文c2が入力され、共通鍵Kで復号を行って、メッセージmと乱数rの連結を求める復号部と、
メッセージmと乱数rが入力され、トラップドアハッシュ関数Hを計算してハッシュ値h′=H(m,r)を求めるトラップドアハッシュ関数部と、
ハッシュ値h′と受信したハッシュ値hが入力され、両ハッシュ値が等しいか否か比較する比較部と、
比較部よりの等しい比較結果により動作し、メッセージmを出力する出力部と、
各部を動作させる制御部と
を具備する受信者装置。 - メッセージmに対する署名暗号を生成して受信者装置へ送信する送信者装置であって、
署名鍵、トラップドアハッシュ関数Hのトラップドア情報TKなどが格納される記憶部と、
メッセージmを入力する入力部と、
乱数R,m′,r′を生成する乱数生成部と、
乱数Rが入力され、ハッシュ関数Gを計算して共通鍵K=G(R)を生成する共通鍵生成部と、
乱数Rが入力され、落し戸付き一方向性置換fを計算して置換値c1=f(R)を生成する置換部と、
乱数m′,r′が入力され、トラップドアハッシュ関数を計算し、ハッシュ値h=H(m′,r′)を求めるトラップドアハッシュ関数部と、
置換値c1、ハッシュ値hが入力され、署名鍵を用いて署名演算して署名σ=Sig(c1,h)を生成する署名部と、
メッセージmと乱数m′およびr′が入力され、トラップドア情報TKを用いてトラップドアハッシュ関数Hのデータ変換SWを計算して乱数r=SW((m′,r′),m)を求めるデータ変換部と、
メッセージmと乱数rが入力され、共通鍵Kにより暗号化して暗号文c2=E(m‖r)を生成する暗号部と、
置換値c1、ハッシュ値hおよび署名σが入力され、事前計算値(c1,h,σ)として、受信者装置へ送信し、暗号文c2が入力され、事前計算値と対応する暗号文c2として受信者装置へ送信する送信部と、
各部を動作させる制御部とを備える送信者装置。 - 乱数生成部が、乱数Rを生成する過程と、
共通鍵生成部が、乱数Rについてハッシュ関数Gを演算して共通鍵K=G(R)を生成する過程と、
落とし戸付き一方向性置換部が、乱数Rについて落し戸付き一方向性置換fを演算して置換値c1=f(R)を求める過程と、
前記乱数生成部が、乱数rを生成する過程と、
トラップドアハッシュ関数部が、乱数rとメッセージmについてトラップドアハッシュ関数Hを計算してハッシュ値h=H(m,r)を求める過程と、
署名部が、ハッシュ値hと置換値c1についてデジタル署名演算して署名σ=Sig(c1,h)を生成する過程と、
暗号部が、メッセージmおよび乱数rの連結を共通鍵Kで暗号化し、暗号文c2=E(m‖r)を生成する過程と、
送信部が、置換値c1、暗号文c2、ハッシュ値h、署名σを署名暗号(c1,c2,h,σ)として受信者の装置に送信する過程と
をコンピュータに実行させるための署名暗号プログラム。 - 受信部が、署名暗号(c1,c2,h,σ)を受信する過程と、
検証部が、受信した置換値c1、ハッシュ値h、署名σを用いて署名σが(c1,h)に対する正しい署名であることを検証する過程と、
逆関数部が、その検証に合格すると落し戸付き一方向性関数fの落し戸情報tkを用いて置換値c1について逆関数f-1を計算して乱数R=f-1(c1)を得る過程と、
共通鍵生成部が、その乱数Rについてハッシュ関数演算Gを施し、共通鍵K=G(R)を生成する過程と、
復号部が、その共通鍵Kを用いて受信した暗号文c2を復号してメッセージmと乱数rの連結を求める過程と、
トラップドアハッシュ関数部が、このメッセージmと乱数rについてトラップドアハッシュ関数Hを演算してハッシュ値h′=H(m,r)を求める過程と、
比較部が、このハッシュ値h′と受信したハッシュ値hとが等しいか否かを調べる過程と、
出力部が、両ハッシュ値が等しければ正しく処理された署名暗号としてメッセージmを出力する過程と
をコンピュータに実行させるための署名暗号検証復号プログラム。 - 乱数生成部が、乱数Rを生成する過程と、
共通鍵生成部が、乱数Rについてハッシュ関数Gを演算として共通鍵K=G(R)を生成する過程と、
落とし戸付き一方向性置換部が、乱数Rについて落し戸付き一方向性置換fを計算して置換値c1=f(R)を求める過程と、
前記乱数生成部が、乱数m′およびr′を生成する過程と、
トラップドアハッシュ関数部が、乱数m′,r′についてトラップドアハッシュ関数Hを計算してハッシュ値h=H(m′,r′)を求める過程と、
署名部が、置換値c1とハッシュ値hに対するデジタル署名演算を施して署名σ=Sig(c1,h)を生成する過程と、
送信部が、置換値c1、ハッシュ値h、署名σを事前計算値(c1,h,σ)として受信者装置へ送信する過程と、
データ変換部が、メッセージmが送信できる状態になると乱数m′およびr′とメッセージmについてトラップドアハッシュ関数Hのトラップドア情報TKを用いてトラップドアハッシュ関数Hのデータ変換SWを計算して変換乱数r=SW((m′,r′),m)を求める過程と、
暗号化部が、メッセージmと変換乱数rの連結を共通鍵Kを用いて暗号化して暗号文c2=E(m‖r)を計算する過程と、
送信部が、暗号文c2を受信者装置へ送信する過程と
をコンピュータに実行させるための署名暗号プログラム。 - 受信部が、事前計算値(c1,h,σ)を受信する過程と、
検証部が、受信した署名σが置換値c1とハッシュ値hに対する正しい署名になっているかを検証する過程と、
逆関数部が、その検証に合格すると落し戸付き一方向値関数fの落し戸情報tkを用いて逆関数f-1を計算して乱数Rを求める過程と、
共通鍵生成部が、乱数Rについてハッシュ関数Gを計算して共通鍵K=G(R)を生成する過程と、
前記受信部が、暗号文c2を受信する過程と、
復号部が、受信した暗号文c2を共通鍵Kで復号してメッセージmと変換乱数rの連結を求める過程と、
トラップドアハッシュ関数部が、そのメッセージmと変換乱数rについてトラップドアハッシュ関数Hを計算してハッシュ値h′=H(m,r)を求める過程と、
比較部が、ハッシュ値h′が受信したハッシュ値hと等しいか否か検証する過程と、
出力部が、両ハッシュ値が等しければメッセージmを正しく署名暗号処理されたと判断してメッセージmを出力する過程と
をコンピュータに実行させるための署名暗号検証復号プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003014040A JP4087719B2 (ja) | 2003-01-22 | 2003-01-22 | 署名暗号方法、その装置およびそのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003014040A JP4087719B2 (ja) | 2003-01-22 | 2003-01-22 | 署名暗号方法、その装置およびそのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004228916A JP2004228916A (ja) | 2004-08-12 |
JP4087719B2 true JP4087719B2 (ja) | 2008-05-21 |
Family
ID=32902198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003014040A Expired - Lifetime JP4087719B2 (ja) | 2003-01-22 | 2003-01-22 | 署名暗号方法、その装置およびそのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4087719B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4537895B2 (ja) * | 2005-06-20 | 2010-09-08 | 日本電信電話株式会社 | 秘密情報更新方法 |
JP4489026B2 (ja) * | 2006-01-12 | 2010-06-23 | シャープ株式会社 | 携帯型電子装置 |
JP4489027B2 (ja) * | 2006-01-12 | 2010-06-23 | シャープ株式会社 | 携帯型端末装置の機能制限システム |
US7774607B2 (en) | 2006-12-18 | 2010-08-10 | Microsoft Corporation | Fast RSA signature verification |
JP5393594B2 (ja) * | 2010-05-31 | 2014-01-22 | 株式会社日立製作所 | 効率的相互認証方法,プログラム,及び装置 |
KR101472312B1 (ko) * | 2012-08-31 | 2014-12-24 | 고려대학교 산학협력단 | Id 기반 사인크립션 암호화 메시지의 안전성을 유지하는 시스템 및 방법 |
JP6216688B2 (ja) * | 2014-06-12 | 2017-10-18 | 日本電信電話株式会社 | 部分使い捨て署名システム及び方法、署名装置、検証装置並びにプログラム |
CN111262709B (zh) * | 2020-01-17 | 2022-05-10 | 铜陵学院 | 基于陷门哈希函数的无证书签密系统及方法 |
EP4280536A1 (en) | 2021-01-14 | 2023-11-22 | Fujitsu Limited | Verification system, information processing device, verification method, and verification program |
CN113779645B (zh) * | 2021-11-12 | 2022-02-22 | 南京大学 | 一种量子数字签名和量子数字签密方法 |
-
2003
- 2003-01-22 JP JP2003014040A patent/JP4087719B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004228916A (ja) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9509492B2 (en) | Authentication device, output device, verification device and input device | |
EP3068066B1 (en) | Private computation on encrypted biometric data using homomorphic encryption | |
US9698984B2 (en) | Re-encrypted data verification program, re-encryption apparatus and re-encryption system | |
JP4776906B2 (ja) | 署名生成方法及び情報処理装置 | |
EP2792098B1 (en) | Group encryption methods and devices | |
CN111769938B (zh) | 一种区块链传感器的密钥管理系统、数据验证系统 | |
CN106972924B (zh) | 加密、解密、电子签章、验证签章的方法及装置 | |
JP4087719B2 (ja) | 署名暗号方法、その装置およびそのプログラム | |
CN111786786A (zh) | 云计算环境下支持等式判定的代理重加密方法及系统 | |
WO2014030706A1 (ja) | 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム | |
JP5171787B2 (ja) | サインクリプションシステムおよびサインクリプション生成方法 | |
CN112671725B (zh) | 单向代理重加密方法、装置、电子设备及系统 | |
KR20040009766A (ko) | 암호 시스템에서 송수신 장치 및 방법 | |
CN111565108B (zh) | 签名处理方法、装置及系统 | |
CN116346336B (zh) | 一种基于多层密钥生成中心的密钥分发方法及相关系统 | |
WO2006092909A1 (ja) | シャッフル復号正当性証明装置と方法、シャッフル復号検証装置と方法、プログラムと記録媒体 | |
JP5434925B2 (ja) | 多者分散乗算装置、多者分散乗算システム及び方法 | |
KR101593673B1 (ko) | 래티스 기반의 암호서명 생성 방법 및 장치, 래티스 기반의 암호서명 복원 방법 및 장치 | |
WO2020174515A1 (ja) | 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置 | |
KR101523053B1 (ko) | 래티스 기반 증명가능암호 서명 시스템 및 방법 | |
JP2011150006A (ja) | 暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム | |
JP3694242B2 (ja) | 署名付き暗号通信方法及びその装置 | |
JP2006319485A (ja) | 署名装置、署名暗号化装置、検証装置、復号装置、復元装置、情報提供装置、通信システム、署名方法、署名暗号化方法及び検証方法 | |
WO2010013571A2 (ja) | グループ署名システム及び方法 | |
JP4856933B2 (ja) | 署名装置、検証装置、復号装置、平文復元装置、情報提供装置、署名システム、通信システム、鍵生成装置及び署名方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050121 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080115 |
|
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: 20080212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120229 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130228 Year of fee payment: 5 |