HTTPS从原理到应用(一):加密(Encrypt)与哈希(Hash)

随着安全问题越来越被重视,公司也全面替换了HTTPHTTPS2015iOS9ATS到今年苹果更是放出话来,2017年全面支持HTTPS,不支持的App,在审核的时候可能会遇到麻烦。鉴于此,我有了写这一系列文章的冲动,文章从最基本的知识点着手,一点点剖析,尽量把HTTPS这个东西说明白。此系列共四篇文章(有可能会出一篇进阶篇讲述攻防相关知识),本人从事iOS开发,其他端的实际运用不做叙述,但是前三篇的原理部分是通用的都可以看。四篇文章分别为:

此篇文章的逻辑图

图0-0 此篇文章的逻辑图

加密(Encrypt)

  • 加密的概念:简单来说就是一组含有参数k变换E信息m通过变换E得到c = E(m)。原始信息m为明文,通过变换得到的信息c为密文。从明文得到密文的过程叫做加密变换E加密算法参数k称作秘钥。同一个加密算法,可以取不同的密钥,得出不同的加密结果。从密文c恢复明文m的过程称作解密解密算法D加密算法E的逆运算。解密算法也有参数,称作解密算法的秘钥。
  • 加密的方式:私钥密码(对称加密)公钥密码(非对称加密)

私钥密码(对称加密)

私钥密码实例-凯撒(J.Caesar)密码:

公元前罗马皇帝凯撒(J.Caesar)曾用密码传递作战命令。他的加密方法是把每个字母按字母表的顺序向后移动3位,最后3个字母依次变成前3个字母。例如,"take action at middle night",经过加密变成"wdnhdfwlrqdwplqqohqljkw"(忽略掉空格)。(这个加密算法应该都不陌生,数据结构双向循环链表部分应该都实现过的)

凯撒密码的加密算法是把字母按字母表的顺序循环移动k位,取k=3就是凯撒所用的加密算法。如果用数字0 ~ 25分别表示26个字母,算法可表示成 E(i) = (i + k)mod26, i = 0, 1, ..., 25,其中k就是加密秘钥。凯撒密码的解密算法是D(i) = (i - k) mode 26, i = 0, 1, ..., 25。其中k就是解密秘钥。它的解密算法的秘钥与加密算法的秘钥相同。

私钥密码

由以上例子可以看出。私钥加密的秘钥是对称的,只要知道加密秘钥就能推出解密秘钥(所以称为对称加密)。通信双方分别持有加密密钥和解密密钥,密钥对外是绝对保密的,必须通过秘密渠道传送 。常见的对称加密算法有:DES3DESTDEABlowfishRC2RC4RC5IDEASKIPJACKAES

公钥加密(非对称加密)

公钥加密概念

迪菲(W.Diffie)和赫尔曼(M.Hellman)1976年提出公钥密码的思想,这种密码是非对称的,也就是说,不能从加密密钥推算出解密密钥,所以又称之为非对称加密。加密密钥不需要保密,可以公开,称之为公钥,只需要保守解密秘钥称之为私钥。公钥和私钥是成对的。常见的非对称加密算法有:RSAElgamal背包算法RabinD-HECC

公钥加密简单举例:甲乙两人通信,甲将他的加密密钥(公钥)公布,任何想与甲通信的人都可以使用这个加密密钥将要传送的信息(明文)加密成密文发送给甲,只有甲自己知道解密密钥(私钥),能够把密文还原为明文。任何第三方即使截获到密文也不可能知道密文所传递的信息。

  • 两种加密方式对比如下图(图1-0)所示:
图1-0 两种加密方式对比
基于公钥密码的加密和认证

加密和认证是两个不同的概念,其中加密是保证数据的安全性,认证是确保用户的真实性。只有通信双方确定是真正要通信的双方,通信才有进行下去的必要。这也就是认证的主要目的。

基于公钥密码的加密过程
比如有两个用户AliceBobAlice想把一段明文通过公钥密码的技术发送给BobBob有一对公钥和私钥,那么加密解密的过程如下:
1、Bob将他的公钥传送给Alice
2、AliceBob的公钥加密她的消息,然后传送给Bob
3、Bob用他的私钥解密Alice的消息。
Alice使用Bob的公钥进行加密,Bob用自己的私钥进行解密。

基于公钥密码的认证过程
认证和加密就不同了,主要是鉴别用户的真伪。还是AliceBob这两个用户,Alice有一对公私钥,Alice想让Bob知道自己是真实的Alice,而不是假冒的,因此Alice只要使用私钥对文件加密发送给BobBob使用Alice的公钥对文件进行解密,如果可以解密成功,则证明Alice的私钥是正确的,因而就完成了对Alice的身份鉴别。
整个身份认证的过程如下:
1、Alice用她的私钥对文件加密,从而对文件签名。
2、Alice将签名的文件传送给Bob
3、BobAlice的公钥解密文件,从而验证签名。
Alice使用自己的私钥加密,BobAlice的公钥进行解密。

基于公钥密码的加密和认证的思考
在加密过程中,思考如何保证Alice拿到公钥后就能确定是Bob的公钥,若是篡改的公钥,通信进行下去已经无意义。接下来的第二篇文章数字签名和数字证书来解答这个问题。

哈希(Hash)

哈希与加密是不同的,概括来说,哈希(Hash)是将目标文本转换成具有相同长度的、不可逆的杂凑字符串(或叫做消息摘要),而加密(Encrypt)是将目标文本转换成具有不同长度的、可逆的密文。
两者有如下重要区别:
1、哈希算法往往被设计成生成具有相同长度的文本,而加密算法生成的文本长度与明文本身的长度有关。
2、哈希算法是不可逆的,而加密算法是可逆的。
这里重点强调一下HashEncrypt的主要区别,因为接下来的文章要用到这两个概念,这里对此不做深究。详细介绍可看我下面参考的一篇文章哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

总结

第一篇讲解的都是一些常用的基本概念,做安全肯定是会经常遇见,后续的几篇文章也依赖于对这些概念的理解,所以这里先提一下。关于Hash也只强调了一下和加密的区别。

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容