本公开涉及信息安全密码领域,并且更具体地,涉及一种基于流形学习的密码算法侧信道分析方法,首先,采集运行密码算法设备的能量信息,对采集的能量迹进行分析,定位执行与密钥相关的关键操作位置,并将其分割成若干操作段。然后,应用流形学习算法对操作段进行特征提取,将高维波形空间的操作段映射到低维特征空间。最后,采用层次聚类算法对特征点进行分类,根据分类结果恢复关键操作类型,最终得到密钥,实现对密码算法的自动化侧信道分析。
背景技术
随着物联网的发展,公钥密码系统(PKC)广泛应用于嵌入式安全应用中,如智能卡、射频识别标签、智能手机和智能家居,PKC的代表性算法RSA和椭圆曲线密码学(ECC)在各种物联网设备中得到了广泛应用,算法实现的安全性和密码组件的抗攻击能力至关重要。
在物联网设备上执行PKC算法时,不可避免的会引起设备的物理状态波动,例如时间、功耗和电磁辐射等信息不可避免地被泄露;1999年,Kocher提出了简单功率分析(SPA),该方法利用分支语句中不同操作导致的执行时间变化来恢复RSA秘密密钥的指数位;SPA的核心在于利用多个片段之间的特征差异和统计特性,在少量波形甚至单一波形中恢复秘密信息;PKC的侧信道分析主要集中在识别与秘密信息密切相关的密码操作。
目前,许多针对PKC的SPA选择采用降维算法来提取密码操作段的特征点,其中很多方案会选择无监督降维算法,如PCA,t-SNE等;PKC算法通常需要复杂的计算,秘密信息与对应的波形之间常常存在非线性关系,然而,几乎所有涉及降维的SPA方法都倾向于使用线性降维算法,这些算法无法保持高维波形段之间的全局结构和局部结构,从而难以准确恢复算法密钥。
实现思路