• 椭圆曲率算法不同曲线的安全性


    椭圆曲率加密算法 (ECC)是一种非对称加密算法。相比于RSA 算法,汽车行业越来越倾向于使用ECC,因为

    1. 汽车上芯片资源有限;且
    2. 达到同样安全等级,ECC的密钥长度小于RSA,也就是ECC算法更省资源。
      ECC算法有很多曲线。本文介绍不同曲线的安全性。

    定义

    • ECC: Elliptic curve cryptography 椭圆曲线算法

    为什么汽车行业越来越倾向于ECC算法?

    NIST SP 800-57[1] 比较了不同加密算法的安全等级,见表 1.
    根据表1, 要达到256位安全强度(“Security Strength "列),RSA 密钥长度为15360位,而ECC密钥只需要512位,远远小于 RSA。
    当前推荐达到 128 位安全等级,RSA需要 3072 位,ECC 需要256位。
    行业目前使用比较多的是 RSA 2048,不使用 RSA 3072 的一个原因就是密钥太长了。如果要更高安全等级,更倾向于使用 ECC 256。

    不同密码算法安全性的比较是很复杂的、很难的工作,除了 NIST 给出了密钥长度的推荐外,还有其他机构。详细汇总见网站 www.keylength.com

    所有机构给出的结论都认为:达到同样安全等级,ECC的密钥长度小于RSA,也就是ECC算法更省资源。

    因为汽车上的芯片资源有限,所有将来大家会更倾向于使用 ECC。

    表 1. 不同加密算法安全等级比较

    ECC 算法的安全性及经验

    ECC 曲线汇总、安全性及选取在网站 http://safecurves.cr.yp.to/ 都有详细的介绍。
    我这里只介绍自己的一些经验。

    汽车行业当前主要用到的曲线是:

    1. Curve 25519
    2. brainpool
    3. NIST Curve
    4. SM2 (国密)

    当前国外的芯片硬件主要支持曲线 1-3。比如英飞凌 HSM 培训材料[2] 中说支持曲线 1-3。
    国内的安全芯片一般会支持曲线4,其他曲线就不清楚了。
    听说国外的芯片因为没有国密局的批准,所以不能支持 SM2 曲线(不确定真伪)。

    Curve 25519

    Curve 25519 是由 Bernstein 在 2006 年发明的[3]。就如 [3] 中标题所说,Curve 25519 特点就是快!它比其他两个曲线运算速度快。但是性能的提升是有代价的,就是它安全性降低了,更容易受到侧信道攻击[4]。

    当前Curve 25519 的硬件加速一般没有做防侧信道攻击的保护。如果要防侧信道攻击,需要软件做一些措施。但软件措施会:

    1. 增加算法的复杂度,引入漏洞;
    2. 软件措施会降低算法性能,可能最终使 Cureve 25519 的性能和另外两个算法差别不大;
    3. 软件措施的有效性笔比较难验证。

    NIST 曲线

    NIST 是美国政府制定的曲线。
    NIST 曲线可以抵御侧信道攻击。但是密码行业对 NIST 曲线有疑虑,怀疑它有不为人知道的后门。

    在 safecurves.cr.yp.to (http://safecurves.cr.yp.to/rigid.html) 中,也是把 NIST 曲线标记为 ”manipulatable“。

    如果在 bing (最好是 国际版)中搜索”NIST elliptic curve backdoor“,会弹出很多结果,比如:

    1. should-we-trust-the-nist-recommended-ecc-parameters: https://crypto.stackexchange.com/questions/10263/should-we-trust-the-nist-recommended-ecc-parameters
    2. Elliptic Curve Cryptography and Government Backdoors: https://services.math.duke.edu/~bray/Courses/89s-MOU/2016/Papers/BAS_Paper3_EllipticCurveCryptography.pdf
    3. The NSA Back Door to NIST: http://www.ams.org/notices/201402/rnoti-p190.pdf

    SM2 曲线

    中国因为担心 NIST 曲线有后门,所有国密局推出了自主可控的算法 SM2。算法详细规范见国密局官网 https://oscca.gov.cn/sca/xxgk/2010-12/17/content_1002386.shtml

    SM2 算法似乎遇到了类似的问题,就是部分参数在 SM2 规范里面没有给出令人信服的理由为什么这么选取。比如 [5] 中搜索 SM2 就能找到相关内容。

    brainpool 曲线

    和中国一样,欧洲也担心 NIST 曲线有漏洞,所以推出了 brainpool 曲线。

    brianpool 曲线的规范:

    1. ECC Brainpool. "ECC Brainpool standard curves and curve generation." October 2005. http://www.ecc-brainpool.org/download/Domain-parameters.pdf
    2. RFC. "Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation". 2010/03. https://www.rfc-editor.org/rfc/rfc5639

    bianpool 可以抵御侧信道攻击。其参数选择也合理,目前密码行业没有怀疑它有后门。

    参考

    [1] NIST. SP 800-57 Recommendation for Key Management, Part 1, Rev 5 [EB/OL]. https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf, 2020/03.

    [2] 英飞凌. AURIX Training Hardware Security Module[EB/OL]. https://www.infineon.com/dgdl/Infineon-AURIX_TC3xx_Hardware_Security_Module_Quick-Training-v01_00-EN.pdf?fileId=5546d46274cf54d50174da4ebc3f2265, 2020/09.

    [3] Daniel J. Bernstein. 2006. Curve25519: New Diffie-Hellman speed records. In Public Key Cryptography (Lecture Notes in Computer Science), Moti Yung, Yevgeniy Dodis, Aggelos Kiayias, and Tal Malkin (Eds.), Vol. 3958. Springer, 207--228.

    [4] May the Fourth Be With You: A Microarchitectural Side Channel Attack on Several Real-World Applications of Curve25519. ACM, 2017.

    [5] Bernstein D J , Chou T , Chuengsatiansup C , et al. How to manipulate curve standards: a white paper for the black hat[J]. 2015.

  • 相关阅读:
    Spring 发生 has not been refreshed yet 异常
    rsyslog config
    grok
    阿里云态势
    Unity的asm笔记
    Unity2020或Unity2019安装后无法启动
    rider代码折叠
    使用rider调试lua
    MacType更好的字体渲染
    Unity字体和画面花屏处理
  • 原文地址:https://www.cnblogs.com/byronsh/p/ecc-algorithm-security-and-selection.html
Copyright © 2020-2023  润新知