公钥加密

详解公钥、私钥、数字证书的概念

谁都会走 提交于 2019-12-05 04:51:11
加密和认证   首先我们需要区分加密和认证这两个基本概念。    加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。 公钥和私钥 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。   公钥私钥的原则: 一个公钥对应一个私钥。 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。 用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和私钥。 公钥

RSA加密与解密

拜拜、爱过 提交于 2019-12-05 02:18:21
数据信息安全对我们每个人都有很重要的意义,特别是一些敏感信息,可能一些类似于收货地址、手机号还没引起大家的注意。但是最直白的,银行卡、姓名、手机号、身份证号,如果这些信息被黑客拦截到,他就可以伪装成你,把你的钱都取走。那我们该怎么防止这样的事情发生?报文加密解密,加签验签。 我害怕什么 我害怕卡里的钱被别人取走 我害怕转账的时候,报文被黑客拦截到,篡改信息转到别人的账户。 我害怕我的敏感信息被有心人获取 做一笔游戏充值,半个小时就收到各种游戏广告,我并不能抵挡诱惑 我要做什么 交易报文不被篡改 防止报文被篡改,需要对报文进行验签操作。 敏感信息不被读取 防止报文被读取,则需要将敏感信息加密。 公钥和私钥 公钥和私钥,加密解密和加签验签。加解密用来保证数据安全,加签验签用来证明身份。 商户生成一对公私钥(商公,商私),商户会把公钥给银行;银行也会生成一对公私钥(银公,银私),银行会把公钥给商户。也就是说:商户有银行的公钥,自己的公钥和私钥。银行有商户的公钥,自己的公钥和私钥 加密解密保证数据安全: 商户使用自己公钥加密,银行没有商户私钥解不开报文,排除 商户使用自己的私钥加密,银行使用商户公钥解密。理论上可行,然而会出现这种情况,商户和银行1,2,3都使用相同的公私钥,那么自己私钥加密后发送给银行1的报文,被银行2截取到也可以被解密开,违背了我们加密的目的--保证数据安全,排除。

我所了解的https

。_饼干妹妹 提交于 2019-12-04 22:14:52
  http大家多少都有些了解了,必须要上网的话是肯定会接触到它的。http有个很明显的缺点,就是传输是明文的,很不安全。针对这个情况,就推出了https,也就是http+ssl/tls。   对于明文不安全的问题,大家想到的肯定就是加密了。那么怎么加密呢?   第一种方法,采用对称加密。当客户端与服务器开始连接时,服务器向客户端先发送一个密钥,之后大家都这个密钥进行加解密。这里会产生一个问题,就是服务器在发送密钥的时候,有可能会被中间人截获,那么加密也就没有意义了。   第二种方法,采用非对称加密对第一种方法的密码进行一层额外的加密。当连接开始时,服务器向客户端发送一个公钥,要求客户端用此公钥加密要使用的对称密钥,服务端用私钥解密出来后,大家再一起愉快的使用对称密钥进行传输。那这样安全吗?也不。因为中间人也可以截获服务端发送的公钥(称为A),然后将自己生成的一个公钥(称为B)发送给客户端,那么当客户端发送用公钥B加密后的对称密钥时,中间人先用自己的私钥将 对称密钥 解出,再用公钥A加密发送给服务端,这样中间人也就顺利得到了对称密钥。那么这样也不安全。   这时候我们发现如果只有客户端与服务器两方的话,是无法完成安全的连接的。那么就引入权威的第三方,也就是我们常说的证书颁发机构。   证书颁发机构颁发的证书包含以下信息:     1.证书颁发机构     2.服务端网址     3

区块链 - 非对称加密

自闭症网瘾萝莉.ら 提交于 2019-12-04 20:00:44
章节 区块链 – 介绍 区块链 – 发展历史 区块链 – 比特币 区块链 – 应用发展阶段 区块链 – 非对称加密 区块链 – 哈希(Hash) 区块链 – 挖矿 区块链 – 链接区块 区块链 – 工作量证明 区块链 – 交易流程与挖矿 区块链 – 矿工的激励 区块链 – 默克尔树(Merkle Tree) 区块链 – 付款确认 区块链 – 处理冲突 区块链 – 用户隐私 区块链 – 防范攻击 区块链 – 进一步深入了解 非对称加密技术也被称为公钥密码技术(简称PKI)。它使用2个成对的密钥: 公钥 对外公开 私钥 必须严格保密,保管好不能弄丢 密钥本质上是一个数值,使用数学算法产生。可以用公钥加密消息,然后使用私钥解密;反过来也可以使用私钥加密,用公钥解密,这也被称为签名,相当于用私章盖印,对方就可以使用你的公钥来验证签名真伪(能正常解密)。 非对称加密的优点是解决了密钥的传输问题,因为公钥不怕公开。 对于比特币, 如果你泄漏了比特币钱包的私钥,其他人就可以拿走你钱包中的比特币,你也不能追踪到他,因为比特币网络中,所有账号都是一串数字(实际上就是公钥),是匿名的。 非对称加密技术主要有2个作用: 身份验证 消息加密 下面将介绍。 身份验证 当双方通信时,在发送方和接收方之间建立信任是很重要的。特别是,接收者必须信任消息的来源。例如,Bob向Alice发送一些钱

CA、加签、验签

佐手、 提交于 2019-12-04 20:00:31
加密:加密与解密是同一秘钥称为对称加密,用公钥加密、用私钥解密称为非对称加密。 CA:证书中心"(certificate authority,简称CA),为需认证的公钥做认证的机构。CA用自己的私钥(标记为CA私钥)对需认证的公钥(如公钥AB)和相关信息进行加密,就生成数字证书。数字证书要用CA提供的公钥(标记为CA公钥)解密,这样就可以得到被认证的公钥与相关信息。 (A方)加签:先用Hash函数对数据生成数据的摘要,再使用私钥(标记为私钥AB),对这个摘要加密,就生成数字签名。将这个数字签名和数据一起发送给B方,称为“加入数字签名”过程,简称加签。 (B方)验签:收到A方的数字签名和数据后,取出数字签名,用公钥(标记为公钥AB)解密,如果能得到摘要信息,说明的确是持有与该公钥匹配的私钥的发送方(A方)发出。对收到的数据使用Hash函数生成摘要,将得到的摘要结果,与解密出来的摘要进行对比。如果两者一致,就证明数据未被修改过。这个过程称为验证数字签名,简称验签。 比较复杂的情况是,B方持有公钥AB被C方的流氓软件篡改为公钥BC,但B方还不知道被篡改了。若C方发送它生成的数字签名和数据到B方,B方用被篡改的公钥能解密出摘要并且对比摘要信息也没问题,则B方会误认为该数据和数字签名还是A方发出。所以需要CA对公钥AB和相关信息做成数字证书,A方向B方传输数据时,不仅附上A方数据签名

python中的RSA加密与解密

北慕城南 提交于 2019-12-04 17:37:52
什么是RSA:   RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。   在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。   正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。   RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,截止2017年被普遍认为是最优秀的公钥方案之一。 SET(Secure Electronic Transaction)协议中要求CA采用2048bits长的密钥

面试-HTTPS-身份认证

筅森魡賤 提交于 2019-12-04 17:35:47
作者:浩哥的日常 链接:https://zhuanlan.zhihu.com/p/89905893 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 TLS 传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图, TLS 在建立连接时是需要 客户端发送 ClientHello(包含支持的协议版本、加密算法和 随机数A (Client random) )到服务端 服务端返回 ServerHello、公钥、证书、 随机数B (Server random) 到客户端 客户端使用CA证书验证返回证书无误后。生成 随机数C (Premaster secret) ,用公钥对其加密,发送到服务端 服务端用 私钥 解密得到 随机数C (Premaster secret) ,随后根据已经得到的 随机数ABC生成对称密钥(hello的时候确定的加密算法) ,并对需要发送的数据进行对称加密发送 客户端使用对称密钥(客户端也用随机数ABC生成对称密钥)对数据进行解密。 双方手持对称密钥 使用对称加密算法通讯 而这一流程 服务端的证书 是至关重要的。 证书 证书用来证明公钥拥有者身份的凭证 首先我们需要知道

如何在NEO区块链上实现信息加密

时光总嘲笑我的痴心妄想 提交于 2019-12-04 16:58:58
你或许已经知道,区块链上的交易大多都是透明公开的,用户既可以直接通过RPC查询NEO节点,也可以使用NEOTracker或NEOScan等方便好用的区块链浏览器浏览交易记录、余额、智能合约或区块链上的其他数据。但是,开发某些应用时必须考虑到隐私性,通讯应用就是个典型的例子。如果你想给某人发送一条信息,你想必不希望其他人看到这条信息,因为其中可能包含一些敏感内容。本文笔者将分享一些NEO区块链信息加密的基本知识。 首先让我们再来研究一下NEO区块链交易的剖析图。 NEO交易 上图显示的是交易的基本内存结构。当用户在链上发送GAS或NEO时,钱包客户端就会创建这个数据包并向全网广播。如果你还想了解轻客户端创建或交易基本结构的详情,请参阅Andrei在Steemit上发布的《如何创建NEO轻客户端——区块链开发者的入门“毒品”》。 关于信息通讯,我们关注的只是紧随输入数据之后的元数据,但NEO交易还有一个鲜为人知的功能,即用户可以给任何交易附加交易属性。交易属性是一个广义的概念,基本上指额外的数据信息。所以用户在发送任意数量的NEO或GAS时都可以在交易属性域中附加信息。注:上述机制不适用于NEP-5代币资产。 例如我可以给我的朋友发送0.0000001个GAS并附上信息“你好”。尽管我举例说明的这则信息看似无关紧要,但它却能永久地存储在区块链上,且无法删除。但正如我之前所说的

5分钟理解安卓签名

不羁岁月 提交于 2019-12-04 12:12:41
网上有很多文章讲这个,但是我觉得讲的不够体系,希望我的总结能够让大家快速理解安卓签名到底是个什么。 首先,任何一个名词或者事务的出现一定是要来解决什么问题的,那么安卓签名解决什么问题呢? 场景1: 假设腾讯开发了个应用叫微信,包名(包名就是一个应用在安卓系统的ID)叫做com.wechat 那么现在有个盗版fake公司,开发了一个fake wechat,包名也叫com.wechat 当用户安装盗版fake公司的face wechat的时候,会把腾讯的wechat覆盖掉,这对于用户是不可接受的。 场景2: 腾讯的微信里面的代码被fake修改了,修改后的微信会偷偷扣费,可以呗用户安装和更新,用户安装了以后,就会一直扣钱。这对用户也是不能接受。 为了解决这个问题,安卓系统规定,一个app需要有签名,才能安装。必须签名一致,才能覆盖更新。 那么签名到底是什么?它到底如何解决上面的问题? 带着疑问,我们继续来看,先直观的感受下一个apk的结构 里面有一个叫META-INF的文件夹 META-INF文件夹里面有三个关键文件xx.MF、xx.RSA、xx.SF,这三个玩意儿是签名后产生的。也就是说,这三个文件是签名的关键。 看完结构后,回到我们刚才的问题,微信如何能保证自己不被别人覆盖或者修改,那么微信他可能先要有一个类似于指纹的东西来保证这就是我,这就是签名,其次这个签名如何能保证

(转) 详解公钥、私钥、数字证书的概念

徘徊边缘 提交于 2019-12-04 04:32:08
加密和认证   首先我们需要区分加密和认证这两个基本概念。   加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的权限。其重点在于用户的真实性。两者的侧重点是不同的。 公钥和私钥 公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。   公钥私钥的原则: 一个公钥对应一个私钥。 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。 用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和私钥。 公钥