密码学系列之七:数字签名

1. 概述

1.1 基本概念

数字签名(Digital Signature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码。它利用密码技术对该电子文档进行关信息提取并进行认证形成,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。

为了满足在网络环境中身份认证数据完整性不可否认性等需求,数字签名应具有以下特点:

  • 可信性信:签名使文件的接收者相信是签名者在文件上签名的。
  • 不可重用性:签名不可重用,即同一消息在不同时刻的签名是有区别的。
  • 不可改变性:在文件签名后,文件不能改变。
  • 不可伪造性:签名能够证明是签名者而不是其他人在文件上签名,任何人都不能伪造签名。
  • 不可否认性:在签名者否认自己的签名时,签名接收者可以请求可信第三方进行仲裁。

1.2 签名原理

1.2.1 形式化定义

数字签名的形式化定义如下:

(1)系统初始化

系统初始化产生签名方案的基本参数 ( M , s , K , S i g n , V e r ) (M,s,K,Sign,Ver) M _K 署名_ _ _Ver ) _

その中で、MMMはメッセージスペース、SSSは署名空間、KKKは、秘密鍵と公開鍵を含む鍵空間です。署名 署名S i g nは一連の署名アルゴリズム、V er VerVer、署名検証アルゴリズムのコレクションです。

(2) 署名生成プロセス

k = ( k 1 , k 2 ) ∈ K k=(k_1,k_2) \in Kk=( k1k2)εK、ここでk 1 k_1k1は公開鍵、k 2 k_2k2は秘密鍵、署名アルゴリズムsignk 2 : M → S , signk 2 ∈ Sign sign_{k_2}:M \to S, sign_{k_2} \in Signシグン_ _ _k2:MS シグン_ _ _k2εサイン _ _ _

任意のメッセージm ∈ M m \in Mに対してメートルεM、メッセージ署名s = signk 2 ( m ) s = sign_{k_2}(m)s=シグン_ _ _k2( m ) ,s ∈ S s \in SsεS、署名メッセージ グループ( m , s ) (m, s)(メートル,s )署名検証者へ。

(3) 署名検証プロセス

k 1 ∈ K k_1 \in Kの場合k1εK、対応する署名検証アルゴリズムがあります:verk 1 : M × S → { True , F alse } , verk 1 ∈ V er ver_{k_1}: M \times S \to \{True,False\}, ver_{ k_1}\バージョンv e rk1:M×S{ 本当に, _ _ _F a l se } v e rk1εヴァー _

署名検証者は( m , s ) (m,s)を受け取ります(メートル,s )verk 1 ( m , s ) ver_{k_1}(m,s) をv e rk1(メートル,s ) ,若verk 1 ( m , s ) = True ver_{k_1}(m,s)=Truev e rk1(メートル,s )=true場合、署名は有効です。そうでない場合、署名は無効です

verk 1 ( m , s ) = { True , ifs = signk 2 ( m ) , F alseifs ≠ signk 2 ( m ) ver_{k_1}(m,s) = \begin{cases} True, & if \quad s = sign_{k_2}(m), \\ False & \quad s \neq sign_{k_2}(m) \end{cases} の場合v e rk1(メートル,s )={ 確か_ _誤り_ _ _s=シグン_ _ _k2(メートル) ,s=シグン_ _ _k2( m )

すべてのk ∈ K k \in Kに対してkεK、署名関数signk 2 sign_{k_2}シグン_ _ _k2および署名検証関数verk 1 ver_{k_1}v e rk1は簡単に計算できます。

一般に、signk 2 sign_{k_2}シグン_ _ _k2公開されていてもいなくてもよく、署名アルゴリズムでは秘密鍵のセキュリティが必要であり、検証関数verk 1 ver_{k_1}v e rk1公開されており、メッセージmmも必要ですm、セットSSSでssを計算するverk 1 ( m , s ) = True ver_{k_1}(m,s)=True となるようなsv e rk1(メートル,s )=T r u eは非常に難しいです。つまり、メッセージmmm は有効な署名ss無理です。

1.2.2 署名プロセス

写真の説明を追加してください

  • 送信者 A は、ハッシュ アルゴリズムを使用してメッセージ ダイジェスト (Message Digest) を生成します。
  • 送信者 A はメッセージ ダイジェストを独自の秘密鍵で暗号化し、暗号化されたメッセージ ダイジェストはデジタル署名です。
  • 送信者 A がメッセージと署名を受信者 B に送信する
  • メッセージとその名前を受信した後、受信者 B は送信者 A の公開鍵で署名を復号化し、送信者 A によって生成されたメッセージ ダイジェストを取得します。
  • 受信者 B は、送信者 A が使用したハッシュ アルゴリズムを使用して、取得したメッセージのダイジェストを再生成し、2 つのダイジェストを比較します。それらが同じである場合、署名がこのメッセージの送信者 A の有効な署名であることを意味します。それ以外の場合、署名は無効です。

2 RSA ベースの署名方式

2.1 実施プロセス

(1) 初期化: 公開鍵と秘密鍵のペアを生成する

2 つの大きな素数p、qp、qを選択してくださいp , q (漏れない)、計算n = pqn=pqn=pqnnnのオイラー関数φ ( n ) = ( p − 1 ) ( q − 1 ) \varphi(n) = (p-1)(q-1)φ ( n )=( p1 ) ( q1 )

整数e ( 1 < e < φ ( n ) ) e(1<e<\varphi(n)) をランダムに選択しますe ( 1<e<φ ( n ))を公開鍵として、gcd ( e , φ ( n ) ) = 1 gcd(e,\varphi(n))=1 をg c d ( e ,φ ( n ))=1,即 e e eφ ( n ) \varphi(n)φ ( n )相互素数

Euclid の拡張アルゴリズムを使用して秘密鍵を計算します: d ≡ e − 1 mod φ ( n ) d \equiv e^{-1} \bmod \varphi(n)de1モッドφ ( n ),即eeeの逆数

(2) 署名プロセス

署名するメッセージをm ∈ Z nm\in Z_nとするメートルεZn、署名者は安全なハッシュ関数を使用してメッセージダイジェストを生成しますh = H ( m ) h=H(m)時間=H ( m )、署名を計算します:s ≡ hd mod ns \equiv h^d\bmod ns時間dモッド

(3) 検証プロセス

署名受信者はメッセージmmを受信しますmと署名sss、メッセージ ダイジェストを計算するh = H ( m ) h=H(m)時間=H ( m )の場合、式h mod n ≡ se mod nh \bmod n \equiv s^e \bmod n を時間モッドnseモッドn . 確立された場合、署名は有効であり、それ以外の場合、署名は無効です。

2.2 セキュリティ分析

RSA 署名方式には、署名の再利用性の問題もあります。つまり、異なる時点での同じメッセージの署名は同じです。この問題は、署名に乱数を導入することで解決できます。これは、後述のデジタル署名方式に反映されています。

3 離散対数に基づく署名方式

離散対数問題に基づく署名方式は、ElGamal 署名方式、Schnorr 署名方式、DSA 署名方式などのデジタル署名方式でより一般的に使用されます。

3.1 ElGamal署名システム

1985 年、T.ElGamal は、暗号化とデジタル署名の両方に使用できる ElGamal 暗号システムを提案しました。ElGamal デジタル署名方式の修正版は、米国 NIST によってデジタル署名標準 (DSS、デジタル署名標準)として採用されています。ElGamal デジタル署名スキームは非決定論的署名スキームです。つまり、特定のメッセージに対して、選択された異なる乱数によって異なるデジタル署名があり、検証アルゴリズムはそれらのいずれかを有効な署名として使用できます。

3.1.1 実施プロセス

(1) 初期化: 公開鍵と秘密鍵のペアを生成する

大きな素数pp をランダムに選ぶpp − 1 p-1p1 には大きな素因数があり、g ∈ Z p ∗ g \in \boldsymbol Z^{*}_pgεZpはプリミティブ要素 ( Z p Z_pZpppですp要素Z p ∗ Z^{*}_pZpZ p Z_pZpの非ゼロ要素によって形成される乗法群

乱数を選ぶx ∈ RZ p − 1 ∗ x \in _RZ^*_{p-1}バツεRZp 1* *∗ はゼロ要素を削除することを意味し、RRR はランダム選択を意味します)、y ≡ gx mod py \equiv g^x \bmod pygバツモッドp

公開鍵: ( p , g , y ) (p,g,y)( p g

秘密鍵: xxバツ

(2) 署名プロセス

署名するメッセージをmmとするm、署名者は安全なハッシュ関数を使用してメッセージダイジェストを生成しますh = H ( m ) h=H(m)時間=H ( m )、乱数k ∈ RZ p ∗ k \in _RZ^*_{p}kεRZp、計算:

{ r ≡ gk mod ps ≡ ( h − xr ) k − 1 mod ( p − 1 ) \begin{cases} r \equiv g^k \bmod p \\ s \equiv (h-xr)k^{-1 } \bmod (p-1)\end{cases}{ rgkモッドps(時間x r ) k1モッド( p1 )

メッセージへmmmの署名は( r , s ) (r,s)( r s )

(3) 検証プロセス

署名受信者はメッセージmmを受信しますmと署名( r , s ) (r,s)( r s )、メッセージダイジェストを計算h = H ( m ) h=H(m)時間=H ( m )、次に、式yrrs ≡ gh mod py^rr^s \equiv g^h \bmod p をyr rsg時間モッドp確立された場合、署名は有効であり、それ以外の場合、署名は無効です。

3.1.2 セキュリティ分析

乱数kkkの選択と秘密鍵xxの保存xの秘密性もしkkk値が流出すれば、秘密鍵xxは簡単に計算できる×

また、乱数kkk は再利用できません。複数回署名する場合はkkk間に相関関係があってはなりませんxx×

乱数kkkを使用すると、署名方式が再利用できないことも保証されます. 異なる乱数が異なるタイミングで選択されます. 同じメッセージが署名されていても、異なる結果が生成されます. これにより、RSA 署名での署名の再利用の問題が回避されます.

3.2 シュノア署名システム

C.Schnorr は 1989 年に Schnorr 署名システムを提案しました。これは、署名速度が速く、署名の長さが短いという特徴があります。

3.2.1 実施プロセス

(1) 初期化: 公開鍵と秘密鍵のペアを生成する

大きな素数p, qp, q をランダムに選択するp qqqqp − 1 p-1p1の大きな素因数

ジェネレータg ∈ Z p ∗ g \in \boldsymbol Z^{*}_p を選択しますgεZp, gq ≡ 1 に対して p , g ≠ 1 g^q \equiv 1 \bmod p,g \neqgq1モッドp g=1

乱数を選択1 < x < q 1<x<q1<バツ<q,计計算≡ gx mod py \equiv g^x \bmod pygバツモッドp

公開鍵: ( y , g , p , q ) (y,g,p,q)( y g p q )

秘密鍵: xxバツ

(2) 署名プロセス

署名するメッセージをmmとするm、署名者は乱数を選択します1 ≤ k ≤ q − 1 1 \le k \le q-11kq1、計算:

{ r ≡ g k   m o d   p h = H ( m , r ) s ≡ ( x h + k )   m o d   q \begin{cases} r \equiv g^k \bmod p \\ h= H(m,r)\\s \equiv (xh+k) \bmod q\end{cases} rgkmodph=H(m,r)s(xh+k)modq

对消息 m m m的签名为 ( h , s ) (h,s) (h,s),其中 H H H为Hash函数

(3)验证过程

签名接收者收到消息 m m m和签名 ( e , s ) (e,s) (e,s),计算 r 1 ≡ g s y − e   m o d   p r_1 \equiv g^sy^{-e} \bmod p r1gsy−e _モッドp

次に、式h = H ( m , r 1 ) h = H(m,r_1) を確認します。時間=H ( m ,r1確立された場合、署名は有効であり、それ以外の場合、署名は無効です。

3.2.2 セキュリティ分析

ElGamal デジタル署名スキームでは、gggZ p ∗ Z^{*}_pZp生成器、および素数qqを導入することによる Schnorr デジタル署名方式qgggZ p ∗ Z^{*}_pZp q q 次数qの部分群の生成元

署名者の秘密鍵を網羅的に検索するという観点から見ると、生成元の次数がp − 1 p-1であるため、ElGamal 署名の安全性は高くなります。p1 、 Schnorr 署名生成器のqqq . さらに、Schnorr デジタル署名方式のセキュリティは、ElGamal デジタル署名方式のセキュリティと同様です。

3.3 DSA 署名システム

1994 年 12 月、国立標準技術研究所 (NIST、国立標準技術研究所) は、EIGamal および Schnorr デジタル署名スキームに基づいて設計されたデジタル署名標準 (DSS、デジタル署名標準) を正式に公布しました。

DSS は互換性と適用性に優れているため広く使用されており、デジタル署名標準 DSS のアルゴリズムは DSA (Digital Signature Algorithm) と呼ばれることがよくあります。

(1) 初期化: 公開鍵と秘密鍵のペアを生成する

大きな素数pp をランダムに選ぶp (長さ512 5125121024 10241024bit )、qqq (160 160160ビット)、qqqp − 1 p-1p1の大きな素因数p − 1 p-1p1はqqになることができますq割り切れる)。

g ≡ h ( p − 1 ) / q mod pg \equiv h^{(p-1)/q} \bmod p を選ぶg時間( p 1 ) / qモッドp、ここで整数hhh满足1 < h < p − 1 1<h<p-11<時間<p1、およびg > 1 g>1g>1

乱数を選択1 < x < q 1<x<q1<バツ<q,计計算≡ gx mod py \equiv g^x \bmod pygバツモッドp

公開鍵: ( p , q , g , y ) (p,q,g,y)( p _g

秘密鍵: xxバツ

(2) 署名プロセス

署名するメッセージをmmとするm、署名者は乱数kkk、計算:

{ r ≡ gk mod ps ≡ [ H ( m ) + xr ] k − 1 mod q \begin{cases} r \equiv g^k \bmod p \\ s \equiv [H(m)+xr]k^{ -1} \bmod q\end{cases}{ rgkモッドps[ H (メートル)+x r ] k1モッドq

そのうち、HHHは SHA1 アルゴリズムです。

(3) 検証プロセス

署名の受信者はメッセージmmを受け取りますmと署名( r , s ) (r,s)( r s )后,计算:
{ w ≡ s − 1 mod qu 1 ≡ H ( m ) w mod qu 2 ≡ rw mod qv ≡ ( gu 1 yu 2 mod p ) mod q \begin{cases} w \equiv s^{ -1} \bmod q \\ u_1 \equiv H(m)w \bmod q \\u_2 \equiv rw \bmod q \\ v \equiv (g^{u_1}y^{u_2} \bmod p) \bmod q\end{ケース} ws1modqu1H(m)wmodqu2rwmodqv(gu1yu2modp)modq然后,检验等式 v = r v=r v=r。若成立,则签名有效;否则签名无效。

3.4 离散对数签名体制

3.4.1 三种签名体制的对比

如前所述,ElGamal签名方案的提出是3种方案中最早的,也是后两种方案的基础。Schnorr签名方案可以看作ElGamal签名方案的一种变型,它缩短了签名长度。而DSA 签名方案是EGamal签名方案的另一种变型,同时也吸收了Schnorr方案的一些设计思想。

由于采用的签名算法各不相同,三种方案的签名验证等式和过程也不尽相同。根据计算量和签名长度,量对比和分析这3种方案的效率如下。其中,由于模加、模减、求逆运算所用时间远远低于求幂、乘积、Hash求值等运算所需时间,可忽略不计。

签名体制 签名 验证 签名长度
ElGamal T e + T h + 2 T m T_e+T_h+2T_m Te+Th+2Tm 3 T e + T h + T m 3T_e+T_h+T_m 3Te+Th+Tm ∣ p ∣ + ∣ p − 1 ∣ |p|+|p-1| p+p1∣
おねだり T e + T h + T m T_e+T_h+T_mTe+T時間+Tメートル 2 T e + T h + T m 2T_e+T_h+T_m2T _e+T時間+Tメートル ∣ q ∣ + ∣ 2 H ( m ) ∣ |q|+|2H(m)|_+∣2 H ( m )
DSA T e + T h + 2 T m T_e+T_h+2T_mTe+T時間+2T _メートル 2 T e + T h + 3 T m 2T_e+T_h+3T_m2T _e+T時間+3T _メートル 2 ∣ q ∣ 2|q|2∣q∣ _ _

其中, T e T_e Te:べき乗の計算量;T h T_hT時間:ハッシュ計算の計算量;T m T_mTメートル:積演算の計算量。

Schnorr 方式の署名プロセスは、比較的計算量が少なく、速度が速いことがわかります。特に、一部の計算はメッセージとは関係なく、事前に完了することができるため、署名時間を短縮することもできます。Schnorr スキームの検証プロセスは、比較的計算量が少なく、生成される署名値の長さも短くなります ( ∣ q ∣ + ∣ 2 H ( m ) ∣ |q|+|2H(m)|に応じて)。_+∣2 H ( m ) )。したがって、Schnorr は、スマート カードなどの環境でのアプリケーションにより適しています。

他の 2 つのスキームの個々の計算も事前計算できますが、RSA スキームは事前計算できません。

3.4.2 離散対数署名システムの一般形式

ElGamal、Schnorr、および DSA 署名スキームはすべて、有限体に基づく離散対数署名スキームの特殊なケースに帰することができます. 離散対数署名スキームの一般的な形式は次のように要約されます:

(1) 初期化

大きな素数pp をランダムに選ぶpqqqqqqp − 1 p-1p1の大きな素因数p − 1 p-1p1はqqになることができますq割り切れる)

ジェネレータg ∈ Z p ∗ g \in \boldsymbol Z^{*}_p を選択しますgεZp, gq ≡ 1 に対して p , g ≠ 1 g^q \equiv 1 \bmod p,g \neqgq1モッドp g=1

乱数を選択1 < x < q 1<x<q1<バツ<q,计計算≡ gx mod py \equiv g^x \bmod pygバツモッドp

公開鍵: ( p , q , g , y ) (p,q,g,y)( p _g

秘密鍵: xxバツ

(2) 署名プロセス

署名するメッセージをmmとするm、署名者はh = H ( m ) h=H(m)時間=H ( m )HHHは安全なハッシュ関数です

乱数kkを選ぶk,满足1 < k < q 1<k<q1<k<q ,r ≡ gk mod pr \equiv g^k \bmod prgkモッドp

式からak ≡ b + cx ( mod q ) ak \equiv b+cx(\bmod q)b+c × (モッドq ) ssを解くです

メッセージへmmmの署名は( r , s ) (r,s)( r s )

方程式の係数a 、 b 、 ca 、 b 、 ca b cにはさまざまな選択方法がありr ' ≡ r mod q r' \equiv r \bmod qrrモッド _

ここに画像の説明を挿入
(3) 検証プロセス

署名受信者はメッセージmmを受信しますmと署名( r , s ) (r,s)( r s )ra ≡ gbyc mod r^a\equiv g^by^c \bmod をragによって_cモッド、確立された場合、署名は有効であり、それ以外の場合、署名は無効です。

上記の表の最初の行のa 、 b 、 ca,b,cなど_b (符号に関係なく) cの可能な署名と検証の方程式は

署名方程式 式を確認する
r ′ k ≡ ( s + mx ) mod q r'k \equiv (s+mx) \bmod qr _( s+m x )モッドq rr' ≡ gsym mod pr^{r'} \equiv g^sy^m \bmod prrg_メートルモッドp
r ′ k ≡ ( m + sx ) mod q r'k \equiv (m+sx) \bmod qr _(メートル+s x )モッドq rr ≡ gmys mod pr^{r'} \equiv g^my^s \bmod prrgsモッドp
sk ≡ ( r ′ + mx ) mod q sk \equiv (r'+mx) \bmod qSK _( r+m x )モッドq rs ≡ gr ' ym mod pr^s \equiv g^{r'}y^m \bmod prsgr _メートルモッドp
sk ≡ ( m + r ′ x ) mod q sk \equiv (m+r'x) \bmod qSK _(メートル+r" x)モッドq rs ≡ gmyr ' mod pr^s \equiv g^my^{r'} \bmod prsgrモッドp
mk ≡ ( s + r ′ x ) mod q mk \equiv (s+r'x) \bmod qmk( s+r" x)モッドq rm ≡ gsyr ' mod pr^m \equiv g^sy^{r'} \bmod prメートルg_rモッドp
mk ≡ ( r ′ + sx ) mod q mk \equiv (r'+sx) \bmod qmk( r+s x )モッドq rm ≡ gr ' ys mod pr^m \equiv g^{r'}y^s \bmod prメートルgr _sモッドp

リストされている 6 つの異なる署名方式にマイナス記号を加えると、最大24 24になります。24、リストされたa、b、ca、b、ca b cの他の可能な値は120 120120 .

さらに、 rrも定義できます。r は、より DSA に似たスキームを生成します:r ≡ ( gk mod p ) mod qr \equiv (g^k \bmod p) \bmod qr( gkモッドp )モッドq、同じ署名式を使用します。

{ u 1 ≡ a − 1 b mod qu 2 ≡ a − 1 c mod qr ≡ ( gu 1 yu 2 mod p ) mod q \begin{cases} u_1 \equiv a^{-1} b \bmod q \\ u_2 \equiv a^{-1}c \bmod q \\ r \equiv (g^{u_1}y^{u_2} \bmod p) \bmod q\end{cases} あなた1a−1b _ _モッドqあなた2a−1c _ _モッドqr( gあなた1yあなた2モッドp )モッドqこのようなものは、最大13000 13000を生成できますすべてが同じセキュリティを持つ13,000 のバリアントから、簡単に計算された効率的なソリューションを選択できます。

4. 楕円曲線ベースの署名方式

DSA (Elliptic Curve Distal Signature Algorithm) は、デジタル署名における楕円曲線ベースの公開鍵暗号システムの実装です。つまり、DSA アルゴリズムは楕円曲線有限体で実装され、そのセキュリティは楕円曲線ベースの有限群に依存します。 . 離散対数パズル。

RSA ベースのデジタル署名および有限体離散対数ベースのデジタル署名と比較して、同じセキュリティ強度条件下で、ECDSA 方式は署名の長さが短く、ストレージ スペースが小さく、計算速度が速く、計算能力が限られている場合に特に適しています。帯域幅が限られており、高速な実装が必要です (スマートカードのアプリケーションなど)。

5. 特別なデジタル署名

デジタル署名の実際の適用では、特別な場合には特別な要件が課せられることがよくあります。例えば、情報所有者のプライバシーを保護するためにブラインド署名を生成し、署名権の安全な譲渡を実現するために代理署名を生成し、同じメッセージに複数の署名を実現するために複数の署名を生成します。生成されます。

5.1 プロキシ署名

代理署名とは、元の署名者が自分の署名権を代理人に委任し、代理人が元の署名者に代わって署名権を行使することを意味します。検証者がプロキシ署名を検証するとき、検証者は署名の有効性を検証できるだけでなく、署名が元の署名者によって承認されていることを確認できます。

(1) 代理署名分類

元の署名者から代理署名者への承認形式に従って、代理署名は次のように分割できます。

  • 完全に委任されたプロキシ署名
  • 部分的に承認されたプロキシ署名 (非保護プロキシのプロキシ署名、保護プロキシのプロキシ署名)
  • 委任状による委任状の署名

完全に委託されたプロキシ署名とは、元の署名者が秘密鍵 (または秘密鍵を含む物理デバイス) をプロキシ署名者に秘密裏に渡すことを意味し、プロキシ署名者はこのキーを使用してさまざまなメッセージに署名できます。代理署名者によって生成された代理署名は、元の署名者によって生成された署名と同じです。

部分的に承認されたプロキシ署名とは、元の署名者が自分の秘密鍵を使用して新しいプロキシ秘密鍵を計算し、それをセキュリティで保護されたチャネルを介してプロキシ署名者に送信することを意味します. プロキシ署名者は、このプロキシ秘密鍵を使用してメッセージに署名し、プロキシ署名を生成できます. 生成されたプロキシ署名は、元の署名者が自分の秘密鍵を使用して生成した署名とは異なり、検証者は元の署名者の署名とプロキシの署名を区別できます。

委任状による代理署名とは、元の署名者が代理署名者に発行した委任状を指します. この委任状は、元の署名者の秘密鍵で署名されています. 代理署名者が代理で行動できることを含むことに加えて署名力、プロキシ期間、署名できるメッセージの種類などの特別な情報も含まれます。プロキシ署名者は承認レターを取得した後、自分の秘密鍵を使用してプロキシ秘密キーを生成し、プロキシ秘密キーを使用して署名付きメッセージに署名し、署名に承認レターを含めます。検証者は、プロキシを検証するときに最初にチェックします。署名 代理店の承認が有効かどうかを判断するための委任状。チェックに合格すると、プロキシ署名自体の有効性がさらに検証されます。検証に合格した場合、それは有効なプロキシ署名です。それ以外の場合、プロキシ署名は無効です。

(2) 代理署名方式

1997 年、S.Kim.S.Park と D.Won は、KPW スキームと呼ばれる委任状による代理署名スキームを提案しました。主なアイデアは、代理署名者が自分の秘密鍵と元の署名者によって署名された委任状を使用して、代理署名を生成するための代理秘密鍵を生成することです。ここで、委任状は mw m_w ですメートルw原署名者ID、代理署名者ID、代理権の有効期間、代理署名情報の範囲などを記載したファイルを指す。

離散対数ベースの代理署名方式には、KPW 代理署名方式に加えて、1996 年に M.Mambo、K.Usuda、E.Okamoto によって提案された MUO 代理署名方式、および Petersen と Horster によって提案された PH 代理署名方式が含まれます。 1997. . 離散対数に基づくプロキシ署名のアイデアを楕円曲線暗号システムに移植すると、楕円曲線に基づくさまざまなプロキシ署名スキームを進化させることができます。

5.2 ブラインド署名

ブラインド署名は、1982 年に D.Chaum によって最初に提案された特別なプロパティを持つデジタル署名です。この署名では、署名者が署名済みファイルの内容を知らなくてもメッセージに署名できる必要があります。
署名者が署名されたメッセージとその署名を後で見たとしても、署名者は署名がいつ誰のために生成されたのかわかりません。直観的に言えば、この種の署名の生成プロセスは、署名者が目を閉じてメッセージに署名するようなものであるため、はっきりと「ブラインド」デジタル署名と呼ばれます。

ブラインド署名は、人々が懸念する匿名性の問題を解決するため、電子通貨、電子投票、電子オークションなどのアプリケーションで広く使用されています。

(1) ブラインドサイン分類

「盲目」の程度に応じて、ブラインド署名スキームは通常、強いブラインド署名、弱いブラインド署名、および部分的なブラインド署名に分けられます。

R ( m ) R(m)とするR ( m )はメッセージmmmブラインドしSign ( R ( m ) ) Sign(R(m))S i g n ( R ( m ))はブラインド メッセージR ( m ) R(m)Rの署名( m )署名 ( m ) 署名 (m)S i g n ( m )は、ブラインド解除後に取得されたmmmさんのサイン。

強力なブラインド署名とは、署名者がSign ( R ( m ) ) Sign(R(m)) を確立できないことを意味します。S i g n ( R ( m ))からS ign ( m ) Sign(m)Sign(m )のリンケージの署名。フルブラインド署名とも呼ばれます

弱いブラインド署名とは、署名者がSign ( R ( m ) ) Sign(R(m))しか知らないことを意味します。S i g n ( R ( m ))知らずにSign ( m ) Sign(m)S i g n ( m )、ただし一度公開Sign ( m ) Sign(m)S i g n ( m )、署名者は 2 つの間の接続を確立できます。つまり、署名者はブラインド署名を付けることができますSign ( R ( m ) ) Sign(R(m))S i g n ( R ( m ))の振る舞いとメッセージmmmの内容が関連付けられます。

部分ブラインド署名の特殊性は、署名されたメッセージmmに加えて、m に加えて、メッセージの所有者と署名者が共同で生成したm 1 m_1メートル1(メッセージmmを含むmの範囲、有効期間など)、部分ブラインド署名の過程で、メッセージm 1 m_1メートル1常に公開されています。つまり、ブラインド後の署名はSign ( R ( m ) , m 1 ) Sign(R(m),m_1)です。S i g n ( R ( m ) ,メートル1)、最終的なメッセージ所有者はSign ( m , m 1 ) Sign(m,m_1)S i g n ( m ,メートル1)

(2) ブラインド署名の実施手順

ブラインド署名方式では、メッセージの所有者、つまりブラインド署名サービスを必要とするエンティティ A をユーザーと呼び、ブラインド署名サービスを提供するエンティティ B を署名者と呼びます。ユーザー A が署名者 B にメッセージに署名する必要がある場合は、次の手順に従います。

  • ユーザー A は、署名するメッセージをブラインドします。これにより、署名者 B に対してメッセージの特定のコンテンツが文字化けされます (ブラインド メッセージとも呼ばれます)。
  • ユーザー A が署名者 B にブラインド メッセージを送信する
  • 署名者 B は、受信したブラインド メッセージにデジタル署名します。
  • 署名者 B は、ブラインド メッセージとその署名をユーザー A に渡します。
  • ユーザーは署名を受け取り、ブラインド解除処理を実行します。つまり、署名者 B による元のメッセージの署名が取得され、ブラインド署名が検証されます。

5.3 複数のデジタル署名

デジタル署名アプリケーションでは、同じファイルに署名して認証するために複数のユーザーが必要になる場合があります。複数のユーザーが同じファイルに署名できるようにするデジタル署名方式は、デジタル マルチ署名 (Digital Multi-signature) 方式と呼ばれます。

さまざまな署名プロセスに従って、複数のデジタル署名スキームを次のように分類できます。

  • 順次マルチ署名スキーム
  • ブロードキャスト マルチシグネチャ スキーム

Digital Multi-signature スキームには、メッセージ送信者 (Issuer)、メッセージ署名者 (Signers)、および署名検証者 (Verifier) が含まれます。シグネチャ コレクター (コレクター) もブロードキャスト マルチシグネチャ スキームに含まれます。

順序付き複数電子署名方式では、メッセージの送信者がメッセージの署名の順序を規定し、最初の署名者にメッセージを送信します. 最初の署名者を除いて、各署名者は、署名されたメッセージを受信した後、最初に前の署名を検証します.有効な場合は、署名されたメッセージを次の署名者に送信して署名を続行します; 署名が無効な場合は、メッセージへの署名を拒否し、署名プロセス全体を終了します。署名検証者は、署名されたメッセージを受信すると、署名の有効性を検証します。典型的なスキームは、ElGamal 順序付き複数電子署名スキームです。

ブロードキャスト多重デジタル署名方式では、メッセージの送信者は各メッセージの署名者に同時にメッセージを送信し、署名者はメッセージに署名した後に署名コレクターにメッセージを送信し、コレクターは署名されたメッセージを選別してに送信します。署名検証者 、署名検証者はマルチ署名の有効性を検証します。典型的な方式はHarn 放送多重デジタル署名方式です。

5.4 グループ署名

1991 年、Chaum と Heyst は初めてグループ署名( Group Signature ) 方式を提案しました。グループ署名方式は、グループ内の正当なユーザーがユーザー グループの名前でサインインすることを可能にし、署名者の匿名性などの多くの特徴を持ち、権限のある人物のみが署名者の身元を特定できます。一般に、グループ署名の参加者は、グループ メンバー (署名者)、**グループ管理者 (GC、グループ センター) 、および署名受け入れ者 (署名検証者)** で構成されます。

グループは実生活で広く使用されており、たとえば、会社の取締役会が従業員を処罰することを決定し、取締役に処罰を委ねます。取締役は、取締役会を代表して処罰関連事項に署名し、グループの署名が必要です。このように、処罰された者は、処罰が取締役会の共同決定であることを知っているだけであり、署名によってそれを処理した特定の取締役に連絡することはありません。処罰をめぐって争いが生じた場合、理事長はグループ管理者として、署名した理事の身元を明らかにすることができます。

5.5 否認防止署名

通常のデジタル署名はコピー可能で、誰でもその有効性を検証できます。これは、広報などの文書では問題ありませんが、個人や会社の手紙などの一部の文書、特に貴重な文書の署名については、それらも自由にコピーでき、検証は否認防止の署名が必要な損失を引き起こします。

否定できない署名の本質は、署名者の協力なしに署名の有効性を検証することは不可能であり、署名者が署名した文書のコピーまたは配布を防止することですこのプロパティにより、署名者は製品の普及を制御でき、電子出版システムおよび知的財産保護に適用されます。

否認防止署名は、署名アルゴリズム、検証プロトコル、および否認防止アルゴリズムの 3 つの部分で構成されます。

この種の署名は署名者の協力を得て検証する必要があるため、これは署名者に「拒否」の機会を与えることになります。否認防止アルゴリズムは、署名者が「拒否」するのを防ぐためのものです。署名者はまた、否認防止アルゴリズムを使用して、署名が実際に彼からのものではないことを法廷または公衆に証明することもできます. 署名者が参加を拒否したり、署名検証プロトコルの実装に協力しない場合, それは、署名は彼によって署名されました。

5.6 その他のデジタル署名

さまざまなニーズとアプリケーションを満たすために、しきい値デジタル署名 (Threshold Digital Signature)、障害 - 停止署名 (Fail-Stop Signature)、ワンタイム署名、条件付き署名、転送セキュリティ署名、カメレオン署名などの他のデータ署名スキームがあります。 、同時署名。

Supongo que te gusta

Origin blog.csdn.net/apr15/article/details/127738929
Recomendado
Clasificación