1

JKJS

RSA_print_fp(stdout,rsa,1);

この関数は、係数に 0x00 を追加します。そのため、公開鍵のサイズは 128 バイトではなく 129 バイトになります。なぜ 0x00 が追加されるのですか?

ありがとうございました。

4

2 に答える 2

0

これは、モジュラスのASN.1DERエンコーディングです。整数は、2の補数形式、ビッグエンディアンの順序、および最小バイト数で表されます。

その規則により、FFは-1(10進数)であり、00 FF255(10進数)です。

RSAでは、すべての整数が正です。したがって、左端のバイトのMSBビットが設定されることはありません。

于 2012-11-10T18:45:31.820 に答える
0

モジュラスは整数であり、バイトの文字列ではありません。整数は、負と正の両方にすることができます。RSAのモジュラスには負の整数は使用されませんが、整数を処理する関数はOpenSSLでは一般的です。

負の数の最上位ビットは1に設定されます。負の整数と、最上位バイトのビット7が1に設定されている正の整数を区別するために、正の整数の前に0x00が付けられます。

于 2012-11-10T14:26:39.143 に答える