随意生成 16 位数字 x = 3938208956888434,密钥函数 f(x)是:取 x 的第 2-5 位数字( 9382 ),与第 8~13 位数字( 956888 )的倒序相乘。即 f(x) = 9382 * 888659 (输出结果为:y = 8337398738 )
以现代计算机的速度和算法,破解上面这种情况的函数 f(x),大约需要多少时间?
随意生成 16 位数字 x = 3938208956888434,密钥函数 f(x)是:取 x 的第 2-5 位数字( 9382 ),与第 8~13 位数字( 956888 )的倒序相乘。即 f(x) = 9382 * 888659 (输出结果为:y = 8337398738 )
以现代计算机的速度和算法,破解上面这种情况的函数 f(x),大约需要多少时间?
|
1
这是 hash,不是对称加密,如果要构造一个同 hash 的值估计也不难,因为位数不大,暴力法分分钟
|
|
PPing520Dec 31, 2018
2
.....其他位都不要了么?那 2-5 位和 8~13 位一样的数字加密结果不就重复了。。。
|
|
Bryan0ZDec 31, 2018 via Android
3
这不是对称加密吧,你怎么逆解回来
|
|
ZRSDec 31, 2018 via iPhone
4
这不叫对称加密
|
|
5
预期的结果是大约 10 分钟之内,一般的计算机解不出来就行了。f(x)大约一周会自动更新一个。
|
|
KagariDec 31, 2018
6
对称加密的秘钥长度…………不好意思走错片场了,欢迎自制加密算法
|
|
2exhjxDec 31, 2018
7
最暴力也就 100w*1w,100 亿次运算,1gh=10 亿次,你说要多久?
|
|
loadingDec 31, 2018
8
楼主,你这个如何解密。写个反函数出来吧。
|
|
9
随便优化一下,因数分解 O ( n^(1/4)),再把分解出来的组合到你的数据范围里就出来了
|
|
873681136Dec 31, 2018
10
这个摘要几乎没有什么意义,如果我第 2-5 位数字为 0000,那么我无论怎么算 f(x) 都是 0
|
|
2exhjxDec 31, 2018
11
4691*2*888659,都不用算啊楼主
|
|
12
这不是对称加密,或者说这都不能被叫做加密。
楼主的算法中用到了大数分解难题的思想(得到两个数相乘的结果是很容易的,但要将一个大数分解成两个符合条件的数相乘则很难),这已经是属于非对称领域的了。 另外,作为一个加密的算法,必须需要有一固定的解密算法才有意义。现有的非对称加密利用了数学规律,将加密结果按一特定规则继续计算下去最终可以得到原有值。而在楼主给的例子中,恕我无能为力,找不到可以解密的方法。 所以就像#10 楼说的,这只能算一个摘要算法,并且还是个没啥意义的摘要算法。 |
|
lance6716Dec 31, 2018 via Android
13
这也不是摘要啊,输入长度有限制,输出不等长
|
|
singerllDec 31, 2018 via Android
14
怎么解密?
|
|
everwannaDec 31, 2018 via Android
15
先学习一点点现代密码学的基础知识再谈加密
|
|
16
土法加密难倒老师傅
|
|
allenhuJan 1, 2019 via Android
17
古法加密
|