V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ksc010
V2EX  ›  问与答

缺乏信任关系的两个人如何安全的交换情报

  •  
  •   ksc010 · 247 天前 · 1572 次点击
    这是一个创建于 247 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 A,B 两个人在网络上认识但是缺乏信任
    他们各自有一个对方需要的情报(秘密)这个情报很短 比如 100 个字符就能描述清楚
    这种情况下 怎么才能安全的交换这个情报呢?
    ps:这个情报不希望有第三方知道
    第 1 条附言  ·  247 天前
    有个初步思路
    1. 我编写一段开源的代码程序,在发给对方
    2. 对方运行这段程序,这个程序可以将对方的“情报”进行校验并返回加密后的“加密情报”以及“验证码”;
    3. 这个加密情报智能通过秘钥来解密,程序和验证码可以保定加密情报里面的信息是我需要的
    同时又可以验证下面的“秘钥”的正确性
    4. 对方将"加密情报"和验证码发给我
    5. 同样我也将 “加密情报 B”和“验证码 B”发给对方
    6. 接下来就是交换各自的秘钥(比如是 10 位字符,这样就轮流发给对方)
    7. 当然要设定一种机制,使生成的这个秘钥每一位都可以校验

    --------------
    随便想的可能有漏洞,也可能不具有可行性
    24 条回复    2021-03-27 20:07:57 +08:00
    dallaslu
        1
    dallaslu   247 天前
    第一反应是 PGP 。但是,为防止有人想空手套白狼,应该走两个担保交易
    momocraft
        2
    momocraft   247 天前
    缺乏信任 即使原样拿到了有什么用

    你是想说缺乏可信任信道吗
    miaeLKK
        3
    miaeLKK   247 天前 via Android
    简单的用 DES,复杂的加上 RAS 。
    kop1989
        4
    kop1989   247 天前
    风险指代什么?怕一方交出来之后另外一方爽约?还是怕交换渠道上有人窃听?还是怕一方说的是假情报?
    这三者是完全不同维度的解决方案。
    ksc010
        5
    ksc010   247 天前
    @kop1989 怕爽约
    Tumblr
        6
    Tumblr   247 天前
    A 和 B 相互不信任
    A 和 B 需要交换信息

    这不是个典型的第三方介入的交易场景么。。。

    /go/all4all, 走闲鱼
    eason1874
        7
    eason1874   247 天前
    怕窃听就用非对称加密,比如 RSA 。本地生成公钥私钥,分别把自己的公钥发给对方,私钥在自己手里,始终没经过网络,对方用公钥加密了发过来,没大规模超算不可能破解密文。

    怕对方骗你,就只能一点一点交换,确认一部分有效,再继续交换。

    这种东西找第三方没用啊,第三方不太可能知道双方情报内容的可信度。
    Vegetable
        8
    Vegetable   247 天前
    亲这边建议采用支付宝担保交易呢
    Aksura
        9
    Aksura   247 天前
    双方公开自己的公钥,然后用对方的公钥加密发给对方不就完了?
    yhxx
        10
    yhxx   247 天前
    怕爽约那不就是支付宝。。。
    ksc010
        11
    ksc010   247 天前
    @yhxx
    @Vegetable 是要交换信息 不是买卖东西
    chenyu8674
        12
    chenyu8674   247 天前
    关键问题是能如何保证情报本身可靠
    假如我可以做出让对方不知道是假情报的假情报,怎么换不都没意义
    swulling
        13
    swulling   247 天前
    这不就是第三方担保支付么,双方把信息都交给第三方保管,第三方收到双方信息后分发。

    但是如果不想引入信任的第三方,那么就使用智能合约。目前智能合约可以做到图灵完备,所以可以将信息检查的工作编码入智能合约,这样就可以方便的交换信息了。
    hxy100
        14
    hxy100   247 天前   ❤️ 1
    要防止对方坑你,这个无解,因为你无法立即验证情报是否是真实的,我编一段故事分段发给你,你程序能验证真伪不?顶多只能验证多段消息连成的句子通顺与否吧,所以这种问题不是计算机能解决的,问题的关键还是在于人自身。
    Mohanson
        15
    Mohanson   247 天前
    零知识证明.
    LongBitcoin
        16
    LongBitcoin   247 天前
    零知识证明
    niubee1
        17
    niubee1   247 天前
    你怎么保证对方不会修改了你的程序再运行呢?
    Jooooooooo
        18
    Jooooooooo   247 天前
    不要自己发明加密算法
    huayumo
        19
    huayumo   246 天前
    这玩意就像吸铁石,两个极不会相吸,你放一块铁在中间,两级都能吸了
    SaberAlter
        20
    SaberAlter   246 天前
    @Aksura 不行,无法确保对方会用自己的公钥加密。
    light010
        21
    light010   246 天前
    数字签名
    ksc010
        22
    ksc010   246 天前
    @hxy100 程序到是可以全程(远程直播啥的方式)监控保证代码不被修改
    另外这里要交换的情报是可以通过代码验证的(当做一个设定)
    sillydaddy
        23
    sillydaddy   246 天前 via Android   ❤️ 1
    感谢提出这么好的问题!一个感谢敬上。
    搜了下发现相关的主题叫做"Fair Exchange",直译就是“公平交换”。

    很有意思的密码学问题。大概看了下,发现目前的方案好像跟你说的差不多,都是通过逐段发送密钥的方式,这样在双方有一方反悔停发时,两人都处于相似的处境,比如都拥有了一半的密钥,要么都解密不了密文,要么都要花相近的计算量暴力破解密文,而率先终止交易也就是说多接收了一段密钥的那个人,最多也只比另外一方稍占优势而已。

    还没仔细研究所以只能卖弄这么多,楼主你还是看下研究论文吧。
    lymith
        24
    lymith   245 天前
    第三方+随机+分段显示
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1411 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:43 · PVG 01:43 · LAX 09:43 · JFK 12:43
    ♥ Do have faith in what you're doing.