4

私は128バイト(1024ビット)のモジュラス(バイト配列形式)と指数(これもバイト配列形式)を持っています。公開鍵を表す128バイトの配列を作成する必要があります。

ウィキペディアによると、「公開鍵は、モジュラスnと公開(または暗号化)指数eで構成されています。」しかし、それは私に両方を混ぜる方法を教えてくれません。

行うべき正しい操作は何ですか?
--n ^ e(128バイトの長さを維持しますか?)
-nだけですか?
--nの後にeが続きますか?
--nがeに追加されましたか?
-他に何かありますか?

4

3 に答える 3

4

RSA公開鍵を表すためのさまざまな形式があります。より広く普及しているものの1つは、PKCS#1です。RFC 3447では、公開鍵形式の定義は次のように与えられています。

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

その形式でキーを表すには、このデータ構造にASN.1DERエンコーディングを適用する必要があります。

もう1つの選択肢は、RFC3280のSubjectPublicKeyInfoです。

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

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

SSLに使用される形式など、他にもいくつかの形式があります。

于 2009-08-29T19:21:09.397 に答える
2

そのような配列を作成することはできません。「公開鍵」には、指数と係数の2つの部分があります。これらは別々の番号であり、後で暗号化と復号化を実行するために両方が必要になるため、別々に保持する必要があります。あなたnは1024ビットですが、公開鍵は全体として必然的に長くなります。

于 2009-08-29T19:21:18.710 に答える
2

「Nの後にeが続く」は、おそらくあなたが望むものに最も近いでしょう。ただし、他のRSAベースのシステムと相互運用する場合は、そのシステムのドキュメントを参照して、公開鍵がどのようにフォーマットされることを期待しているかを確認する必要があります。

于 2009-08-29T19:23:02.667 に答える