聊芯片安全,绕不开一个听起来有点玄的词:侧信道攻击。它不破解算法本身,而是观察设备运算时的"蛛丝马迹"——功耗、时间、电磁辐射——反推出密钥。数学上打不破的 AES,可能败给一个示波器。
从一个直观例子说起
芯片执行指令是要耗电的,而且耗电量跟"在处理什么数据"有关。乘法比加法耗电多,处理 bit 1 和 bit 0 的功耗有细微差别。把芯片的电流曲线用高采样率示波器录下来,这条曲线就泄露了运算过程的某些信息。
SPA(简单功耗分析):直接看一条功耗曲线。某些算法的分支结构跟密钥位相关——比如 RSA 的模幂运算,密钥位为 1 多一次乘法,曲线上就是一个特征峰。有经验的人对着一条曲线就能把密钥一位位读出来。
DPA(差分功耗分析):更狠。录成千上万条曲线,对中间值的某个 bit 做统计分组,两组曲线的均值差会在正确密钥假设下出现尖峰。不需要懂实现细节,纯统计方法,自动化工具成熟。防御不当的芯片,几小时内密钥就可能被提取。
为什么工业和物联网设备特别要防
侧信道攻击需要物理接触或贴近设备。数据中心里的服务器不用担心这个,但工业现场的 PLC、户外的物联网节点、流通渠道里的消费产品——物理上都可被接触。设备一拆、一探针台,攻击条件就齐了。
芯片层面怎么防
主流防护思路是破坏"功耗与数据的相关性":
随机化时序:运算流程插入随机延迟,让多次曲线对不齐;
功耗均衡:让不同数据路径的功耗尽量一致;
噪声注入:往功耗信号里掺噪声,压低信噪比,把 DPA 需要的样本量推到不现实的量级。
JC100 就是一种面向配件防伪、物联网鉴权和工业场景的低成本认证芯片,把防 SPA/DPA 功耗攻击和故障注入检测列为标配,与 PUF 身份、TRNG、SE 安全引擎配套。背后的逻辑是:低成本芯片往往在物理上最"裸奔"——贴在配件上、装在户外节点里——恰恰最需要物理攻击防护。这与其母公司珈港科技二十多年的安全芯片积累有关,防护设计是照着 CC EAL 高等级体系的经验下放的。
给工程师的建议
选型时别只看算法列表,问一句"防不防侧信道";用了带防护的芯片,自己也别拖后腿——别把密钥在主控内存里停留过久,别在认证流程里留下时序泄露。侧信道是系统性问题,芯片和固件要一起防。