公钥加密

密钥,私钥,公钥的区分

拈花ヽ惹草 提交于 2019-12-02 11:59:29
首先明确几个基本概念: 1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。 2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。 3、私钥,如上,用来解密公钥加密的数据。 4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。 5、签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。(看最下面的一部分就明白了) 6、签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。 上面实际上介绍了加密解密和数字签名两个概念和实现过程,二者的过程正好是相反的。 公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),将其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。 使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密

Uport-为分布式网络设计的开放式身份系统

狂风中的少年 提交于 2019-12-02 11:54:15
一、背景介绍 目前的身份系统解决方案存在许多问题。 数字身份在各种服务提供商之间是分散的、孤立的,阻碍了整体性,导致用户需要重复注册和使用用户名和密码登录,这样的体验非常不好,更严重的是,这样的方式会导致很多不安全因素,用户在不同的网站或应用中使用相同的密码。当前数十亿台的网络设备依赖Google和Facebook提供身份服务,它们的集中式服务器极易成为黑客攻击的对象,因此这些身份提供商在管理或者技术上的漏洞将会对数字和物理基础设施造成灾难性后果。 密码学和区块链等去中心化技术为上述问题提供了非常有前景的解决方案。这些技术将身份的所有权从集中式服务推向个人控制,这通常被称为自主身份。这种方法将数据和计算去中心,并将它们推向边缘,它需要大量的努力来逐一攻击许多个人身份,这对黑客来说在经济上不太有价值。 然而,向普通用户引入新技术是非常困难的,像PGP这样的公钥加密工具已经存在了25年,但由于它们不够直观以及复杂的流程导致用户体验很差。 与基于区块链的系统进行交互需要可用的公钥私钥密码系统,到目前为止,密钥管理解决方案(通常称为“钱包”)很难用于非技术用户,但是,区块链本身可以通过充当去中心公钥基础设施(PKI)来帮助使公钥密码更加易用和安全。区块链可以被看作是一个去中心的认证机构(CA),可以维护身份到公钥的映射。智能合约还可以添加复杂的逻辑,有助于密钥的撤销和恢复

SSL与SSH协议初识

久未见 提交于 2019-12-02 06:21:27
SSL和SSH协议 加密类型 对称加密 加密与解密使用相同的秘钥,如:DES、3DES、AES等 优点:算法公开、加密速度快,效率高 缺点:秘钥分发较为复杂,管理困难,不能够实现数字签名 非对称加密 加、解密时使用成对的公钥(publickey)与私钥(privatekey)来完成,公钥是公开的,私钥由用户自行保存,公钥由私钥生成,无法由公钥逆向推导出私钥,如:RSA、DSA、Elgamal等 发送发使用接收方的公钥加密,接受方需要使用自己的私钥进行解密,保证数据的私密性 发送方使用自身私钥加密后再使用接收方公钥加密,接受者使用自身私钥解密后再使用发送方的公钥进行二次解密,具有不可抵赖性 优点:算法强度复杂,安全性高,秘钥分配简单,便于管理,能够实现数字签名 缺点:加解密计算量大,速度慢 常用于会话钥(对称加密秘钥)分发 单向加密 对数据进行hash,提取特征码,具有不可逆的特点,如:MD5、SHA等 发送方在发送数据时对数据进行hash,提取特征码,与明文一同发送,接受方接受后对明文信息进行相同hash提取特征码,与接收到的特征码比对,进行数据完整性与一致性校验 SLL Secure Sockets Layer:安全的套接字层 SSL 是指安全套接字层,确保互联网连接安全,利用数据加密保护网络中传输的数据,防止信息被截取和窃听。为Netscape(网景)所研发

777 支付宝支付

烈酒焚心 提交于 2019-12-02 06:12:39
SDK : ali支付的算法 github中有 简单逻辑往上放 复杂逻辑,放下面,有时间再看 公钥私钥 加密生成url 支付成功通知 sign校验 修改订单状态 该view免除csrf token settings必须大写 公钥私钥 rsa加密 来源: https://www.cnblogs.com/venicid/p/11733936.html

学习笔记之RSA算法原理与应用

折月煮酒 提交于 2019-12-02 05:15:41
工作中遇到SSH的时候实在多,关于密钥分发也是重要的任务。那公钥和私钥是怎么产生的,RSA算法原理是什么?强迫症患者当然不满足仅仅是what and how,自然要知道why。华章译丛的数学专著我向来喜欢,那本《初等数论及应用(原书第六版)》就成了我接下来要面对的任务。 然后做了读书笔记,方便以后复习理解。我实在没有时间手打文字贴上来,只好就着图片放出来了. 既然知道密钥对的原理,下面来梳理一下它的应用。 一.使用RSA算法的步骤: 1.接收方生成一个公钥+私钥的密钥对; 2.私钥由接收方妥善保管,公钥发给发送方(宇宙众生皆可盗取); 3.发送方用收到的公钥对发送信息进行加密形成密文,然后发给接收方; 4.接收方收到密文后,用司机的私钥解密成明文。 二.使用消息认证码的步骤: 1.发送方与接收方事先共享会话密钥(万万不可公开); 2.发送者使用共享密码对消息计算MAC值(将密钥和数据同时作为输出); 3.发送方将消息和MAC值一起发给接收方; 4.接收方收到消息后使用共享密钥计算消息的MAC值,与收到的MAC值对比; 5.若2个MAC值一致,则认为消息来源正确且未经篡改。 三.数字签名的使用步骤: 数字签名不是为了保证消息机密性,主要是为了识别篡改和伪装,可以复制且有效。 1.发送者产生密钥对(此处不再是接收者),私钥给自己,公钥给接收者,保证公钥来自真正的发送方是至关重要的环节;

一次看懂 Https 证书认证

情到浓时终转凉″ 提交于 2019-12-02 05:10:32
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生成对称密钥)对数据进行解密。 双方手持对称密钥 使用对称加密算法通讯 而这一流程 服务端的证书 是是至关重要的。 证书 证书用来证明公钥拥有者身份的凭证 首先我们需要知道 证书是怎么来的。 数字证书一般由数字证书认证机构签发,需要 申请者通过 非对称加密算法(RSA) 生成一对 公钥 和 密钥 ,然后把需要的申请信息(国家,域名等)连同公钥发送给

加密、解密、数字签名和数字证书详解

大兔子大兔子 提交于 2019-12-02 03:22:31
1. 概述 随着电子商务的迅速发展,信息安全已成为焦点问题之一,尤其是网上支付和网络银行对信息安全的要求显得更为突出。为了能在因特网上开展安全的电子商务活动,公开密钥基础设施(PKI, Public Key Infrastructure)逐步在国内外得到广泛应用。我们是否真的需要PKI,PKI究竟有什么用?下面通过一个案例一步步地来剖析这个问题。 2. 案例 2.1 案例内容 甲想将一份合同文件通过Internet发给远在国外的乙,此合同文件对双方非常重要,不能有丝毫差错,而且此文件绝对不能被其他人得知其内容。如何才能实现这个合同的安全发送? 2.2 问题1 问题1 :最自然的想法是,甲必须对文件加密才能保证不被其他人查看其内容。那么,到底应该用什么加密技术,才能使合同传送既安全又快速呢?   可以采用一些成熟的 对称加密算法 ,如DES、3DES、RC5等对文件加密。对称加密采用了对称密码编码技术, 对称加密的特点是文件加密和解密使用相同的密钥 ,即加密密钥也可以用做解密密钥,这种方法在密码学中叫做对称加密算法, 2.3 问题2 问题2: 如果黑客截获此文件,是否用同一算法就可以解密此文件呢?   不可以,因为加密和解密均需要两个组件:加密算法和对称密钥,加密算法需要用一个对称密钥来解密,黑客并不知道此密钥。 2.4 问题3 问题3: 既然黑客不知密钥

非对称加密RSA的C#实现

孤人 提交于 2019-12-02 02:57:28
1.对称加密算法 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。 对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥, 一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密, 不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。 密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。 常用对称加密:DES、3DES、AES等 (代码后续添加) 2.非对称加密算法 非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。 私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。 比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。 与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。 常用非对称加密:DSA、RSA等 目前C

什么是数字签名和数字证书

丶灬走出姿态 提交于 2019-12-02 02:10:38
数字签名 A: 信息 - (用Hash函数)-》 摘要 (用A的私钥加密) 数字签名 数字签名+信息 发给B B: 1. 数字签名 (A的公钥解密) 摘要 2. 信息   (用Hash函数) 摘要 如果1 和 2 中结果相等,则证明信息在传递过程中没有被修改。但这里存在一个问题怎么证明A的公钥没有问题呢? 数字证书 A去证书中心(certificate authority,简称CA)为A的公钥做认证。 A的公钥+其他相关信息   (证书中心的私钥加密)   数字证书 (Digital Certificate) A: 信息+数字签名+数字证书 发给B B: 1. 数字证书   (CA的公钥解密) A的公钥 2. 数字签名 (A的公钥解密) 摘要 3. 信息   (用Hash函数) 摘要 如果2 和 3 中结果相等,则证明信息在传递过程中没有被修改。且信息确实来自A。 来源: https://www.cnblogs.com/huangtq/p/11714533.html

浅析数据库安全技术

蓝咒 提交于 2019-12-01 18:37:13
一、数据库安全问题 数据库安全问题分为两类: (1) 信息运输中的问题:偷看、假冒、篡改和抵赖; (2) 数据库内部的问题:非法数据访问(读取非允许的数据、改/删/加非允许的数据) 二、信息传输过程中的安全管理 运输过程中,最行之有效的技术就是密码技术。 如下图所示: 一般使用非对称加密技术。用私钥(SK)加密的内容只能用公钥(PK)解密. 1、非对称加密技术的介绍 1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥 2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。 3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。 4.A将这个消息发给B(已经用B的公钥加密消息)。 5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。 2、非对称加密技术的使用 (n,d)(n,d) 构成公钥 PKPK ,可以告诉别人; (n,e)(n,e) 构成私钥 SKSK,不让任何人知道。(私钥具有唯一性) 数字签名:给别人发送的消息时,使用SKSK加密签名,别人用PKPK 解密得到签名就可以证明信息是由你发送的。 3、RSA-一种常用的非对称加密算法 关于RSA算法的介绍请参见:RSA算法 下面给出RSA秘钥生成的一个例子: 例子来自于:RSA算法原理(二) 第一步,随机选择两个不相等的质数p和q。