PKCS#7内でISO 10126パディングを使用してCBCモードでAESを使用する場合のアルゴリズム識別子は何ですか?
-
08-07-2019 - |
質問
一部の暗号化および署名されたコンテンツのコンテナ形式としてPKCS#7を使用したいのですが、ISO 10126ベースのパディングでCBCモードでAESを使用する必要があります。この組み合わせに使用するアルゴリズム識別子への具体的な参照が見つからないようです。自分で発明することはできますが、他のツールとの相互運用性が失われます。
解決
パディングモードを指定する必要はありません。これは、PKCS#7(他の多くの暗号化コンテナーと同様)がASN.1 / BERエンコードを使用するためです。 BERエンコードにはパディングされたプレーンテキスト内のメッセージの正確な長さが含まれるため、パディングの実際の値は重要ではありません。
他のヒント
パディングモードを指定する必要はなく、暗号アルゴリズムのみが重要であることがわかりました。
PKCS#7をフォーマットとして使用している場合、パディングは「PKCS7」であると言われます。パディング(値 'n'のnオクテット、 RFC 2315 、セクション10.3.2を参照) 。
AES / CBCのアルゴリズム識別子は、たとえば RFC 3565 :
-- AES information object identifiers --
aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840)
organization(1) gov(101) csor(3)_ nistAlgorithms(4) 1 }
-- AES using CBC-chaining mode for key sizes of 128, 192, 256
id-aes128-CBC OBJECT IDENTIFIER ::= { aes 2 }
id-aes192-CBC OBJECT IDENTIFIER ::= { aes 22 }
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }
したがって、たとえばCBCモードの128ビットAESのOIDは2.16.840.1.101.3.4.1.2です
技術的には、これらは CMS 用であり、これは本質的に更新されたPKCS#7です。
所属していません StackOverflow