Capicom 3des: 2 ключа или 3 ключа? - PullRequest
       30

Capicom 3des: 2 ключа или 3 ключа?

1 голос
/ 11 октября 2008

Большой поиск и чтение не сказали мне, использует ли модуль класса capicom.encrypteddata (это VB6, но это не имеет значения при ответе на этот вопрос) использование 2-клавишного 3DES или 3-клавишного 3DES. (.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_3DES) Кто-нибудь знает, какой он использует? Источник этой информации также будет полезен. Я подозреваю, что, поскольку я не думаю, что поддерживается достаточно высокая длина клавиш, это 2DES. Но я не нашел приемлемого подтверждения.

1 Ответ

2 голосов
/ 13 октября 2008

CAPICOM - это тонкая оболочка поверх CryptoAPI. Если вы декодируете вывод из EncryptedData.Encrypt (), вы увидите что-то вроде этого (это ASN.1, закодированный в проприетарном формате):

SEQUENCE {
  OBJECT IDENTIFIER '1 3 6 1 4 1 311 88 3'
  [0] {
    SEQUENCE {
      OBJECT IDENTIFIER '1 3 6 1 4 1 311 88 3 1'
      [0] {
        SEQUENCE {
          INTEGER 131073
          INTEGER 26115
          INTEGER 192
          OCTET STRING
            AA A6 05 4E FA AF 4C 0B
          OCTET STRING
            3A 22 58 C3 51 D8 91 C8 7B 3C C9 51 9B E7 BA B7
          OCTET STRING
            84 FA 56 AF 01 FE C9 74
          }
        }
      }
    }
  }

Обратите внимание на 26115. Это значение для CALG_3DES, который является идентификатором CryptoAPI для 3DES с тремя ключами (3DES с двумя ключами называется CALG_3DES_112). 192 - это длина ключа, также соответствует 3D-ключу с тремя ключами:

...