Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

密码学 #5

Open
wangbinyq opened this issue Feb 22, 2016 · 4 comments
Open

密码学 #5

wangbinyq opened this issue Feb 22, 2016 · 4 comments
Labels

Comments

@wangbinyq
Copy link
Owner

密码学

加解密的具体运作由两部分决定:一个是算法,另一个是密钥。

在密码学中,编码的意义:它意指以码字取代特定的明文。

@wangbinyq
Copy link
Owner Author

对称密钥加密

对称密钥加密是密码学中的一种加密法,是以转换其中一个数字、字母或仅字符串随机字母,一个秘密密钥会以特定的方式变更消息里面的文字或字母,例如更换字母的字母顺序的位置(例如hello变成lohel)。只要寄件者与收件者知道秘密密钥,他们可以加密和解密并使用这个数据。

凯撒密码 ROT13

ENIGMA密码机

DES 数据加密标准

AES 高级数据加密标准

分组密码

流密码

在密码学中,流加密(英语:Stream cipher)算法是对称加密算法的一种,加密和解密双方使用相同伪随机加密数据流(pseudo-random stream)作为密钥,明文数据每次与密钥数据流顺次对应加密,得到密文数据流。硬盘加密、无线路由加密等都使用的流密码。

@wangbinyq
Copy link
Owner Author

wangbinyq commented Feb 22, 2016

公开密钥加密

公开密钥加密(也称为非对称加密)是密码学中的一种加密法,非对称密钥,是指一对加密密钥与解密密钥,某用户使用加密密钥加密后所获得的数据,只能用该用户的解密密钥才能够解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了其中一个密钥,并不会危害到另外一个。因此公开的密钥为公钥;不公开的密钥为私钥。

RSA

RSA算法是一种基于因数分解的加密系统。
(N,e)、(N,d) 是一组RSA公钥(N)和私钥(d)。
加密过程:明文 -> 加密算法(N, e) -> 密文。
解密过程:密文 -> 解密算法(N, d) -> 明文。

openssl的公钥e是0x10001

@wangbinyq
Copy link
Owner Author

数字签名

数字签名(又称公钥数字签名、电子签名)是一种类似写在纸上的签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。在网络上,我们可以使用“数字签名”来进行身份确认。数字签名是一个独一无二的数值,若公钥能通过验证,那我们就能确定对应的公钥的正确性,数字签名兼具这两种双重属性:"可确认性" 及 "不可否认性(不需要笔迹专家验证)" 。

公开密钥基础建设

公开密钥基础建设(英语:Public Key Infrastructure,缩写:PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。

密码学上,公开密钥基础建设借着数字证书认证机构(CA)将用户的个人身份跟公开密钥链接在一起。对每个证书中心用户的身份必须是唯一的。链接关系通过注册和发布过程创建,取决于担保级别,链接关系可能由CA的各种软件或在人为监督下完成。PKI的确定链接关系的这一角色称为注册管理中心(Registration Authority,RA)。RA确保公开密钥和个人身份链接,可以防抵赖。

RSA数字签名

签名过程:消息 -> 签名算法(N, d) -> 签名。签名算法 == 解密算法
验证过程:签名 -> 验证算法(N, e) -> 是否匹配。验证算法 == 加密算法 + 校验

@wangbinyq wangbinyq added the note label Feb 22, 2016
@wangbinyq
Copy link
Owner Author

Use bcrypt for Safely Store A Password

How To Safely Store A Password

  • salts will not help you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant