Java加密体系(二)加密基础概念浅析

背景介绍

大黄和小涵是好朋友,大黄的成绩在班级名列前茅,小涵的成绩却总是不如人意,于是在一次考试前大黄和小涵约定好,大黄通过各种方式给小涵传答案,帮助小涵渡过难关,但是监考老师其他因素的影响,让两人倍感紧张,一场考试风云即将拉开序幕......

第一集,机智的老师!

考虑到小纸条被监考老师发现的风险,大黄决定将选择题答案变得隐蔽一些。

  • 大黄:ABCD分别对应1、2、3、4,这样老师发现也不知道是考试答案!
  • 小涵:这种方式大家都知道的,老师是很容易发现这种规律的呀,被发现就惨啦!
  • 大黄:。。。

这种方式对应的是加密中的编码方式,如base64编码,编码表是公开的,大家都可以通过计算,将密文映射成加密前的字符串,严格的来说,这并不是一种加密算法。

第二集,全班雷同!

  • 大黄:我自己定义一套加密解密的规则,要给你传答案之前,先把这个规则用纸条给你传过去,然后给你传答案,你收到答案以后,根据我的那套规则进行解密,这样安全多了,如果没有规则的话,别说老师,就连你都不知道是什么!
  • 小涵:嗯,有道理,可是如果你的这套规则被其他同学截获了,这样我们的答案会被全班传阅的,全班雷同呀!
  • 大黄:。。。

这个方案对应的是对称加密算法,下面是维基百科的解释:

对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密私钥加密共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。

使用对称加密算法的的确可以完成加密解密的过程,这也是我们经常会使用到的加密算法,如DES、3DES、AES等,对称加密算法的缺点是双方都使用同一个密钥并且是公开的,如果密钥被人截获,那么双方之后的通信内容也就变得赤裸。

第三集,一道选择题做半小时!

  • 大黄:我们搞两套密钥,公钥和私钥,使用的方法是这样的,我把私钥留下,把公钥传给你,你用公钥把你不会的题加密再传给我,只有我的独家私钥才能解开这个内容,其他人只会看的头大,反之,你也搞一套公钥和私钥,公钥给我,我用你的公钥加密,你解密的时候用你自己的私钥解密,这样我们就不怕被截获啦!
  • 小涵:嗯嗯!这个安全多了,但是这么算太麻烦了,又是生成密钥,又是解密的,步骤繁琐,每一次传都好麻烦,这是一道5分的选择题做半个小时的节奏呀,不划算。
  • 大黄:。。。
    这种方法对应的就是非对称加密算法,维基百科的解释:

公开密钥加密(英语:Public-key cryptography),也称为非对称加密(英语:asymmetric cryptography),是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥;一个用作加密的时候,另一个则用作解密。使用其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原本的明文;甚至连最初用来加密的密钥也不能用作解密。由于加密和解密需要两个不同的密钥,故被称为非对称加密;不同于加密和解密都使用同一个密钥的对称加密。虽然两个密钥在数学上相关,但如果知道了其中一个,并不能凭此计算出另外一个;因此其中一个可以公开,称为公钥,任意向外发布;不公开的密钥为私钥,必须由用户自行严格秘密保管,绝不透过任何途径向任何人提供,也不会透露给要通信的另一方,即使他被信任。

相对于对称加密算法而言,非对称加密加密更加安全,但是互相传递的效率并没有对称加密算法快。

第四集,我全都不会...

  • 大黄:效率问题可以解决!我们用第三集的非对称加密算法传递第二集的对称加密密钥,当我们都拥有密钥的时候,就不用每次都传输啦!
  • 小涵:哇,真棒,半小时后就可以坐等答案了!诶?要是我全都不会呢?每一次发送给你内容都特别多,这加密解密也很麻烦呀!
  • 大黄:。。。
    这个问题也是经常会遇到的,由于非对称加密步骤繁琐,且由于算法本身耗时相对较长,通常只使用非对称加密算法对传输的秘钥进行加密。

第五集,同学是老司机!

  • 大黄:既然你的情况比较特殊,我们可以采取另一种方式,我们对传递的消息生成一段密文,这段密文有这样的特性:
    1、不管多少内容,加密后的密文都是固定的长度。
    2、同一种规则,多次对内容一致的答案,加密后的结果密文都是一样的。
    3、不同的答案,生成不同的密文。
    4、这种规则是不可逆的,不能像一开始的1234一样,可以被人反推回来。

  • 小涵:嗯,这样的话,只要有人篡改了答案,我们就可以立刻发现,防止翻车,诶?那要是有人反水,他也是个老司机,知道我们的规则,顺便把我们的密文也篡改了怎么办?

  • 大黄:。。。

这种方法叫做消息摘要,如果传输的内容很多,又不是特别机密的内容,我们可以考虑对其进行编码,然后将其摘要一起传输过去,如果内容被修改,接收方收到的明文生成的摘要与发送方发送的摘要是不同的,这时候可以及时发现被篡改,引用百度百科对消息摘要算法的解释:

消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的。

第六集,资深老司机

  • 大黄:我们可以结合上面的密钥对的方式,我用私钥对这段密文进行加密,你用公钥解密!就算其他同学是老司机,知道我用了什么方法,但是他没有我的私钥呀,只能干瞪眼哈哈哈哈
  • 小涵:佩服佩服,但是我这里有个问题,大黄你生成秘钥对,把公钥传给我,他获取了你的公钥,把他自己生成的公钥传递给了我,为了节省时间,我只用一种加密规则(对称加密),用公钥加密,我以为是你的公钥,但是实际上这个是他的公钥!然后他收到了我的密文,获得了秘钥,他把这个秘钥用你之前的公钥加密,再还给你,这样的话我们所有的内容都是赤裸裸的呀!这个人是资深老司机!
  • 大黄:。。。
    大黄提供的方式叫做数字签名,大黄通过他的私钥对摘要进行加密,这个过程叫做加签,小涵通过大黄的公钥进行解密,这个过程叫做验签,数字签名的百度百科:

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明数字签名是非对称密钥加密技术数字摘要技术的应用。

文中的“他”使用的方式叫做中间人攻击,以下是百度百科的解释:

中间人攻击(Man-in-the-Middle Attack, MITM)是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

第七集,活雷锋小昆

  • 大黄:这样我们可以找可靠的中间人小昆,你给他5包辣条好处费!我把我的公钥和我的个人信息都给他,他自己生成一套秘钥对,用他的私钥把我的公钥等信息生成证书发给我,这个摘要可以证明这个公钥是我的公钥!以后我传递给你的时候,给你小昆的证书,把我的密文放在后面,你收到证书以后,用小昆公钥解密就可以了,这样即使是资深老司机也没办法篡改,因为他没有小昆的私钥解不开的。
  • 小强:有道理!这样就不怕资深老司机的干预啦。
    这种方法叫做数字证书,小昆就是证书授权机构CA(Certificate Authority) ,资深老司机就是图谋不轨的黑客,数字证书百度百科如下:

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

总结:

考试要靠自己的实力,不要抄袭!这里只是为了方便读者理解,换了一种方式来表达,本文简单介绍了关于编码、对称加密、消息摘要、非对称加密、数字签名、中间人共计、数字证书的概念,其中关于数字证书的地方举例可能有些勉强,并没有继续深入,在后面的文章会单独开辟一篇专门讲数字证书、自签名证书、CA等知识。

参考资料:
1、掘金:https://juejin.im/post/5b1cc5c36fb9a01e8d6a3f80
2、百度百科:https://baike.baidu.com/
3、维基百科:https://zh.wikipedia.org/wiki/%E9%A6%96%E9%A1%B5
4、segmentfault:https://segmentfault.com/a/1190000004461428

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

推荐阅读更多精彩内容