- 主题:一个面试题 (转载)
数据量太小了,感觉不好规避穷举的破解方法
--
FROM 111.205.43.*
原始数据就10个可能性,如果算法是公开的,对方可以穷举所有10种可能来撞出你的数字
当然了如果每次只透露一点点信息,有可能在对方撞出结果之前就先判定数据不同
这就是概率问题了
【 在 here080 的大作中提到: 】
: 必须掺一个大数再加密。需要某种方法多次来回传输之后消掉两个原始数据。
:
--
FROM 111.205.43.*
如果存在这样一种算法同时满足下面条件的话,那么可以做:
1 相同的内容可以用不同的密钥或者方法加密,得到不同的输出,然后这些不同的输出可以用同一个密钥解密,得到的结果相同
2 对一个数据进行两次加密,可以先对第一次的密钥解密,再解密第二次
【 在 here080 的大作中提到: 】
: 肯定有一个大数是对方不知道的。
: 比如说我先掺一个数加密传给你,你把你的数也掺一个数加密传回来给我。
: 我再进行一步变换然后传回数据给你,你进行最后的解密则可以判断是否相等。
: ...................
--
FROM 111.205.43.*
1似乎不是必要的,光2就行了,我记得好像有这种算法
【 在 liushuoshu 的大作中提到: 】
: 如果存在这样一种算法同时满足下面条件的话,那么可以做:
: 1 相同的内容可以用不同的密钥或者方法加密,得到不同的输出,然后这些不同的输出可以用同一个密钥解密,得到的结果相同
: 2 对一个数据进行两次加密,可以先对第一次的密钥解密,再解密第二次
--
FROM 111.205.43.*
不是,要得到相同的结果,你这结果其实是不同的,这个的意义在于解密的时候不会泄露是用哪一种密钥加密的
当然了关键应该是2
【 在 here080 的大作中提到: 】
: 满足1很随意,只要把密钥本身也加密到数据里就行了。解密时不同密钥用同一种算法解,边解边得出密钥。
:
--
FROM 111.205.43.*
如果有这种可以交换顺序解密的算法的话,那方案就是
A选择9种不同的可以表示“二者数字不同”的说法,然后他把9种说法和“二者数字相同”这10个字符串用自己的密钥加密,按0-9的顺序排列好,相同的那个是自己的数字,然后全部发给B
B把自己那个数字对应的密文拿出来,用自己的密钥加密再发给A,A解密再发给B,B解密后就知道是否相同,然后告诉A是否相同即可
【 在 liushuoshu 的大作中提到: 】
: 不是,要得到相同的结果,你这结果其实是不同的,这个的意义在于解密的时候不会泄露是用哪一种密钥加密的
: 当然了关键应该是2
: :
--
FROM 111.205.43.*
这个咋用程序实现?如果不需要用程序实现,用道具也行的话,那拿十张扑克牌啥的就够了吧
【 在 iwannabe 的大作中提到: 】
: 这个最靠谱
: 发信人: donald2020 (donald2020), 信区: Programming
: 标 题: Re: 一个面试题
: ...................
--
FROM 111.205.43.*