2009-08-29 4 views
2

私は128バイト(1024ビット)のモジュラス(バイト配列形式)と私の指数(バイト配列形式)を持っています。公開鍵を表す128バイトの配列を作成する必要があります。nとeを組み合わせてRSAで公開鍵を作成するにはどうすればよいですか?

ウィキペディアによれば、「公開鍵は、法nと公開(または暗号化)指数eから成ります。しかし、それは私に両方を混ぜる方法を教えてくれません。

正しい操作は何ですか?
- n^e(128バイトの長さになりますか?)
- ちょうどn?
- nの後にe?
- nがeに追加されましたか?
- 他に何か?

+0

ここでは、[link](http://pajhome.org.uk/crypt/rsa/rsa.html)という簡単な説明があります。楽しい。 –

答えて

2

このような配列を作成することはできません。 「公開鍵」は、指数とモジュラスの2つの部分を持ちます。後で暗号化と復号化を行うために必要な個別の番号です。 nは1024ビットですが、公開鍵はすべて必然的に長くなります。

3

RSA公開鍵を表すさまざまな形式があります。より広範なものの1つはPKCS#1です。 RFC 3447では、公開鍵フォーマットの定義は、その形式で鍵を表現するために

RSAPublicKey ::= SEQUENCE { 
     modulus   INTEGER, -- n 
     publicExponent INTEGER -- e 
    } 

として与えられている、あなたは、このデータ構造にASN.1 DERエンコーディングを適用する必要があります。

もう一つの選択肢は、RFC 3280から、SubjectPublicKeyInfoである:

SubjectPublicKeyInfo ::= SEQUENCE { 
    algorithm   AlgorithmIdentifier, 
    subjectPublicKey  BIT STRING 
    } 

RSAの場合、アルゴリズムは1.2.840.113549.1.1.1する必要があります。

SSLに使用されるフォーマットなど、いくつかのフォーマットがあります。

1

「Nに続くe」はおそらくあなたが望むものに最も近いでしょう。しかし、他のRSAベースのシステムと相互運用する予定の場合は、そのシステムのマニュアルを参照して、公開鍵のフォーマット方法を調べる必要があります。

関連する問題