加密芯片原理以及如何选择加密芯片
前端时间有研究多款加密芯片,加密算法实现,以及破解可能,也有一些个人的观点,仅供参考;
一,加密芯片的来源及工作流程:
市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法加密来实现的,流程大致如下:
主控芯片生成随机码 --> 主控芯片给加密芯片发送明文 --> 加密芯片通过加密算法对明文进行加密生成密文 --> 加密芯片返回密文给主控芯片 --> 主控芯片对密文进行解密生成解密值 --> 主控芯片对解密值与之前明文进行对比, 比较值一致则认证通过(认证不通过可进行关机操作);
(用户一般需要集成加密芯片商提供的解密库文件,调用指定库文件接口,来实现解密)
目前市面上的加密芯片种类繁多,从几毛钱到十几块钱价格不等;
二,不同类型加密芯片主要区别:
1)加密算法实现不同:各种加密芯片都是厂家根据需求选择自己偏好的加密算法,进行更改适配,或者直接使用自己自定义的算法进行加密,常见算法介绍及比较详见附录1;
2)封装不同,常见的加密芯片封装有:SOT-23-3,SOT23-6,SOP-8、SOIC-8等;根据板段的设计可选择不同的封装对应的芯片;
3)其他区别:传输协议(I2C、SPI、UART、或者厂家自定义协议)不同,认证速率可靠性不同,开发适配难度差异等;
三,加密芯片的应用:
加密芯片一般广泛应用于给电子产品,防止抄板防止破解,部分常用产品(相机,监控摄像头,儿童数码玩具,行车记录仪,游戏机教育机,执法记录仪,安防设备,平板电脑,对讲机,会议系统,以及其他各种系统电子产品,行业工控机等产品);
四,加密芯片破解的基本操作:
加密芯片破解,一般破解公司会通过抓取明文以及密文内容,通过读取大量不同的明文和密文值,进行算法分析和破解,当耗费大量时间经历将加密算法分析出来后,另选一个相同封装尺寸的加密芯片,集成破解算法后替换原有加密芯片;
备注:特别需要注意的是,明文的发送,建议使用真正的不可预知的随机数进行发送(如果每次都发送固定的几组明文,破解人员只需将该明文对应密文抓取出来,收到明文返回对应密文即可完成破解),建议在代码多个地方进行加密认证;在明文真正做到随机数的情况下,破解难度就取决于加密算法的复杂程度了;当然也会有其他更安全的因素可以提高破解风险,在此就不过多论述了;
五,加密芯片的如何选择(仅个人认为):
1)价钱:在产品量大情况下,建议选择便宜的加密芯片,大批量产品价格能够在一元一下会比较合适(当然越便宜越好);
2)安全性:不同加密芯片,主要却别在于所选单片机不一样,加密芯片开发人员不一样,加密方式实现的差异;只要加密芯片实现方式上没有很大漏洞,以及加密算法不过于简单,所选加密芯片基本会有一定安全性, 大品牌加密方式复杂但破解者也更多,相比而言亦不占优势,小品牌不知名加密芯片加密算法复杂性可能欠缺但无人破解,相对也会有一定安全性;
3)其他:①加密芯片最好选择有私有密钥的(这样针对不同客户的加密芯片就会有区别);②如果可能可以与加密芯片提供方要求,在原有加密算法基础上,集成一部分自己的数学运算进入到加密芯片算法内,以提高加密性;③如果对认证速率有要求最好选择认证速率相对较快的芯片,这样不会影响到开机速度和系统运行;
之前使用过“KT-AES加密芯片”性价比相对较高(另一篇文章有介绍如何适配),对于加密芯片如何选择不做具体推荐,选择哪款加密芯片视个人情况进行筛选;
A)其中市面常见的加密算法如下:
①MD5算法:MD5 用的是 哈希函数,它的典型应用是对一段信息产生 信息摘要,以 防止被篡改。严格来说,MD5 不是一种 加密算法 而是 摘要算法。无论是多长的输入,MD5 都会输出长度为 128bits 的一个串 (通常用 16 进制 表示为 32 个字符)。
②SHA1算法:SHA1 是和 MD5 一样流行的 消息摘要算法,对于长度小于 2 ^ 64 位的消息,SHA1 会产生一个160 位的 消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被应用在检查 文件完整性 以及 数字签名 等场景;
③HMAC算法:HMAC 是密钥相关的 哈希运算消息认证码(Hash-based Message Authentication Code),HMAC 运算利用 哈希算法 (MD5、SHA1 等),以 一个密钥 和 一个消息 为输入,生成一个 消息摘要 作为 输出。
④DES算法:DES 加密算法是一种 分组密码,以 64 位为 分组对数据 加密,它的 密钥长度 是 56 位,加密解密 用 同一算法。DES 加密算法是对 密钥 进行保密,而 公开算法,包括加密和解密算法。这样,只有掌握了和发送方 相同密钥 的人才能解读由 DES加密算法加密的密文数据。因此,破译 DES 加密算法实际上就是 搜索密钥的编码。对于 56 位长度的 密钥 来说,如果用 穷举法 来进行搜索的话,其运算次数为 2 ^ 56 次。
⑤3DES算法:是基于 DES 的 对称算法,对 一块数据 用 三个不同的密钥 进行 三次加密,强度更高。
⑥AES 加密算法是密码学中的 高级加密标准,该加密算法采用 对称分组密码体制,密钥长度的最少支持为 128 位、 192 位、256 位,分组长度 128 位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的 区块加密标准。AES 本身就是为了取代 DES 的,AES 具有更好的 安全性、效率 和 灵活性。
⑦RSA算法:RSA 加密算法是目前最有影响力的 公钥加密算法,并且被普遍认为是目前 最优秀的公钥方案 之一。RSA 是第一个能同时用于 加密 和 数字签名 的算法,它能够 抵抗 到目前为止已知的 所有密码攻击,已被 ISO 推荐为公钥数据加密标准。
⑧ECC算法:
ECC 也是一种 非对称加密算法,主要优势是在某些情况下,它比其他的方法使用 更小的密钥,比如 RSA 加密算法,提供 相当的或更高等级 的安全级别。不过一个缺点是 加密和解密操作 的实现比其他机制 时间长 (相比 RSA 算法,该算法对 CPU 消耗严重)。
B)加密算法对比:
附图1_1:散列算法比较 :
附图1_2:对称加密算法比较 :
附图1_3:非对称加密算法比较:
安全芯片如何应用于物联网设备身份认证和防抄板领域
在目前物联网和智能设备发展膨胀的时代,相信很多创业者或者开发者都希望能在这个领域能大展宏图,确实很多产品idea确实非常有价值。但是,同时也会担心这些创新产品或者商业模式是否一夜之间被抄得体无完肤,最终给别人做嫁衣。在国内的目前知识产权的现状来看,通过法律手段去争取权益往往是无功而返。笔者(今日头条号:物联网那些事)来专业分析下如何解决这些问题。
首先必须承认,物联网(iot)设备,智能电子设备等数字安全现在是电子设计领域最热门的话题之一,不过对于许多企业或者产品人员,当提到安全性时,脑海中闪现出的第一个词可能就是加密。可能只有极少数人会想到安全认证。但是,真正的设备和身份安全不仅仅是单纯的加密,安全认证和保护在设备安全中气到了非常重要的作用。
通俗的讲:物联网身份认证,防抄板,固件保护等一系列功能都离不开安全认证。想通过其他方式,不存在的!
为什么要用安全认证?
安全认证是电子设备参与安全交互和使用的基础功能。特别是在物联网(iot)领域,安全认证非常重要:不可信的终端可能会将整个基础设施置于危险之中。据一个简单例子,我们现在越来越多的使用带互联网接入功能的电子设备,比如说智能摄像头,智能电饭煲,智能音箱等设智能家居设备,还有共享单车等需要认证使用的设备,如果没有安全认证功能,任何一个节点的入侵都会造成用户或者厂商的巨大损失。另外的一个点是对于共享设备或者具备有唯一性产权的设备,必须用安全芯片来保证设备不被抄袭使用,即我们理解的防抄板。
比较优秀的安全芯片一般会有两个功能:
1. 保护电子设备不被抄袭或者入侵,确保设备本体不被抄袭。
2.接入物联网可执行身份认证核心功能,确保商业盈利模式不被盗用。
安全认证芯片方案比较
现在我们已经理解了安全认证的重要性,接下来我们讨论如何实施。最简单的安全认证方法是使用密码。但是由于攻击者很容易监听通信、记录密码,然后用其来对非真实的设备进行安全认证。所以,我们认为基于密码的安全认证方法比较薄弱。
电子领域执行安全认证的更好方法是握手应答方法。我们来看看两种方式的握手应答方法:
一种基于对称加密,另一种基于非对称加密。
对称加密安全认证依赖于共享密钥。主机和被认证设备持有相同的密钥。主机向设备发送一个随机数,即质询。设备计算一个数字签名,该签名是密钥和质询的函数,并发送回主机。主机执行相同的运算并对结果进行比较。如果两项计算结果一致,则设备通过安全认证(如下图)。为了确保结果不被模仿,必须使用数学属性足够的函数;例如必须保证不可能通过计算结果获得密钥。SHA-256等安全散列函数满足这些要求。对于握手应答方法,设备在不泄露密钥的情况下证明自己知道密钥。即使攻击者拦截通信,也无法接触到密钥。
1. 基于对称算法加密的安全认证依赖于主机和设备之间的共享密钥。如下图所示:
对称算法体系认证架构
非对称密钥安全认证依赖于公钥和私钥。
基于非对称加密的安全认证依赖于两个密钥:私钥和公钥。只有被认证的设备知道私钥,而公钥可透露给希望对设备进行安全认证的任何一方。与上文中讨论的方法一样,主机向设备发送质询。设备根据质询和私钥计算数字签名,并将其发送给主机(如下图)。但此时,主机使用公钥对数字签名进行验证。用于计算数字签名的函数拥有特定数学属性至关重要。非对称方法中最常用的函数是RSA和ECDSA。同样,设备也在不泄露密钥情况下提交了自己知道密钥的证明,即私钥。
非对称算法体系认证架构
为什么安全芯片有益于安全认证
握手应答安全认证始终要求被认证的对象持有密钥。对称加密方法中,该密钥为主机和设备之间的共享密钥;对于非对称加密方法,该密钥为私钥。无论哪种情况,一旦密码泄露,质询-应答式安全认证就失效了。安全IC有助于防范这种情况。安全芯片的一项基本特性是为密钥和密码提供强保护功能。
在安全芯片认证体系中,有三种支持安全认证的解决方案。
安全认证芯片:芯片是可配置但固定功能的器件,为实施质询-应答安全认证提供最经济的途径,并且具有基本的加密操作。
安全微控制器:在支持握手应答安全认证的基础上,提供全面的密码学功能,包括加密关键数据存储,身份认证等。
安全认证芯片中,基于SHA-256的产品支持基于共享密钥的安全认证(图3),而基于ECDSA或者RSA的安全芯片使用私钥/公钥对(图4)。除了具备专用的加密算法引擎外,这些产品拥有板载EEPROM存储器。该存储器是可配置的,可用于储存经过安全认证的用户数据,比如安全配置,安全密钥,认证证书等等。可以实现具备pki认证体系的一系列功能。
图3 sha256密钥安全认证架构
图4. 基于ECDSA的安全认证算法依赖于私钥/公钥对。
安全认证是一个前期产品方案设计时就需要重点考虑的问题,很关键也很重要。当然,如果需要讨论相关技术与方案可以私信本头条号或者留言。
相关问答
如何防止自己设计的电路被其他人抄袭?
设计的电路被其他人抄袭,要防止很难。通常电路板上的电器原理可以反测出来,结合集成电路型号、元器件的功能。软件较难抄袭,但是也有办法,用逻辑分析仪器,...