防抄板加密方案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⑤由数据加密密钥加密随机数 D3 得 到过程密钥 D3’,使用过程密钥 D3’ 对读取的数据 Data 加密得到数据密
文数据 Data’和状态码
②产生随机数 E
④由数据加密密钥加密随机数 E 得到 过程密钥 E’,使用过程密钥 E’解密
Data’得到文件明文数据 Data ⑤更新数据 Data
②客户自由定义函数接口
校验正确,继续执行 校验失败,错误处理
①发送取随机数指令
③由加密密钥加密 C 得 到加密过程密钥 C’
④使用加密过程密钥 C’加密 PIN 得到 PIN 的密文 PIN’
⑧获取状态码 校验正确,继续执行 校验失败,错误处理
I2C 协议
取随机数指令 ―――――――→ 返回随机数(A) ←――――――― 外部认证指令(A’) ―――――――→
加密方案
目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片 不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被 别人复制,到市场上的只能以价格竞争,最后工厂复制的产品反而价格更有优势,因 为他们的开发投入几乎可以忽略不计。
所以针对这种主芯片可以被破解的产品方案,开发者需要在开发时在产品方案 中使用加密芯片并设计合理的加密方案。开发者首先需要选定性价比高的加密芯片, 然后再设计加密方案。
取随机数指令 ―――――――→ 返回随机数(E) ←―――――――
密文写数据指令(Data’) ―――――――→
返回状态码
←――――――― 客户自定义调用指令(XX)
―――――――→
返回功能数据(YY)和状态码
←―――――――
②产生随机数 D2,并由 D1⊕D2 生 成新的随机数 D3
④读取数据内容,得到 明文数据 Data
功能说明
STM32
①发送取随机数指令
外部认证 (加密芯片对 SMT32 认证)
(可选)
内部认证 (SMT32 对加 密芯片认证)
(可选)
密文校验 PIN (可选)
③用外部认证密钥加密 A 得到密文 A’,发送外部认证指令
⑤获取状态码 成功,继续执行 失败,错误处理 ①生随机数 B,并
发送内部认证指令 ③用内部认证密钥校验 B’
③执行自定义函数并返回结果
① STM32 与 SMEC98SP 间的 I2C 协议指令接口规则开发者自定义。
② 上述加解密密钥均为对称 DES 或 3DES 密钥,每一对密钥开发者须在开发时分别在 STM32 和 SMEC98SP 上同时存 储相同的值。
③ 上述随机数都是 8 字节随机数,加解密算法采用 DES 或 3DES。客户也可以根据自身需要设计或使用其他加解 密算法。
返回状态码
←―――――――
内部认证指令(B) ―――――――→
返回内部认证数据(B’) ←―――――――
取随机数指令 ―――――――→ 返回随机数(C) ←――――――― Verify PIN (PIN’) ―――――――→
返回状态码
←―――――――
SMEC98SP
②产生随机数 A
④校验 A’并返回状态码
⑥由 D1⊕D2 生成新的随机数 D3 由数据加密密钥加密随机数百度文库D3
得到过程密钥 D3’ ⑦使用过程密钥 D3’解密密文数据
Data’得到明文数据 Data
①发送取随机数指令
密文写数据 (可选)
③由数据加密密钥加密随机数 E 得到 过程密钥 E’ ,使用过程密钥 E’加密 数据 Data 得到密文数据 Data’并发
④ SMEC98SP 随机数发生器产生的随机数是真随机数,这样可以保证关键数据在通讯时每次都是随机数参与的, 每次通讯的数据密文都是不一样的,可有效防止破解者在 I2C 通道上的数据监听分析。
⑤ DES 或 3DES 加解密数据块必须为 8 字节整数倍,加密原始数据不是 8 的整数倍的按开发者自己定义补足 8 的 整数倍,对于密文读写数据建议按 LV 结构补,比如:
送密文写数据指令
⑥获取并处理状态码
SMT32 调用 加密芯片内关 键算法和功能
函数 (必选)
注:
①调用用户自定义代码功能 ④获取处理状态码和返回数据(YY)
取随机数指令(D1) ―――――――→ 返回随机数(D2) ←――――――― 密文读数据指令 ―――――――→
返回密文数据(Data’) ←―――――――
②用内部认证密钥加密 B 得到 密文 B’并返回给 SMT32
②产生随机数 C ⑤由加密密钥加密 C 得到
加密过程密钥 C’ ⑥使用加密过程密钥 C’解密
PIN’得到明文 PIN ⑦校验 PIN,并返回校验状态
①产生随机数 D1, 并发送 D1 和取随机数指令
密文读数据 (可选)
③发送密文读取数据指令
市面上加密芯片一般有两种:一种是传统的逻辑加密芯片,可配数据与主芯片 做相互认证起到简单的加密功能;另一种是智能卡内核的可编程 CPU 加密芯片,可以 将主芯片部分核心的算法、功能代码以及核心数据放入加密芯片。
本方案选用具有智能卡内核的加密芯片 SMEC98SP 来举例实现使用 STM32 作为主 芯片的产品的加密方案。SMEC98SP 提供 2K Bytes RAM、24K Bytes CODE,8K Bytes Data,用户可根据自己的需要来编程设计 SEMC98SP 与 STM32 配合的加密方案。下表 为 SEMC98SP 与 STM32 配的的各种加密功能说明,具体可参见 SMEC98SP 评估板 (STM32)源代码。
z 原始数据为 1122334455,补数后的数据为 0511223344558000;
z 原始数据为 11223344556677,补数后的数据为 0711223344556677
z 原始数据为 1122334455667788,补数后的数据为 08112233445566778880000000000000
相关文档
最新文档