想要做两个大数的乘法,但是这两个数不能输入计算机,怎么做到?

2019-04-28 10:53:14 +08:00
 fbxshit

为了安全性,这两个数不能存到内存中,也不能保存到 cpu 寄存器中。

对于两数 a 和 b 加法,我能想到的是,取一个随机数 c,把 a 加 c 的结果输入计算机,然后把 b 减 c 的结果输入计算机。

那么对于 a 乘 b,如何做到让计算机得出答案,但是没有办法推测出 a 和 b?

5519 次点击
所在节点    问与答
51 条回复
rrfeng
2019-04-28 12:29:43 +08:00
如果计算机可以知道一个数的话那一台就够了啊

告诉他计算 让他计算 a(b+1) - a
goodryb
2019-04-28 12:43:11 +08:00
考虑这个问题的前提是,计算机是一个完整的系统,而不是把他拆分成单个组件。

要么你信任这个计算系统,要么你不信任这个系统。

不要局限于太细节的东西,钻了牛角尖,重新审视一下需求。
miaomiao0323
2019-04-28 12:44:33 +08:00
多方安全计算问题吧,https://segmentfault.com/a/1190000018485299
ruimz
2019-04-28 12:44:54 +08:00
@TomVista 你不是计组不好,是语文不好。分明说的是 ab 两个数不能进内存和寄存器,可没说运算的过程不能进寄存器
keith1126
2019-04-28 13:01:55 +08:00
友情提醒各位,这个问题偏学术,是密码学问题
watzds
2019-04-28 13:04:20 +08:00
类似分解后再计算吧,比如 (a1+a2 …) * ( b1+ b2 …) 拆开单独计算 a1 b1
cigarzh
2019-04-28 13:09:45 +08:00
基于同态加密的多方保密计算
一堆论文
herozhang
2019-04-28 13:22:46 +08:00
换个思路,输入一大堆乘法运算,得到一大堆结果,但是只有输入方知道哪个结果才是真正想要的
ZavierXu
2019-04-28 13:31:27 +08:00
不要自作聪明发明算法,密码学没有你想象的这么简单。
楼主讨论的情况我觉得可以尽可能地隐去保密内容后把现有的情况和想要达到的目的说出来,因为我觉得你所描述的方法不一定是解决你的问题的方法
babalarf
2019-04-28 13:38:52 +08:00
换成对数,然后就是加减法
Fazauw
2019-04-28 13:42:16 +08:00
ab=(a+c)(b+c)-c(a+b)-c**2
TomVista
2019-04-28 14:07:48 +08:00
@ruimz 我可能真的语文不好.小明不吃屎.小明吃饭的时候会吃屎.
jie170601
2019-04-28 14:25:18 +08:00
如果加个随机数 c 的这种加法可以接受的话,那乘法为什么不用(a*c)*(b/c),( c!=0 ),是考虑到整除的问题吗

#26 的方法好像可以,不过分解得做复杂点
如果分解成 a*b = a1*b1+a1*b2+a2*b1+a2*b2 的话,通过方程组可以解出 a,b 的,虽然可能不是唯一解,要是找个方法让分解后的方程组有无穷多解就好了
nmdx
2019-04-28 14:25:19 +08:00
插句题外的。。学语文的作用是为了让人尝试去理解别人的意思。。。而不是为了去杠
freeandi
2019-04-28 14:37:25 +08:00
3 月 18 日,数学家 David Harvey 和 Joris van der Hoeven (分别来自新南威尔士大学和巴黎综合理工大学)在 HAL (法国国家科学研究中心机构库)提交了一篇论文,论文描述了一个将两个非常大的数字相乘的新方法,这是迄今为止发现的最快、最高效的乘法算法。
hmzt
2019-04-28 14:40:13 +08:00
建议用算盘或者机械计算器呢
TomVista
2019-04-28 15:10:22 +08:00
@nmdx 抱歉.
TomVista
2019-04-28 15:21:53 +08:00
@nmdx 我收回我的道歉,

突然有点生气.

呕吼.完蛋.我就不应该插入不知道从哪飞过来的纠纷,我就不应该,说什么棺材板.本来开开心心刷个帖子,成了杠精.

我能怎么办?总想搞事情.
purplewall
2019-04-28 15:22:36 +08:00
这不可能吧,从文件 io 肯定要内存映射,就算直接把数据写死在数据 section/segment 里面代码也要放在内存上才能运行啊,楼上说用算盘那个比较靠谱,理论上算盘机的计算能力和图灵机是一样的。
TomVista
2019-04-28 15:33:25 +08:00
@nmdx 我就不应该说我自己机组挂科,对不对.我不说他就不会反驳我语文不好,对不对,我就不会说小明到底吃不吃屎.

你说对不对?
我脑子有坑,过来找找嘲讽,对不对.

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

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

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

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

© 2021 V2EX