跳转到内容

双椭圆曲线确定性随机比特生成器:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
通过翻译页面“Dual EC DRBG”创建
标签加入博客链接 检查外部链接 增加广告宣传内容 内容翻译
 
通过翻译页面“Dual EC DRBG”创建
标签疑似違反兩岸用語方針 在條目代碼底部加入內容 加入博客链接 检查外部链接 增加广告宣传内容 内容翻译
第2行: 第2行:


== 潜在的后门 ==
== 潜在的后门 ==
Weaknesses in the cryptographic security of the algorithm were known and publicly criticised well before the algorithm became part of a formal standard endorsed by the [[美國國家標準協會|ANSI]], [[國際標準化組織|ISO]], and formerly by the [[國家標準技術研究所|National Institute of Standards and Technology]] (NIST). One of the weaknesses publicly identified was the potential of the algorithm to harbour a kleptographic [[軟體後門|backdoor]] advantageous to those that know the kleptographic backdoor—the United States government's [[美国国家安全局|National Security Agency]] (NSA)—and no-one else. In 2013, ''The New York Times'' reported that documents in their possession but never released to the public "appear to confirm" that the backdoor was real, and had been deliberately inserted by the NSA as part of the NSA's Bullrun decryption program. In December 2013, a Reuters news article alleged that in 2004, before NIST standardized Dual_EC_DRBG, NSA paid RSA Security $10 million in a secret deal to use Dual_EC_DRBG as the default in the RSA BSAFE cryptography library, which resulted in RSA Security becoming the most important distributor of the insecure algorithm. RSA responded that they "categorically deny" that they had ever knowingly colluded with the NSA to adopt an algorithm that was known to be flawed, saying "we have never kept [our] relationship [with the NSA] a secret".{{Quote|text=A Trojan is really, really big. You can’t say that was a mistake. It’s a massive piece of code collecting keystrokes. But changing a bit-one to a bit-two [in the registry to change the default random number generator on the machine] is probably going to be undetected. It is a low conspiracy, highly deniable way of getting a backdoor. So there’s a benefit to getting it into the library and into the product.|sign=Bruce Schneier|source=<ref name="wired2013" ></blockquote>}}In December 2013 a proof of concept backdoor was published that uses the leaked internal state to predict subsequent random numbers, an attack viable until the next reseed.
Weaknesses in the cryptographic security of the algorithm were known and publicly criticised well before the algorithm became part of a formal standard endorsed by the [[美國國家標準協會|ANSI]], [[國際標準化組織|ISO]], and formerly by the [[國家標準技術研究所|National Institute of Standards and Technology]] (NIST). One of the weaknesses publicly identified was the potential of the algorithm to harbour a kleptographic [[軟體後門|backdoor]] advantageous to those that know the kleptographic backdoor—the United States government's [[美国国家安全局|National Security Agency]] (NSA)—and no-one else. In 2013, ''The New York Times'' reported that documents in their possession but never released to the public "appear to confirm" that the backdoor was real, and had been deliberately inserted by the NSA as part of the NSA's Bullrun decryption program. In December 2013, a Reuters news article alleged that in 2004, before NIST standardized Dual_EC_DRBG, NSA paid RSA Security $10 million in a secret deal to use Dual_EC_DRBG as the default in the RSA BSAFE cryptography library, which resulted in RSA Security becoming the most important distributor of the insecure algorithm. RSA responded that they "categorically deny" that they had ever knowingly colluded with the NSA to adopt an algorithm that was known to be flawed, saying "we have never kept [our] relationship [with the NSA] a secret".

Sometime before its first known publication in 2004, a possible kleptographic [[軟體後門|backdoor]] was discovered with the Dual_EC_DRBG's design, with the design of Dual_EC_DRBG having the unusual property that it was theoretically impossible for anyone but Dual_EC_DRBG's designers (NSA) to confirm the backdoor's existence. [[布魯斯·施奈爾|Bruce Schneier]] concluded shortly after standardization that the "rather obvious" backdoor (along with other deficiencies) would mean that nobody would use Dual_EC_DRBG. The backdoor would allow NSA to decrypt for example [[傳輸層安全性協定|SSL/TLS]] encryption which used Dual_EC_DRBG as a CSPRNG.

Members of the ANSI standard group, to which Dual_EC_DRBG was first submitted, were aware of the exact mechanism of the potential backdoor and how to disable it, but did not take sufficient steps to unconditionally disable the backdoor or to widely publicize it. The general cryptographic community was initially not aware of the potential backdoor, until Dan Shumow and Niels Ferguson's publication, or of [[黑莓公司|Certicom]]'s Daniel R. L. Brown and Scott Vanstone's 2005 patent application describing the backdoor mechanism.

In September 2013, ''[[纽约时报|The New York Times]]'' reported that internal NSA memos leaked by [[爱德华·斯诺登|Edward Snowden]] indicated that the NSA had worked during the standardization process to eventually become the sole editor of the Dual_EC_DRBG standard,<ref name="sole_author">{{Cite web|url=https://www.theguardian.com/world/2013/sep/05/nsa-gchq-encryption-codes-security|title=Revealed: how US and UK spy agencies defeat internet privacy and security|publisher=The Guardian}}</ref> and concluded that the Dual_EC_DRBG standard did indeed contain a backdoor for the NSA.<ref name="NYT9513">{{Cite news|url=http://bits.blogs.nytimes.com/2013/09/10/government-announces-steps-to-restore-confidence-on-encryption-standards/|title=Government Announces Steps to Restore Confidence on Encryption Standards|last=Perlroth|first=Nicole|date=September 10, 2013|work=The New York Times|newspaper=The New York Times|accessdate=September 11, 2013}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;work=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;newspaper=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> As response, NIST stated that "NIST would not deliberately weaken a cryptographic standard."<ref>{{Cite web|url=http://www.nist.gov/director/cybersecuritystatement-091013.cfm|title=Cryptographic Standards Statement|accessdate=2018-02-15|date=2013-09-10|last=Swenson|first=Gayle|language=en}}</ref>
According to the New York Times story, the NSA spends $250 million per year to insert backdoors in software and hardware as part of the Bullrun program.<ref>{{Cite news|url=https://www.nytimes.com/interactive/2013/09/05/us/documents-reveal-nsa-campaign-against-encryption.html|title=Secret Documents Reveal N.S.A. Campaign Against Encryption|date=5 September 2013|work=The New York Times}}</ref> A Presidential advisory committee subsequently set up to examine NSA's conduct recommended among other things that the US government "fully support and not undermine efforts to create encryption standards".

In April 21, 2014, NIST withdrew Dual_EC_DRBG from its draft guidance on random number generators recommending "current users of Dual_EC_DRBG transition to one of the three remaining approved algorithms as quickly as possible."<ref name="nist_abandonment">{{Cite news|url=https://www.nist.gov/itl/csd/sp800-90-042114.cfm|title=NIST Removes Cryptography Algorithm from Random Number Generator Recommendations|date=21 April 2014|work=National Institute of Standards and Technology}}</ref>

== 算法被加入后门的经过 ==
{| class="wikitable sortable" style="margin-bottom: 10px;"
! Time
! What happened
|-
| May 1997
| Adam L. Young and Moti Yung present their cryptovirology paper "Kleptography: Using Cryptography Against Cryptography" at Eurocrypt 1997.<ref name="YoungYung199705">{{Cite journal|title=Kleptography: Using Cryptography Against Cryptography|url=https://www.researchgate.net/publication/221348188_Kleptography_Using_Cryptography_Against_Cryptography|last=Young|first=Adam|last2=Yung|first2=Moti|date=1997-05-11|journal=Advances in Cryptology — EUROCRYPT ’97|publisher=Springer, Berlin, Heidelberg|doi=10.1007/3-540-69053-0_6|series=Lecture Notes in Computer Science|pages=62–74|language=en|isbn=3540690530}}</ref> The paper shows how to build a covert key exchange into the Diffie–Hellman key exchange protocol. The EC-DRBG backdoor is, with only a trivial modification, equivalent to the Young–Yung backdoor in Diffie–Hellman from Eurocrypt 1997.
|-
| August 1997
| Adam L. Young and Moti Yung present their cryptovirology paper "The Prevalence of Kleptographic Attacks on Discrete-Log Based Cryptosystems" at Crypto 1997.<ref name="YoungYung199708">{{Cite journal|title=The prevalence of kleptographic attacks on discrete-log based cryptosystems|url=https://www.researchgate.net/publication/221354983_The_Prevalence_of_Kleptographic_Attacks_on_Discrete-Log_Based_Cryptosystems|last=Young|first=Adam|last2=Yung|first2=Moti|date=1997-08-17|journal=Advances in Cryptology — CRYPTO '97|publisher=Springer, Berlin, Heidelberg|doi=10.1007/bfb0052241|series=Lecture Notes in Computer Science|pages=264–276|language=en|isbn=9783540633846}}</ref> The paper presents a recipe on how to build asymmetric backdoors into crypto algorithms based on discrete logs. The paper generalizes the paradigm used to attack Diffie–Hellman from Eurocrypt 1997. The paper introduces the 'discrete log kleptogram' that would later be designed into the EC-DRBG.
|-
| ANSI X9.82 standardization process kicks off in the early 2000s
| NSA drives to include Dual_EC_DRBG in ANSI X9.82, when the standardization process kicks off in the early 2000s.<ref name="green_other">{{Cite web|url=http://blog.cryptographyengineering.com/2013/12/a-few-more-notes-on-nsa-random-number.html|title=A Few Thoughts on Cryptographic Engineering: A few more notes on NSA random number generators|accessdate=2015-12-23|date=2013-12-28|last=Green|first=Matthew|publisher=Blog.cryptographyengineering.com}}</ref>
|-
| After the ANSI X9.82 standardization process kicked off and before NIST publication
| According to John Kelsey (who was listed as author of NIST SP 800-90A together with Elaine Barker), the possibility of the backdoor by carefully chosen ''P'' and ''Q'' values was brought up at an ANSI X9.82 meeting. As a result, a way was specified for implementers to choose their own ''P'' and ''Q'' values.<ref name="kelsey">http://csrc.nist.gov/groups/ST/crypto-review/documents/dualec_in_X982_and_sp800-90.pdf</ref> It turned out later that the specific subtle formulation that NIST put into the standard meant that users could only get the crucial FIPS 140-2 validation of their implementation if they used the original compromised ''P'' and ''Q'' values.<ref>{{Cite web|url=http://marc.info/?l=openssl-announce&m=138747119822324&w=2|title='Flaw in Dual EC DRBG (no, not that one)' - MARC|accessdate=2015-12-23|date=2013-12-19|publisher=Marc.info}}</ref>
|-
| October 2003
| Goh, Boneh, Pinkas and Golle publish a research paper on the problem of adding key recovery to the SSL/TLS and SSH protocols. They state "The government can convince major software vendors to distribute SSL/TLS or SSH2 implementations with hidden and unfilterable key recovery... Users will not notice the key recovery mechanism because the scheme is hidden." They then suggest that when the server needs a random nonce it can use instead an encryption of the session key computed under the escrow key. This does not leverage an elliptic curve discrete-log kleptogram and as a result requires a large-bandwidth subliminal channel to pull off.
|-
| June 2004
| [http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=D96134C539F238DD741A65F49189E076?doi=10.1.1.6.1272&rep=rep1&type=pdf A draft] of ANSI X9.82, Part 3 is published, which includes Dual_EC_DRBG. It is unknown if earlier drafts were published.
|-
| Sometime in 2004
| RSA makes Dual_EC_DRBG the default CSPRNG in BSAFE. In 2013, Reuters reports this is a result of a secret $10 million deal with NSA.
|-
| 21 January 2005
| Priority date of a patent application<ref name="patent">{{Cite patent|invent-1=Brown, Daniel R. L.|invent1=Brown, Daniel R. L.|invent2=Vanstone, Scott A.|title=Elliptic curve random number generation|country=US|number=2007189527|pridate=2005-01-21}}</ref> by the two [[黑莓公司|Certicom]] members of the ANSI X9.82 standardization committee. The patent describes the working of an elliptic curve CSPRNG backdoor identical to the potential backdoor in Dual_EC_DRBG, and ways to neutralize such a hidden backdoor by choosing alternative curve points and more bit truncation in the output function.
|-
| Sometime in 2005<ref>{{Cite web|url=http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=30816|title=ISO/IEC 18031:2005 - Information technology - Security techniques - Random bit generation|accessdate=2015-12-23|publisher=Iso.org}}</ref>
| ISO/IEC 18031:2005 is published, and includes Dual_EC_DRBG.
|-
| December 2005
| The first draft of NIST SP 800-90A is released to the public, includes Dual_EC_DRBG.
|-
| 16 March 2006
| Kristian Gjøsteen publishes ''Comments on Dual-EC-DRBG/NIST SP 800-90, Draft December 2005'' showing that part of Dual_EC_DRBG is "not cryptographically sound", and constructing a bit-predictor with an advantage of 0.0011, which is considered unacceptable for a CSPRNG.<ref name="kristian">http://www.math.ntnu.no/~kristiag/drafts/dual-ec-drbg-comments.pdf</ref>
|-
| 29 March 2006
| Daniel R. L. Brown publishes "[http://eprint.iacr.org/2006/117 ''Conjectured Security of the ANSI-NIST Elliptic Curve RNG'']", concluding that "[Dual_EC_DRBG] should be a serious consideration", assuming less truncation of the curve points than is present in Dual_EC_DRBG, as shown necessary by Gjøsteen's 2006 paper. The paper also anticipates Shumow and Ferguson's 2007 announcement of a possible backdoor: "This proof makes essential use of ''Q'' being random. The reason for this is more than just to make the proof work. If ''Q'' is not random, then it may be the case the adversary knows a ''d'' such that ''dQ = P''. Then ''dR<sub>i</sub>'' = ''dS''<sub>''i''+1</sub>, so that such a distinguisher could immediately recover the secret prestates from the output. Once the distinguisher gets the prestates, it can easily distinguish the output from random. Therefore, it is generally preferable for ''Q'' to be chosen randomly, relative to ''P''."
|-
| 29 May 2006
| Berry Schoenmakers and Andrey Sidorenko publish a ''Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator'', showing that empirically the output from Dual_EC_DRBG can be distinguished from random bits, concluding that Dual_EC_DRBG is insecure as a CSPRNG. Note that this is a separate problem from the backdoor. The authors also point out that the security claim of the Dual_EC_DRBG is only supported by informal discussion. No proof of security (e.g., via a reduction argument) is given. It follows that NIST ignored the provably secure pseudorandom number generators that had long existed in the peer-reviewed academic literature.
|-
| June 2006
| NIST SP 800-90A is published, includes Dual_EC_DRBG with the defects pointed out by Kristian Gjøsteen and Berry Schoenmakers and Andrey Sidorenko not having been fixed.
|-
| June 2007
| Young and Yung publish a research paper detailing a provably secure asymmetric backdoor in SSL. The asymmetric backdoor utilizes a twisted pair of elliptic curves resulting in a discrete log kleptogram that easily fits into the hello nonce. The attack is an attack on SSL random number generation. The act of generating a hello nonce using the EC-DRBG that NIST backdoored mimics exactly this attack on SSL by Young and Yung.
|-
| August 2007
| Dan Shumow and Niels Ferguson give an informal presentation demonstrating that an attacker with the backdoor and a small amount of output can completely recover the internal state of EC-DRBG, and therefore predict all future output.<ref name="rump">{{Cite web|url=http://rump2007.cr.yp.to/15-shumow.pdf|title=On the Possibility of a Back Door in the NIST SP800-90 Dual Ec PRNG|last=Shumow|first=Dan|publisher=Microsoft}}</ref>
|-
| 15 November 2007
| Bruce Schneier publishes an article with the title "''Did NSA Put a Secret Backdoor in New Encryption Standard?''" in ''[[连线|Wired]]'', based on Dan Shumow and Niels Ferguson's presentation.
|-
| 6 June 2013
| The first news stories (unrelated to Dual_EC_DRBG) based on Edward Snowden's leak of NSA documents are published.
|-
| 5 September 2013
| Existence of NSA's Bullrun program is revealed, based on the Snowden leaks. One of the purposes of Bullrun is described as being "''to covertly introduce weaknesses into the encryption standards followed by hardware and software developers around the world.''" ''The New York Times'' states that "the N.S.A. had inserted a back door into a 2006 standard adopted by N.I.S.T... called the Dual EC DRBG standard",<ref>{{Cite news|url=http://bits.blogs.nytimes.com/2013/09/10/government-announces-steps-to-restore-confidence-on-encryption-standards/|title=Government Announces Steps to Restore Confidence on Encryption Standards|last=Perlroth|first=Nicole|date=10 September 2013|publisher=The New York Times}}</ref> confirming that NSA carried out a malicious software attack against the American people.
|-
| 10 September 2013
| Gail Porter, director of the NIST Public Affairs Office, released a statement, saying that "NIST would not deliberately weaken a cryptographic standard."<ref>{{Cite web|url=https://www.nist.gov/director/cybersecuritystatement-091013.cfm|title=Cryptographic Standards Statement|accessdate=2015-12-23|date=2013-09-10|publisher=Nist.gov}}</ref> The statement does not address the fact that NIST ultimately ignored the warning about a possible backdoor in the standard from NIST's own cryptographer, John Kelsey.
|-
| 19 September 2013
| RSA Security advises its customers to stop using Dual_EC_DRBG in RSA Security's ''BSAFE'' toolkit and ''Data Protection Manager'', citing NIST guidance made Sept. 12, 2013 that indicated: "NIST strongly recommends that, pending the resolution of the security concerns and the re-issuance of SP 800-90A, the Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A, no longer be used." <ref name="NIST Dual EC DRBG Bulletin">{{Cite web|url=http://csrc.nist.gov/publications/nistbul/itlbul2013_09_supplemental.pdf|title=SUPPLEMENTAL ITL BULLETIN FOR SEPTEMBER 2013|accessdate=12 September 2013|last=NIST|first=National Institute of Standards & Technology|publisher=NIST.gov}}</ref> Initial media reports cast suspicion over RSA's continued use of Dual_EC_DRBG as the default in its BSAFE and Data Protection Manager products, particularly after 2007 in light of previous published concerns over the potential for a backdoor in the algorithm. RSA Chief of Technology Sam Curry writes a short justification for RSA Security's choice to use Dual_EC_DRBG as default, which is widely criticized by cryptographers. Curry does not discuss the later revealed $10 million deal with NSA to use Dual_EC_DRBG.
|-
| 18 December 2013
| A presidential advisory committee set up to examine the NSA recommended that the US government "fully support and not undermine efforts to create encryption standards"<ref name="advisory_panel">{{Cite web|url=https://arstechnica.com/information-technology/2013/12/nsa-should-stop-undermining-encryption-standards-obama-panel-says/|title=NSA should stop undermining encryption standards, Obama panel says|publisher=Ars Technica}}</ref>
|-
| 20 December 2013
| Reuters reports on the existence of a $10 million deal between RSA and NSA to set Dual_EC_DRBG as the default CSPRNG in BSAFE.
|-
| 22 December 2013
| RSA Security posts statements categorically denying that it "entered into a 'secret contract' with the NSA to incorporate a known flawed random number generator into its BSAFE encryption libraries" though its statements do not deny the existence of a $10 million deal between RSA and the NSA to set Dual_EC_DRBG as the standard in BSAFE.<ref name="RSA Company Statements">{{Cite web|url=https://blogs.rsa.com/news-media-2/rsa-response/|title=RSA Response to Media Claims Regarding NSA Relationship|accessdate=22 December 2013|last=The Security Division of EMC|first=RSA,|publisher=RSA}}</ref> Some news sites such as BBC summarize the press release as a direct denial of existence of the $10 million deal,<ref>{{Cite news|url=http://www.bbc.co.uk/news/technology-25492461|title=RSA denies link with US spying agency|date=23 December 2013|work=BBC News}}</ref> while other commentary point out that it is not clear what claims exactly the carefully worded RSA Security press release is denying, if any.<ref>{{Cite web|url=http://www.techdirt.com/articles/20131222/23532125671/rsas-denial-concerning-10-million-nsa-to-promote-broken-crypto-not-really-denial-all.shtml|title=RSA's 'Denial' Concerning $10 Million From The NSA To Promote Broken Crypto Not Really A Denial At All|accessdate=2015-12-23|date=2013-12-23|publisher=Techdirt}}</ref><ref>{{Cite web|url=https://arstechnica.com/security/2013/12/rsa-issues-non-denying-denial-of-nsa-deal-to-favor-flawed-crypto-code/|title=RSA issues non-denying denial of NSA deal to favor flawed crypto code|accessdate=2015-12-23|date=2013-12-23|last=Goodin|first=Dan|publisher=Ars Technica}}</ref>
|-
| 25 February 2014
| In his 2014 RSA Conference keynote speech, RSA Security Executive Chairman (and EMC Executive Vice President) Art Coviello implied that RSA Security had not seen merit in the 2006 and 2007 research papers that pointed out flaws in Dual_EC_DRBG until NIST issued guidance to stop using the CSPRNG. Coviello said RSA Security had seen decreasing revenue from encryption, and no longer wanted to expend resources driving encryption research, but as "contributor to and beneficiary of open standards" would trust NIST and NSA guidance, and blamed NSA for tricking the company.<ref name="Coviello">{{Cite web|url=http://jeffreycarr.blogspot.dk/2014/02/six-cryptographers-whose-work-on-dual.html|title=Six Cryptographers Whose Work on Dual EC DRBG Were Deemed Without Merit by RSA Chief Art Coviello|author=Jeffrey Carr|date=2014-02-26|last=Jeffrey Carr|publisher=Digital Dao}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref>
|-
| 21 April 2014
| Following a public comment period and review, NIST removed Dual_EC_DRBG as a cryptographic algorithm from its draft guidance on random number generators, recommending "that current users of Dual_EC_DRBG transition to one of the three remaining approved algorithms as quickly as possible."
|-
| August 2014
| Checkoway et al. publish a research paper analyzing the practicality of using the EC-DRBG to build an asymmetric backdoor into SSL and TLS.
|-
| January 2015
| Michael Wertheimer, director of research at the NSA, wrote "With hindsight, NSA should have ceased supporting the Dual EC DRBG algorithm immediately after security researchers discovered the potential for a trapdoor. In truth, I can think of no better way to describe our failure to drop support for the Dual EC DRBG algorithm as anything other than regrettable."<ref>http://www.ams.org/journals/notices/201502/rnoti-p165.pdf</ref>
|}

== 安全性 ==
The stated purpose of including the Dual_EC_DRBG in NIST SP 800-90A is that its security is based on computational hardness assumptions from number theory. A mathematical security reduction proof can then prove that as long as the number theoretical problems are hard, the random number generator itself is secure. However, the makers of Dual_EC_DRBG did not publish a security reduction for Dual_EC_DRBG, and it was shown soon after the NIST draft was published that Dual_EC_DRBG was indeed not secure, because it output too many bits per round.<ref name="gb">{{Cite journal|title=A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator|url=https://eprint.iacr.org/2007/048|last=Brown|first=Daniel R. L.|last2=Gjøsteen|first2=Kristian|date=2007-08-19|journal=Advances in Cryptology - CRYPTO 2007|publisher=Springer, Berlin, Heidelberg|doi=10.1007/978-3-540-74143-5_26|series=Lecture Notes in Computer Science|pages=466–481|language=en|isbn=9783540741428}}</ref><ref name="SchoenmakersSidorenko2006">{{Cite journal|title=Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator|url=http://eprint.iacr.org/2006/190|last=Schoenmakers|first=Berry|last2=Sidorenko|first2=Andrey|date=29 May 2006}}</ref> The output of too many bits (along with carefully chosen elliptic curve points ''P'' and ''Q'') is what makes the NSA backdoor possible, because it enables the attacker to revert the truncation by brute force guessing. The output of too many bits was not corrected in the final published standard, leaving Dual_EC_DRBG both insecure and backdoored.

In many other standards, constants which are meant to be arbitrary are chosen by the ''nothing up my sleeve number'' principle, where the constants are derived from, for example, pi, in a way that leaves little room for adjustment. However, Dual_EC_DRBG did not specify how the default ''P'' and ''Q'' constants were chosen, possibly because they were constructed by NSA to be backdoored. Because the standard committee were aware of the potential for a backdoor, a way for an implementer to choose their own secure ''P'' and ''Q'' were included. But the exact formulation in the standard was written such that use of the alleged backdoored ''P'' and ''Q'' was required for FIPS 140-2 validation, so the [[OpenSSL]] project chose to implement the backdoored ''P'' and ''Q'', even though they were aware of the potential backdoor and would have preferred generating their own secure ''P'' and ''Q''.<ref name="openssl">{{Cite web|url=http://marc.info/?l=openssl-announce&m=138747119822324|title=Flaw in Dual EC DRBG (no, not that one)|author=Steve Marquess|last=Steve Marquess|publisher=OpenSSL project}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> New York Times would later write that NSA had worked during the standardization process to eventually become the sole editor of the standard.

A security proof was later published for Dual_EC_DRBG by Daniel R.L. Brown and Kristian Gjøsteen, showing that the generated elliptic curve points would be indistinguishable from uniformly random elliptic curve points, and that if fewer bits were output in the final output truncation, and if the two elliptic curve points ''P'' and ''Q'' were independent, and if three problems were shown to be hard (only one of which is generally accepted as being hard), then Dual_EC_DRBG is secure. The proof relied on the assumption that three problems were hard: the ''decisional Diffie–Hellman assumption'' (which is generally accepted to be hard), and two newer problems which are not generally accepted to be hard: the ''truncated point problem'', and the ''x-logarithm problem''.<ref name="kg1">Kristian Gjøsteen. [http://www.math.ntnu.no/~kristiag/drafts/dual-ec-drbg-comments.pdf ''Comments on Dual-EC-DRBG/NIST SP 800-90'']</ref> Dual_EC_DRBG was quite slow compared to many alternative CSPRNGs (which don't have security reductions<ref name="dbrown_gnome">{{Cite web|url=http://www.ietf.org/mail-archive/web/cfrg/current/msg03651.html|title=[Cfrg&#93; Dual_EC_DRBG ... [was RE: Requesting removal of CFRG co-chair&#93;|accessdate=2015-12-23|date=2013-12-27|publisher=Ietf.org}}</ref>), but Daniel R.L. Brown argues that the security reduction makes the slow Dual_EC_DRBG a valid alternative (assuming implementors disable the obvious backdoor). Note that Daniel R.L. Brown works for Certicom, the main owner of elliptic curve cryptography patents, so there may be a conflict of interest in promoting an EC CSPRNG.

The alleged NSA backdoor would allow the attacker to determine the internal state of the random number generator from looking at the output from a single round (32 bytes); all future output of the random number generator can then easily be calculated, until the CSPRNG is reseeded with an external source of randomness. This makes for example SSL/TLS vulnerable, since the setup of a TLS connection includes the sending of a randomly generated [[Nonce|cryptographic nonce]] in the clear. NSA's alleged backdoor would depend on NSA knowing the single ''e'' such that e*Q=P - this is a hard problem, given ''Q'' and ''P'', but easy to generate if you can choose ''P'' and ''Q''. So ''e'' is a secret key presumably known only by NSA, and the alleged backdoor is a kleptographic asymmetric hidden backdoor.<ref name="blog.0xbadc0de.be">[http://blog.0xbadc0de.be/archives/155 Aris ADAMANTIADIS: "Dual_Ec_Drbg backdoor: a proof of concept" 31 Dec 2013]</ref> Matthew Green's blog post [https://blog.cryptographyengineering.com/2013/09/18/the-many-flaws-of-dualecdrbg/ ''The Many Flaws of Dual_EC_DRBG''] has a simplified explanation of how the alleged NSA backdoor works by employing the discrete-log kleptogram introduced in Crypto 1997.

== Standardization and implementations ==
NSA first introduced Dual_EC_DRBG in the ANSI X9.82 DRBG in the early 2000s, including the same parameters which created the alleged backdoor, and Dual_EC_DRBG was published in a draft ANSI standard. Dual_EC_DRBG also exists in the ISO 18031 standard.

According to John Kelsey (who together with Elaine Barker was listed as author of NIST SP 800-90A), the possibility of the backdoor by carefully chosen ''P'' and ''Q'' was brought up at an ANSI X9F1 Tool Standards and Guidelines Group meeting. When Kelsey asked Don Johnson of Cygnacom about the origin of ''Q'', Johnson answered in a {{Date|2004-10-27}} email to Kelsey that NSA had prohibited the public discussion of generation of an alternative ''Q'' to the NSA-supplied one.<ref name="lastpost">{{Cite web|url=http://blog.cryptographyengineering.com/2015/01/hopefully-last-post-ill-ever-write-on.html|title=A Few Thoughts on Cryptographic Engineering: Hopefully the last post I'll ever write on Dual EC DRBG|accessdate=2015-12-23|date=2015-01-14|last=Green|first=Matthew|publisher=Blog.cryptographyengineering.com}}</ref>

At least two members of the Members of the ANSI X9F1 Tool Standards and Guidelines Group which wrote ANSI X9.82, Daniel R. L. Brown and Scott Vanstone from [[黑莓公司|Certicom]], were aware of the exact circumstances and mechanism in which a backdoor could occur, since they filed a patent application in January 2005 on exactly how to insert or prevent the backdoor in DUAL_EC_DRBG. The working of the "trap door" mentioned in the patent is identical to the one later confirmed in Dual_EC_DRBG. Writing about the patent in 2014, commentator Matthew Green describes the patent as a "passive aggressive" way of spiting NSA by publicizing the backdoor, while still criticizing everybody on the committee for not actually disabling the backdoor they obviously were aware of. Brown and Vanstone's patent list two necessary conditions for the backdoor to exist:{{Quote|text=An elliptic curve random number generator avoids escrow keys by choosing a point ''Q'' on the elliptic curve as verifiably random. Intentional use of escrow keys can provide for back up functionality. The relationship between ''P'' and ''Q'' is used as an escrow key and stored by for a security domain. The administrator logs the output of the generator to reconstruct the random number with the escrow key.}}{{Quote|text=[0041] Another alternative method for preventing a key escrow attack on the output of an ECRNG, shown in Figures 3 and 4 is to add a truncation function to ECRNG to truncate the ECRNG output to approximately half the length of a compressed elliptic curve point. Preferably, this operation is done in addition to the preferred method of Figure 1 and 2, however, it will be appreciated that it may be performed as a primary measure for preventing a key escrow attack. The benefit of truncation is that the list of R values associated with a single ECRNG output r is typically infeasible to search. For example, for a 160-bit elliptic curve group, the number of potential points R in the list is about 2<sup>80</sup>, and searching the list would be about as hard as solving the discrete logarithm problem. The cost of this method is that the ECRNG is made half as efficient, because the output length is effectively halved.}}According to John Kelsey, the option in the standard to choose a verifiably random ''Q'' was added as an option in response to the suspected backdoor, though in such a way that FIPS 140-2 validation could only be attained by using the possibly backdoored ''Q''. Steve Marquess (who helped implement NIST SP 800-90A for OpenSSL) speculated that this requirement to use the potentially backdoored points could be evidence of NIST complicity.<ref name="pickone">{{Cite web|url=http://veridicalsystems.com/blog/secure-or-compliant-pick-one/|title=Secure or Compliant, Pick One|author=Steve Marquess|last=Steve Marquess|archiveurl=https://web.archive.org/web/20131227190128/http://veridicalsystems.com/blog/secure-or-compliant-pick-one/|archivedate=2013-12-27}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> It is not clear why the standard did not specify the default ''Q'' in the standard as a verifyably generated nothing up my sleeve number, or why the standard did not use greater truncation, which Brown's patent said could be used as the "primary measure for preventing a key escrow attack". The small truncation was unusual compared to previous EC PRGs, which according to Matthew Green had only output 1/2 to 2/3 of the bits in the output function.<ref name="green_flaws">{{Cite web|url=http://blog.cryptographyengineering.com/2013/09/the-many-flaws-of-dualecdrbg.html|title=The Many Flaws of Dual_EC_DRBG|last=Green|first=Matthew}}</ref> The low truncation was in 2006 shown by Gjøsteen to make the RNG predictable and therefore unusable as a CSPRNG, even if ''Q'' had not been chosen to contain a backdoor. The standard says that implementations "should" use the small max_outlen provided, but gives the option of outputting a multiple of 8 less bits. Appendix C of the standard gives a loose argument that outputting less bits will make the output less uniformly distributed. Brown's 2006 security proof relies on outlen being much smaller the default max_outlen value in the standard.

The ANSI X9F1 Tool Standards and Guidelines Group which discussed the backdoor also included three employees from the prominent security company RSA Security. In 2004, RSA Security made an implementation of Dual_EC_DRBG which contained the NSA backdoor the default CSPRNG in their RSA BSAFE as a result of a secret $10 million deal with NSA. In 2013, after the New York Times reported that Dual_EC_DRBG contained a backdoor by the NSA, RSA Security said they had not been aware of any backdoor when they made the deal with NSA, and told their customers to switch CSPRNG. In the 2014 RSA Conference keynote, RSA Security Executive Chairman Art Coviello explained that RSA had seen declining revenue from encryption, and had decided to stop being "drivers" of independent encryption research, but to instead to "put their trust behind" the standards and guidance from standards organizations such as NIST.

A draft of NIST SP 800-90A including the Dual_EC_DRBG was published in December 2005. The final NIST SP 800-90A including Dual_EC_DRBG was published in June 2006. Documents leaked by Snowden have been interpreted as suggesting that the NSA backdoored Dual_EC_DRBG, with those making the allegation citing the NSA's work during the standardization process to eventually become the sole editor of the standard. The early usage of Dual_EC_DRBG by RSA Security (for which NSA was later reported to have secretly paid $10 million) was cited by the NSA as an argument for Dual_EC_DRBG's acceptance into the NIST SP 800-90A standard. RSA Security subsequently cited Dual_EC_DRBG's acceptance into the NIST standard as a reason they used Dual_EC_DRBG.<ref name="ars">{{Cite web|url=https://arstechnica.com/security/2013/09/we-dont-enable-backdoors-in-our-crypto-products-rsa-tells-customers/|title=We don’t enable backdoors in our crypto products, RSA tells customers|publisher=Ars Technica}}</ref>

Daniel R. L. Brown's March 2006 paper on the security reduction of Dual_EC_DRBG mentions the need to more output truncation and randomly chosen ''Q'', but mostly in passing, and does not mention his conclusions from his patent that these two defects in Dual_EC_DRBG together can be used as a backdoor. Brown writes in the conclusion: "Therefore, the ECRNG should be a serious consideration, and its high efficiency makes it suitable even for constrained environments." Note that others have criticised Dual_EC_DRBG as being extremely slow, with Bruce Schneier concluding "It's too slow for anyone to willingly use it", and Matthew Green saying Dual_EC_DRBG is "Up to a thousand times slower" than the alternatives. The potential for a backdoor in Dual_EC_DRBG was not widely publicised outside of internal standard group meetings. It was only after Dan Shumow and Niels Ferguson's 2007 presentation that the potential for a backdoor became widely known. Shumow and Ferguson had been tasked with implementing Dual_EC_DRBG for Microsoft, and at least Furguson had discussed the possible backdoor in a 2005 X9 meeting. Bruce Schneier wrote in a 2007 Wired article that the Dual_EC_DRBG's flaws were so obvious that nobody would be use Dual_EC_DRBG: "It makes no sense as a trap door: It's public, and rather obvious. It makes no sense from an engineering perspective: It's too slow for anyone to willingly use it."<ref name="wired-schneier">{{Cite news|url=http://archive.wired.com/politics/security/commentary/securitymatters/2007/11/securitymatters_1115|title=Did NSA Put a Secret Backdoor in New Encryption Standard?|author=[[Bruce Schneier]]|last=[[Bruce Schneier]]|date=2007-11-15|work=[[Wired News]]|deadurl=no|archiveurl=https://web.archive.org/web/20140621062515/http://archive.wired.com/politics/security/commentary/securitymatters/2007/11/securitymatters_1115|archivedate=2014-06-21}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> Schneier was apparently unaware that RSA Security had used Dual_EC_DRBG as the default in BSAFE since 2004.

OpenSSL implemented all of NIST SP 800-90A including Dual_EC_DRBG at the request of a client. The OpenSSL developers were aware of the potential backdoor because of Shumow and Ferguson's presentation, and wanted to use the method included in the standard to choose a guarantied non-backdoored ''P'' and ''Q'', but was told that to get FIPS 140-2 validation they would have to use the default ''P'' and ''Q''. OpenSSL choose to implement Dual_EC_DRBG despite its dubious reputation for completeness, noting that OpenSSL tried to be complete and implements many other insecure algorithms. OpenSSL did not use Dual_EC_DRBG as the default CSPRNG, and it was discovered in 2013 that a bug made the OpenSSL implementation of Dual_EC_DRBG non-functioning, meaning that no one could have been using it.

Bruce Schneier reported in December 2007 that Microsoft added Dual_EC_DRBG support to Windows Vista, though not enabled by default, and Schneier warned against the known potential backdoor.<ref>{{Cite web|url=https://www.schneier.com/blog/archives/2007/12/dual_ec_drbg_ad.html|title=Dual_EC_DRBG Added to Windows Vista - Schneier on Security|accessdate=2015-12-23|author=&#8226; 82 Comments|date=2007-12-17|last=&#8226; 82 Comments|publisher=Schneier.com}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> Windows 10 and later will silently replace calls to Dual_EC_DRBG with calls to CTR_DRBG based on AES.<ref>{{Cite web|url=http://msdn.microsoft.com/en-us/library/aa375534.aspx|title=CNG Algorithm Identifiers|accessdate=2016-11-19|publisher=[[Microsoft Developer Network]]}}</ref>

On September 9, 2013, following the Snowden leak, and the ''New York Times'' report on the backdoor in Dual_EC_DRBG, the [[國家標準技術研究所|National Institute of Standards and Technology]] (NIST) ITL announced that in light of community security concerns, it was reissuing SP 800-90A as draft standard, and re-opening SP800-90B/C for public comment. NIST now "strongly recommends" against the use of Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A.<ref>http://csrc.nist.gov/publications/nistbul/itlbul2013_09_supplemental.pdf</ref><ref name="nyt1">{{Cite news|url=http://bits.blogs.nytimes.com/2013/09/10/government-announces-steps-to-restore-confidence-on-encryption-standards/|title=Government Announces Steps to Restore Confidence on Encryption Standards|last=Perlroth|first=Nicole|date=10 September 2013|publisher=New York Times}}</ref> The discovery of a backdoor in a NIST standard has been a major embarrassment for the [[國家標準技術研究所|NIST]].<ref>{{Cite web|url=http://spectrum.ieee.org/telecom/security/can-you-trust-nist|title=Can You Trust NIST? - IEEE Spectrum|accessdate=2015-12-23|date=2013-10-09|last=Hay|first=Lily|publisher=Spectrum.ieee.org}}</ref>

RSA Security had kept Dual_EC_DRBG as the default CSPRNG in BSAFE even after the wider cryptographic community became aware of the potential backdoor in 2007, but there does not seem to have been a general awareness of BSAFE's usage of Dual_EC_DRBG as a user option in the community. Only after widespread concern about the backdoor was there an effort to find software which used Dual_EC_DRBG, of which BSAFE was by far the most prominent found. After the 2013 revelations, RSA security Chief of Technology Sam Curry provided [[Ars Technica]] with a rationale for originally choosing the flawed Dual EC DRBG standard as default over the alternative random number generators.<ref name="arswarn">{{Cite web|url=https://arstechnica.com/security/2013/09/stop-using-nsa-influence-code-in-our-product-rsa-tells-customers/|title=Stop using NSA-influenced code in our products, RSA tells customers|publisher=Ars Technica}}</ref> The technical accuracy of the statement was widely criticized by cryptographers, including Matthew Green and Matt Blaze.<ref name="green_warn">{{Cite news|url=http://blog.cryptographyengineering.com/2013/09/rsa-warns-developers-against-its-own.html?imm_mid=0b0b73&cmp=em-prog-na-na-newsltr_20130928_direct|title=RSA warns developers not to use RSA products|author=Matthew Green|last=Matthew Green|date=2013-09-20|publisher=A Few Thoughts on Cryptographic Engineering|accessdate=2013-09-28}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]
</ref> On December 20, 2013, it was reported by Reuters that RSA had accepted a secret payment of $10 million from the NSA to set the Dual_EC_DRBG random number generator as the default in two of its encryption products.<ref name="NSApaid">{{Cite news|url=https://www.reuters.com/article/2013/12/20/us-usa-security-rsa-idUSBRE9BJ1C220131220|title=Exclusive: Secret contract tied NSA and security industry pioneer|author=Menn, Joseph|last=Menn, Joseph|date=December 20, 2013|accessdate=December 20, 2013|location=San Francisco|agency=Reuters}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref><ref>{{Cite news|url=https://www.theguardian.com/world/2013/dec/20/nsa-internet-security-rsa-secret-10m-encryption|title=$10m NSA contract with security firm RSA led to encryption 'back door'|date=20 December 2013|work=Guardian|newspaper=Guardian}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;work=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;newspaper=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
[[Category:含有冗余参数的引用的页面]]</ref> On December 22, 2013, RSA posted a statement to its corporate blog "categorically" denying a secret deal with the NSA to insert a "known flawed random number generator" into its BSAFE toolkit

Following the New York Times story asserting that Dual_EC_DRBG contained a backdoor, Brown (who had applied for the backdoor patent and published the security reduction) wrote an email to an ietf mailing list defending the Dual_EC_DRBG standard process:{{Quote|text=1. Dual_EC_DRBG, as specified in NIST SP 800-90A and ANSI X9.82-3, allows an alternative choice of constants ''P'' and ''Q''. As far as I know, the alternatives do not admit a known feasible backdoor. In my view, it is incorrect to imply that Dual_EC_DRBG always has a backdoor, though I admit a wording to qualify the affected cases may be awkward.
2. Many things are obvious in hindsight. I'm not sure if this was obvious.
[...]
8. All considered, I don't see how the ANSI and NIST standards for Dual_EC_DRBG can be viewed as a subverted standard, per se. But maybe that's just because I'm biased or naive.|sign=Daniel Brown|source=<ref name="dbrown_gnome"></blockquote>}}

== 受该后门影响的软件及硬件 ==
Implementations which used Dual_EC_DRBG would usually have gotten it via a library. At least RSA Security (BSAFE library), [[OpenSSL]], Microsoft, and Cisco<ref name="wired2013">[https://www.wired.com/threatlevel/2013/09/nsa-backdoor/all/ wired.com: "How a Crypto ‘Backdoor’ Pitted the Tech World Against the NSA" (Zetter) 24 Sep 2013]</ref> have libraries which included Dual_EC_DRBG, but only BSAFE used it by default. According to the Reuters article which revealed the secret $10 million deal between RSA Security and NSA, RSA Security's BSAFE was the most important distributor of the algorithm. There was a flaw in OpenSSL's implementation of Dual_EC_DRBG that made it non-working outside test mode, from which OpenSSL's Steve Marquess concludes that nobody used OpenSSL's Dual_EC_DRBG implementation.

A list of products which have had their CSPRNG-implementation FIPS 140-2 validated is available at the NIST.<ref>[http://csrc.nist.gov/groups/STM/cavp/documents/drbg/drbgval.html NIST: "DRBG Validation List"]</ref> The validated CSPRNGs are listed in the Description/Notes field. Note that even if Dual_EC_DRBG is listed as validated, it may not have been enabled by default. Many implementations come from a renamed copy of a library implementation.<ref>{{Cite web|url=http://veridicalsystems.com/blog/secure-or-compliant-pick-one/|title=Speeds and Feeds › Secure or Compliant, Pick One|accessdate=2015-12-23|publisher=Veridicalsystems.com|archiveurl=https://web.archive.org/web/20131227190128/http://veridicalsystems.com/blog/secure-or-compliant-pick-one/|archivedate=2013-12-27}}</ref>

The [[黑莓手機|BlackBerry]] software is an example of non-default use. It includes support for Dual_EC_DRBG, but not as default. BlackBerry Ltd has however not issued an advisory to any of its customers who may have used it, because they do not consider the probable backdoor a vulnerability.<ref name="carr0114">[http://jeffreycarr.blogspot.dk/2014/01/blackberry-ltd-nsa-and-encryption.html Digital Dao: "Evolving Hostilities in the Global Cyber Commons" 24 Jan 2014]</ref> Jeffrey Carr quotes a letter from Blackberry:<blockquote class="">
The Dual EC DRBG algorithm is only available to third party developers via the Cryptographic APIs on the [Blackberry] platform. In the case of the Cryptographic API, it is available if a 3rd party developer wished to use the functionality and explicitly designed and developed a system that requested the use of the API.
</blockquote>Bruce Schneier has pointed out that even if not enabled by default, having a backdoored CSPRNG implemented as an option can make it easier for NSA to spy on targets which have a software-controlled command-line switch to select the encryption algorithm, or a "[[注册表|registry]]" system, like most [[微软|Microsoft]] products, such as [[Windows Vista]]:{{Quote|text=A Trojan is really, really big. You can’t say that was a mistake. It’s a massive piece of code collecting keystrokes. But changing a bit-one to a bit-two [in the registry to change the default random number generator on the machine] is probably going to be undetected. It is a low conspiracy, highly deniable way of getting a backdoor. So there’s a benefit to getting it into the library and into the product.|sign=Bruce Schneier|source=<ref name="wired2013" ></blockquote>}}In December 2013 a proof of concept backdoor was published that uses the leaked internal state to predict subsequent random numbers, an attack viable until the next reseed.


In December 2015, [[Juniper Networks]] announced<ref>{{Cite web|url=http://forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554|title=Important Announcement about ScreenOS|accessdate=December 22, 2015|author=Derrick Scholl|date=December 17, 2015|last=Derrick Scholl|publisher=[[Juniper Networks]]}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
In December 2015, [[Juniper Networks]] announced<ref>{{Cite web|url=http://forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554|title=Important Announcement about ScreenOS|accessdate=December 22, 2015|author=Derrick Scholl|date=December 17, 2015|last=Derrick Scholl|publisher=[[Juniper Networks]]}}<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;author=</code>和<code style="color:inherit; border:inherit; padding:inherit;">&#x7C;last=</code>只需其一 ([[Help:引文格式1错误#redundant parameters|帮助]])
第27行: 第180行:


<ref name=CFNEGLRBMS>{{Cite conference|year=2014 |author1=S. Checkoway |author2=M. Fredrikson |author3=R. Niederhagen |author4=A. Everspaugh |author5=M. Green |author6=T. Lange |author7=T. Ristenpart |author8=D. J. Bernstein |author9=J. Maskiewicz |author10=H. Shacham |title=On the Practical Exploitability of Dual EC in TLS Implementations |conference= USENIX Security Symposium }}</ref>}}
<ref name=CFNEGLRBMS>{{Cite conference|year=2014 |author1=S. Checkoway |author2=M. Fredrikson |author3=R. Niederhagen |author4=A. Everspaugh |author5=M. Green |author6=T. Lange |author7=T. Ristenpart |author8=D. J. Bernstein |author9=J. Maskiewicz |author10=H. Shacham |title=On the Practical Exploitability of Dual EC in TLS Implementations |conference= USENIX Security Symposium }}</ref>}}

[[Category:陰謀論]]
== 外部链接 ==
* [http://csrc.nist.gov/publications/nistpubs/800-90A/SP800-90A.pdf NIST SP 800-90A - Recommendation for Random Number Generation Using Deterministic Random Bit Generators]
* [http://projectbullrun.org/dual-ec/ Dual EC DRBG] - Collection of Dual_EC_DRBG information, by Daniel J. Bernstein, Tanja Lange, and Ruben Niederhagen.
* [http://dualec.org/ On the Practical Exploitability of Dual EC in TLS Implementations] - Key research paper by Stephen Checkoway et al.
* [https://link.springer.com/chapter/10.1007%2FBFb0052241 The prevalence of kleptographic attacks on discrete-log based cryptosystems] - Adam L. Young, Moti Yung (1997)
* United States Patent Application Publication ''{{Cite patent|invent-1=Brown, Daniel R. L.|invent1=Brown, Daniel R. L.|invent2=Vanstone, Scott A.|title=Elliptic curve random number generation|country=US|number=2007189527|pridate=2005-01-21}}'' on the Dual_EC_DRBG backdoor, and ways to negate the backdoor.
* [http://www.math.ntnu.no/~kristiag/drafts/dual-ec-drbg-comments.pdf Comments on Dual-EC-DRBG/NIST SP 800-90, Draft December 2005] Kristian Gjøsteen's March 2006 paper concluding that Dual_EC_DRBG is predictable, and therefore insecure.
* [https://link.springer.com/chapter/10.1007%2F978-3-540-74143-5_26 A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator] Daniel R. L. Brown and Kristian Gjøsteen's 2007 security analysis of Dual_EC_DRBG. Though at least Brown was aware of the backdoor (from his 2005 patent), the backdoor is not explicitly mentioned. Use of non-backdoored constants and a greater output bit truncation than Dual_EC_DRBG specifies are assumed.
* [http://rump2007.cr.yp.to/15-shumow.pdf On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng] Dan Shumow and Niels Ferguson's presentation, which made the potential backdoor widely known.
* [http://blog.cryptographyengineering.com/2013/09/the-many-flaws-of-dualecdrbg.html The Many Flaws of Dual_EC_DRBG] - Matthew Green's simplified explanation of how and why the backdoor works.
* [http://blog.cryptographyengineering.com/2013/12/a-few-more-notes-on-nsa-random-number.html A few more notes on NSA random number generators] - Matthew Green
* [https://gist.github.com/0xabad1dea/8101758 Sorry, RSA, I'm just not buying it] - Summary and timeline of Dual_EC_DRBG and public knowledge.
* [http://www.ietf.org/mail-archive/web/cfrg/current/msg03651.html <nowiki>[Cfrg] Dual_EC_DRBG ... [was RE: Requesting removal of CFRG co-chair]</nowiki>] A December 2013 email by Daniel R. L. Brown defending Dual_EC_DRBG and the standard process.
[[Category:美国国家安全局]]
[[Category:美国国家安全局]]

2018年3月3日 (六) 13:54的版本

双椭圆曲线确定性随机数发生器(Dual_EC_DRBG)[1] ,也被称作双椭圆曲线随机数发生器,是一种使用椭圆曲线密码学实现的密码学安全伪随机数发生器(CSPRNG)。直到2017年被撤销之前,尽管受到了大量密码学家们的批评,被认为存在潜在的后门,该算法自2016年6月左右被公开起,在七年的时间内都是NIST SP 800-90A定义的4个(现为3个)标准的CSPRNG之一。

潜在的后门

Weaknesses in the cryptographic security of the algorithm were known and publicly criticised well before the algorithm became part of a formal standard endorsed by the ANSI, ISO, and formerly by the National Institute of Standards and Technology (NIST). One of the weaknesses publicly identified was the potential of the algorithm to harbour a kleptographic backdoor advantageous to those that know the kleptographic backdoor—the United States government's National Security Agency (NSA)—and no-one else. In 2013, The New York Times reported that documents in their possession but never released to the public "appear to confirm" that the backdoor was real, and had been deliberately inserted by the NSA as part of the NSA's Bullrun decryption program. In December 2013, a Reuters news article alleged that in 2004, before NIST standardized Dual_EC_DRBG, NSA paid RSA Security $10 million in a secret deal to use Dual_EC_DRBG as the default in the RSA BSAFE cryptography library, which resulted in RSA Security becoming the most important distributor of the insecure algorithm. RSA responded that they "categorically deny" that they had ever knowingly colluded with the NSA to adopt an algorithm that was known to be flawed, saying "we have never kept [our] relationship [with the NSA] a secret".

Sometime before its first known publication in 2004, a possible kleptographic backdoor was discovered with the Dual_EC_DRBG's design, with the design of Dual_EC_DRBG having the unusual property that it was theoretically impossible for anyone but Dual_EC_DRBG's designers (NSA) to confirm the backdoor's existence. Bruce Schneier concluded shortly after standardization that the "rather obvious" backdoor (along with other deficiencies) would mean that nobody would use Dual_EC_DRBG. The backdoor would allow NSA to decrypt for example SSL/TLS encryption which used Dual_EC_DRBG as a CSPRNG.

Members of the ANSI standard group, to which Dual_EC_DRBG was first submitted, were aware of the exact mechanism of the potential backdoor and how to disable it, but did not take sufficient steps to unconditionally disable the backdoor or to widely publicize it. The general cryptographic community was initially not aware of the potential backdoor, until Dan Shumow and Niels Ferguson's publication, or of Certicom's Daniel R. L. Brown and Scott Vanstone's 2005 patent application describing the backdoor mechanism.

In September 2013, The New York Times reported that internal NSA memos leaked by Edward Snowden indicated that the NSA had worked during the standardization process to eventually become the sole editor of the Dual_EC_DRBG standard,[2] and concluded that the Dual_EC_DRBG standard did indeed contain a backdoor for the NSA.[3] As response, NIST stated that "NIST would not deliberately weaken a cryptographic standard."[4] According to the New York Times story, the NSA spends $250 million per year to insert backdoors in software and hardware as part of the Bullrun program.[5] A Presidential advisory committee subsequently set up to examine NSA's conduct recommended among other things that the US government "fully support and not undermine efforts to create encryption standards".

In April 21, 2014, NIST withdrew Dual_EC_DRBG from its draft guidance on random number generators recommending "current users of Dual_EC_DRBG transition to one of the three remaining approved algorithms as quickly as possible."[6]

算法被加入后门的经过

Time What happened
May 1997 Adam L. Young and Moti Yung present their cryptovirology paper "Kleptography: Using Cryptography Against Cryptography" at Eurocrypt 1997.[7] The paper shows how to build a covert key exchange into the Diffie–Hellman key exchange protocol. The EC-DRBG backdoor is, with only a trivial modification, equivalent to the Young–Yung backdoor in Diffie–Hellman from Eurocrypt 1997.
August 1997 Adam L. Young and Moti Yung present their cryptovirology paper "The Prevalence of Kleptographic Attacks on Discrete-Log Based Cryptosystems" at Crypto 1997.[8] The paper presents a recipe on how to build asymmetric backdoors into crypto algorithms based on discrete logs. The paper generalizes the paradigm used to attack Diffie–Hellman from Eurocrypt 1997. The paper introduces the 'discrete log kleptogram' that would later be designed into the EC-DRBG.
ANSI X9.82 standardization process kicks off in the early 2000s NSA drives to include Dual_EC_DRBG in ANSI X9.82, when the standardization process kicks off in the early 2000s.[9]
After the ANSI X9.82 standardization process kicked off and before NIST publication According to John Kelsey (who was listed as author of NIST SP 800-90A together with Elaine Barker), the possibility of the backdoor by carefully chosen P and Q values was brought up at an ANSI X9.82 meeting. As a result, a way was specified for implementers to choose their own P and Q values.[10] It turned out later that the specific subtle formulation that NIST put into the standard meant that users could only get the crucial FIPS 140-2 validation of their implementation if they used the original compromised P and Q values.[11]
October 2003 Goh, Boneh, Pinkas and Golle publish a research paper on the problem of adding key recovery to the SSL/TLS and SSH protocols. They state "The government can convince major software vendors to distribute SSL/TLS or SSH2 implementations with hidden and unfilterable key recovery... Users will not notice the key recovery mechanism because the scheme is hidden." They then suggest that when the server needs a random nonce it can use instead an encryption of the session key computed under the escrow key. This does not leverage an elliptic curve discrete-log kleptogram and as a result requires a large-bandwidth subliminal channel to pull off.
June 2004 A draft of ANSI X9.82, Part 3 is published, which includes Dual_EC_DRBG. It is unknown if earlier drafts were published.
Sometime in 2004 RSA makes Dual_EC_DRBG the default CSPRNG in BSAFE. In 2013, Reuters reports this is a result of a secret $10 million deal with NSA.
21 January 2005 Priority date of a patent application[12] by the two Certicom members of the ANSI X9.82 standardization committee. The patent describes the working of an elliptic curve CSPRNG backdoor identical to the potential backdoor in Dual_EC_DRBG, and ways to neutralize such a hidden backdoor by choosing alternative curve points and more bit truncation in the output function.
Sometime in 2005[13] ISO/IEC 18031:2005 is published, and includes Dual_EC_DRBG.
December 2005 The first draft of NIST SP 800-90A is released to the public, includes Dual_EC_DRBG.
16 March 2006 Kristian Gjøsteen publishes Comments on Dual-EC-DRBG/NIST SP 800-90, Draft December 2005 showing that part of Dual_EC_DRBG is "not cryptographically sound", and constructing a bit-predictor with an advantage of 0.0011, which is considered unacceptable for a CSPRNG.[14]
29 March 2006 Daniel R. L. Brown publishes "Conjectured Security of the ANSI-NIST Elliptic Curve RNG", concluding that "[Dual_EC_DRBG] should be a serious consideration", assuming less truncation of the curve points than is present in Dual_EC_DRBG, as shown necessary by Gjøsteen's 2006 paper. The paper also anticipates Shumow and Ferguson's 2007 announcement of a possible backdoor: "This proof makes essential use of Q being random. The reason for this is more than just to make the proof work. If Q is not random, then it may be the case the adversary knows a d such that dQ = P. Then dRi = dSi+1, so that such a distinguisher could immediately recover the secret prestates from the output. Once the distinguisher gets the prestates, it can easily distinguish the output from random. Therefore, it is generally preferable for Q to be chosen randomly, relative to P."
29 May 2006 Berry Schoenmakers and Andrey Sidorenko publish a Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator, showing that empirically the output from Dual_EC_DRBG can be distinguished from random bits, concluding that Dual_EC_DRBG is insecure as a CSPRNG. Note that this is a separate problem from the backdoor. The authors also point out that the security claim of the Dual_EC_DRBG is only supported by informal discussion. No proof of security (e.g., via a reduction argument) is given. It follows that NIST ignored the provably secure pseudorandom number generators that had long existed in the peer-reviewed academic literature.
June 2006 NIST SP 800-90A is published, includes Dual_EC_DRBG with the defects pointed out by Kristian Gjøsteen and Berry Schoenmakers and Andrey Sidorenko not having been fixed.
June 2007 Young and Yung publish a research paper detailing a provably secure asymmetric backdoor in SSL. The asymmetric backdoor utilizes a twisted pair of elliptic curves resulting in a discrete log kleptogram that easily fits into the hello nonce. The attack is an attack on SSL random number generation. The act of generating a hello nonce using the EC-DRBG that NIST backdoored mimics exactly this attack on SSL by Young and Yung.
August 2007 Dan Shumow and Niels Ferguson give an informal presentation demonstrating that an attacker with the backdoor and a small amount of output can completely recover the internal state of EC-DRBG, and therefore predict all future output.[15]
15 November 2007 Bruce Schneier publishes an article with the title "Did NSA Put a Secret Backdoor in New Encryption Standard?" in Wired, based on Dan Shumow and Niels Ferguson's presentation.
6 June 2013 The first news stories (unrelated to Dual_EC_DRBG) based on Edward Snowden's leak of NSA documents are published.
5 September 2013 Existence of NSA's Bullrun program is revealed, based on the Snowden leaks. One of the purposes of Bullrun is described as being "to covertly introduce weaknesses into the encryption standards followed by hardware and software developers around the world." The New York Times states that "the N.S.A. had inserted a back door into a 2006 standard adopted by N.I.S.T... called the Dual EC DRBG standard",[16] confirming that NSA carried out a malicious software attack against the American people.
10 September 2013 Gail Porter, director of the NIST Public Affairs Office, released a statement, saying that "NIST would not deliberately weaken a cryptographic standard."[17] The statement does not address the fact that NIST ultimately ignored the warning about a possible backdoor in the standard from NIST's own cryptographer, John Kelsey.
19 September 2013 RSA Security advises its customers to stop using Dual_EC_DRBG in RSA Security's BSAFE toolkit and Data Protection Manager, citing NIST guidance made Sept. 12, 2013 that indicated: "NIST strongly recommends that, pending the resolution of the security concerns and the re-issuance of SP 800-90A, the Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A, no longer be used." [18] Initial media reports cast suspicion over RSA's continued use of Dual_EC_DRBG as the default in its BSAFE and Data Protection Manager products, particularly after 2007 in light of previous published concerns over the potential for a backdoor in the algorithm. RSA Chief of Technology Sam Curry writes a short justification for RSA Security's choice to use Dual_EC_DRBG as default, which is widely criticized by cryptographers. Curry does not discuss the later revealed $10 million deal with NSA to use Dual_EC_DRBG.
18 December 2013 A presidential advisory committee set up to examine the NSA recommended that the US government "fully support and not undermine efforts to create encryption standards"[19]
20 December 2013 Reuters reports on the existence of a $10 million deal between RSA and NSA to set Dual_EC_DRBG as the default CSPRNG in BSAFE.
22 December 2013 RSA Security posts statements categorically denying that it "entered into a 'secret contract' with the NSA to incorporate a known flawed random number generator into its BSAFE encryption libraries" though its statements do not deny the existence of a $10 million deal between RSA and the NSA to set Dual_EC_DRBG as the standard in BSAFE.[20] Some news sites such as BBC summarize the press release as a direct denial of existence of the $10 million deal,[21] while other commentary point out that it is not clear what claims exactly the carefully worded RSA Security press release is denying, if any.[22][23]
25 February 2014 In his 2014 RSA Conference keynote speech, RSA Security Executive Chairman (and EMC Executive Vice President) Art Coviello implied that RSA Security had not seen merit in the 2006 and 2007 research papers that pointed out flaws in Dual_EC_DRBG until NIST issued guidance to stop using the CSPRNG. Coviello said RSA Security had seen decreasing revenue from encryption, and no longer wanted to expend resources driving encryption research, but as "contributor to and beneficiary of open standards" would trust NIST and NSA guidance, and blamed NSA for tricking the company.[24]
21 April 2014 Following a public comment period and review, NIST removed Dual_EC_DRBG as a cryptographic algorithm from its draft guidance on random number generators, recommending "that current users of Dual_EC_DRBG transition to one of the three remaining approved algorithms as quickly as possible."
August 2014 Checkoway et al. publish a research paper analyzing the practicality of using the EC-DRBG to build an asymmetric backdoor into SSL and TLS.
January 2015 Michael Wertheimer, director of research at the NSA, wrote "With hindsight, NSA should have ceased supporting the Dual EC DRBG algorithm immediately after security researchers discovered the potential for a trapdoor. In truth, I can think of no better way to describe our failure to drop support for the Dual EC DRBG algorithm as anything other than regrettable."[25]

安全性

The stated purpose of including the Dual_EC_DRBG in NIST SP 800-90A is that its security is based on computational hardness assumptions from number theory. A mathematical security reduction proof can then prove that as long as the number theoretical problems are hard, the random number generator itself is secure. However, the makers of Dual_EC_DRBG did not publish a security reduction for Dual_EC_DRBG, and it was shown soon after the NIST draft was published that Dual_EC_DRBG was indeed not secure, because it output too many bits per round.[26][27] The output of too many bits (along with carefully chosen elliptic curve points P and Q) is what makes the NSA backdoor possible, because it enables the attacker to revert the truncation by brute force guessing. The output of too many bits was not corrected in the final published standard, leaving Dual_EC_DRBG both insecure and backdoored.

In many other standards, constants which are meant to be arbitrary are chosen by the nothing up my sleeve number principle, where the constants are derived from, for example, pi, in a way that leaves little room for adjustment. However, Dual_EC_DRBG did not specify how the default P and Q constants were chosen, possibly because they were constructed by NSA to be backdoored. Because the standard committee were aware of the potential for a backdoor, a way for an implementer to choose their own secure P and Q were included. But the exact formulation in the standard was written such that use of the alleged backdoored P and Q was required for FIPS 140-2 validation, so the OpenSSL project chose to implement the backdoored P and Q, even though they were aware of the potential backdoor and would have preferred generating their own secure P and Q.[28] New York Times would later write that NSA had worked during the standardization process to eventually become the sole editor of the standard.

A security proof was later published for Dual_EC_DRBG by Daniel R.L. Brown and Kristian Gjøsteen, showing that the generated elliptic curve points would be indistinguishable from uniformly random elliptic curve points, and that if fewer bits were output in the final output truncation, and if the two elliptic curve points P and Q were independent, and if three problems were shown to be hard (only one of which is generally accepted as being hard), then Dual_EC_DRBG is secure. The proof relied on the assumption that three problems were hard: the decisional Diffie–Hellman assumption (which is generally accepted to be hard), and two newer problems which are not generally accepted to be hard: the truncated point problem, and the x-logarithm problem.[29] Dual_EC_DRBG was quite slow compared to many alternative CSPRNGs (which don't have security reductions[30]), but Daniel R.L. Brown argues that the security reduction makes the slow Dual_EC_DRBG a valid alternative (assuming implementors disable the obvious backdoor). Note that Daniel R.L. Brown works for Certicom, the main owner of elliptic curve cryptography patents, so there may be a conflict of interest in promoting an EC CSPRNG.

The alleged NSA backdoor would allow the attacker to determine the internal state of the random number generator from looking at the output from a single round (32 bytes); all future output of the random number generator can then easily be calculated, until the CSPRNG is reseeded with an external source of randomness. This makes for example SSL/TLS vulnerable, since the setup of a TLS connection includes the sending of a randomly generated cryptographic nonce in the clear. NSA's alleged backdoor would depend on NSA knowing the single e such that e*Q=P - this is a hard problem, given Q and P, but easy to generate if you can choose P and Q. So e is a secret key presumably known only by NSA, and the alleged backdoor is a kleptographic asymmetric hidden backdoor.[31] Matthew Green's blog post The Many Flaws of Dual_EC_DRBG has a simplified explanation of how the alleged NSA backdoor works by employing the discrete-log kleptogram introduced in Crypto 1997.

Standardization and implementations

NSA first introduced Dual_EC_DRBG in the ANSI X9.82 DRBG in the early 2000s, including the same parameters which created the alleged backdoor, and Dual_EC_DRBG was published in a draft ANSI standard. Dual_EC_DRBG also exists in the ISO 18031 standard.

According to John Kelsey (who together with Elaine Barker was listed as author of NIST SP 800-90A), the possibility of the backdoor by carefully chosen P and Q was brought up at an ANSI X9F1 Tool Standards and Guidelines Group meeting. When Kelsey asked Don Johnson of Cygnacom about the origin of Q, Johnson answered in a 27 October 2004 email to Kelsey that NSA had prohibited the public discussion of generation of an alternative Q to the NSA-supplied one.[32]

At least two members of the Members of the ANSI X9F1 Tool Standards and Guidelines Group which wrote ANSI X9.82, Daniel R. L. Brown and Scott Vanstone from Certicom, were aware of the exact circumstances and mechanism in which a backdoor could occur, since they filed a patent application in January 2005 on exactly how to insert or prevent the backdoor in DUAL_EC_DRBG. The working of the "trap door" mentioned in the patent is identical to the one later confirmed in Dual_EC_DRBG. Writing about the patent in 2014, commentator Matthew Green describes the patent as a "passive aggressive" way of spiting NSA by publicizing the backdoor, while still criticizing everybody on the committee for not actually disabling the backdoor they obviously were aware of. Brown and Vanstone's patent list two necessary conditions for the backdoor to exist:

An elliptic curve random number generator avoids escrow keys by choosing a point Q on the elliptic curve as verifiably random. Intentional use of escrow keys can provide for back up functionality. The relationship between P and Q is used as an escrow key and stored by for a security domain. The administrator logs the output of the generator to reconstruct the random number with the escrow key.

[0041] Another alternative method for preventing a key escrow attack on the output of an ECRNG, shown in Figures 3 and 4 is to add a truncation function to ECRNG to truncate the ECRNG output to approximately half the length of a compressed elliptic curve point. Preferably, this operation is done in addition to the preferred method of Figure 1 and 2, however, it will be appreciated that it may be performed as a primary measure for preventing a key escrow attack. The benefit of truncation is that the list of R values associated with a single ECRNG output r is typically infeasible to search. For example, for a 160-bit elliptic curve group, the number of potential points R in the list is about 280, and searching the list would be about as hard as solving the discrete logarithm problem. The cost of this method is that the ECRNG is made half as efficient, because the output length is effectively halved.

According to John Kelsey, the option in the standard to choose a verifiably random Q was added as an option in response to the suspected backdoor, though in such a way that FIPS 140-2 validation could only be attained by using the possibly backdoored Q. Steve Marquess (who helped implement NIST SP 800-90A for OpenSSL) speculated that this requirement to use the potentially backdoored points could be evidence of NIST complicity.[33] It is not clear why the standard did not specify the default Q in the standard as a verifyably generated nothing up my sleeve number, or why the standard did not use greater truncation, which Brown's patent said could be used as the "primary measure for preventing a key escrow attack". The small truncation was unusual compared to previous EC PRGs, which according to Matthew Green had only output 1/2 to 2/3 of the bits in the output function.[34] The low truncation was in 2006 shown by Gjøsteen to make the RNG predictable and therefore unusable as a CSPRNG, even if Q had not been chosen to contain a backdoor. The standard says that implementations "should" use the small max_outlen provided, but gives the option of outputting a multiple of 8 less bits. Appendix C of the standard gives a loose argument that outputting less bits will make the output less uniformly distributed. Brown's 2006 security proof relies on outlen being much smaller the default max_outlen value in the standard.

The ANSI X9F1 Tool Standards and Guidelines Group which discussed the backdoor also included three employees from the prominent security company RSA Security. In 2004, RSA Security made an implementation of Dual_EC_DRBG which contained the NSA backdoor the default CSPRNG in their RSA BSAFE as a result of a secret $10 million deal with NSA. In 2013, after the New York Times reported that Dual_EC_DRBG contained a backdoor by the NSA, RSA Security said they had not been aware of any backdoor when they made the deal with NSA, and told their customers to switch CSPRNG. In the 2014 RSA Conference keynote, RSA Security Executive Chairman Art Coviello explained that RSA had seen declining revenue from encryption, and had decided to stop being "drivers" of independent encryption research, but to instead to "put their trust behind" the standards and guidance from standards organizations such as NIST.

A draft of NIST SP 800-90A including the Dual_EC_DRBG was published in December 2005. The final NIST SP 800-90A including Dual_EC_DRBG was published in June 2006. Documents leaked by Snowden have been interpreted as suggesting that the NSA backdoored Dual_EC_DRBG, with those making the allegation citing the NSA's work during the standardization process to eventually become the sole editor of the standard. The early usage of Dual_EC_DRBG by RSA Security (for which NSA was later reported to have secretly paid $10 million) was cited by the NSA as an argument for Dual_EC_DRBG's acceptance into the NIST SP 800-90A standard. RSA Security subsequently cited Dual_EC_DRBG's acceptance into the NIST standard as a reason they used Dual_EC_DRBG.[35]

Daniel R. L. Brown's March 2006 paper on the security reduction of Dual_EC_DRBG mentions the need to more output truncation and randomly chosen Q, but mostly in passing, and does not mention his conclusions from his patent that these two defects in Dual_EC_DRBG together can be used as a backdoor. Brown writes in the conclusion: "Therefore, the ECRNG should be a serious consideration, and its high efficiency makes it suitable even for constrained environments." Note that others have criticised Dual_EC_DRBG as being extremely slow, with Bruce Schneier concluding "It's too slow for anyone to willingly use it", and Matthew Green saying Dual_EC_DRBG is "Up to a thousand times slower" than the alternatives. The potential for a backdoor in Dual_EC_DRBG was not widely publicised outside of internal standard group meetings. It was only after Dan Shumow and Niels Ferguson's 2007 presentation that the potential for a backdoor became widely known. Shumow and Ferguson had been tasked with implementing Dual_EC_DRBG for Microsoft, and at least Furguson had discussed the possible backdoor in a 2005 X9 meeting. Bruce Schneier wrote in a 2007 Wired article that the Dual_EC_DRBG's flaws were so obvious that nobody would be use Dual_EC_DRBG: "It makes no sense as a trap door: It's public, and rather obvious. It makes no sense from an engineering perspective: It's too slow for anyone to willingly use it."[36] Schneier was apparently unaware that RSA Security had used Dual_EC_DRBG as the default in BSAFE since 2004.

OpenSSL implemented all of NIST SP 800-90A including Dual_EC_DRBG at the request of a client. The OpenSSL developers were aware of the potential backdoor because of Shumow and Ferguson's presentation, and wanted to use the method included in the standard to choose a guarantied non-backdoored P and Q, but was told that to get FIPS 140-2 validation they would have to use the default P and Q. OpenSSL choose to implement Dual_EC_DRBG despite its dubious reputation for completeness, noting that OpenSSL tried to be complete and implements many other insecure algorithms. OpenSSL did not use Dual_EC_DRBG as the default CSPRNG, and it was discovered in 2013 that a bug made the OpenSSL implementation of Dual_EC_DRBG non-functioning, meaning that no one could have been using it.

Bruce Schneier reported in December 2007 that Microsoft added Dual_EC_DRBG support to Windows Vista, though not enabled by default, and Schneier warned against the known potential backdoor.[37] Windows 10 and later will silently replace calls to Dual_EC_DRBG with calls to CTR_DRBG based on AES.[38]

On September 9, 2013, following the Snowden leak, and the New York Times report on the backdoor in Dual_EC_DRBG, the National Institute of Standards and Technology (NIST) ITL announced that in light of community security concerns, it was reissuing SP 800-90A as draft standard, and re-opening SP800-90B/C for public comment. NIST now "strongly recommends" against the use of Dual_EC_DRBG, as specified in the January 2012 version of SP 800-90A.[39][40] The discovery of a backdoor in a NIST standard has been a major embarrassment for the NIST.[41]

RSA Security had kept Dual_EC_DRBG as the default CSPRNG in BSAFE even after the wider cryptographic community became aware of the potential backdoor in 2007, but there does not seem to have been a general awareness of BSAFE's usage of Dual_EC_DRBG as a user option in the community. Only after widespread concern about the backdoor was there an effort to find software which used Dual_EC_DRBG, of which BSAFE was by far the most prominent found. After the 2013 revelations, RSA security Chief of Technology Sam Curry provided Ars Technica with a rationale for originally choosing the flawed Dual EC DRBG standard as default over the alternative random number generators.[42] The technical accuracy of the statement was widely criticized by cryptographers, including Matthew Green and Matt Blaze.[43] On December 20, 2013, it was reported by Reuters that RSA had accepted a secret payment of $10 million from the NSA to set the Dual_EC_DRBG random number generator as the default in two of its encryption products.[44][45] On December 22, 2013, RSA posted a statement to its corporate blog "categorically" denying a secret deal with the NSA to insert a "known flawed random number generator" into its BSAFE toolkit

Following the New York Times story asserting that Dual_EC_DRBG contained a backdoor, Brown (who had applied for the backdoor patent and published the security reduction) wrote an email to an ietf mailing list defending the Dual_EC_DRBG standard process:{{Quote|text=1. Dual_EC_DRBG, as specified in NIST SP 800-90A and ANSI X9.82-3, allows an alternative choice of constants P and Q. As far as I know, the alternatives do not admit a known feasible backdoor. In my view, it is incorrect to imply that Dual_EC_DRBG always has a backdoor, though I admit a wording to qualify the affected cases may be awkward. 2. Many things are obvious in hindsight. I'm not sure if this was obvious. [...] 8. All considered, I don't see how the ANSI and NIST standards for Dual_EC_DRBG can be viewed as a subverted standard, per se. But maybe that's just because I'm biased or naive.|sign=Daniel Brown|source=引用错误:没有找到与<ref>对应的</ref>标签 have libraries which included Dual_EC_DRBG, but only BSAFE used it by default. According to the Reuters article which revealed the secret $10 million deal between RSA Security and NSA, RSA Security's BSAFE was the most important distributor of the algorithm. There was a flaw in OpenSSL's implementation of Dual_EC_DRBG that made it non-working outside test mode, from which OpenSSL's Steve Marquess concludes that nobody used OpenSSL's Dual_EC_DRBG implementation.

A list of products which have had their CSPRNG-implementation FIPS 140-2 validated is available at the NIST.[46] The validated CSPRNGs are listed in the Description/Notes field. Note that even if Dual_EC_DRBG is listed as validated, it may not have been enabled by default. Many implementations come from a renamed copy of a library implementation.[47]

The BlackBerry software is an example of non-default use. It includes support for Dual_EC_DRBG, but not as default. BlackBerry Ltd has however not issued an advisory to any of its customers who may have used it, because they do not consider the probable backdoor a vulnerability.[48] Jeffrey Carr quotes a letter from Blackberry:

The Dual EC DRBG algorithm is only available to third party developers via the Cryptographic APIs on the [Blackberry] platform. In the case of the Cryptographic API, it is available if a 3rd party developer wished to use the functionality and explicitly designed and developed a system that requested the use of the API.

Bruce Schneier has pointed out that even if not enabled by default, having a backdoored CSPRNG implemented as an option can make it easier for NSA to spy on targets which have a software-controlled command-line switch to select the encryption algorithm, or a "registry" system, like most Microsoft products, such as Windows Vista:{{Quote|text=A Trojan is really, really big. You can’t say that was a mistake. It’s a massive piece of code collecting keystrokes. But changing a bit-one to a bit-two [in the registry to change the default random number generator on the machine] is probably going to be undetected. It is a low conspiracy, highly deniable way of getting a backdoor. So there’s a benefit to getting it into the library and into the product.|sign=Bruce Schneier|source=引用错误:没有找到与<ref>对应的</ref>标签 that some revisions of their ScreenOS firmware used Dual_EC_DRBG with the suspect P and Q points, creating a backdoor in their firewall. Originally it was supposed to use a Q point chosen by Juniper which may or may not have been generated in provably safe way. Dual_EC_DRBG was then used to seed ANSI X9.17 PRNG. This would have obfuscated the Dual_EC_DRBG output thus killing the backdoor. However, a "bug" in the code exposed the raw output of the Dual_EC_DRBG, hence compromising the security of the system. This backdoor was then backdoored itself by an unknown party which changed the Q point and some test vectors.[49][50][51] Allegations that the NSA had persistent backdoor access through Juniper firewalls had already been published in 2013 by Der Spiegel.[52]

参见

参考文献

  1. ^ Recommendations for Random Number Generation Using Deterministic Random Bit Generators (Revised) (PDF). National Institute of Standards and Technology. January 2012. NIST SP 800-90. 
  2. ^ Revealed: how US and UK spy agencies defeat internet privacy and security. The Guardian. 
  3. ^ Perlroth, Nicole. Government Announces Steps to Restore Confidence on Encryption Standards. The New York Times. September 10, 2013 [September 11, 2013].  |newspaper=|work=只需其一 (帮助)|work=|newspaper=只需其一 (帮助)
  4. ^ Swenson, Gayle. Cryptographic Standards Statement. 2013-09-10 [2018-02-15] (英语). 
  5. ^ Secret Documents Reveal N.S.A. Campaign Against Encryption. The New York Times. 5 September 2013. 
  6. ^ NIST Removes Cryptography Algorithm from Random Number Generator Recommendations. National Institute of Standards and Technology. 21 April 2014. 
  7. ^ Young, Adam; Yung, Moti. Kleptography: Using Cryptography Against Cryptography. Advances in Cryptology — EUROCRYPT ’97. Lecture Notes in Computer Science (Springer, Berlin, Heidelberg). 1997-05-11: 62–74. ISBN 3540690530. doi:10.1007/3-540-69053-0_6 (英语). 
  8. ^ Young, Adam; Yung, Moti. The prevalence of kleptographic attacks on discrete-log based cryptosystems. Advances in Cryptology — CRYPTO '97. Lecture Notes in Computer Science (Springer, Berlin, Heidelberg). 1997-08-17: 264–276. ISBN 9783540633846. doi:10.1007/bfb0052241 (英语). 
  9. ^ Green, Matthew. A Few Thoughts on Cryptographic Engineering: A few more notes on NSA random number generators. Blog.cryptographyengineering.com. 2013-12-28 [2015-12-23]. 
  10. ^ http://csrc.nist.gov/groups/ST/crypto-review/documents/dualec_in_X982_and_sp800-90.pdf
  11. ^ 'Flaw in Dual EC DRBG (no, not that one)' - MARC. Marc.info. 2013-12-19 [2015-12-23]. 
  12. ^ US 2007189527,Brown, Daniel R. L. & Vanstone, Scott A.,「Elliptic curve random number generation」 
  13. ^ ISO/IEC 18031:2005 - Information technology - Security techniques - Random bit generation. Iso.org. [2015-12-23]. 
  14. ^ http://www.math.ntnu.no/~kristiag/drafts/dual-ec-drbg-comments.pdf
  15. ^ Shumow, Dan. On the Possibility of a Back Door in the NIST SP800-90 Dual Ec PRNG (PDF). Microsoft. 
  16. ^ Perlroth, Nicole. Government Announces Steps to Restore Confidence on Encryption Standards. The New York Times. 10 September 2013. 
  17. ^ Cryptographic Standards Statement. Nist.gov. 2013-09-10 [2015-12-23]. 
  18. ^ NIST, National Institute of Standards & Technology. SUPPLEMENTAL ITL BULLETIN FOR SEPTEMBER 2013 (PDF). NIST.gov. [12 September 2013]. 
  19. ^ NSA should stop undermining encryption standards, Obama panel says. Ars Technica. 
  20. ^ The Security Division of EMC, RSA,. RSA Response to Media Claims Regarding NSA Relationship. RSA. [22 December 2013]. 
  21. ^ RSA denies link with US spying agency. BBC News. 23 December 2013. 
  22. ^ RSA's 'Denial' Concerning $10 Million From The NSA To Promote Broken Crypto Not Really A Denial At All. Techdirt. 2013-12-23 [2015-12-23]. 
  23. ^ Goodin, Dan. RSA issues non-denying denial of NSA deal to favor flawed crypto code. Ars Technica. 2013-12-23 [2015-12-23]. 
  24. ^ Jeffrey Carr. Six Cryptographers Whose Work on Dual EC DRBG Were Deemed Without Merit by RSA Chief Art Coviello. Digital Dao. 2014-02-26.  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  25. ^ http://www.ams.org/journals/notices/201502/rnoti-p165.pdf
  26. ^ Brown, Daniel R. L.; Gjøsteen, Kristian. A Security Analysis of the NIST SP 800-90 Elliptic Curve Random Number Generator. Advances in Cryptology - CRYPTO 2007. Lecture Notes in Computer Science (Springer, Berlin, Heidelberg). 2007-08-19: 466–481. ISBN 9783540741428. doi:10.1007/978-3-540-74143-5_26 (英语). 
  27. ^ Schoenmakers, Berry; Sidorenko, Andrey. Cryptanalysis of the Dual Elliptic Curve Pseudorandom Generator. 29 May 2006. 
  28. ^ Steve Marquess. Flaw in Dual EC DRBG (no, not that one). OpenSSL project.  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  29. ^ Kristian Gjøsteen. Comments on Dual-EC-DRBG/NIST SP 800-90
  30. ^ [Cfrg] Dual_EC_DRBG ... [was RE: Requesting removal of CFRG co-chair]. Ietf.org. 2013-12-27 [2015-12-23]. 
  31. ^ Aris ADAMANTIADIS: "Dual_Ec_Drbg backdoor: a proof of concept" 31 Dec 2013
  32. ^ Green, Matthew. A Few Thoughts on Cryptographic Engineering: Hopefully the last post I'll ever write on Dual EC DRBG. Blog.cryptographyengineering.com. 2015-01-14 [2015-12-23]. 
  33. ^ Steve Marquess. Secure or Compliant, Pick One. (原始内容存档于2013-12-27).  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  34. ^ Green, Matthew. The Many Flaws of Dual_EC_DRBG. 
  35. ^ We don’t enable backdoors in our crypto products, RSA tells customers. Ars Technica. 
  36. ^ Bruce Schneier. Did NSA Put a Secret Backdoor in New Encryption Standard?. Wired News. 2007-11-15. (原始内容存档于2014-06-21).  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  37. ^ • 82 Comments. Dual_EC_DRBG Added to Windows Vista - Schneier on Security. Schneier.com. 2007-12-17 [2015-12-23].  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  38. ^ CNG Algorithm Identifiers. Microsoft Developer Network. [2016-11-19]. 
  39. ^ http://csrc.nist.gov/publications/nistbul/itlbul2013_09_supplemental.pdf
  40. ^ Perlroth, Nicole. Government Announces Steps to Restore Confidence on Encryption Standards. New York Times. 10 September 2013. 
  41. ^ Hay, Lily. Can You Trust NIST? - IEEE Spectrum. Spectrum.ieee.org. 2013-10-09 [2015-12-23]. 
  42. ^ Stop using NSA-influenced code in our products, RSA tells customers. Ars Technica. 
  43. ^ Matthew Green. RSA warns developers not to use RSA products. A Few Thoughts on Cryptographic Engineering. 2013-09-20 [2013-09-28].  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  44. ^ Menn, Joseph. Exclusive: Secret contract tied NSA and security industry pioneer. San Francisco. Reuters. December 20, 2013 [December 20, 2013].  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  45. ^ $10m NSA contract with security firm RSA led to encryption 'back door'. Guardian. 20 December 2013.  |newspaper=|work=只需其一 (帮助)|work=|newspaper=只需其一 (帮助)
  46. ^ NIST: "DRBG Validation List"
  47. ^ Speeds and Feeds › Secure or Compliant, Pick One. Veridicalsystems.com. [2015-12-23]. (原始内容存档于2013-12-27). 
  48. ^ Digital Dao: "Evolving Hostilities in the Global Cyber Commons" 24 Jan 2014
  49. ^ Green, Matthew. On the Juniper backdoor. [23 December 2015]. 
  50. ^ Weinmann, Ralf-Philipp. Some Analysis of the Backdoored Backdoor. 
  51. ^ Researchers Solve Juniper Backdoor Mystery; Signs Point to NSA. Wired. December 22, 2015 [December 22, 2015]. 
  52. ^ Dan Goodin -. "Unauthorized code" in Juniper firewalls decrypts encrypted VPN traffic. Ars Technica. December 18, 2015 [December 22, 2015].  |author=|last=只需其一 (帮助)|author=|last=只需其一 (帮助)
  53. ^ Spy sting: Few at the Swiss factory knew the mysterious visitors were pulling off a stunning intelligence coup - perhaps the most audacious in the National Security Agency's long war on foreign codes - tribunedigital-baltimoresun. Articles.baltimoresun.com. 1995-12-10 [2015-12-23]. 

引用错误:在<references>标签中name属性为“Br06”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“GBPG”的参考文献没有在文中使用
引用错误:在<references>标签中name属性为“YY07”的参考文献没有在文中使用

引用错误:在<references>标签中name属性为“CFNEGLRBMS”的参考文献没有在文中使用

外部链接