FAN:轻量级认证加密算法解析
1. 解密原理
FAN 算法的解密过程基于公式 $pt = ct \oplus zt$,其中 $pt$ 为明文块,$ct$ 为密文块,$zt$ 为密钥流块。由于密钥流块 $zt$ 的生成不受同一轮中明文块 $pt$ 的影响,因此可以逐块地将密文解密为明文。解密过程中的更新函数与加密过程相同,最终化过程也与加密过程一致。需要强调的是,如果验证失败,不应输出密文和新生成的认证标签,否则 FAN 的状态容易受到已知明文或选择密文攻击(使用固定 IV)。
整体工作流程如下:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([初始化]):::startend --> B(处理关联数据):::process
B --> C(加密):::process
C --> D([最终化]):::startend
E(密钥/IV):::process --> A
F(明文):::process --> C
G(关联数据):::process --> B
H(标签生成):::process --> D
I(密钥):::process -->
超级会员免费看
订阅专栏 解锁全文

891

被折叠的 条评论
为什么被折叠?



