我猜这个问题的答案可能很长,所以请随意给出一点解释,并附上一个链接有帮助的文章、教程或者我们
如何在不使用 FileValut、Knox、磁盘实用程序、openssl、GnuPG 等工具的情况下加密文件?就像实际手动执行一样...我不一定想这样做,但我想了解它是如何工作的...
答案1
实际上,如果不使用工具(如您提到的工具)、自己编写的工具或手工操作(用纸和铅笔),您就无法加密文件。
手工强力加密:Solitare (Pontifex)
开始理解密码学的一个有趣方法是拿一副扑克牌,然后使用 Bruce Schneier 的“单人纸牌“Neal Stevenson 在其著作《Cryptonomicon》中使用的加密方法。
其他在线资源
一本以凯撒密码开始的免费好书是ftp://ftp.pgpi.org/pub/pgp/6.5/docs/english/IntroToCrypto.pdf
更多有趣的东西来尝试凯撒密码 http://www.purdue.edu/discoverypark/gk12/downloads/Cryptography.pdf
用数学方法研究这一主题http://math.scu.edu/~eschaefe/crylec.pdf
图书
一些很棒的书:
- 西蒙·辛格的《密码书》
- 盖恩斯的密码分析
更新:以下是维基百科的摘录:
手工弱加密:凯撒密码
转换可以通过对齐两个字母表来表示;密码字母表是将普通字母表向左或向右旋转一定位置。例如,这是一个使用左旋转三位的凯撒密码(移位参数,这里是 3,用作密钥):
Plain: ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cipher: DEFGHIJKLMNOPQRSTUVWXYZABC
加密时,一个人在“明文”行中查找消息的每个字母,并在“密码”行中写下相应的字母。解密则按相反顺序进行。
Ciphertext: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
Plaintext: the quick brown fox jumps over the lazy dog
加密也可以用模运算来表示,首先将字母转换成数字,按照方案 A = 0,B = 1,...,Z = 25。1通过移位 n 对字母 x 进行加密,可以用数学方式描述为
解密过程类似,
(模运算有不同的定义。在上文中,结果在 0...25 范围内。即,如果 x+n 或 xn 不在 0...25 范围内,则必须减去或加上 26。)替换在整个消息中保持不变,因此该密码被归类为单字母替换类型,而不是多字母替换。
答案2
加密可以非常复杂,也可以非常简单。您列出的所有经过尝试和信任的工具都具有复杂的加密方案(从设计上讲,这些方案很难破解)。但是,另一方面,“加密”文件非常简单(当然,前提是您不希望它是安全的)。
假设您有一个想要加密的文件。如果以加密格式将其交给其他人,那是没有意义的,所以我们会使用一种称为密钥的东西,它允许算法反向运行并将数据恢复到其原始状态。
一个非常简单的例子是 XOR 加密(XOR 是逻辑运算符,“排他或”)。用 C 之类的语言实现一个非常简单的程序来根据密钥加密给定文件很简单。请参阅此处了解所有这些如何组合在一起的解释和教程:http://www.cprogramming.com/tutorial/xor.html
您还可以研究工具中使用的各种算法,但请注意,它们并不像对位进行异或运算那么简单。但原理是一样的。
总结一下:有文件->定义密钥->根据密钥通过某种算法运行文件进行加密->输出加密文件。
希望有所帮助。