对称加密很容易破解吗?

2018-12-31 13:01:05 +08:00
 liudaqi

随意生成 16 位数字 x = 3938208956888434,密钥函数 f(x)是:取 x 的第 2-5 位数字( 9382 ),与第 8~13 位数字( 956888 )的倒序相乘。即 f(x) = 9382 * 888659 (输出结果为:y = 8337398738 )

以现代计算机的速度和算法,破解上面这种情况的函数 f(x),大约需要多少时间?

4689 次点击
所在节点    问与答
17 条回复
lhx2008
2018-12-31 13:03:56 +08:00
这是 hash,不是对称加密,如果要构造一个同 hash 的值估计也不难,因为位数不大,暴力法分分钟
PPing520
2018-12-31 13:04:47 +08:00
.....其他位都不要了么?那 2-5 位和 8~13 位一样的数字加密结果不就重复了。。。
Bryan0Z
2018-12-31 13:05:57 +08:00
这不是对称加密吧,你怎么逆解回来
ZRS
2018-12-31 13:10:01 +08:00
这不叫对称加密
liudaqi
2018-12-31 13:11:06 +08:00
预期的结果是大约 10 分钟之内,一般的计算机解不出来就行了。f(x)大约一周会自动更新一个。
Kagari
2018-12-31 13:21:04 +08:00
对称加密的秘钥长度…………不好意思走错片场了,欢迎自制加密算法
2exhjx
2018-12-31 13:23:06 +08:00
最暴力也就 100w*1w,100 亿次运算,1gh=10 亿次,你说要多久?
loading
2018-12-31 13:25:29 +08:00
楼主,你这个如何解密。写个反函数出来吧。
2exhjx
2018-12-31 13:31:17 +08:00
随便优化一下,因数分解 O ( n^(1/4)),再把分解出来的组合到你的数据范围里就出来了
873681136
2018-12-31 13:31:58 +08:00
这个摘要几乎没有什么意义,如果我第 2-5 位数字为 0000,那么我无论怎么算 f(x) 都是 0
2exhjx
2018-12-31 13:32:49 +08:00
4691*2*888659,都不用算啊楼主
xiri
2018-12-31 14:28:48 +08:00
这不是对称加密,或者说这都不能被叫做加密。

楼主的算法中用到了大数分解难题的思想(得到两个数相乘的结果是很容易的,但要将一个大数分解成两个符合条件的数相乘则很难),这已经是属于非对称领域的了。
另外,作为一个加密的算法,必须需要有一固定的解密算法才有意义。现有的非对称加密利用了数学规律,将加密结果按一特定规则继续计算下去最终可以得到原有值。而在楼主给的例子中,恕我无能为力,找不到可以解密的方法。

所以就像#10 楼说的,这只能算一个摘要算法,并且还是个没啥意义的摘要算法。
lance6716
2018-12-31 15:35:14 +08:00
这也不是摘要啊,输入长度有限制,输出不等长
singerll
2018-12-31 15:51:19 +08:00
怎么解密?
everwanna
2018-12-31 17:58:47 +08:00
先学习一点点现代密码学的基础知识再谈加密
marcushbs
2019-01-01 01:42:53 +08:00
土法加密难倒老师傅
allenhu
2019-01-01 08:54:29 +08:00
古法加密

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/522701

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX