非对称加密

公钥和私钥

孤人 提交于 2019-12-06 02:21:35
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。用电子邮件的方式说明一下原理。 使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的: 1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。 2. 必须保证是我发送的邮件,不是别人冒充我的。 要达到这样的目标必须发送邮件的两人都有公钥和私钥。 公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上 密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能 用公钥解密。 比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。 首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。 其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。 当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签 验章的机制,A传资料给大家时

.net中加密与解密

主宰稳场 提交于 2019-12-05 06:54:23
.Net中的加密解密 引言 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全。本文将简单地介绍了加密解密的一些概念,以及相关的数字签名、证书,最后介绍了如何在.NET中对数据进行对称加密和解密。 加密和解密 说到加密,可能大家最熟悉的就是MD5了,记得几年前我刚开始接触Web编程的时候,研究的一个ASP论坛程序,它的用户密码就是采用的MD5进行加密。MD5实际上只是一种散列运算,或者可以称为单向的加密,即是说无法根据密文(加密后的数据),推导出明文(原数据)。而我们下面要说明的,是在加密后可以进行解密、还原数据的。对于欲进行加密的对象,有的人称为消息,有的人称为数据,有的人称为信息,为了避免混淆,在本文后面部分,我统一将其称为 消息 。那么加密是什么呢?加密是通过对消息进行编码,建立一种安全的交流方式,使得只有你和你所期望的接收者能够理解。 那么怎么样才能叫安全呢?消息在接收方和发送方进行安全传递,一般要满足下面三个要点: 消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)。 消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息的发送方)。 消息的接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)。 加密通常分为两种方式:对称加密和非对称加密,接下来我们先看看对称加密。 对称加密

对称加密和非对称加密的区别

∥☆過路亽.° 提交于 2019-12-04 23:22:53
简介: 对称加密: 加密和解密的秘钥使用的是同一个. 非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。 对称加密算法:    密钥较短,破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,且对计算机性能要求也没有那么高. 优点:   算法公开、计算量小、加密速度快、加密效率高 缺点:   在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。 常见的对称加密算法有:   DES、3DES、Blowfish、IDEA、RC4、RC5、RC6 和 AES 非对称加密算法:   公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:   甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开

密码 | 对称加密 - AES

北城余情 提交于 2019-12-04 20:00:49
AES 算法简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,用来替换原先的 DES. 背景介绍:1997年1月2号,美国国家标准技术研究所(National Institute of Standards and Technology: NIST)宣布希望征集高级加密标准(Advanced Encryption Standard: AES),用以取代DES。AES得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮: Rijndael , Serpent , Twofish , RC6 和MARS。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael算法获胜。 AES 算法的区块长度固定为128位(16 字节),密钥长度则可为128位,192位,256位。加密模式可采用 ECB,CBC,CTR,OFB,CFB 等模式进行加密。 其中 ECB 与 CBC 模式是对数据原文做加密处理,原文长度的必须为 16 或 16 的倍数方可加密成功,不足16倍数的部分则需进行 Padding 处理(Padding 方式为 PKCS5 Padding 或 PKCS7 Padding)。 CTR,OFB,CFB

区块链 - 非对称加密

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

非对称加密

久未见 提交于 2019-12-04 19:51:51
非对称加密算法 概念: 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。 原理图: 场景1:发送者用接收者的公钥加密,接受者用自己的私钥解密,具体如下图 场景2:数字签名中应用,这里暂不进行介绍,后续有相关文章进行详细介绍。 见: http://www.cnblogs.com/yank/p/3533998.html 优点: 非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求 主要算法: RSA

对称加密和非对称加密

好久不见. 提交于 2019-12-04 13:21:52
对称加密(symmetrical encryption)   采用单钥 密码系统 的加密方法,同一个 密钥 可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单 密钥加密 。   常用算法:在对称加密算法中常用的算法有: DES 、 3DES 、TDEA、 Blowfish 、RC2、RC4、 RC5 、 IDEA 、SKIPJACK等。   算法特征   1、加密方和解密方使用同一个密钥;   2、加密解密的速度比较快,适合数据比较长时的使用;   3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦; 非对称加密(Asymmetric encryption)   而 非对称加密算法 需要两个 密钥 来进行加密和解密,这两个密钥是 公开密钥 (public key,简称公钥)和私有密钥(private key,简称私钥)。   工作原理:   1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。   2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。   3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。     在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。     同样,如果乙要回复加密信息给甲

PHP非对称加密

[亡魂溺海] 提交于 2019-12-03 16:56:05
加密的类型: 在日常设计及开发中,为确保数据传输和数据存储的安全,可通过特定的算法,将数据明文加密成复杂的密文。目前主流加密手段大致可分为单向加密和双向加密。 单向加密:通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表:Base64,MD5,SHA; 双向加密:与单向加密相反,可以把密文逆推还原成明文,双向加密又分为对称加密和非对称加密。 对称加密:指数据使用者必须拥有相同的密钥才可以进行加密解密,就像彼此约定的一串暗号。算法代表:DES,3DES,AES,IDEA,RC4,RC5; 非对称加密:相对对称加密而言,无需拥有同一组密钥,非对称加密是一种“信息公开的密钥交换协议”。非对称加密需要公开密钥和私有密钥两组密钥,公开密钥和私有密钥是配对起来的,也就是说使用公开密钥进行数据加密,只有对应的私有密钥才能解密。这两个密钥是数学相关,用某用户密钥加密后的密文,只能使用该用户的加密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个密钥性质。这里把公开的密钥为公钥,不公开的密钥为私钥。算法代表:RSA,DSA。   以前一直对客户端传给服务器的信息加密这一块一脸懵,如果app里面的用户登录信息被抓包拿到了,大写着 username:root,password:123456, 那不是很尴尬。

加解密算法

匿名 (未验证) 提交于 2019-12-03 00:25:02
算法类型 特点 优势 缺陷 代表算法 非对称加密 加解密密钥不相关 无需提前共享密钥 计算效率低,仍存在中间人攻击可能 RSA、ElGamal、椭 圆曲线系列算法 对称加密 加解密密钥相同或可推算 计算效率高,加密强度高 需提前共享密钥;易泄露 DES、3DES、 AES、IDEA 对称加密(Symmetric Cryptography),又称私钥加密 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。 对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。 因为密钥越大,加密越强,但加密与解密的过程越慢。 如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解; 但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。 密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。 非对称加密(Asymmetric Cryptography),又称公钥加密 1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议, 允许在不安全的媒体上的通讯双方交换信息

对称加密和非对称加密

廉价感情. 提交于 2019-12-02 23:20:47
对称加密 什么是对称加密? 对称加密就是指,加密和解密使用同一个密钥的加密方式。 对称加密的工作过程 发送方使用密钥将明文数据加密成密文,然后发送出去,接收方收到密文后,使用同一个密钥将密文解密成明文读取。 对称加密的优点 加密计算量小、速度块,适合对大量数据进行加密的场景。 常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES。 对称加密的两大不足 密钥传输问题:如上所说,由于对称加密的加密和解密使用的是同一个密钥,所以对称加密的安全性就不仅仅取决于加密算法本身的强度,更取决于密钥是否被安全的保管,因此加密者如何把密钥安全的传递到解密者手里,就成了对称加密面临的关键问题。(比如,我们客户端肯定不能直接存储对称加密的密钥,因为被反编译之后,密钥就泄露了,数据安全性就得不到保障,所以实际中我们一般都是客户端向服务端请求对称加密的密钥,而且密钥还得用非对称加密加密后再传输。) 密钥管理问题:再者随着密钥数量的增多,密钥的管理问题会逐渐显现出来。比如我们在加密用户的信息时,不可能所有用户都用同一个密钥加密解密吧,这样的话,一旦密钥泄漏,就相当于泄露了所有用户的信息,因此需要为每一个用户单独的生成一个密钥并且管理,这样密钥管理的代价也会非常大。 AES加密 AES加密算法就是众多对称加密算法中的一种,它的英文全称是Advanced