Open main menu

Wikipedia β

Daniel Julius Bernstein (sometimes known simply as djb; born October 29, 1971) is a German-American[2] mathematician, cryptologist, programmer, and professor of mathematics and computer science at the Eindhoven University of Technology and research professor at the University of Illinois at Chicago.

Daniel J. Bernstein
Dan Bernstein 27C3.jpg
Born (1971-10-29) October 29, 1971 (age 46)
East Patchogue, New York[1]
Nationality American, German[1]
Alma mater University of California, Berkeley
New York University
Known for qmail, djbdns, Salsa20, ChaCha20, Poly1305, Curve25519
Scientific career
Fields Mathematics, Cryptography,
Computer Security
Institutions University of Illinois at Chicago, Eindhoven University of Technology
Doctoral advisor Hendrik Lenstra

In the mid-1990s, internet software was not designed for security, and cryptography was controlled. Bernstein addressed cryptography by suing the United States Government in 1995 (Bernstein v. United States) and by writing secure software for email, web, and DNS. The software came with a security guarantee that achieved significant status during the 8 years where no bugs were found. Bernstein was merciless in his criticism of then leading email (Sendmail) and dns (BIND) software packages and both the large teams which supported them and people that distributed them. Sendmail and BIND were both significantly less efficient, more difficult to configure and bug prone by design resulting in a regular flow of significant bugs.

His computer software programs qmail, publicfile, and djbdns were released as license-free software. This was used by some of the people that were offended by his criticism to stop the distribution of his software, so that Linux distributions such as Debian which used qmail internally did not distribute qmail. OpenBSD, a security focused operating system had the majority of its security exploits as a result of its decision to stay with Sendmail and BIND and removed qmail and djbdns from its ports as part of the license dispute. This issue was resolved when Bernstein released the source code of his projects into public domain software in 2007.

Bernstein designed his Salsa20 stream cipher in 2005 and submitted to eSTREAM for review, another variant, ChaCha20, was published by him in 2008. He also designed Curve25519, a public-key cryptography scheme based on elliptic curve in 2005, and worked as the lead researcher on its Ed25519 implementation of EdDSA.

Without any adoptions at first, after nearly a decade later, Edward Snowden's disclosure about the mass surveillance by the National Security Agency, especially a backdoor inside Dual_EC_DRBG, suspicions of the NIST's P curve constants[3] led to concerns[4] that the NSA had chosen values that gave them an advantage in factoring[5] public keys.[6] Since then Curve25519 and EdDSA has attracted much attention and became the de facto replacement of NIST P curve. Google has also selected ChaCha20 along with Bernstein's Poly1305 message authentication code as a replacement for RC4 in TLS, which is used for Internet security.[7] Many protocols based on his works have now standardized and are used in a variety of applications, such as Apple iOS,[8] Linux kernel,[9] OpenSSH,[10][11] and Tor.[12]


Early lifeEdit

He attended Bellport High School, a public high school on Long Island, and graduated at 15 in 1987.[13] The same year, he ranked fifth place in the Westinghouse Science Talent Search.[14] In 1987 (at the age of 16), he achieved a Top 10 ranking in the William Lowell Putnam Mathematical Competition.[15] Bernstein earned his bachelor's degree in mathematics from New York University (1991) and has a PhD in mathematics from the University of California, Berkeley (1995), where he studied under Hendrik Lenstra.

Bernstein v. United StatesEdit

Bernstein brought the court case Bernstein v. United States. The ruling in the case declared software as protected speech under the First Amendment, and national restrictions on encryption software were overturned. Bernstein was originally represented by the Electronic Frontier Foundation, but he later represented himself despite having no formal training as a lawyer.[16]

Software securityEdit

In the autumn of 2004, Bernstein taught a course about computer software security, titled "UNIX Security Holes". The sixteen members of the class discovered 91 new UNIX security holes.[citation needed] Bernstein, long a promoter of the idea that full disclosure is the best method to promote software security and founder of the securesoftware mailing list, publicly announced 44 of them with sample exploit code.

Bernstein explained, in 2005, that he is pursuing a strategy to "produce invulnerable computer systems". He plans to achieve this by putting the vast majority of computer software into an "extreme sandbox" that only allows it to transform input into output, and by writing bugfree replacements (like qmail and djbdns) for the remaining components that need additional privileges. He concludes: "I won’t be satisfied until I've put the entire security industry out of work."[17]

In spring 2005 Bernstein taught a course on "high speed cryptography".[18] He demonstrated new results against implementations of AES (cache attacks) in the same time period.[19]

As of April 2008,[20] Bernstein's stream cipher "Salsa20" was selected as a member of the final portfolio of the eSTREAM project, part of a European Union research directive.

In 2011, Bernstein published RFSB, a variant of the Fast Syndrome Based Hash function.

Secure softwareEdit

Bernstein has written a number of security-aware programs, including:

Bernstein offers a security guarantee for qmail and djbdns; while some claim there is a dispute over a reported potential qmail exploit, a functioning exploit targeting qmail running on 64-bit platforms was published in 2005.[21][22] Bernstein claims that the exploit does not fall within the parameters of the qmail security guarantee. In March 2009, Bernstein awarded $1000 to Matthew Dempsky for finding a security hole in djbdns.[23]

In August 2008, Bernstein announced[24] DNSCurve, a proposal to secure the Domain Name System. DNSCurve uses techniques from elliptic curve cryptography to give a vast decrease in computational time over the RSA public-key algorithm used by DNSSEC, and uses the existing DNS hierarchy to propagate trust by embedding public keys into specially formatted (but backward-compatible) DNS records.

As of 2014, Bernstein's algorithms are used exclusively in OpenSSH when optionally compiled without OpenSSL for a reduced feature set—Ed25519 key type,[25] Curve25519 key exchange[26] and ChaCha20-Poly1305 transport cipher (although the transport ciphers are also complemented by AES-CTR).[27][28] Additionally, the cryptography used in OpenBSD for signing releases and packages is based entirely on the algorithms by Bernstein.[29][30] Both the signed releases and the extra crypto in OpenSSH have first appeared in OpenBSD 5.5,[31] which was also the first OpenBSD release to contain any of Bernstein's crypto.


Bernstein has published a number of papers on mathematics and computation. Many of his papers deal with algorithms or implementations. He also wrote a survey titled "Multidigit multiplication for mathematicians".[32]

In 2001 Bernstein circulated "Circuits for integer factorization: a proposal,"[33] which caused a stir as it potentially suggested that if physical hardware implementations could be close to their theoretical efficiency, then perhaps current views about the number of bits required to store useful keys might be off by a factor of three, meaning that the numbers themselves are off by a power of three. 512-bit RSA was then breakable, and, therefore, perhaps 1536-bit RSA would be too. Bernstein was careful not to make any actual predictions, and emphasized the importance of correctly interpreting asymptotic expressions. However, several other important names in the field, Arjen Lenstra, Adi Shamir, Jim Tomlinson, and Eran Tromer disagreed strongly with Bernstein's conclusions.[34] Bernstein has received funding to investigate whether this potential can be realized.

He is also the author of the mathematical libraries DJBFFT, a fast portable FFT library, and of primegen, an asymptotically fast small prime sieve with low memory footprint based on the sieve of Atkin rather than the more usual sieve of Eratosthenes. Both have been used effectively to aid the search for large prime numbers.

In algebraic geometry, he introduced in 2007 Twisted Edwards curves that are plane models of elliptic curves, a generalisation of Edwards curves. This is used in its Curve25519 elliptic curve cryptography, and its Ed25519 implementation of EdDSA.

In February 2015, Bernstein and others published a paper on stateless post-quantum hash-based signatures, called SPHINCS.[35]

In April 2017, Bernstein and others published a paper on Post-Quantum RSA, which includes an algorithm the paper claims is "often much faster than Shor's".[36]

Bernstein's paper on Faster batch forgery identification has been implemented in the libsecp256k1 crypto library used in Bitcoin.[37]

Other workEdit

Bernstein proposed Internet Mail 2000, an alternative system for electronic mail, intended to replace Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP3) and Internet Message Access Protocol (IMAP).[38]

He is the primary author of the 2009 book Post-Quantum Cryptography.

Bernstein is also known for his popular string hashing function djb2.[39][40]

See alsoEdit


  1. ^ a b Daniel J. Bernstein (2007-01-15). "Curriculum vitae" (pdf). Retrieved March 22, 2017. 
  2. ^ J. Bernstein, Daniel. "Curriculum vitae" (PDF). Retrieved 3 August 2016. 
  3. ^
  4. ^ Maxwell, Gregory (September 8, 2013). "[tor-talk] NIST approved crypto in Tor?". Retrieved 2015-05-20. 
  5. ^ "SafeCurves: Rigidity". Retrieved 2015-05-20. 
  6. ^ "The NSA Is Breaking Most Encryption on the Internet - Schneier on Security". Retrieved 2015-05-20. 
  7. ^ A. Langley, W. Chang, N. Mavrogiannopoulos, J. Strombergson, S. Josefsson (2015-12-16). "ChaCha20-Poly1305 Cipher Suites for Transport Layer Security (TLS)". Internet Draft. 
  8. ^ iOS Security Guide
  9. ^ Corbet, Jonathan. "Replacing /dev/urandom". Linux Weekly News. Retrieved 2016-09-20. 
  10. ^ Miller, Damien (2016-05-03). "ssh/PROTOCOL.chacha20poly1305". Super User's BSD Cross Reference: PROTOCOL.chacha20poly1305. Retrieved 2016-09-07. 
  11. ^ Murenin, Constantine A. (2013-12-11). Unknown Lamer, ed. "OpenSSH Has a New Cipher — Chacha20-poly1305 — from D.J. Bernstein". Slashdot. Retrieved 2016-09-07. 
  12. ^ Roger Dingledine & Nick Mathewson. "Tor's Protocol Specifications - Blog". Retrieved 20 December 2014. 
  13. ^ "New Yorkers Excel In Contest". New York Times. 1987-01-21. Retrieved November 9, 2008. 
  14. ^ "TWO GIRLS WIN WESTINGHOUSE COMPETITION". New York Times. 1987-01-21. Retrieved March 14, 2011. 
  15. ^ L. F. Klosinski; G. L. Alexanderson; L. C. Larson (Oct 1988). "The William Lowell Putnam Mathematical Competition". The American Mathematical Monthly. 95 (8). pp. 717–727. JSTOR 2322251. 
  16. ^ [1]
  17. ^ Daniel J. Bernstein (2005-01-07). "Selected Research Activities" (PDF). 
  18. ^ Daniel J. Bernstein. "MCS 590, High-Speed Cryptography, Spring 2005". Authenticators and signatures. Retrieved September 23, 2005. 
  19. ^ Daniel J. Bernstein (2004-04-17). "Cache timing attacks on AES" (PDF). cd9faae9bd5308c440df50fc26a517b4. 
  20. ^ Steve Babbage; Christophe De Canniere; Anne Canteaut; Carlos Cid; Henri Gilbert; Thomas Johansson; Matthew Parker; Bart Preneel; Vincent Rijmen; Matthew Robshaw. "The eSTREAM Portfolio" (PDF). Retrieved April 28, 2010. 
  21. ^ Georgi Guninski (2005-05-31). "Georgi Guninski security advisory #74, 2005". Retrieved September 23, 2005. 
  22. ^ James Craig Burley (2005-05-31). "My Take on Georgi Guninski's qmail Security Advisories". 
  23. ^ Daniel J. Bernstein (2009-03-04). "djbdns<=1.05 lets AXFRed subdomains overwrite domains". 
  24. ^ Daniel J. Bernstein. "High-speed cryptography". 
  25. ^ Miller, Damien, ed. (2014-12-21). "ssh/sshkey.c#keytypes". BSD Cross Reference, OpenBSD src/usr.bin/. Retrieved 2014-12-28. 
  26. ^ Friedl, Markus (2014-04-29). "ssh/kex.c#kexalgs". BSD Cross Reference, OpenBSD src/usr.bin/. Retrieved 2014-12-27. 
  27. ^ Miller, Damien, ed. (2014-06-24). "ssh/cipher.c#ciphers". BSD Cross Reference, OpenBSD src/usr.bin/. Retrieved 2014-12-27. 
  28. ^ Murenin, Constantine A. (2014-04-30). Soulskill, ed. "OpenSSH No Longer Has To Depend On OpenSSL". Slashdot. Retrieved 2014-12-26. 
  29. ^ Unangst, Ted (2014-11-20). krw, ed. "signify.c". BSD Cross Reference, OpenBSD src/usr.bin/signify/. Retrieved 2014-12-28. 
  30. ^ Murenin, Constantine A. (2014-01-19). Soulskill, ed. "OpenBSD Moving Towards Signed Packages — Based On D. J. Bernstein Crypto". Slashdot. Retrieved 2014-12-27. 
  31. ^ Murenin, Constantine A. (2014-05-01). timothy, ed. "OpenBSD 5.5 Released". Slashdot. Retrieved 2014-12-27. 
  32. ^ Daniel J. Bernstein (2001-08-11). "Multidigit multiplication for mathematicians". 
  33. ^ Daniel J. Bernstein (2001-11-09). "Circuits for integer factorization: a proposal". 
  34. ^ Arjen K. Lenstra; Adi Shamir; Jim Tomlinson; Eran Tromer (2002). "Analysis of Bernstein's Factorization Circuit". Proc. Asiacrypt. LNCS 2501: 1–26. 
  35. ^
  36. ^
  37. ^
  38. ^
  39. ^ Yigit, Ozan. "String hash functions". 
  40. ^ "Hash function constants selection discussion". 

Further readingEdit

External linksEdit