NSA's Key Role in Major Developments in Computer Science [pdf]
media.defense.gov
media.defense.gov
The NSA improved the DES cipher but declined to explain how it works. https://en.wikipedia.org/wiki/Data_Encryption_Standard#NSA's... . The successor, AES / Rijndael, was selected in an open competition.
They designed SHA-0 but quietly revised it to become SHA-1, which was in widespread use for over a decade; SHA-256 and SHA-512 which are in widespread use today. Again, the successor, SHA-3 / Keccak, was selected in an open competition.
They designed the notorious Dual EC DRBG (Elliptic Curve Deterministic Random Bit Generator) which performs poorly and is widely believed to have a backdoor. https://en.wikipedia.org/wiki/Dual_EC_DRBG
I would like to stress that it isn't just "widely believed" that Dual EC DRBG has a backdoor. It has been shown beyond any reasonable doubt, with plenty of research papers going into the details of how this was exploited.
https://en.wikipedia.org/wiki/Speck_%28cipher%29
turns out in 2013 kernel hackers decided to tell the NSA to go pound sand into a rathole while they focused on things like ED25519 because as Bruce Schneier himself publically stated:
"I no longer trust the constants. I believe the NSA has manipulated them through their relationships with industry."
It would be better if people avoided citing Schneier on curve cryptography, since he spent his career sort of publicly and vocally avoiding elliptic curves. Cryptography is a big discipline; it's not the case that someone with good ideas on, say, block ciphers necessarily has a lot of insight into elliptic curve or lattice cryptography or isogenies or pairings.
There's been a whole bunch of research and some controversy about SIMON and SPECK, the NSA small-footprint ciphers. The problem with backdooring something as simple as SPECK is twofold: you don't have many degrees of freedom, because block ciphers are so simple, and whatever backdoor you come up with has to be "NOBUS" to be practical --- meaning: your backdoor has to work for the NSA, but not for the GRU.
There was a cool paper last year that proposed a NOBUS-like backdoor mechanism for block cipher designs that embedded a susceptibility to linear cryptanalysis into S-boxes (that paper is also notable for a shout-out to yours truly, for writing an HN comment dumb enough to motivate a whole academic paper to refute it) --- this is Tomer Ashur and Raluca Posteuca's thing. So it's been shown that you can introduce a vulnerability --- nowhere nearly as useful as Dual EC, since linear cryptanalysis is annoying to carry out --- but it's still up in the air whether you can really make them NOBUS, because the backdooring work has to survive its own cryptanalysis to prove that up.
At any rate: I kind of doubt there's really anything sketchy about SIMON or SPECK, but it doesn't matter, because nobody is going to use it (having said this on Hacker News we can now be sure that there's a PR to introduce it to Juniper VPN devices, but I stand by it!) and because there are lots of simple low-footprint cipher designs to choose from now.
"Information wants to be free."
"I'm not my brother's keeper."
"Those who give up essetial liberty to purchase temporary safety deserve neither and will soon lose both."
as aphorisms that are correct as commonly used despite their original coinage having been in service of bullshit.
Which magic parameters are you referring to? Like the choice of groups in RFCs 2409 and 3526?
If they want credit for improving science itself, they need to share much, much more.
Some videos of Danny Hillis talking about Richard Feynman and Thinking Machines:
https://www.youtube.com/results?search_query=danny+hillis+ri...
Also listed this:
https://www.youtube.com/watch?v=cNaEI70hT-o
Danny Hillis article on Feynman (if you prefer reading):
https://longnow.org/essays/richard-feynman-and-connection-ma...
Feynman computer science videos:
https://www.youtube.com/results?search_query=richard+feynman...
There are others, but that one has the most comments.
On MSVC, _popcount gets you POPCNT regardless of target. But its std::bitset and std::popcount still won't use it.
C does not, in fact, offer any Standard way to get a popcount instruction. Gcc's and Clang's optimizers recognize certain naive counting loops and can substitute a POPCNT instruction if told that the target supports it.
On RISC-V, you don't get a POPC under any circumstances, nohow. I have been told that the RVA-22 target (supposed to be used in desk machines) will have it, but cannot find any confirmation online. I expect it to be tricky to get compilers for RISC-V to emit it, into the indefinite future, regardless of support on particular machines.