CBC-MAC расшифровка, как MAC работает в шифровании
Я только что понял, шифрование и дешифрование Triple DES для кредитной карты. Может кто-нибудь сказать мне, как дешифровать CBC-MAC... CBC-MAC в конце даст 4-байтовый MAC. От MAC до Encryption, как именно это работает? Что делает MAC?
Как только мы осуществляем шифрование через CBC-MAC, как мы можем их расшифровать? Triple-DES не подойдет для моего случая.
Еще один вопрос здесь. Вы все слышали о каком-либо алгоритме расшифровки, который включает в себя:
- DUKPT
- TDES и
- Вариант MAC (по сравнению с вариантом PIN)
Я хорошо понимаю TDES и DUKPT, но как вариант MAC будет играть роль в алгоритме расшифровки?
Чем вариант MAC отличается от варианта PIN?
Спасибо!
2 ответа
Я только что понял, шифрование и дешифрование Triple DES для кредитной карты. Может кто-нибудь сказать мне, как дешифровать CBC-MAC...CBC-MAC в конце даст 4-битный MAC.
Вот визуальное представление о том, как работает режим CBC через Википедию.
Что делает CBC-MAC, так это просто берет последний блок зашифрованного текста, который выводится, и вызывает этот MAC. Таким образом, ваш MAC должен быть размером блочного шифра, который, вероятно, не 4 бита. Если вы используете 3DES, это будет 64 бит.
От MAC до Encryption, как именно это работает? Что делает MAC?
MAC и шифрование - две совершенно разные вещи. Я постараюсь дать краткое изложение каждого.
- Шифрование обеспечивает конфиденциальность, что означает (в случае симметричного шифрования), что только кто-то с правильным ключом может прочитать содержимое сообщения.
- MAC обеспечивает целостность, что означает, что сообщение не было подделано где-то между отправителем и получателем.
Причина, по которой существуют MAC, заключается в том, что даже если я не могу прочитать зашифрованные сообщения, я все же могу изменить зашифрованное сообщение, даже если получатель не узнает, что оно было изменено (это вызвало все виды неприятных проблем в реальном мире). MAC обычно отправляется вместе с зашифрованным сообщением. Получатель сначала вычисляет MAC зашифрованного сообщения, а затем проверяет, соответствует ли он MAC-адресу, который был отправлен с зашифрованным сообщением. Если они совпадают, то получатель знает, что сообщение не было подделано.
Как только мы осуществим шифрование через CBC-MAC, как мы можем их дешифровать? Triple-DES не подойдет для моего случая.
Если вы используете 3DES для шифрования, я бы рекомендовал сначала зашифровать ваше сообщение (назовем его C). Я также рекомендовал бы использовать что-то кроме CBC-MAC, потому что CBC-MAC не обеспечивает хорошую безопасность. Я бы порекомендовал вам использовать HMAC для вычисления MAC для зашифрованного сообщения (HMAC(C)). Это означает, что вам понадобятся два ключа, один для 3DES и один для HMAC. HMAC широко поддерживается на большинстве языков, поэтому поиск реализации не должен быть проблемой.
Итак, в общем, возьмите ваше сообщение M, вычислите 3DES(M) = C, затем вычислите HMAC(C) = T и отправьте (C, T) тому, кто получает эти данные. Затем получатель вычислит HMAC(C) = T', проверит, что T' == T, и, если они совпадают, вычислит 3DES(C) = M, чтобы получить исходное сообщение. Надеюсь, что это поможет, довольно много информации, не стесняйтесь просить что-нибудь уточнить.:)
Вы не можете "расшифровать" тег CBC-MAC. Код аутентификации сообщения (MAC) - это проверка целостности ключа. Это означает, что тег, созданный из алгоритма MAC, всегда имеет одинаковую длину, независимо от длины введенных вами данных. В случае CBC-MAC с Triple-DES это размер блока 3DES, равный 64-бит (или более короткий его кусок).
Если ваши данные длиннее этого, вы не сможете их "расшифровать", потому что сейчас существует несколько решений. Однако вы можете снова запустить исходные данные через CBC-MAC с тем же ключом и заново создать тег. Затем вы проверяете два тега, чтобы увидеть, совпадают ли они. Если они это сделают, то вы знаете, что ваши данные не были подделаны. (Но, вероятно, нет, потому что 3DES не так хорош, когда не используется с 3 различными ключами, а CBC-MAC больше не считается безопасным, если вы принимаете произвольные сообщения.)