漫画科普加密的历史及原理

原文连接:https://www.howtogeek.com/howto/33949/htg-explains-what-is-encryption-and-how-does-it-work/

1.png1

加密技术的历史十分悠久,最早可以追溯到古希腊人和罗马人通过替换只能用密钥破译的字母发送秘密信息。 接下来咱们要快速回顾一遍加密的历史,让李了解有关加密如何工作的更多信息。

早期的加密技术

2.png2
古希腊人使用一种名为Scytale的工具来帮助他们快速地使用转置密码加密他们的消息 – 他们只需将羊皮纸条包裹在一个圆柱体周围,写出信息,然后解开时羊皮纸上的文字就失去了可读性。
3.png3
比如下面这段文字是围绕着圆柱体上的羊皮纸上写的,写的是:‘WE ARE DISCOVERED. FLEE AT ONCE’(我们被发现了,马上逃),但是在羊皮纸上是这样书写的(顺时针书写):
W . . . E . . . C . . . R . . . L . . . T . . . E
. E . R . D . S . O . E . E . F . E . A . O . C .
. . A . . . I . . . V . . . D . . . E . . . N . .
如此一来实际上呈现的是:
WECRL TEERD SOEEF EAOCA IVDEN

当然,这种加密方法可能很容易被破解,但它是实际在现实世界中使用的第一个加密示例之一。它之所以是不安全的,因为犯了密码学的一个大忌:security through obscurity意思是通过隐藏加密的机制来起到安全的作用,而且这个例子是只靠这一点保障信息安全。这意味着只要有任何人知道这个机制都能完全破解秘密。而安全的加密是假定对方知道一切除了密钥之外的内容,对方仍然不发破译或者难以破译。

Julius Caesar在他的时代使用了一种类似的方法,将字母表中的每个字母向右或向左移动了许多位置 – 一种称为Caesar密码的加密技术。 例如,使用下面的示例密码,将“GEEK”写为“JHHN”。

明文: ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文: DEFGHIJKLMNOPQRSTUVWXYZABC

由于只有消息的预期接收者知道密码,因此下一个人难以解码消息,这看起来像是胡言乱语,但拥有该密码的人可以很容易地解码和读取它。

但是这样的加密方式因为密钥的所有可能性实在太少,因此也非常容易被破解,毕竟一共才17种密钥。可能这也是历史上最早的暴力破解密码的案例。

像Polybius方块表这样的其他简单加密密码使用了一对多的字母密码,它将字母按照某种顺序排成方块儿,为了说明方便假设是按照字母表顺序从左至右从上至下排列。当然因为字母有26个,而方块表只能容纳25个字母,有时候规定两个字母共用一个位置,比如I和J。然后所有字母在表格中都有一个位置,比如第一行第四个是什么字母。于是咱们用字母的位置替代字母本身。如图:

4.png4

比如,在这样的加密机制下,“die”可以表示为:
14 24 15

不过考虑到直接按照字母表的顺序在表格中排列字母实在太过于简单,可以先对字母表进行随机排序,然后再按照新的次序重新依次在方块种排列。不过即便是随机排序也无法保证安全,因为有频率分析的办法。

值得一提的是,因为加密方式足够简单,而且密文是按照一对数字的形式出现,因此在一些监狱里面囚犯会通过敲击墙壁的方式向隔壁房间的犯人传递讯息。

5.png5

在第二次世界大战期间,德国人使用Enigma机器来回传递加密传输军事情报,直到数年以后波兰破译了Enigma的加密机制,并为盟军提供了解决方案,这对盟军的胜利起了至关重要的作用。

现代加密技术

让我们面对现实吧:现代加密技术可能是一个非常无聊的主题(数学部分更难了),所以我们不是仅用文字解释它们而是采用漫画的方式介绍现代密码学的历史。

6.png6

在过去的那些日子里,人们没有一种好的加密方法来保护他们的电子通信。

7.png7

Lucifer是由Horst Feistel及其IBM同事开发的几种最早的民用分组密码的名称。

数据加密标准(DES)是一种分组密码(一种共享秘密加密形式),由美国国家标准局于1976年选择作为美国的官方联邦信息处理标准(FIPS),随后广泛传播为世界各地所使用。

对安全性的担忧以及DES在软件中相对较慢的运行促使研究人员提出了各种替代分组密码设计,这些设计开始出现在20世纪80年代末和90年代初期:例如RC5,Blowfish,IDEA,NewDES,SAFER,CAST5和FEAL

8.png8
美国国家标准与技术研究院(NIST)在五年内研究和评价了15个备选算法后于2001年宣布选定Rijindael加密算法为美国高级加密标准(FIPS197)
9.png

10.png9

10

加密算法的表现

存在许多加密算法,它们都适用于不同的目的 -使得一种加密算法不同于另一种加密算法的是加密算法的两个主要特征:它的安全性以及效率。

作为不同类型加密之间速度差异的一个很好的例子,您可以使用VeraCrypt的卷创建向导中内置的基准测试程序 – 如图所见,AES是迄今为止最快的强加密类型。
11.png11

有更慢和更快的加密方法,它们都适用于不同的目的。 如果你只是经常尝试解密一小块数据,那么你就可以负担得起使用最强大的加密,甚至可以使用不同类型的加密对其进行两次加密。 如果你需要速度,你可能想要使用AES。

有关对不同类型加密进行基准测试的更多信息,请查看华盛顿圣路易斯大学的报告,在那里他们对不同的例程进行了大量测试,并在一篇非常geek的文章中对其进行了解释。

现代加密算法的类型

所有的现代密码都可以袋子归为两种类型:

  • 对称加密:加密和解密用同一把密钥。
  • 非对称加密:加密和解密用不同的密钥。

对称加密

为了解释这个概念,我们将使用维基百科中描述的邮政服务比喻来理解对称密钥算法的工作原理。

爱丽丝把她的秘密信息放在一个盒子里,然后用一把钥匙把挂锁锁在盒子里。 然后,她通过普通邮寄的方式把邮箱发送给鲍勃。 当Bob接收到该邮箱时,他使用相同的Alice的密钥副本(他之前以某种方式获得,可能通过面对面会议)打开该邮箱,并阅读该消息。 然后Bob可以使用相同的挂锁发送他的秘密回复Alice。这期间邮差如果没有钥匙并不能阅读邮箱中的信件。

12.png12

对称密钥算法还可分为流密码和分组密码 – 流密码一次加密一个比特大小的消息,而分组密码占用多个比特,通常一次以64比特的块为单位,并将它们加密为 一个单位。 这里有多种不同的算法可以选择,备受推崇的对称算法包括Twofish,Serpent,AES(Rijndael),Blowfish,CAST5,RC4,TDES和IDEA。

非对称加密

非对称加密可以考虑有这样一把锁,上锁和解锁各需要不同的钥匙,咱们把加密的锁称之为公钥,解密的锁称之为公钥。之所以叫这样的名字和这个加密解密的过程分不开。

假设Bob需要向Alice传递一封密件,首先他要要求Alice把她的邮箱以及Alice的邮箱的加密密钥邮寄过来。然后Bob把写好的邮件放入Alice寄送过来的邮箱里面,并用送来的加密密钥上锁,然后邮寄回给Alice。Alice收到由自己的加密密钥上锁的邮箱,于是用自己的解密密钥解开它,得到Bob的邮件。

如果Alice要回复Bob,她首先需要要求Bob把他的邮箱连同加密密钥一起邮寄过来。

正因为这种加密机制下,自己邮箱的加密密钥需要送出去公开被对方以及第三方邮差得到,所以称之为公钥,但是任何人得到公钥只能加密上锁却不能解锁,而解锁的密钥不能交给任何人否则对方就能直到你的秘密,所以称之为私钥。

13.png13.png

加密如何保护网络通讯安全

多年来,SSL(现在被TLS替代)协议一直在使用Web浏览器和Web服务器之间的加密来保护网络数据传输,从而保护你免受可能在中间窥探网络的任何人的攻击。

SSL本身在概念上非常简单。 它从浏览器请求安全页面开始(通常是https:// 注意你浏览器网址这部分的开头
14.png14
Web服务器使用其证书发送其公钥。
15.png15

浏览器检查证书是否由受信任方(通常是受信任的根CA)颁发,证书仍然有效以及证书与所联系的站点相关。
16.png16
然后,浏览器使用公钥来加密随机生成的对称加密密钥,并将自己的http请求用对称加密的方式加密。
17.png
18.png17

18

web server 用自己的私钥解开浏览器发来的第一部分的密文,得到对称密钥的信息。然后用对称密钥解密浏览器的http请求。之后服务器加密浏览器需要的那部分数据,并发送会给浏览器。

19.png19

密码学科普[2]:RSA中的快速幂算法以及旁路攻击

1

2

3

4

5

 

6

 

7

8

看到这个结果不要高兴太早,不要认为自己马上就能通过SPA破解RSA加密了,其实实际情况中是不可能得到这个问题这样清晰的图像的,而且还有很多对付这种攻击的应对措施。
参考这里:Algorithmic Countermeasures Against
Fault Attacks and Power Analysis for RSA-CRT

 

密码学科普系列[1]:非对称加密相对于对称加密的缺点是什么?

Q6.1非对称加密算法既然可以用于加密而且还有其他优势为什么我们仍然需要对称加密算法呢?

3.Q6.1

A6.1

基于安全性和效率的考虑

  1. 安全性
    首先咱们知道安全性和密钥的长度有关,但是这个长还得看是什么种类的加密算法,不同的算法对与密钥长度的要求是不一样的。当我们考虑安全性的时候我们首先想到的是Key Space也就是说一共有多少种可能的数字能够作为密钥。对于AES这种对称加密算法而言上所有256bits的数字都是可以作密钥的,但是RSA不同。因为n必须是两个素数的乘积,因此当咱们提到1024bits密钥长的RSA的时候不是所有的1024bi的数字都可以作为密钥存在,实际上1024bits长的RSA密钥实际上的key space仅仅相当于80bit(why?)的对称加密算法,这是非常不安全的。而且我们还必须要考虑量子计算机带来的影响,比如Shor’s algorithm,随着量子计算机的发展RSA的破解难度会进一步降低。
    咱们可以看下面这个表格,根据不同的加密算法给出了相同安全等级下应该推荐选取的密钥长度:
    1.推荐的密钥长度
    咱们可以从这个表格看出如果要达到AES256的强度(30-50年不会被破解),RSA需要的密钥长度是15360,但是这样又会降低效率。
  2. 效率
    因为前面安全性上咱们提到如果要提高安全性RSA必须要让密钥长度变得更长,但是如果把密钥变长那么效率又会是一个问题。咱们知道RSA的密钥生成时间复杂度为O(N^2)而加密解密的时间复杂度为O(N^3),那么如果要让密钥变为15360也就是15∗1024,也就是说密钥生成需要提高225倍时间,而加密解密过程需要比1024的时候3375倍的时间。所以这就是为什么TLS会先用非对称加密算法先交换密钥以及签名然后再用对称密钥传输信息。比如查看TLS Cipger Suite会看到这样的东西,其中中间的对称加密算法(最常见的AES)其实是加密传输内容的主要算法,非对称的更多的是交换密钥以及签名的作用。4.eg_TLS_cipher_suite

基于LSB的隐写术以及OpenStego的基本操作

基于LSB隐写的基本原理

基本原理就是人眼对颜色的感知能力很弱,如果图片中一个像素有非常小的改变人眼是无法察觉的。
例如下面两张图片,一张是被修改过包含了一个txt文件的,另一个是原图,通常人眼根本无法分辨出哪一个才是原图。

128

 

主要的秘密就是标题中的LSB(Least significant bit)。字面意思最不显著的bit是什么呢?就是说二进制数码中最后的那个位置,这个位置上的数字决定了这串数码是奇数还是偶数。

如图所示,这个二进制数码中最后那个1所在的位置便是LSB。而这最后的位置上的改变对整个数字的影响是非常小的,特别是这个二进制数字比较大的时候,比如是8bits,24bits,32bits的数字。所以如果可以把这些二进制数字的末尾的位置修改了,写入我们想要写的内容,而且原来的数字差异不大的话,就可以实现隐藏内容。
124

这种实现的本质是欺骗人类的感官,因为人类的感官对于非常细微的改变并不敏感。比如声音和图片,这以图片为例,像素中的颜色可以用8bits,24bits,32bits的er二进制数字表示,如果人为的修改一点点,人类的眼睛并不能分辨其颜色的差异。如图,在8-bit颜色中,修改末尾的bit之后呈现的三种不一样的绿色,人眼却难以分辨。
125
当然每一个像素能存储的内容是有限的,但是一张图片里面包含很多的像素,所以我们可以选取一部分存储想要存储的隐藏信息。比如把文字加密后的密文存储在图片的像素中,这样看起来只是一张普通的图片,从而绕过审查传递密文。
123

可是人眼无法识别不代表计算机无法识别,因此是有办法可以发现图片中是否有藏匿隐藏信息的,比如一些基于统计学的方法。

131

所以不仅要隐藏,要加密,还要添加随机性防止被察觉。因此在设置密码的之后还要生成一个key作为seed加入到伪随机数字生成器中,在图片的像素中随机的选择位置存储需要隐藏的密文。

OpenStego的加密隐写操作

首先咱们从这个Github上的地址下载

根据不同的条件下载不同的,如果死windows用户,又不想解压,可以考虑下载setup-OpenStego.exe这个文件,然后直接安装。

126
隐藏信息
在隐藏信息之前需要做做两样准备,也就是Cover以及Message文件。第一个就是我们需要用来作伪装的无害的图片,第二个message文件就是我们用来存储信息的文件,一般创建一个.txt的文件即可。
首先我们找好一张可以隐藏真实意图的图片,比如这样一张:
128
然后我们新建一个txt文件,并写下这样一段话
“我年轻的时候就读过:论语,老子,孟子,尚书,礼记,大学,中庸,周易,左转,庄子,墨子,荀子,韩非子,孙子兵法………常识,老人与海,世界秩序,…….”
然后文件准备就绪以后,就开始想办法把这两个文件合二为一。
打开软件界面
129
第一行浏览咱们需要隐藏的装有需要传输的信息的文件,第二行死Cover,也就是咱们选好的看起来非常友好无害的图片,最后需要选择输出文件的名字和地址,到时候便于知道输出的图片在哪里叫什么名字。
然后需要选择加密算法设置密码,最后点击右下角的Hide Data隐藏信息即可。咱们查看一下隐藏好信息的图片发现和原来的图片没有什么区别但是其实里面已经包含了背书单文件了:

提取隐藏信息
这个操作相对简单,必须要知道对称加密的密码才可以提取,而且要保证图片没有被压缩过或者修改过,有时候为了防止通讯软件压缩图片会考虑选择以传输压缩文件的方式传输。
130
首先选择Extract Data提取数据,然后第一行找到含有隐藏数据的文件,第二行浏览输出地址,就是提取出来的文件保存在哪里,最后必须要输入密码才可以解密,因此需要正确的输入密码,最后就是提取数据。
操作很简单吧(●’◡’●),可以自己试试看。

 

Veracrypt的基本操作

 

基本操作1:创建加密空间和隐藏空间

这个教程的目的是希望能够创建一个强加密的,即便是政府机构也无法解密的加密空间,并在其中存储加密文件。同时考虑到会因为精神或者暴力的双重压力下被迫解密的可能性(比如不解密就枪毙),因此希望在加密空间里面用另外不同的一个密钥甚至是加密方式来创建一个隐藏的加密空间。
这种隐藏的加密空间因该是无法被察觉的,除非你亲口承认并解密,否则别人是无法确信这里面还有一层加密。这是非常重要的,这样相当于设置了双重保险。更多的设置细节会在接下来的操作步骤里面进行介绍。
步骤1:下载安装Veracrypt
下载地址

步骤2.1找到开始界面的创建按钮
运行程序以后应该看到的是这个界面,之后我们需要解密也是这个界面,按照箭头指示的方向找到创建空间的按钮

59

因为隐藏的加密空间必须要隐藏在一个加密空间之下,所以我们首先要创建一个普通的加密空间。
2.2在创建引导界面中选择创建普通加密空间

61.png60.png

2.3决定要把加密空间创建在哪里,以及叫什么名字

62.png
这个图就是讲要选择一个文件,但是不要理解为是选择一个文件作为加密空间。是在你的计算机或者硬盘,或者U盘,甚至手机里面找一个地方,创建一个新的文件夹,取一个名字来作为加密空间。
2.4一般的加密空间要用什么加密算法
在这个问题的考虑上必须要兼顾效率和安全性,如果你要创建的加密空间很大,而且因为是第一层文件敏感度不是很高,那么推荐用安全性不是很变态效率高一点的AES256。实际上AES256已经是强加密了,加上后面我们还要设置KDF,暴力破解的难度是非常大的,但是相比去后面的三重加密而言还是弱了点,我这里说的是相对而言。因为Veracrypt还可以选择比如AES(Twofish(Serpent))这种三重加密。

63.png

如果想要知道这些加密算法的具体区别,可以点击下面的Benchmark,它或测试出在按照你目前机器的效率这些加密算法的具体效率结果排名。这里我就不测试了,理论上的效率都是有数的,具体的数字每个人的机器配置不一样数字也不一样。
2.5选择hash算法

加密为什么要选hash算法?因为我们为了防止对手建立rainbow table 来尝试暴力破解我们的加密空间,一旦对方得到我们的这个加密文件,那么对手就有充足的时间来尝试破解加密。所以我们为了防止这种情况的发生,我们在存储加密密钥的时候会用到KDF。虽然在推特上已经有提到过,这里还是再简单说一下,看到这样的公式:
DK=KDF(key,salt,iterations)

key是我们设置的密码,比如PASSWORD123129481249
Salt是一串随机的数字,我们希望把这串数字加入到我们之前设置的密码里面
iterations是迭代的次数,因为我们会把salt加到密码里面然后用伪随机函数进行迭代,这个过程可以极大的降低字典攻击的速度同时提高破解难度。
因此系统实际上用的加密密钥是DK是我们的KDF(Key Derivative Function)加盐迭代生成的密钥。

回到2.5的主题上来,拿为什么我们要选择hash算法,因为veracrypt的KDF用的伪随机函数是基于HMAC-SHA-512, HMAC-SHA-256, HMAC-RIPEMD-160, or HMAC-Whirlpool的,同时veracrypt对于以上的算法都是有默认的迭代次数的。对于创建标准的加密空间而言,HMAC-RIPEMD-160的迭代ci’s次数默认是655331次,而其他的诸如HMAC-SHA-512, HMAC-SHA-256 and HMAC-Whirlpool都是500000次。
具体需要的时间是可以在Benchmark里面进行测试的,在Benchmark界面里面把默认的加密算法测试换成PKCS-5 PRF ,所谓PRF就是伪随机函数的简称。
然后我们可以看到不同的随机为函数需要的时间如下:

64.png

我就不展示我的数字了,也没有参考价值因为每个人的机器配置都是不一样的,总之上面的数字显示的就是每一次输入验证密码到生成DK的时间,想想看如果错误输入100次需要多长时间。
2.6选择要创建的加密空间的大小
这个因人而异,只要是不低于每种模式下的最小限制即可,还有不要超过所选文件所在盘的最大空余空间即可。

66.png

但是有一点要注意,因为我们之后还需要创建隐藏空间,而隐藏空间的大小是和现在创建的加密空间的大小是差不多的(小一点点)。所以创建现在的加密空间还要考虑到之后隐藏空间的大小(可以评估以下自己的非常敏感的文件所需要的空间大小)。
2.7设置密码

67.png

可以看到这里还有设置key file的,key file的设置可以大大的提高安全性。
因为设置keyfile有这样的几个好处:

  1. 增加密码的强度,使得暴力破解的难度再上一个档次。添加key file那么会把key file的hash值和你设置的密码通过模的加法整合在一起,用以增强密码的强度。
  2. 可以把key file存储再一个移动设备里面,比U盘,这样可以相当于做一个二阶段登陆验证。这样别人至少得到你输入的密码是无法解锁的,因为解密文件的密钥并不是我们设置的密码,而是KDF最后生成的哪个密码,而这个过程中我们不仅加盐,迭代,还要需要key file的hash值。
  3. 可以实现多人验证。因为这里面的key file可以设置不止一个,那么可以分配给每一个用户一个key file ,那么只有所有人都交出他们各自的key file再配合上所有人已知的密码,才能打开文件。也就是说,只有大家都同意这个文件才可以被打开,被查看,被修改。
    想想看核弹发射的时候授权的钥匙不是交在一个人手里的,通常是需要几个人全部都同意才能够开启发射控制器。

然后还有一个设置是PIM,意思是Personal Iterations Multiplier。前面不是讲过为了增强字典攻击的难度,我们需要KDF,而这里面有一个参数就是需要迭代,并且veracrypt里面针对不同的伪随机函数有不同的默认迭代次数。这里设置PIM还可以根据个人的需要修改默认的迭代次数。对于现在创建的加密空间基本规则如下:
=15000+(PIM×1000)迭代次数=15000+(PIM×1000)
比如对于HMAC-SHA-512而言相当于默认的PIM是485,如果你想要更慢的解密,更强的安全性就应该高于这个值,如果想要验证速度更快就应该低于这个数字。

说了这么多但是对于第一层加密空间是掩护,里面放置看是敏感但是其实和真正敏感的内容比较起来完全是小巫见大巫的内容,所以根据需要设置,也不要太夸张否则效率太低影响使用性

68.png

设置完成密码以后会进入到这样的画面中,这个界面是通过Veracrypt的随机数生成器生成盐,这也是KDF中非常重要的一个过程。**其中盐的一个参数就是用户鼠标的随机移动,所以说这一步要再界面里面随机的移动鼠标知道最下方的进度条从红色变成绿色的为止。**结束以后点击format,于是我们成功的使用KDF生成了DK,现在DK才是加密的密钥,所以这一步以后系统会自动的开始对文件进行加密了。这个过程因为加密算法和加密空间的不同所以时间也不同

70.png69.png
看到这两个界面意思就是已经成功的创建了加密空间。
如果不需要制造第二层隐藏的加密空间到这一步就可以了,如果要制造隐藏空间我们还需要继续操作。如果需要接续点击next,否则点击exit。如果你想要创建加密空间只不过不是现在,这没关系,在以后可以选中现在的加密文件然后给加密空间附加隐藏空间。
3.1选择创建隐藏空间
和前面一摸一样的创建界面,这一步和之前的选择一样。

71.png

然后这里选择不一样,第一次我们是创建一般的加密空间选择的是第一个,这一次我们创建隐藏的加密空间选择的是第二个。

72.png

然后因为我们已经创建了一个加密空间,所以这里我们选择Direct Mode ,否则系统会引导到先创建一般的加密空间,这就是我们2.x做的工作。

73.png

3.2选择隐藏空间所在的位置
这里选择文件只能选择一个普通的veracrypt加密空间,这里我们就选择第二步已经创建好的加密空间。因为隐藏加密空间是依赖于一个已经存在的加密空间存在的。

74.png

3.3输入第一层加密的密码
这一步是需要解密第一层加密。也就是说我们需要解密2.x我们创建的加密空间。这一步需要输入密码,如果有设置key file 也一定要选择key file 才能解密。只有完成解密才能进一步设置隐藏加密空间。

78.png

弹出这个窗口就说明解密第一层成功了,于是我们可以继续进行隐藏空间的设置了。
3.4设置隐藏空间加密算法,hash算法,大小
这个步骤几乎是和之前是一致的。这里设置加密方式和hash可以和第一层不一样。比如说第一层我们设置AES那么现在隐藏空间我们可以设置Serpent

79.png

当然你也可以设置一样的加密算法。之后是设置大小,之前也说了这个大小的限制是受到第一层的加密空间的大小限制的。之后便是设置密码,key file以及迭代次数了。
3.5设置密码,key file,迭代次数
这一步和2.7是类似的,详细的介绍可以参考2.7。但是有一点要注意,密码一定要和普通的加密空间的密码是不一样的。
相当于我们有两个key,key1是打开第一层加密的,key2是打开第二层加密的。对于同样一个加密空间,我们输入不同的密钥就会得到不同的内容。还要强调的是,这一步一定要设置key file以增强加密强度。如果第一步设置了key file那么这一次最好是不要和第一次的一样。

随便在计算机中选这一个文件作为keyfile,最好是不起眼的文件,可以是mp3文件,可以是jpg文件,或者zip都可以。文件的大小是没有限制的,因为只有前1MB的内容给是有效的,其他的内容都是无效的。

81.png

如果这一步勾选了PIM那么就会进入到设置迭代次数的界面,为了增强安全性我们要设置高于495的数字,比如700。
3.6移动鼠标产生salt

82.png

这一步和2.x也是一样的没有什么变化。如果不知道操作或者有什么问题可以倒回去看2.x。
到这一步我们的创建就算完成了,我们可以按退出按钮了。

83.png

基本操作2:打开与关闭加密空间

1.1选择一个盘,以及选择需要解密的文件

84.png

选择盘的意思是说,等一下解密以后计算机上会出现一个我们选择的盘里面装的就是我们的已经解密的文件。比如这里选择T盘,那么解密以后的文件就会出现在T盘里面,如果不需了,要把加密空间锁起来,这个盘就会消失。
1.2决定要解密哪一层
找到解密按钮,点击。

85.png

然后弹出解密界面,这个时候不要着急输入密码,因为这个文件有两层不一样的加密。所以想要决定要打开哪一层加密。

86.png

1.2.1解密第一层
假设我们解密第一层,要注意这里如果有自己设置PIM请一定要记清楚这个数字,否则系统会按照默认的次数进行迭代,那么这样的话即便密码正确因为迭代次数不同,那么也会导致DK不同,于是无法解密文件。
这里我们已经解密第一层,并且在里面创建了这样一个文件。
还有如果有设置key file 也要选择添加key file否则也是无法解密的。

87.png

1.2.2锁上第一层
在开始界面里面找到上锁的按钮即可。

88.png

1.2.2解密第二层
一定要第一层已经上锁然后才可以解密第二层,选择第二层的密码设置才可以打开第二层,第一层的密码设置只能打开第一层。

89.png

如果设置了key file 一定要选择添加正确的key file,并且key file 不能有任何的改变和损坏,哪怕1bit的不一样经过迭代以后也是完全不同的密钥。还有如果自定义过迭代次数这里一定要勾选PIM否则迭代次数不一样得到的DK也是不正确的。
打开第二层会发现虽然第一层已经创建了一个文件但是第二层还是空的,这里要意识到这两个空间是独立的互相不干扰的。第一层的文件不会改变第二层的内容给。

 

 

Proxy over Tor

打开最新版本的tor,再点击开始以后应该是自动按照上一次设置进行连接。假设之前没有设置过,或者要修改设置,先取消连接过程,这时候就会跳转到配置界面:

56

  • 选择configuration(配置)

57

  • 选择Tor is cencered in my country (我所在的国家tor是受到审查的)

说一下这一条,必须要勾选否则打不开tor的混淆协议的设置,目的就是让网络供应商政府之类的看不出我在用tor,我觉得这一条是必选。就字面意思来说,我觉得没有什么国家不监控tor,只是程度不同罢了。

比方说中国就是不遗余力的想尽一切办法的干掉tor,目前来说大概只有meek-azure是再中国管用的。但是不是说美国欧洲就不监控,比如美国NSA就是属于视奸状态,分析tor流量,分析谁下载了tor,谁连接了tor,但是不会轻易动手也不会明目张胆阻断tor的流量。

所以为了安全性考虑,还是选择这一个选项,不要勾选meek,因为我们已经是代理连接tor了,meek会极大的降低速度,目前来说对速度支持最好的是obfs4

  • 再选择I use a proxy to connect the internet(我通过代理上网)

选择这个以后我们就可以看到设置代理的界面了。首先不管是HTTP还是Socks代理,这里前面的Address(地址)部分都可以直接填127.0.0.1。
然后的设置部分就非常简单了,你只需要注意两个信息:
1. 是HTTP代理还是socks代理?
2.port是多少?
只要搞清楚这两件事情,如实填入就好了
比方说你用不管是shadowsocks还是赛风,还是大杀器还是自由门,只需要选择Socks5,然后address输入127.0.0.1 ports输入你的port就行,比方说是1080就填入即可

然后再看到这个图

57
选择连接即可

这样配置以后你的网络因该是这样的:

1