Это не кажется мне очень хорошим протоколом аутентификации. Вы можете просмотреть $(Mrand, \textsf{AES}_{TK}(\textsf{AES}_{TK}(Mrand \oplus p_1) \oplus p_2))$ как попытка рандомизированного CBC-MAC $p_1\|p_2$, с $Мранд$ являющийся вектором инициализации.
К сожалению, рандомизированный CBC-MAC полностью не работает как MAC. Предположим, противник видит действительный MAC $(R,T) = \bigl(R, \textsf{AES}_K(\textsf{AES}_K(R \oplus p_1) \oplus p_2)\bigr)$ сообщения $p_1 \| р_2$.
Тогда он может производить $(R \oplus \delta, T)$ который является действительным MAC сообщения $(p_1 \oplus \delta) \| р_2$.
Помимо неудачной попытки получения MAC-адреса, этот протокол страдает от тривиальных атак воспроизведения.
Каждая сторона выбирает случайное значение, которое влияет на только свои сообщения.
Чтобы предотвратить повтор, каждая сторона должна привязать свои протокольные сообщения к случайному значению, выбранному Другие партия.
Есть даже отражение атаки. В этом протоколе, если мастер отправляет $Mrand, Mconfirm$ тогда клиент может ответить эхом $Срэнд=Мрэнд$ и $Sconfirm=Mподтвердить$, который должен быть проверен правильно, если в протоколе нет большего, чем вы упомянули.
Результатом этих атак является то, что одна конечная точка считает, что она успешно сопряжена, несмотря на то, что другая конечная точка не знает внеполосного ключа. $ТК$. Однако злоумышленник не может получить сеансовый ключ.