密码算法硬件加速与混沌无线通信系统研究
密码算法硬件加速
热点检测与关键函数确定
在密码算法的优化过程中,首先要确定哪些部分是性能瓶颈,也就是热点函数和热点块。通过VTune性能分析器对代码进行采样,统计每行代码消耗的时钟周期数,深入函数内部,以更精细的粒度查看性能。
不同算法的热点函数和热点块各不相同:
| 算法 | 热点函数 | 热点块 | 热点块占比 |
| — | — | — | — |
| RC5 | rc5_key() | KEYXP_RC5 | 37.9% |
| 3DES | des_crypt() | ROUND_3DES | 58.7% |
| MD5 | - | P_MD5 | 73.3% |
| IDEA | - | MUL_IDEA | 61.2% |
加速器实现
采用状态转换方案将热点函数转换为有限状态机进行硬件实现。在这个过程中,如果指令之间没有数据依赖关系,就可以并行执行这些指令,并将它们放在有限状态机的同一状态中。以下是部分算法函数的实现状态分析:
- RSA :一个32位桶形移位器可以将一个数左移0到31位,只需要一个状态。
- AES :
- InvSubBytes()和SubBytes():只是根据预建的查找表对字节进行替换操作,相当于一次内存访问状态,一些逻辑组件就足够实现。
- InvMixColumns():使用Rijndael混合列实现需要六个状态。
1. 读取输入数组到临时存储区。
2 - 5. 在R
超级会员免费看
订阅专栏 解锁全文
41

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



