《一种采用国密SM1加密芯片的触摸键盘及其加密方法.pdf》由会员分享,可在线阅读,更多相关《一种采用国密SM1加密芯片的触摸键盘及其加密方法.pdf(9页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103853340 A (43)申请公布日 2014.06.11 CN 103853340 A (21)申请号 201410122532.2 (22)申请日 2014.03.28 G06F 3/02(2006.01) G06F 21/83(2013.01) H04L 9/32(2006.01) (71)申请人 广东华大集成技术有限责任公司 地址 518000 广东省深圳市龙岗区龙城街道 龙岗天安数码创业园 4 栋 A 座 16 层 (72)发明人 张亚军 欧阳俊 丘祖国 (74)专利代理机构 深圳市精英专利事务所 44242 代理人 李新林 (54) 发明名称 一种采。
2、用国密 SM1 加密芯片的触摸键盘及其 加密方法 (57) 摘要 本发明公开了一种采用国密 SM1 加密芯片的 触摸键盘及其加密方法。一种采用国密 SM1 加密 芯片的触摸键盘, 包括触摸芯片、 主控 MCU 及用于 连接主控 MCU 与触摸芯片的数据导线, 所述的数 据导线为两线式串行总线的I2C总线, 所述的I2C 总线还连接有国密 SM1 加密芯片。本发明采用硬 核形式的国密 SM1 加密芯片, 对触摸芯片采集到 的采集数据包进行加密, 传输至主控 MCU 之后再 进行解密, 保证了触摸传感信息在传输过程中不 会被窃取, 保障数据应用的安全, 特别适合用于金 融产品的支付终端。 (51)。
3、Int.Cl. 权利要求书 2 页 说明书 4 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书4页 附图2页 (10)申请公布号 CN 103853340 A CN 103853340 A 1/2 页 2 1.一种采用国密SM1加密芯片的触摸键盘, 其特征在于包括触摸芯片、 主控MCU及用于 连接主控MCU与触摸芯片的数据导线, 所述的数据导线为两线式串行总线的I2C总线, 所述 的 I2C 总线还连接有国密 SM1 加密芯片。 2. 根据权利要求 1 所述的一种采用国密 SM1 加密芯片的触摸键盘, 其特征在于所述的 触摸芯片还连接有按键。
4、感应盘。 3. 根据权利要求 2 所述的一种采用国密 SM1 加密芯片的触摸键盘, 其特征在于所述触 摸芯片采集到的采集数据包经加密芯片的加密生成密文数据包, 传输至主控 MCU, 主控 MCU 接收到的密文数据包经由加密芯片的解密生成明文数据包。 4. 根据权利要求 3 所述的一种采用国密 SM1 加密芯片的触摸键盘, 其特征在于所述的 触摸芯片为 TS20 型芯片。 5. 根据权利要求 3 所述的一种采用国密 SM1 加密芯片的触摸键盘, 其特征在于所述的 主控 MCU 为 STM32F103C8T6 型芯片。 6. 一种权利要求 1 所述的触摸键盘的加密方法, 其特征在于其中触摸芯片采集。
5、的采集 数据包采用 ECB 进行块操作模式, 按照以下步骤对采集数据包进行加密 : 1) 用 Ld 表示明文数据的长度, 在明文数据前加上 Ld 产生新的数据块 ; 2) 将该数据块分成以分组长度 128 位为单位的数据块, 表示为块 1、 块 2、 块 n ; 3) 如果最后或唯一的数据块的长度是分组长度, 转到第四步 ; 如果不足分组长度, 则在 其后填充 16 进制数 80 , 如果达到分组长度, 则转到步骤 4) ; 否则在其后填充 16 进制数 00 直到长度达到分组长度 ; 4) 采用国密 SM1 加密芯片的加密密钥对每一个数据块进行加密 ; 5) 计算结束后, 所有加密后的数据块。
6、依照原顺序连接在一起, 形成密文数据包 ; 其中的明文数据是指触摸芯片采集到的采集数据包。 7.根据权利要求6所述的加密方法, 其特征在于所述主控MCU接收到密文数据包, 对其 进行以下步骤的解密 : 1) 将该密文数据包分成以分组长度 128 位为单位的数据块, 表示为块 1、 块 2、 块 n ; 2) 采用国密 SM1 加密芯片的解密密钥对每一个数据块进行解密 ; 3) 计算结束后, 所有解密后的数据块依照原顺序连接在一起 ; 4) 第一个字节为 Ld, 从第二字节起, 取前 Ld 字节数据作为明文数据包输出。 8. 根据权利要求 7 所述的加密方法, 其特征在于触摸芯片的采集数据包经过。
7、加密成 为密文数据包, 传输至主控 MCU, 再解密为明文数据包, 在密文数据包中, 包含有报文认证码 MAC ; 所述的报文认证码 MAC 按以下步骤计算 : 1) 终端 GETCHALLENGE 命令从 SAM 获得一个 4 字节或 8 字节随机数, 其后补 12 字节或 8 字节 00 作为初始数据 ; 2) 将所有输入数据按指定顺序连接成一个数据块 ; 3) 将该数据块分成以分组长度 128 位为单位的数据块, 表示为块 1、 块 2、 块 n ; 4) 在最后的数据块后填充 16 进制数 80 , 如果此时达到分组长度, 则转到第五步 ; 否 则在其后填充 16 进制数 00 直到长。
8、度达到分组长度 ; 5) 采用国密 SM1 加密芯片的认证密钥逐一对这些数据块进行加密产生 MAC ; 权 利 要 求 书 CN 103853340 A 2 2/2 页 3 6) 将 16 字节运算结果按 4 字节分块做异或运算, 生成报文认证码 MAC ; 其中的终端为主控 MCU, SAM 为存储有密钥的存储卡, GETCHALLENGE 命令为取随机数命 令, MAC 为校验码。 9. 根据权利要求 8 所述的加密方法, 其特征在于计算报文认证码 MAC 的步骤 5) 中, 块 1 的数据与初始数据经认证密钥生成认证密文 1, 认证密文 1 与块 2 的数据再经认证密钥生 成认证密文2,。
9、 以此类推, 直至认证密文n-1与块n的数据再经认证密钥生成认证密文n ; 所 述的认证密文 n 为 MAC。 权 利 要 求 书 CN 103853340 A 3 1/4 页 4 一种采用国密 SM1 加密芯片的触摸键盘及其加密方法 技术领域 0001 本发明涉及一种加密传输的键盘结构, 更具体地说是指一种采用国密 SM1 加密芯 片的触摸键盘及其加密方法。 背景技术 0002 在当今的市场上, 有不少可供选择的算法来应对数据安全危机, 面对数据加密安 全的重要性, 国家相关管理部门加强了对政府和企业数据安全系统的管理, 要求主要部门 的安全系统加密算法使用国密算法国家商用密码 (SM) 。。
10、国家商用密码算法由国家密 码管理委员会制定并管理, 算法属于国家机密, 资料采用不公开形式。在此, 采用 I2C 总线 协议和国密 SM1 算法的结合应用在触摸键盘中, 特别给互联网终端支付等金融支付产品带 来很大的优异性和安全性。目前, 器件之间的传输方式有各种各样的总线方式, 其中的 I2C 总线是一种仅需两根信号线且为双向、 串行、 多主控接口标准的协议总线, 具有总线仲裁机 制, 非常适合在器件之间进行近距离、 非常常性的数据通信, 并且可以依靠协议体系中含有 目的设备地址的传输数据来实现设备组网。在触摸按键应用中, 充分地体现出 I2C 总线协 议的应用性特点。 0003 但目前在触。
11、摸键盘中, 尚未出现采用国密 SM1 算法的加密产品。 发明内容 0004 本发明的目的在于克服现有技术的缺陷, 提供一种采用国密 SM1 加密芯片的触摸 键盘及其加密方法。 0005 为实现上述目的, 本发明采用以下技术方案 : 0006 一种采用国密SM1加密芯片的触摸键盘, 包括触摸芯片、 主控MCU及用于连接主控 MCU 与触摸芯片的数据导线, 所述的数据导线为两线式串行总线的 I2C 总线, 所述的 I2C 总 线还连接有国密 SM1 加密芯片。 0007 其进一步技术方案为 : 所述的触摸芯片还连接有按键感应盘。 0008 其进一步技术方案为 : 所述触摸芯片采集到的采集数据包经加。
12、密芯片的加密生成 密文数据包, 传输至主控 MCU, 主控 MCU 接收到的密文数据包经由加密芯片的解密生成明文 数据包。 0009 其进一步技术方案为 : 所述的触摸芯片为 TS20 型芯片。 0010 其进一步技术方案为 : 所述的主控 MCU 为 STM32F103C8T6 型芯片。 0011 触摸键盘的解密方法, 其中触摸芯片采集的采集数据包采用 ECB 进行块操作模 式, 按照以下步骤对采集数据包进行加密 : 0012 1) 用 Ld(1 字节) 表示明文数据的长度, 在明文数据前加上 Ld 产生新的数据块 ; 0013 2) 将该数据块分成以分组长度 128 位为单位的数据块, 表。
13、示为块 1、 块 2、 块 n ; 0014 3) 如果最后 (或唯一) 的数据块的长度是分组长度, 转到第四步 ; 如果不足分组长 说 明 书 CN 103853340 A 4 2/4 页 5 度, 则在其后填充 16 进制数 80 , 如果达到分组长度, 则转到步骤 4) ; 否则在其后填充 16 进制数 00 直到长度达到分组长度 ; 0015 4) 采用国密 SM1 加密芯片的加密密钥对每一个数据块进行加密 ; 0016 5) 计算结束后, 所有加密后的数据块依照原顺序连接在一起, 形成密文数据包 ; 0017 其中的明文数据是指触摸芯片采集到的采集数据包。 0018 其进一步技术方案。
14、为 : 所述主控 MCU 接收到密文数据包, 对其进行以下步骤的解 密 : 0019 1) 将该密文数据包分成以分组长度 128 位为单位的数据块, 表示为块 1、 块 2、 、 块 n ; 0020 2) 采用国密 SM1 加密芯片的解密密钥对每一个数据块进行解密 ; 0021 3) 计算结束后, 所有解密后的数据块依照原顺序连接在一起 ; 0022 4) 第一个字节为 Ld, 从第二字节起, 取前 Ld 字节数据作为明文数据包输出。 0023 其进一步技术方案为 : 触摸芯片的采集数据包经过加密成为密文数据包, 传输至 主控 MCU, 再解密为明文数据包, 在密文数据包中, 包含有报文认证。
15、码 MAC ; 所述的报文认证 码 MAC 按以下步骤计算 : 0024 1) 终端 GETCHALLENGE 命令从 SAM 获得一个 4 字节 (或 8 字节) 随机数, 其后补 12 字节 (或 8 字节) 00 作为初始数据 ; 0025 2) 将所有输入数据按指定顺序连接成一个数据块 ; 0026 3) 将该数据块分成以分组长度 128 位为单位的数据块, 表示为块 1、 块 2、 块 n ; 0027 4) 在最后的数据块后填充 16 进制数 80 , 如果此时达到分组长度, 则转到第五 步 ; 否则在其后填充 16 进制数 00 直到长度达到分组长度 ; 0028 5) 采用国密。
16、 SM1 加密芯片的认证密钥逐一对这些数据块进行加密产生 MAC ; 0029 6) 将 16 字节运算结果按 4 字节分块做异或运算, 生成报文认证码 MAC ; 0030 其中的终端为主控 MCU, SAM 为存储有密钥的存储卡, GETCHALLENGE 命令为取随机 数命令, MAC 为校验码。 0031 其进一步技术方案为 : 计算报文认证码 MAC 的步骤 5) 中, 块 1 的数据与初始数据 经认证密钥生成认证密文 1, 认证密文 1 与块 2 的数据再经认证密钥生成认证密文 2, 以此 类推, 直至认证密文 n-1 与块 n 的数据再经认证密钥生成认证密文 n ; 所述的认证密。
17、文 n 为 MAC。 0032 本发明与现有技术相比的有益效果是 : 本发明采用硬核形式的国密 SM1 加密芯 片, 对触摸芯片采集到的采集数据包进行加密, 传输至主控 MCU 之后再进行解密, 保证了触 摸传感信息在传输过程中不会被窃取, 保障数据应用的安全, 特别适合用于金融产品的支 付终端。在 I2C 总线传输协议过程中有相关保护密钥作保护, 并以密文的形式通信传输数 据, 还可以由硬件实现的 SM1 算法加密, 即使被一些非法设备监听到, 因为没有解密密钥和 相关算法, 基本无法得到数据明文。 同时在生成密文中都有随机数的参与, 因为每次生成的 随机数完全不同, 且没有规律可循, 即使。
18、通过破译手段拿到密钥明文, 也无法重现上一次认 证或交易的随机数, 有效抵抗了数据重放攻击, 其中密钥的注入均采用密文加 MAC (Message AuthenticationCode, 报文鉴别码) 的方式, 能在最大限度上避免应用密钥的泄漏, 而报文 说 明 书 CN 103853340 A 5 3/4 页 6 认证码的计算采用分组长度为 128 位分组计算。 0033 下面结合附图和具体实施例对本发明作进一步描述。 附图说明 0034 图 1 为本发明一种采用国密 SM1 加密芯片的触摸键盘的方框结构示意图 ; 0035 图 2 为本发明加密方法具体实施例的加密过程示意图 ; 0036 。
19、图 3 为本发明加密方法具体实施例的解密过程示意图 ; 0037 图 4 为本发明加密方法具体实施例的生成报文认证码 MAC 的过程示意图。 0038 附图标记 0039 10 触摸芯片 20 主控 MCU 0040 30 加密芯片 40 按键感应盘 具体实施方式 0041 为了更充分理解本发明的技术内容, 下面结合具体实施例对本发明的技术方案进 一步介绍和说明, 但不局限于此。 0042 如图 1- 图 2 所示的本发明一种采用国密 SM1 加密芯片的触摸键盘, 包括触摸芯片 10、 主控 MCU20 及用于连接主控 MCU20 与触摸芯片 10 的数据导线, 数据导线为两线式串行 总线的 。
20、I2C 总线, I2C 总线还连接有国密 SM1 加密芯片 30。触摸芯片 10 还连接有按键感应 盘40。 其中, 触摸芯片10采集到的采集数据包经加密芯片30的加密生成密文数据包, 传输 至主控 MCU20, 主控 MCU 接收到的密文数据包经由加密芯片的解密生成明文数据包。 0043 本实施例中, 触摸芯片为 TS20 型芯片 ; 主控 MCU 为 STM32F103C8T6 型芯片。 0044 于其它实施例中, 触摸芯片和主控 MCU 也可以是采用用其它型号的芯片。 0045 于其它实施例中, 0046 如图 2- 图 4 所示, 本发明加密方法的具体过程说明如下 : 0047 数据 。
21、(即采集数据包) 的加密解密计算采用 ECB 作为块操作模式。 0048 按照如下步骤对数据进行加密 : 0049 第一步 : 用 Ld(1 字节) 表示明文数据的长度, 在明文数据前加上 Ld 产生新的数 据块。 0050 第二步 : 将该数据块分成以分组长度128位为单位的数据块, 表示为块1、 块2、 、 块 n。 0051 第三步 : 如果最后 (或唯一) 的数据块的长度是分组长度, 转到第四步 ; 如果不足分 组长度, 则在其后填充 16 进制数 80 , 如果达到分组长度, 则转到第四步 ; 否则在其后填充 16 进制数 00 直到长度达到分组长度。 0052 第四步 : 按照图 。
22、2 所述的过程使用加密密钥对每一个数据块进行加密。 0053 第五步 : 计算结束后, 所有加密后的数据块依照原顺序连接在一起。 0054 按照如下步骤对数据进行解密 : 0055 第一步 : 将该数据块分成以分组长度128位为单位的数据块, 表示为块1、 块2、 、 块 n。 0056 第二步 : 按照图 3 所述的算法使用解密密钥对每一个数据块进行解密。 说 明 书 CN 103853340 A 6 4/4 页 7 0057 第三步 : 计算结束后, 所有解密后的数据块依照原顺序连接在一起。 0058 第四步 : 第一个字节为 Ld, 从第二字节起, 取前 Ld 字节数据作为明文输出。 0。
23、059 关于报文认证码 MAC : 0060 报文认证码的计算采用分组长度为 128 位分组计算, 采用 CBC 分组操作模式。 0061 按照如下步骤计算报文认证码 MAC 0062 第一步 : 终端 GETCHALLENGE 命令从 SAM 获得一个 4 字节 (或 8 字节) 随机数, 其后 补 12 字节 (或 8 字节) 00 作为初始数据。 0063 第二步 : 将所有输入数据按指定顺序连接成一个数据块。 0064 第三步 : 将该数据块分成以分组长度128位为单位的数据块, 表示为块1、 块2、 、 块 n。 0065 第四步 : 在最后的数据块后填充 16 进制数 80 , 如。
24、果此时达到分组长度, 则转到 第五步 ; 否则在其后填充 16 进制数 00 直到长度达到分组长度。 0066 第五步 : 按图 4 所示的过程对这些数据块使用指定密钥进行加密来产生 MAC。 0067 第六步 : 将 16 字节运算结果按 4 字节分块做异或运算, 作为报文认证码 MAC。 0068 本发明具有以下优点 : 0069 通过采用不公开的国密 SM1 算法, 并设计相应的数据加密传输、 随机数计算、 密钥 分散更新以及系统操作员安全认证等安全控制技术, 保障数据应用的安全, 特别是在用于 金融产品的支付终端。I2C 总线协议和国密 SM1 算法的结合应用旨在能够在便捷的总线协 议。
25、操作中全面保证数据的安全性。合理的设计模式可在实际运用中保证数据传输的安全 性。在 I2C 总线传输协议过程中有相关保护密钥作保护, 并以密文的形式通信传输数据, 还 可以由硬件实现的 SM1 算法加密, 即使被一些非法设备监听到, 因为没有解密密钥和相关 算法, 基本无法得到数据明文。I2C 总线协议与国密 SM1 算法相铺相成, 构成了用户的安全 信息。 同时在生成密文中都有随机数的参与, 因为每次生成的随机数完全不同, 且没有规律 可循, 即使通过破译手段拿到密钥明文, 也无法重现上一次认证或交易的随机数, 有效抵抗 了数据重放攻击, 其中密钥的注入均采用密文加 MAC (MessageAuthenticationCode, 报文鉴 别码) 的方式, 能在最大限度上避免应用密钥的泄漏, 而报文认证码的计算采用分组长度为 128 位分组计算。 0070 上述仅以实施例来进一步说明本发明的技术内容, 以便于读者更容易理解, 但不 代表本发明的实施方式仅限于此, 任何依本发明所做的技术延伸或再创造, 均受本发明的 保护。本发明的保护范围以权利要求书为准。 说 明 书 CN 103853340 A 7 1/2 页 8 图 1 图 2 图 3 说 明 书 附 图 CN 103853340 A 8 2/2 页 9 图 4 说 明 书 附 图 CN 103853340 A 9 。