V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daijinming
V2EX  ›  程序员

RSA 和国密 SM2 一般都应用在什么场景

  •  
  •   daijinming · 2019-05-27 09:28:18 +08:00 · 7943 次点击
    这是一个创建于 2013 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RSA 和国密 SM2 一般都应用在什么场景,请大家不吝赐教

    27 条回复    2020-08-21 13:35:03 +08:00
    deadEgg
        1
    deadEgg  
       2019-05-27 09:44:52 +08:00   ❤️ 4
    RSA 原理是因式分解。
    SM2 是属于椭圆曲线加密范畴,原理是不同的。属于 ECC 派系,但是 SM2 和 ECC 的加解密和签名验签过程也是不同的。
    两者想通的点在于都属于非对称加密。

    现在很多应用场景都会用 ECC 代替 RSA,因为 RSA 需要更长的密钥长度才能达到和 ECC 同样的安全程度(单指时间上计算成本),所以 ECC 会更快。

    SM2 更多用于一些国内的一些特定的部门,你懂的,因为一些特殊的原因。

    目前还没有完整的证明过 SM2 相比于 ECC 的优势(我看到的一些并不够严谨。

    By the way , 谨慎用 gmssl,它的实现是双密钥的,通俗来说是有后门隐患的。
    bokchoys
        2
    bokchoys  
       2019-05-27 09:44:57 +08:00 via iPhone   ❤️ 1
    赐教不敢,分享所知的。

    SM2 是用来取代 RSA 的,SM2 的安全性和速度都好于 RSA。

    为了做到安全可控,有些政务,商用场景会用到 SM2。类似以后的国产操作系统,公钥体制,数据库,芯片等软硬件加密设计。

    从最近的贸易战来看,国家必须要有自己的一套加密体制才行……
    honeycomb
        3
    honeycomb  
       2019-05-27 09:45:59 +08:00 via Android
    @deadEgg gmssl 就是为了双密钥可以搞事情而设计
    allenforrest
        4
    allenforrest  
       2019-05-27 09:47:38 +08:00
    @deadEgg 不用 gmssl 有啥好的推荐?自造轮子?
    deadEgg
        5
    deadEgg  
       2019-05-27 09:47:51 +08:00
    @honeycomb

    是的,该作者不好评价,反正商用还得变相给他钱。等于赚了两头钱。

    反正有大数库+EC 库就能自己实现,并不复杂。
    deadEgg
        6
    deadEgg  
       2019-05-27 09:49:04 +08:00
    @allenforrest

    #5, 可以参考下 MIRACL,当然该库的协议商业也需要给钱,可以参考它的大数+ec 实现。
    momocraft
        7
    momocraft  
       2019-05-27 09:50:36 +08:00   ❤️ 1
    国密用在需要爱国的时候,RSA/ECDSA 用在其他
    deadEgg
        8
    deadEgg  
       2019-05-27 09:51:45 +08:00
    @allenforrest 还有就是 openssl sm2/3/4 的 patch 也已经 merge 进去了
    lcatt
        9
    lcatt  
       2019-05-27 09:57:18 +08:00
    @deadEgg RSA 的 DUAL_EC_DRBG 才是证实了的后门吧。。。当然相比于 gmssl,直接用 openssl 更好。。网安法出来后 SM2 不仅仅是少数部门用了,基本上等保的都要。
    deadEgg
        10
    deadEgg  
       2019-05-27 09:59:53 +08:00
    @lcatt 我知道的只要国资、国扶持、和 X 有资金往来的都得用。举个典型例子:曙光
    shawndev
        11
    shawndev  
       2019-05-27 10:31:58 +08:00
    需要商密认证的产品,比如军民融合
    reechangs
        12
    reechangs  
       2019-05-27 10:35:46 +08:00 via Android
    sm2 我自己跑的数据,是比 ecdsa 差的...比 RSA4096 略好
    supertan
        13
    supertan  
       2019-05-27 11:07:13 +08:00 via iPhone
    网银,手机银行
    qwerthhusn
        14
    qwerthhusn  
       2019-05-27 11:13:21 +08:00
    我们用过那玩意,SM1,相当于 AES,CHACHA20,3DES 这一类可逆对称加密。。。那玩意还要连个密码机,密码机其实就是个 3.5 的硬盘上面连个什么芯片,线都裸露在外面,感觉好 low。

    BTW,听说,ECC 的 NIST 标准好像有个魔鬼参数,被怀疑是后门。可能 ECC X25519 未来才是主流
    imnpc
        15
    imnpc  
       2019-05-27 11:33:22 +08:00   ❤️ 1
    海关系统用的国密 USB_KEY IC 卡都是
    behanga
        16
    behanga  
       2019-05-27 12:03:27 +08:00
    https 啊 https->ssl->rsa
    bumz
        17
    bumz  
       2019-05-27 12:17:33 +08:00
    @qwerthhusn #14 你指 Dual_EC_DRBG 的 P/Q 值?这是一个只有 NSA 自己能证实的后门,但是理论上后门可能,泄露的资料证明 NSA 有此意图
    allenforrest
        18
    allenforrest  
       2019-05-27 13:57:49 +08:00
    @deadEgg 谢谢,能 merge 入 openssl 是好事啊,不过只是 merge 了基本算法函数?还是整套数据格式的处理都包括进去了?
    allenforrest
        19
    allenforrest  
       2019-05-27 14:01:46 +08:00
    @qwerthhusn 的确,curve25519 是比较 popular 的曲线,sm2 的 sm2p256v1 不知道业界评价如何
    donyee
        20
    donyee  
       2019-05-27 14:01:58 +08:00   ❤️ 1
    国内银行发行的 IC 卡、小程序乘车码...这两个是我都接触过的,都有使用 SM2 算法
    deadEgg
        21
    deadEgg  
       2019-05-27 14:02:35 +08:00
    @allenforrest 因为还是实现还是基于 openssl 框架的,里面都是 openssl 的数据结构,所以数据转化需要自己手动调用一些 openssl 的 base api。
    sdhzdmzzl
        22
    sdhzdmzzl  
       2019-05-27 14:03:36 +08:00
    @deadEgg 只是基本算法 merge 进去了,ssl 这一套没有进去。所以现在还有 gmssl 和 tassl 这俩支持国密算法的从 openssl 基础上改的 ssl。
    deadEgg
        23
    deadEgg  
       2019-05-27 14:06:02 +08:00
    @sdhzdmzzl
    是的,整套的东西还是 gmssl 写的完善,当然它的部分底层也是拿 openssl 来改的。
    wm5d8b
        24
    wm5d8b  
       2019-05-27 21:24:13 +08:00
    Bouncy Castle 呢?
    skkk
        25
    skkk  
       2019-05-27 22:01:53 +08:00 via iPhone   ❤️ 1
    例如:黄金交易所与银行间的线路。
    deadEgg
        26
    deadEgg  
       2019-05-29 14:23:15 +08:00
    @wm5d8b BouncyCastle 无论 java 还是 c#版本跑起来的速度都很慢,拿 java 为例,本身它实现大数和 ec 就是基于 java 所以语言问题导致厂商很少使用它,最多教学机构用的多。

    顺带吐槽下,bc 的 api 写的也很烂,比 jce 写的还烂
    jkshmyt
        27
    jkshmyt  
       2020-08-21 13:35:03 +08:00
    8
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2152 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.