Was ist die Algorithmus Kennung, wenn sie innerhalb von PKCS # 7 mit ISO 10126 Polsterung AES im CBC-Modus?
-
08-07-2019 - |
Frage
Ich möchte verschlüsselt für einige PKCS # 7 als Container-Format verwenden, signierten Inhalt, und wir müssen mit ISO 10126 basiert padding AES im CBC-Modus verwenden. Ich kann nicht für diese Kombination zu verwenden scheinen einen konkreten Verweis auf einen Algorithmus Kennung zu finden. Ich kann meine eigenen erfinden würde aber dann verliert die Interoperabilität mit anderen Werkzeugen.
Lösung
Der Padding-Modus muss nicht angegeben werden. Dies gilt, da PKCS # 7 (wie viele andere Verschlüsselungs Container) ASN.1 / BER-Codierung verwendet. Da die BER-Codierung, die genaue Länge der Nachricht innerhalb der gepolsterten Klartext enthält, wird der tatsächliche Wert der Polsterung keine Rolle.
Andere Tipps
Es stellt sich heraus, dass der Padding-Modus nicht angegeben werden muss, nur die Krypto-Algorithmus Angelegenheiten.
Ich glaube, wenn Sie PKCS # 7 als Ihr Format verwenden, wird die Polsterung diktiert zu sein, nun ja, "PKCS7" padding (n Oktetts Wert 'n' finden Sie unter RFC 2315 , Abschnitt 10.3.2).
Die Algorithmus Kennung (en) für die AES / CBC sind z.B. gegeben 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 }
So, zum Beispiel die OID für 128-Bit-AES im CBC-Modus ist 2.16.840.1.101.3.4.1.2
Technisch sind diese für CMS , die 7 im Wesentlichen die aktualisierte PKCS # ist.