Hiding and insuring data
————————————————————————————————————————————————————在通讯之中,我们总是处于不安全的境地,因为窃听者无处不在,在我们之间交流的过程中,谁是最爱窃听的呢,这里有句大实话,the government,要知道在二战的时候,英美就多次想要破译德国的密报,于是展开了你追我赶的进化,即共同进化233,最后加速了计算机的演变,所以我们在交流的过程中需要对通讯的语言进行加密,首先我们要知道,信息安全有三个要素,可行性,完整性,和保密性,只有三个同时具备才算是信息安全。
——————————————————————————————————————————————
首先先说保密性,所谓保密,就是需要我们把明文加密为密文,解开秘密的方法就是密钥,有对称密钥和非对称密钥,比较古老的凯撒密码用的就是非对称密钥,凯撒密码就是使用相同的进退位方式加密明文,比如a变成b,b变成c等等,要破解实在是太简单了,这里不加演示,所以说这个凯撒密码不常用,所以说就需要用到其他的加密方式和解密方式,这些方式所用的密钥很多都是非对称密钥,非对称密钥分为公钥和私钥,公钥负责加密,发信人掌控,私钥负责解密,收信人掌控。下图是凯撒算法,在经过中间的Internet的时候很容易被破译掉。破译凯撒算法的方式其实比你想得还要简单,你不必把整段文章都破译掉,你只需要试探性的破译其中几串字符,如果是有意义的,那么就使用这个进退位方式破译。
这里就要提到一种加密方式,哈希密码,SHA-1,MD5等等都是哈希密码算法的一种,哈希算法属于散列函数,它的功能就是将明文后面附上一段摘要,摘要的作用就是在于判断是否收到的是原文,这个摘要是由计算机计算出来的,计算速度非常快所以不太需要考虑加密时间的问题,比方说一窜数据在发送的时候它附上一段摘要ABCDE(打个比方而已,当然没有这么简单),如果在信息传递的过程中,被截获,并进行了修改,摘要也会随之修改,变成BCDEF,和原来的摘要不符合,所以说收信人会发现这段话是假的。第一,逆推是基本不可能的,第二,每个密码的哈希值有且只有一个,每个哈希值有且只对应一段密码,第三,细小的改变,哪怕是一个字母的改变,都会让哈希值大大不相同。
所以这里有一个鲜活的例子,你在一个可靠的网站上输入密码的时候,这个系统的数据库中只会保存下来你的密码的哈希值(以防数据库数据丢失以及被撞库攻击等等),所以你想要找回密码的时候,系统是不会给你原来的密码的,只会分析你的哈希值然后提示你修改密码。(一般用的都是SHA-1或者MD5等等,如果是什么国家机密了话那就是要用超级加密SHA-256)
————————————————————————————————————————————————————
接下来说一下这个完整性,首先就要提到一个概念那就是数字签名,数字签名是密钥和哈希算法的共同合作,下面具体描述一下
上图中黄字表示正文,紫字表示签名,SHA-1表示加密机制,绿字表示哈希值,上半部分是发信人,他的信件后面附上签名,然后经过哈希运算变成a79540,而后,这封信在运送的过程中是没有附上签名的,而是附上对应的哈希值,送达的时候,收信人会把它拆开分成正文和哈希值,然后将正文附上签名后再进行哈希运算,出来的哈希值和原来的配对是否符合。至于这个紫色的签名怎么让互相知道你只需找个小黑屋把收信人拉过来悄悄和他说就行了。