パスワード知識教程二
RSAの選択は暗号文攻撃です。 RSAは暗号攻撃を選択する前に弱いです。一般的な攻撃者は、ある情報を偽装し、秘密鍵を持つエンティティに署名させる。そして、計算して欲しい情報が得られます。実際には、攻撃は同じ弱点を利用しています。すなわち、入力の倍数構造が累乗保持されているという事実があります。 ( XM )^d = X^d *M^d mod n 前に述べたように、この固有の問題は、公開鍵暗号システムの最も有用な特徴である各人が公開鍵を使用することができるからである。しかし、アルゴリズムからこの問題を解決できない場合、主な措置は2つあります。1つは良い公開鍵プロトコルを採用し、作業中にエンティティが他のエンティティによって任意に生成された情報を解読しないことを保証し、自分の知らない情報に署名しないようにします。もう一つは見知らぬ人が送ってきたランダムな文書に署名しないことです。サインする時はまずOne-Wayを使います。 ハッピー Functionは文書をHASHとして処理したり、異なる署名アルゴリズムを同時に使用します。いくつかの攻撃方法について述べた。 RSAの公共モードで攻撃する。 もしシステムの中にモジュールがあったら、違う人が違うeとdを持っているだけで、システムは危険です。最も一般的な場合は、同じ情報が異なる公開鍵で暗号化され、これらの公開鍵が共にモデル化され、かつ互いに質的である場合、この情報は秘密鍵を必要とせずに回復される。Pを情報明文とし、2つの暗号鍵はe 1とe 2、共通モード数はnとする。 C 1 = P^e 1 mod n C 2 = P^e 2 mod n 暗号解析者はn、e 1、e 2、C 1、C 2を知っています。Pを得ることができます。 e 1とe 2の相互質のため、Euclideanアルゴリズムでrとsを見つけられます。満足しています。 r * e 1 + s * e 2 = 1 rを負とすると、EuclideanアルゴリズムでC 1^(-1)を計算する必要があります。 ( C 1^(-1) )^(-r) * C 2^s = P mod n また、他にもいくつかの公的模数を使って攻撃する方法があります。つまり、与えられたモジュールのペアeとdを知っているなら、1つは攻撃者がモード数を分解するのに有利であり、1つは、攻撃者が他のペアのe'とd'を計算するのに有利であり、分解する必要がない。解決方法は一つしかないです。モジュールnを共有しないことです。 RSAの小指数攻撃。 RSA速度を上げる提案があるが、公開鍵eをより小さな値にすることで、暗号化が実現しやすくなり、速度が向上する。しかしこのようにするのは安全ではありません。対策はeとdが大きな値を取ることです。 RSAアルゴリズムは、暗号化とデジタル署名を同時に使用できる最初のアルゴリズムであり、理解と操作も容易である。RSAは最も広く研究されている公開鍵アルゴリズムで、提出から20年近く経っています。様々な攻撃の試練を経て、次第に人々に受け入れられてきました。現在の最も優れた公開鍵案の一つと考えられています。RSAの安全性は大きな数の因子分解に依存するが、RSAの難度は大きな数の分解難度と等価であることを理論的に証明していない。つまりRSAの重大な欠陥は理論的にその秘密保護性能を把握できないことであり、また暗号学界の多くの人は因子分解がNPC問題ではない傾向がある。 RSAの欠点は主に:A)鍵を生成するのが面倒で、素数発生技術に制限されているため、一度の秘密化は難しいということです。B)パケット長が大きすぎて、安全性を保証するため、n せめて 600 bits以上で、演算コストが高く、特に速度が遅く、対称暗号アルゴリズムより数桁遅いです。また、大数分解技術の発展に伴い、この長さはまだ増加しており、データフォーマットの標準化には不利である。現在、SET Electronic Transaction)プロトコルでは、CAが2048よりも優れた鍵を使用するように要求され、他のエンティティは1024ビットの鍵を使用する。 DSS/DSAアルゴリズム Digital Signature Algorithm (DSA)はSchnorrとElGamalの署名アルゴリズムの変種で、米国NISTにDSS(Digital)として使われています。 Signature Standard)アルゴリズムには以下のパラメータが適用されています。 p:L bitsの長い素数。Lは64の倍数であり、範囲は512から1024である。 q:p - 1の160 bittsの素因数。 g:g = h^((p-1)/q) mod p,h満足h < p - 1, h^((p-1)/q) mod p > 1; x:x < q,xは秘密鍵である ; y:y = g^x mod p ,( p,p, q, g, y )公開鍵として H( x ):One-Way Hash関数DSSではSHA( Secure ハッピー Algorithm )。 p,p, q, gは1組のユーザによって共有されてもよいが、実際のアプリケーションでは、共通のモジュラスを使用することは、一定の脅威をもたらす可能性がある。署名と検証のプロトコルは以下の通りです。 1. Pは乱数k,kを発生する。 < q; 2. P計算 r = ( g^k mod p ) mod q s = ( k^(-1) (H(m) + xr) mod q 署名の結果は m, r, s )。 3. 検証時に計算する w = s^(-1)mod q u 1 = ( H( m ) * w ) mod q u 2 = ( r * w ) mod q v = (( g^u 1 * y^u 2 ) mod p ) mod q 若v = rに署名が有効であると考える。 DSAは整数有限領域離散対数難題に基づいており、その安全性はRSAに比べてほぼ同じである。DSAの重要な特徴の一つは、2つの素数が公開されていることであり、他人のpとqを使用すると、秘密鍵を知らなくても、それらがランダムに発生したかどうか、または手足が作られたかどうかを確認することができる。RSAアルゴリズムはできません。