-
-
[原创]如何使用超长位密码
-
发表于:
2018-4-22 07:17
9262
-
如果密码很长它包含的信息量就很大,对穷举攻击和分析法都是致命的。但是密码长了其记忆和存储都是问题,下面就探索解决这一问题。要达到的效果是用户只需输入少量密码,而在程序中则使用大量的密码用于加密解密。这里是这样做的,加密程序随便取一固定数值A作为随机函数种子,程序的默认密码是以此种子生成的1000个字节的随机函数值作为默认密码,如果没有用户密码则使用默认密码完成加密解密,如果有用户输入的密码,则从用户输入密码中计算出一些参数,其中有偏移量B、参数C、D等,这样新的种子是 A+B×C+D,将新种子后面的1000个字节作为密码用于程序的接下来运算,用户输入密码在此起到钥匙的作用,并不直接用于加密运算。这样你就可以使用这1000个字节的密码去加密或解密了。实际应用中要使用多少位密码要参考文件长度来决定,这里只是举例说明。
在上面的例子告诉我们如何得到大量的密码,下面说说如何使用这些密码。这些密码来自随机函数,相邻数据之间有一定的相关性,对此你可以使用倒序或重排等方法来消除这一影响。
无论是流密码加密或分组密码加密,往往使用很少的密码就能完成一次加密,考虑这样的问题对大物体的细分,例如我们用显微镜去看大象,那我们只能看到细胞,而要通过这些细胞去合成大象是太费劲了,如果我们将被加密文件进行细分,而对每部分进行加密就可以充分的利用现有的密码资源,即使某一部分真被破解了,破解者也很难对明文整体有丝毫的认识,无论分析法和穷举攻击都会面临几乎不可实现的挑战,这就是使用大量密码加密的优势所在。
当细分到加密一个字节就变换操作的时候,即使量子计算机出现也需要天量的时间才能破解,这样信息的安全就有保障了。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)