Действительно ли. Net TDES en c -de c -en c или end-en c -en c? - PullRequest
0 голосов
/ 16 февраля 2020

Я пытаюсь аутентифицировать платежную карту в. Net 4.5. EMV Book 2 Приложение B1.1 говорит, что: DES3 (K) [X] = DES (KL) [DES -1 (KR) [DES (KL) [X]]] или 3DES of X означает:

Blockquote

  1. зашифровать X левой половиной 16-байтового ключа
  2. расшифровать этот шифрованный текст правой половиной 16-байтового ключа
  3. зашифруйте этот предполагаемый открытый текст левой половиной ключа.

, который можно назвать en c -de c -en c. Может ли кто-нибудь заверить меня, что TripleDESCryptoServiceProvider Net делает это таким образом, в отличие от en c -en c -en c? Страница ms docs не говорит.

1 Ответ

0 голосов
/ 17 февраля 2020

Независимо от языка, все реализации TDES следуют Encrypt-Decrypt-Encrypt. Для ключа двойной длины зашифруйте данные, используя первый блок [первые 8 байтов], расшифруйте, используя второй блок [вторые 8 байтов], и снова зашифруйте, используя первый блок. Для ключа тройной длины на последнем этапе шифрования с использованием первого блока используется третий блок ключей intead. Если вы хотите убедиться в этом, просто передайте тестовый ключ и данные в библиотеку и сравните значение, которое вы получаете от любых бесплатных онлайн-инструментов, таких как https://paymentcardtools.com/des-calculator

Я могу см. это упомянуто в документации. Нажмите на TripleDES в начале, а затем прочитайте раздел замечаний.

...