CLAASP:密码学原语评估与分析工具
1. 评估模块
CLAASP 的最基本功能是对给定输入的密码学原语进行评估。它提供了基础的 C 和 Python 评估函数,可对单个输入进行非优化评估,同时还有矢量化评估函数,能实现快速批量评估。例如,使用矢量化实现,执行一百万次 AES 加密大约需要 3 秒。
- Python 和 C 基础评估器 :在 CLAASP 中,用户可以创建一个密码对象,并调用评估方法来评估特定输入。此功能也被 CLAASP 内部的一些模块使用,例如用于雪崩测试或统计测试。相应的 Python 和 C 代码会通过扫描组件列表自动生成。
- 矢量化实现 :在 Python 中,NumPy 库允许对数组进行函数评估的矢量化,而非针对单个输入。NumPy 数组是类型化且同质的,结合 NumPy 的优化,与 Python 原生列表和循环相比,能显著提高性能。密码对象提供了基于 NumPy 的
evaluate_vectorized函数。输入指定为 8 位无符号整数值的 NumPy 数组,每个数据点为一列。返回值编码为包含一个 8 位无符号整数值的 NumPy 数组的列表,此时每个数据点为一行。选择使用字节是因为 NumPy 不支持 64 位以上的整数。
2. 测试模块
CLAASP 目前支持多种自动化分析模块,许多分析工具源于差分和线性密码分析。差分密码分析关注差分 δ 传播到 γ 的概率,而线性密码分析关注线性掩码 Γ0 传播到 Γ1 的相关性。
超级会员免费看
订阅专栏 解锁全文
1512

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



