Capicom 3des:2键还是3键?

时间:2008-10-10 21:01:32

标签: winapi encryption capicom

许多搜索和阅读都没有告诉我capicom.encrypteddata类模块(它是VB6,但回答这个问题无关紧要)是使用2键3DES还是3键3DES。 (.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_3DES)任何人都知道它正在使用哪一个?这些信息的来源也会有所帮助。我怀疑,因为我认为不支持足够高的密钥长度,所以它是2DES。但我没有找到可接受的确认。

1 个答案:

答案 0 :(得分:2)

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的值,它是带有三个键的3DES的CryptoAPI标识符(带有两个键的3DES称为CALG_3DES_112)。 192是键长,也匹配三键3DES: