1.原理
1.以矩阵作为密钥
2.加密时,密文 = 明文 * 密钥矩阵
3.解密时,明文 = 密文 * 密钥矩阵的逆矩阵
4.协议涉及的三个数据:秘值 S,密钥矩阵 K1 和 K2。(K1 和 K2 的区别将在下面解释)
2.图解过程
1.初始情况
1.标签存储了[S,K1,K2?1]1. 标签存储了[S,K_1,K_2^{-1}]1.标签存储了[S,K1?,K2?1?]
2.数据库存储了[X,S,K2,K1?1]2. 数据库存储了[X,S,K_2,K_1^{-1}]2.数据库存储了[X,S,K2?,K1?1?]
PS
其中 X = K1*S
3.文字过程
- 读写器询问标签
- 标签计算 X = K1*S,并通过读写器发给数据库
- 后端数据库查找 X
- 计算 S=K1?1?XS = K_1^{-1}*XS=K1?1??X,将这个 S 与数据库存储的 S 进行比较,相等则通过验证。
- 然后计算 Y=K2?SY=K_2*SY=K2??S
- 随机数生成 SnewS_{new}Snew?
- Z=K2?Snew,Xnew=K1?Snew,更新原来的X和SZ=K_2*S_{new},X_{new}=K_1*S_{new},更新原来的 X 和 SZ=K2??Snew?,Xnew?=K1??Snew?,更新原来的X和S
- 数据库向读写器发送 Y 和 Z
- 读写器发送 Y 和 Z 给标签进行验证
- 标签先计算 S=K2?1?YS=K_2^{-1}*YS=K2?1??Y,验证通过后
- 标签计算 Snew=K2?1?ZS_{new}=K_2^{-1}*ZSnew?=K2?1??Z,更新 S 值
4.优点和缺点
{优点:速度快,运算量小缺点:矩阵加密安全性弱\begin{cases} 优点:速度快,运算量小\\ 缺点:矩阵加密安全性弱\\ \end{cases} { 优点:速度快,运算量小缺点:矩阵加密安全性弱?