173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

公钥和私钥对称加密

keros@mark 2022-10-23 资讯中心

本篇文章给大家谈谈公钥和私钥对称加密以及对应的知识点,希望对各位有所帮助。

本文目录一览

对称密钥体制与公钥密钥体制的特点各自是什么?各有何优缺点

对称密钥体制是加密密钥与解密密钥密码相同,两个参与者共享同一个密钥。

公钥密码体制是使用不同的加密密钥和解密密钥,加密密钥是公开信息,而解密密钥需要保密。

公钥密码体制有很多良好的特性,它不仅可以用来加密,还可以很方便的用于鉴别和数字签名。但公钥密码算法比对称密钥密码算法要慢好几个数量级。

对称密钥体制的加解密速度快且安全强度高,但密钥难管理和传送,不适于在网络中单独使用。

密钥的产生

1、选择两个大素数,p和q。

2、计算:n = p * q (p,q分别为两个互异的大素数,p,q必须保密,一般要求p,q为安全素数,n的长度大于512bit,这主要是因为RSA算法的安全性依赖于因子分解大数问题)。有欧拉函数(n)=(p-1)(q-1)。

3、然后随机选择加密密钥e,要求e和( p - 1 ) * ( q - 1 )互质。

4、最后,利用Euclid算法计算解密密钥d,满足de≡1(modφ(n))。其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。

关于公私钥、各种证书、https基本概念扫盲

最近实习需要写一些生成证书的脚本,借此机会顺便搞清楚了许多关于证书这块的疑惑。说到这一块东西,名词多到爆炸,对称加密、非对称加密、密钥、密钥库、公钥、私钥、CA、证书、数字签名、ssh、https、ssl、keytool、openssl、PKCS、X.509以及令人眼花缭乱的文件后缀名,cer、crt、pem、keystore、jks、key、p12、pfx...

先听我讲个故事,这次我们不用Bob和Alice,听完之后再去看这些概念,绝壁恍然大悟。

故事背景: 这是2018年,为了能够安全的进行通信,假设每个人都有俩把锁,一个叫A锁,一个叫B锁,这俩把锁和一般的锁有点区别,每把锁上即带有自己的锁孔又带有另一把锁的钥匙,因此A锁和B锁既是锁又是钥匙。 A锁和B锁唯一配对,A锁锁住之后,只有B锁可以打开,同样B锁锁住之后,只有A锁可以打开 。其中一把锁是公开的,而一把锁则自己保管,不公开。假设默认A锁是公开的,B锁是私有的。

故事内容: 阿里巴巴子弟小学的小明想给隔壁班的小花写封表白信,为了不被别人看到,他将信放入在信箱中,并用小花的A锁将信箱锁住,因为小花的B锁(同是A锁的钥匙)只有小花自己有,所以除了小花以外的任何人拿到信件,都无法看到信件内容。同样小花要给小明写信,那么也要用小明的A锁对信件内容进行保护。

小明与小花通过就这样聊了有一段时间,后来小花觉得差不多了,可以进入秀恩爱的阶段了,跟小明说,以后写信别tm加密了,又不是银行卡密码,被人看到又能怎么样呢?只要看了之后别瞎改就行了。于是小明在写完信后,把信里每个字的拼音首字母拼凑了一个字符串,并取名为 消息摘要 ,然后仅仅将消息摘要放入信箱,用自己的B锁锁住这个信箱。虽然信件本身没有放入安全的信箱,但小明作为一个情书高手,随便一封信都是上万字,如果其他人对信件内容做任何改变,那么拼音首字母组成的字符串几乎肯定会改变,因此小花拿到信件后,先用小明的A锁(B锁的钥匙)打开信箱,拿到小明的摘要,然后小花再对信件内容做同样的处理(即计算信件每个字的拼音首字母,实际上不会用这么简单的算法,而是会用不可逆的hash算法),计算出的字符串值如与小明的信息摘要一致,说明这封信就是小明写给自己的,没有被任何人篡改。

故事高潮: 事情并没有那么简单,小花发现小明只是在信件里对自己热情似火,平常见了面连声招呼都不打,一副不认识的样子。终于有一天小花忍不住了,当面质问小明,小明却说,我什么时候给你写情书了,自作多情吧...于是小花把昨天刚收到的情书狠狠甩在了小明脸上:“上面落款不是你小明吗?怎么了,怂了?”小明一看上面还真是自己的名字,但是自己写没写信自己还不知道吗?小明把自己的作业本拿给小花,并叫自己的同桌做笔迹鉴定,小花发现笔迹的确不大像,看来是有人恶作剧,冒充小明给自己写情书,哎,好尴尬啊。。。

故事讲完了,文章开头涉及的所有概念都与信息的安全传输有关,可以说,一切都是为了安全。关于通信安全,我们通常有三个基本的需求

我们以上面的故事为例说一下这三点安全需求,一开始小明与小花通过A锁( 对应公钥 )加密,B锁( 对应私钥 )解密的通信方式即符合第一点,信件内容本身被加密,而因为公私钥唯一配对,只有配对的密钥才可以解密,因此很难被第三人破解。

之后,为了秀恩爱,他们采用了B锁( 私钥 )加密,A锁( 公钥 )解密的通信方式,其中用私钥对消息摘要加密后的字符串称为 数字签名 ,这样虽然信件可以被人直接看到,但如果被人篡改掉后可以轻易发现数据被篡改。本来以为满足第一条和第二条就可以安全的通信了,但最后才发现小明根本不是小明!为什么会出现这样的问题?因为“小明”说他是小明,小花就以为他是小明,他没有提供任何证明自己真的是小明的认证。因此要想安全通信,我们还需要一个权威第三方的机构来做身份认证,这个机构就是CA机构,通过认证后,CA机构会颁发权威的证书,而有了证书就可以证明身份,就不会出现身份被假冒的情况。而认证的过程则需要向CA机构提供自己的身份信息以及私钥。

对称加密就是通信双方或多方采用的密钥是一样的。加解密速度快,但不够安全。因为一旦密钥泄露,谁都可以对数据进行解密。非对称加密就是当然就是通信双方使用的密钥不同。而公钥和私钥就是非对称加密的一种方式。比较常用的对称加密算法如

aes、DES,非对称加密比较常见的则有sha256,RSA。

非对称加密算法有俩个密钥,一个公钥,一个私钥。公钥和私钥必须配对出现,一对公钥和一个私钥统称为一个 密钥 ,而 密钥库 中可以存放多个密钥,即多对公私钥。

如果你用github的话,应该注意到github链接有俩种方式。一种是https,一种是ssh,通过https经常需要输密码,而通过ssh则不需要。回忆你设置ssh的步骤,本地生成了一个密钥对,并将公钥上传到了github。每次传输用自动本地私钥加密,服务器用你上传的公钥解密,就不需要手动输入密码了。

keytool和openssl是俩个证书管理工具.keytool是java JDK自带的证书管理工具,使用keytool可以生成密钥,创建证书。只要装了jdk,并正确设置了环境变量,就可以之间通过命令行执行keytool命令来管理证书。

openssl则是一个开源的安全套接字层密码库,功能比keytool更加丰富。

PKCS全称Public-Key Cryptography Standards 即公钥标准,PKCS已经发布了15个标准。

PKCS#12 包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀

X.509 则是一个通用的证书标准,规定了证书应该包含哪些内容,X.509通常有俩种编码方式,一种是二进制编码,另一种是base64编码

X.509#DER 二进制格式证书,常用后缀.cer .crt

X.509#PEM 文本格式证书,常用后缀.pem

因为http是明文传输,非常不安全,因此又提出了ssl(Secure Sockets Layer即安全套接字)层协议,即在原来的基础上又加了一层协议用于保障安全传输,可以认为https=ssl+http。很多人刚开始接触https,用浏览器F12打开控制台后。可能发现数据仍然没有加密。要注意https是 传输层加密 ,浏览器F12控制台你看到的还是应用层的数据。

因为本文主要是概念扫盲,帮助理解,因此关于这部分具体细节不作介绍。

.keystore和.jks和.truststore都是java用来存放密钥的文件

.key nginx中私钥文件

而不同的证书文件后缀都是为了区分不同种类的证书的,主要有俩个分类维度

比较对称加密算法和公开密钥算法,分析其异同?

基于密钥的算法通常有两类:对称算法和公开密钥算法(非对称算法)。对称算法有时又叫传统密码算法,加密密钥能够从解密密钥中推算出来,反过来也成立。

在大多数对称算法中,加解密的密钥是相同的。对称算法要求发送者和接收者在安全通信之前,协商一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加解密。对称算法的加密和解密表示为: EK(M)=C;DK(C)=M

公开密钥算法(非对称算法)的加密的密钥和解密的密钥不同,而且解密密钥不能根据加密密钥计算出来,或者至少在可以计算的时间内不能计算出来。

之所以叫做公开密钥算法,是因为加密密钥能够公开,即陌生者能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。加密密钥叫做公开密钥(简称公钥),解密密钥叫做私人密钥(简称私钥)。

公开密钥K1加密表示为:EK1(M)=C。公开密钥和私人密钥是不同的,用相应的私人密钥K2解密可表示为:DK2(C)=M。

十大常见密码加密方式

一、密钥散列

采用MD5或者SHA1等散列算法,对明文进行加密。严格来说,MD5不算一种加密算法,而是一种摘要算法。无论多长的输入,MD5都会输出一个128位(16字节)的散列值。而SHA1也是流行的消息摘要算法,它可以生成一个被称为消息摘要的160位(20字节)散列值。MD5相对SHA1来说,安全性较低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。

二、对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

三、非对称加密

非对称加密算法是一种密钥的保密方法,它需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

四、数字签名

数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是在使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。

五、直接明文保存

早期很多这样的做法,比如用户设置的密码是“123”,直接就将“123”保存到数据库中,这种是最简单的保存方式,也是最不安全的方式。但实际上不少互联网公司,都可能采取的是这种方式。

六、使用MD5、SHA1等单向HASH算法保护密码

使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。

七、特殊的单向HASH算法

由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。

八、PBKDF2

该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。

九、BCrypt

BCrypt 在1999年就产生了,并且在对抗 GPU/ASIC 方面要优于 PBKDF2,但是我还是不建议你在新系统中使用它,因为它在离线破解的威胁模型分析中表现并不突出。

十、SCrypt

SCrypt 在如今是一个更好的选择:比 BCrypt设计得更好(尤其是关于内存方面)并且已经在该领域工作了 10 年。另一方面,它也被用于许多加密货币,并且我们有一些硬件(包括 FPGA 和 ASIC)能实现它。 尽管它们专门用于采矿,也可以将其重新用于破解。

智能化时代的到来涉及了各种核心算法,保护算法就能保障开发者权益,杜绝市面上各种山寨品,加密芯片恰好能起到很好的保护作用,如何选择加密芯片呢?KEROS加密芯片专注于加密领域十余年,行业首选。
1.安全性:采用国际通用aes256算法加密并同时通过KAS传送,除基本认证之外,利用2K安全EEPROM,用户可以自己管理密钥和数据,实现双重保护。
2.唯一性:以定制的方式为每一位用户单独定制“专属型号CID”,多用户之间算法不兼容,并且采用固化的方法直接将算法固化到晶圆上而无需烧入。
3.序列号:每颗芯片制造生产时具有5字节全球唯一SN序列号,每颗芯片SN都不会重复。
4.防抄特性:每颗芯片都有自己独特的密钥系统,破解单颗芯片只对这颗芯片对应的产品有效,对整个同类型的产品是无效的,依旧无法通过验证。而且KEROS采用ASIC方法设计,芯片内为纯逻辑电路,封装内有40多层逻辑电路整合了10万多个逻辑门,爆力刨片破解难度可想而知。
5.安全存储:用户可以将保密数据加密之后安全的存放到EEPROM中。公钥和私钥对称加密的介绍就聊到这里吧,感谢你花时间阅读本站内容。

本文标签:公钥和私钥对称加密

产品列表
产品封装
友情链接