硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理

硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理前端时间有研究多款加密芯片,加密算法实现,以及激活成功教程可能,也有一些个人的观点,仅供参考;一,加密芯片的来源及工作流程:市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法加密来实现的,流程大致如下:主控芯片生成随机码–>主控芯片给加密芯片发送明文–>加密芯片通过加密算法对明文进行加密生成密文–>加密芯片返回密文给主控芯片–>主控芯片对密文进行解密生成解密值–>主控芯片对解密值与之前明文进行对比,比较.

大家好,又见面了,我是你们的朋友全栈君。

前端时间有研究多款加密芯片,加密算法实现,以及激活成功教程可能,也有一些个人的观点,仅供参考;

 

一,加密芯片的来源及工作流程:

市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法加密来实现的,流程大致如下:

主控芯片生成随机码 –> 主控芯片给加密芯片发送明文 –> 加密芯片通过加密算法对明文进行加密生成密文 –> 加密芯片返回密文给主控芯片 –> 主控芯片对密文进行解密生成解密值 –> 主控芯片对解密值与之前明文进行对比, 比较值一致则认证通过(认证不通过可进行关机操作);

(用户一般需要集成加密芯片商提供的解密库文件,调用指定库文件接口,来实现解密)

 

目前市面上的加密芯片种类繁多,从几毛钱到十几块钱价格不等;

二,不同类型加密芯片主要区别:

1)加密算法实现不同:各种加密芯片都是厂家根据需求选择自己偏好的加密算法,进行更改适配,或者直接使用自己自定义的算法进行加密,常见算法介绍及比较详见附录1;

2)封装不同,常见的加密芯片封装有:SOT-23-3,SOT23-6,SOP-8、SOIC-8等;根据板段的设计可选择不同的封装对应的芯片;

3)其他区别:传输协议(I2C、SPI、UART、或者厂家自定义协议)不同,认证速率可靠性不同,开发适配难度差异等;

 

三,加密芯片的应用:

加密芯片一般广泛应用于给电子产品,防止抄板防止激活成功教程,部分常用产品(相机,监控摄像头,儿童数码玩具,行车记录仪,游戏机教育机,执法记录仪,安防设备,平板电脑,对讲机,会议系统,以及其他各种系统电子产品,行业工控机等产品);

 

四,加密芯片激活成功教程的基本操作:

加密芯片激活成功教程,一般激活成功教程公司会通过抓取明文以及密文内容,通过读取大量不同的明文和密文值,进行算法分析和激活成功教程,当耗费大量时间经历将加密算法分析出来后,另选一个相同封装尺寸的加密芯片,集成激活成功教程算法后替换原有加密芯片;

备注:特别需要注意的是,明文的发送,建议使用真正的不可预知的随机数进行发送(如果每次都发送固定的几组明文,激活成功教程人员只需将该明文对应密文抓取出来,收到明文返回对应密文即可完成激活成功教程),建议在代码多个地方进行加密认证;在明文真正做到随机数的情况下,激活成功教程难度就取决于加密算法的复杂程度了;当然也会有其他更安全的因素可以提高激活成功教程风险,在此就不过多论述了;

 

五,加密芯片的如何选择(仅个人认为):

1)价钱:在产品量大情况下,建议选择便宜的加密芯片,大批量产品价格能够在一元一下会比较合适(当然越便宜越好);

2)安全性:不同加密芯片,主要却别在于所选单片机不一样,加密芯片开发人员不一样,加密方式实现的差异;只要加密芯片实现方式上没有很大漏洞,以及加密算法不过于简单,所选加密芯片基本会有一定安全性, 大品牌加密方式复杂但激活成功教程者也更多,相比而言亦不占优势,小品牌不知名加密芯片加密算法复杂性可能欠缺但无人激活成功教程,相对也会有一定安全性;

3)其他:①加密芯片最好选择有私有密钥的(这样针对不同客户的加密芯片就会有区别);②如果可能可以与加密芯片提供方要求,在原有加密算法基础上,集成一部分自己的数学运算进入到加密芯片算法内,以提高加密性;③如果对认证速率有要求最好选择认证速率相对较快的芯片,这样不会影响到开机速度和系统运行; 

之前使用过淘宝“CC020加密芯片”性价比相对较高(另一篇文章有介绍如何适配),对于加密芯片如何选择不做具体推荐,选择哪款加密芯片视个人情况进行筛选;

 

(备注:以上为原著个人观点,转摘请标明出处)

 

//————————————————————————————————-

附录1)常见算法介绍及比较:

(算法介绍部分原文链接:https://blog.csdn.net/baidu_22254181/article/details/82594072)

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:散列算法比较 :

硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理

附图1_2:对称加密算法比较  :

硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理

附图1_3:非对称加密算法比较:

硬件加密芯片介绍 及 加密芯片选择(加密IC) 加密芯片原理

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152850.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 结巴分词原理及使用「建议收藏」

    结巴分词原理及使用「建议收藏」目前常用的分词工具很多,包括盘古分词、Yaha分词、Jieba分词、清华THULAC等,现在项目使用的分词方法是结巴分词,本次来介绍一下。安装就不说了可以直接pipinstalljieba或者pycharm的setting中添加即可。通过 importjieba 来引用如下为jieba代码结构及子目录与相应功能的对应;.├──analyse#短语抽取模块│  ├──…

    2022年6月16日
    52
  • pycharm汉化包

    pycharm汉化包更新一个pycharm汉化包,下面给出具体炒作流程1.解压压缩包,里面一共有两个东西第一个文件夹是汉化的所有文件,(简单的说就是第二个文件解压后的文件,不过第二个文件本身并不是压缩包,只是可以用解压的方式打开而已)2.解压以后,将resources_cn复制,粘贴到pycharm的lib目录下,具体目录如下图3.将resources_cn粘贴到这个目录下…

    2022年5月9日
    52
  • c语言和java哪个有前途_Java和C语言哪个好就业?

    c语言和java哪个有前途_Java和C语言哪个好就业?编程语言多达600余种,有畅行多年的,有逐渐被人遗忘的,还有发展迅速的后起之秀。Java和C语言作为使用者较多的两大语言,受到很多编程初学者的青睐,很多人在Java和C语言之间不知道该选哪个,想从事软件开发工作的话,究竟学哪个好呢?从两者的起源来看,Java是C语言的后辈,它是在C语言的基础上发展得来,抛弃了难懂的指针概念,和C完全不同的是Java是一门面向对象的语言,因为Java的跨平台和可移植…

    2022年7月16日
    14
  • 《Java小游戏实现》:贪吃蛇

    《Java小游戏实现》:贪吃蛇《Java小游戏实现》:贪吃蛇在完成坦克大战之后,就想到了贪吃蛇这个小游戏,因为这两个游戏太像了,因此,就决定把这个游戏来尝试的写下。接下来的几篇博文就是来记录这个小游戏实现的全过程。突然,想起,一年前(时间是2015年7月3日),我刚学习Java的时候看过别人写的这个游戏源代码,还专门写了篇博文,连接如下:http://blog.csdn.net/u010412719/article/detail

    2022年7月9日
    20
  • C / C++ 读取文件出现乱码解决方法 | 输出到文件出现乱码

    C / C++ 读取文件出现乱码解决方法 | 输出到文件出现乱码  昨天用C语言写了一下文件读取,发现读出来的全是乱码。这肯定是文字编码不同导致的。    据我查证,C语言的汉字编码方式是由你电脑决定的,所以需要看一下你电脑是什么编码,来确定你需要把文本文件改成什么编码。1.win+R,打开运行框之后输入cmd打开,然后在cmd最上边右键→属性,点开就可以查看当前编码方式,我的电脑是GBK。2.然后修改对应的文本文件编码方式。…

    2022年7月26日
    58
  • Linux下安装mysql-5.7.30详细步骤[通俗易懂]

    Linux下安装mysql-5.7.30详细步骤[通俗易懂]前言下面记录了我在Linux环境下安装Mysql的完整过程,实操记录,只为让更多人少踩坑,本次安装版本为:mysql-5.7.30,64位操作系统官网下载地址:mysql-5.7.30-el7-x86_64.tar.gz1、安装前准备检测系统是否自带mysql[root@localhost/]#rpm-qa|grepmysql如果是,则使用下面命令进行删除:[root@localhost/]#rpm-e–nodeps‘上一步查找的名称’删除成功后,查询所

    2022年5月8日
    120

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号