加密芯片SMEC98SP 典型设计案例,保护你的方案不被解密抄袭

刚买来的加密芯片是不能直接用的,需要下载自己编好SMEC98SP的程序下载到加密芯片内。

列举了几种常见的安全设计机制,由于 SMEC98SP 加密芯片为可编程芯片,开发
者可以自行组合这几种安全机制,也可另行开发出适合自己需求的安全机制。
1 基于 PIN 认证的安全设计
PIN 认证,也叫口令认证或密码认证。是用一组特定长度的数据,来确定使用者的合法
身份。实际过程描述如下:
1. 预先在 MCU 和加密芯片中分别存储 8 字节密码: 55 66 77 88 99 AA BB CC
2. 由 MCU 向加密芯片中发 PIN 认证操作: 70 00 00 08 55 66 77 88 99 AA BB CC
3. 加密芯片收到 PIN 认证命令后,将判断 PIN 是否正确。如果正确,则返回正确响
应码,并允许做后序操作。否则返回错误码,并且不允许后续相关操作。
优点:操作简单
缺点: PIN 在 I2C 线路上传输,容易被截获。

2 基于对称密钥的安全设计
SMEC98SP 支持硬件 DES, 3DES 的对称算法,计算一组 DES 时间为 7.2us(时钟频率
20M 时)。
对称算法用于安全设计原理为:数据发信方将明文(原始数据)和加密密钥一起经过
特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原
文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读
明文。在对称加密算法中,使用的密钥只有一个。
我们例程中采用了银行卡的外部认证方法,写了一个简单示例,具体实现如下:
1. 预先在 MCU 和加密芯片中分别存储 8 字节密钥: 88 77 66 55 44 33 22 11
2. 由 MCU 发送取随机数指令: 84 00 00 08
3. 加密芯片返回随机数: 23 ED FE 2A DF 42 A0 F6
4. MCU 用预存的 8 字节密钥, 对随机数做 DES 运算, 结果为: CD C2 F8 93 2A D0 17
8A
5. MCU 发送外部认证命令: 82 00 00 08 CD C2 F8 93 2A D0 17 8A
6. 加密芯片用预先存储的密钥解密,所收到的数据,并与之前生成的随机数做比对,
一致则返回正确响应码,并允许做后序操作。否则返回错误码,并且不允许后续
相关操作。
优点:密钥不出卡,即使在 I2C 线路上监听,也无法破解。
缺点: DES/3DES 算法对 MCU 运算速度有一定的要求。
密钥还是需要在 MCU 中存储,如果 MCU 被破解后,并被反汇编。侵入者理解了
整个汇编代码,还是有可能被破解。

3 基于 Hash 的安全设计
把任意长度的输入,通过哈希算法,变换成固定长度的输出,该输出就是哈希值。这种
转换是一种压缩映射。主要 Hash 算法有 MD5, SHA1 等。
可以预先在 MCU 和加密芯片中分别存储一组相同长度的数据,作为 Hash 算法的初始
输入, 然后由 MCU 另外加输入数据, 向加密芯片发起 Hash 运算。 后将加密芯片返回的 Hash
值与 MCU 自己算的 Hash 值做比对,若一致则 MCU 继续工作,否则停止工作。
优点:即使在 I2C 线路上监听,也无法破解。
缺点:初始输入还是需要在 MCU 中存储,如果 MCU 被破解后,并被反汇编。侵入者
理解了整个汇编代码,还是有可能被破解。

4 基于算法嵌入的安全设计
将 MCU 中的一部分关键代码,放入加密芯片中运行,当需要用到 SMEC98SP 中的算
法时,由 MCU 向 SMEC98SP 发送指令, SMEC98SP 根据指令,在内部运行,返回结果给
MCU。
我们例程中写了一个算圆周长的简单示例,具体实现如下:
1. 加密芯片中存储算圆周长关键算法(周长 C = 2 *π* R)
2. 由 MCU 发送算圆周长指令: 72 00 00 01 03 ( R = 03)
3. 加密芯片根据 R 值,利用周长公式,算出周长 0x12,返回给 MCU。
优点:关键算法在加密芯片中,即使 MCU 被破解,并被理解反汇编代码,也无济于事。
缺点:暂无
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值