计算机密码学与PKI体系

加密算法

所谓加密算法就是指将信息变成密文的计算方法。 可以很简单也可以很复杂。
有的加密算法就是对信息进行简单的替换和乱序, 这种加密算法最明显的缺陷就是算法本身必须保证是保密的。

现代加密算法通常需要密匙来完成对信息的加密运算, 算法本身是可以公开的, 理论上, 只要保证密匙的安全就能保存信息的安全

对称加密算法与非对称加密算法

基于密匙的加密算法可以分为两大类: 对称加密算法和非对称加密算法(也叫公钥算法)。

对称加密算法

加密数据和解密数据都是用的同一个密匙。

非对称加算法

密匙分为公钥和私钥, 公钥用来加密数据, 私钥用来解密数据; 不能从公钥推导出私钥; 任何人都可以拥有公钥,都可以用来加密数据, 只有拥有私钥的人才能将信息解密。

RSA算法

RSA算法是当今使用最为广泛的非对称加密算法。

详细可参考 阮一峰-RSA算法原理(一)

PKI 公开密匙体系

PKI是Publick Key Infrastruction的缩写

对称加密算法的致密弱点在于密匙的安全性,导致对称加密体系解决不了密匙分配和管理的问题。
非对称加密算法的缺点是速度慢, 非对称加密算法比对称加密算法要慢的多。

因此非对称加密不适合用于大量的数据加密传输。 为了实现数据的加密传输, 非对称加密需要和对称加密结合使用, 即非对称负责对称密匙交换, 对对称加密算法负责实际的数据加密。

大概的流程如下:

  1. 用户1 生产随机的secrect key1
  2. 使用用户1的公钥对secrect key1进行加密, 然后传递给用户2
  3. 用户2接收到加密的secrect key1, 使用对应的私钥进行解密,得到secrect key1
  4. 用户2 生产随机的secrect key2
  5. 使用用户2的公钥对secrect key2进行加密, 然后传递给用户1
  6. 用户1接收到加密的secrect key2, 使用对应的私钥进行解密,得到secrect key2
  7. 用户1和用户2就可以使用secrect key1, secrect key2进行加解密

(? 不是太明白为什么需要secrect key1, secrect key2两个密匙, 使用一个应该就可以)

公开密匙体系除了可用于安全密匙交换之外, 还可以用于鉴别用户身份。

这种是两个用户都有自己的私钥和对方的公钥。 意思有两对公钥私钥:

  1. 用户1使用自己的私钥加密message1, 将加密后的信息传递给用户2
  2. 用户2使用用户1的公钥对数据进行解密, 然后使用自己的私钥对这个数据进行加密, 再传递给用户1
  3. 用户1使用用户2的公钥对数据进行解密, 看是否和之前发出的数据一致

同样的原理, 公开密匙算法可以对数据进行签名和校验, 保证数据的一致性和完整性。

  1. 用户1将数据和对数据加密之后的签名一起发送给用户2
  2. 用户2使用用户1的公钥对数据进行签名, 然后与接收的数据进行比较, 如果一致证明数据没有别篡改

因为非对称加密算法很慢, 对数据签名一般不采用直接加密数据的方式, 而是加密数据的散列值。

数据的散列值是通过单向散列函数计算得到的一个固定长度的值, 消息不同得到的散列值也有很大的差异。

单向的意思就是,不可能从散列值反推出原始数据。比较数据的散列值与数据本身是等价的。 常用的消息散列算法有MD5和SHA-1等。

非对称算法(也就是公钥算法)仍然要面临公分发, 公钥、私钥与用户(比如说一个网站)真实身份绑定的问题。

验证用户(一个网站)身份, PKI引入了证书机制解决这个问题, 证书由证书注册中心(CA)统一颁发。

用户(一个网站)获得自己的证书后, 就可以使用证书来表明自己的身份, 接收方只要使用CA中心的公钥验证用户的证书, 如果验证成功, 就可以信任该证书的用户的身份。

SSL

安全套接字层

internet是一个开放的网络环境, 意味着网络上传输的任何数据都有被截取和监听的可能。 当你向网站提交一些信息时, 这些信息从你的计算机传出, 通过internet上的若干节点之后, 到达服务器, 在这中间的过程中, 这些数据完全是暴露的, 任何人只要有适当的工具都可以截取这些数据。

SSL就是用来解决这一个问题的。

SSL位于TCP/IP层和HTTP应用层之间的一层, 是用来加密数据的。 浏览器的SSL实现采用了RSA公司的公钥、私钥加密系统和数字证书应用系统。

当今的主流浏览器都内置了对SSL的支持

SSL也是使用 非对称负责对称密匙交换, 对对称加密算法负责实际的数据加密这种方式, 这个工程称为
SSL握手。

FH93XKZ)GU8RGT)KLH_RUPJ.png
  1. 客户端向服务器发送客户端的SSL版本号, 加密算法设置等
    2.服务器 向客户端发送客户端的SSL版本号, 加密算法设置等 和证书
  2. 客户端验证服务器身份
  3. 客户的创建secret(对称加密秘钥), 用服务器的公钥加密(公钥在服务器证书中)
  4. 如果服务器也要求验证客户端的身份, 那么客户端也需要把自己的证书传递给服务器
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容