RDSEED wiki page and download

23 views
Skip to first unread message

Jeffrey Walton

unread,
Oct 23, 2015, 7:56:20 PM10/23/15
to Crypto++ Users
Hi Everyone,

We added RDSEED to the library. We reused the RDRAND gear since nearly everything was the same. That means <rdrand.h> provides both RDRAND and RDSEED.

We also reused the RDRAND wiki page. The page was modifed to discuss both RDRAND and RDSEED. You can find it at https://cryptopp.com/wiki/RDRAND . The wiki page also includes a discussion of issuing the opcodes by hand, and how to use an assembler like YASM to generate them for you.

The RDRAND/RDSEED source files are available as stand-alone download from the wiki page.

We'll have an RC6 soon since the additional functionality modified rdand.h, rdand.cpp, rdrand.asm, test.cpp and validat1.cpp.

Jeff

Jeffrey Walton

unread,
Oct 23, 2015, 10:58:35 PM10/23/15
to Crypto++ Users

I forgot to mention... I've got some odd configurations. I've got a MacBook that has AES-NI and CLMUL, but it lacks RDRAND. I have an Asus laptop that has RDRAND, but lacks RDSEED. So don't be surprised if you see the following (under Windows).

passed:  Your machine is little endian.
passed:  Your machine allows unaligned data access.
passed:  sizeof(byte) == 1
passed:  sizeof(word16) == 2
passed:  sizeof(word32) == 4
passed:  sizeof(word64) == 8
passed:  sizeof(hword) == 2, sizeof(word) == 4, sizeof(dword) == 8
passed:  hasMMX == 1, hasISSE == 1, hasSSE2 == 1, hasSSSE3 == 1, hasAESNI == 1,
hasRDRAND == 1, hasRDSEED == 0, hasCLMUL == 1, isP4 == 0, cacheLineSize == 64,
AESNI_INTRINSICS == 1

No operating system provided blocking random number generator, skipping test.

Testing operating system provided nonblocking random number generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE

Testing AutoSeeded generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE
passed:  discarded 10000 bytes

Testing RDRAND generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE
passed:  discarded 10000 bytes

RDSEED generator not available, skipping test.
...

Jean-Pierre Münch

unread,
Oct 26, 2015, 2:13:43 PM10/26/15
to cryptop...@googlegroups.com


Am 24.10.2015 um 04:58 schrieb Jeffrey Walton:


On Friday, October 23, 2015 at 7:56:20 PM UTC-4, Jeffrey Walton wrote:
Hi Everyone,

We added RDSEED to the library. We reused the RDRAND gear since nearly everything was the same. That means <rdrand.h> provides both RDRAND and RDSEED.

We also reused the RDRAND wiki page. The page was modifed to discuss both RDRAND and RDSEED. You can find it at https://cryptopp.com/wiki/RDRAND . The wiki page also includes a discussion of issuing the opcodes by hand, and how to use an assembler like YASM to generate them for you.

The RDRAND/RDSEED source files are available as stand-alone download from the wiki page.

We'll have an RC6 soon since the additional functionality modified rdand.h, rdand.cpp, rdrand.asm, test.cpp and validat1.cpp.

I forgot to mention... I've got some odd configurations. I've got a MacBook that has AES-NI and CLMUL, but it lacks RDRAND. I have an Asus laptop that has RDRAND, but lacks RDSEED. So don't be surprised if you see the following (under Windows).

This isn't odd.
AES-NI and CLMUL were introduced in the late first Gen Intel Core i processors (desktop i7 and one desktop i5 didn't have it, the rest of this gen had it - at least the i5s). So chances are if you have a Sandy Bridge CPU (Intel Core i 2XXX) you have AES-NI and no RDRAND.
RDRAND was introduced with Ivy Bridge (Intel Core i 3XXX excluding 39XX series).
RDSEED was introduced with Broadwell (Intel Core i 5XXX, excluding the 59XX and 599X Haswell-Es)
The first generation with mass availability (on non-(cheap laptops)) will be Skylake (Intel Core i 6XXX) which is getting mass available right now.

So far for the little history lesson here ;)

BR

JPM
passed:  Your machine is little endian.
passed:  Your machine allows unaligned data access.
passed:  sizeof(byte) == 1
passed:  sizeof(word16) == 2
passed:  sizeof(word32) == 4
passed:  sizeof(word64) == 8
passed:  sizeof(hword) == 2, sizeof(word) == 4, sizeof(dword) == 8
passed:  hasMMX == 1, hasISSE == 1, hasSSE2 == 1, hasSSSE3 == 1, hasAESNI == 1,
hasRDRAND == 1, hasRDSEED == 0, hasCLMUL == 1, isP4 == 0, cacheLineSize == 64,
AESNI_INTRINSICS == 1

No operating system provided blocking random number generator, skipping test.

Testing operating system provided nonblocking random number generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE

Testing AutoSeeded generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE
passed:  discarded 10000 bytes

Testing RDRAND generator...

passed:  100000 generated bytes compressed to 100020 bytes by DEFLATE
passed:  discarded 10000 bytes

RDSEED generator not available, skipping test.
...

--
--
You received this message because you are subscribed to the "Crypto++ Users" Google Group.
To unsubscribe, send an email to cryptopp-user...@googlegroups.com.
More information about Crypto++ and this group is available at http://www.cryptopp.com.
---
You received this message because you are subscribed to the Google Groups "Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cryptopp-user...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jeffrey Walton

unread,
Oct 27, 2015, 9:15:30 AM10/27/15
to Crypto++ Users


On Friday, October 23, 2015 at 7:56:20 PM UTC-4, Jeffrey Walton wrote:
Hi Everyone,

We added RDSEED to the library. We reused the RDRAND gear since nearly everything was the same. That means <rdrand.h> provides both RDRAND and RDSEED.

We also reused the RDRAND wiki page. The page was modifed to discuss both RDRAND and RDSEED. You can find it at https://cryptopp.com/wiki/RDRAND . The wiki page also includes a discussion of issuing the opcodes by hand, and how to use an assembler like YASM to generate them for you.

The RDRAND/RDSEED source files are available as stand-alone download from the wiki page.

We'll have an RC6 soon since the additional functionality modified rdand.h, rdand.cpp, rdrand.asm, test.cpp and validat1.cpp.

I forgot to mention... I've got some odd configurations. I've got a MacBook that has AES-NI and CLMUL, but it lacks RDRAND. I have an Asus laptop that has RDRAND, but lacks RDSEED. So don't be surprised if you see the following (under Windows).

This isn't odd.
AES-NI and CLMUL were introduced in the late first Gen Intel Core i processors (desktop i7 and one desktop i5 didn't have it, the rest of this gen had it - at least the i5s). So chances are if you have a Sandy Bridge CPU (Intel Core i 2XXX) you have AES-NI and no RDRAND.
RDRAND was introduced with Ivy Bridge (Intel Core i 3XXX excluding 39XX series).
RDSEED was introduced with Broadwell (Intel Core i 5XXX, excluding the 59XX and 599X Haswell-Es)
The first generation with mass availability (on non-(cheap laptops)) will be Skylake (Intel Core i 6XXX) which is getting mass available right now.

Oh,I thought it was a bad luck on my part.

When I bought the MacBook Pro, I specially requested a model with both AES-NI and RDRAND I also loaded it up with processor cores and RAM because I wanted to use it for 5 or 6 years. I don't game or stream rich media, so I don't care about bells and whistles added to to iTunes or iMovie. The biggest pressure I put on a machine are the Virtual Machines I run.

The kip at the Apple Store told me the MacBook came with both. When I got the MacBook, I discovered it was the previous model year MBP (6 or 9 months old), and it lacked RDRAND (RDRAND started shipping one or two months earlier). I even deferred the purchase while waiting for the chips to ship. I was really pissed off about it because I spent over $3000 for it.

Jeff
Reply all
Reply to author
Forward
0 new messages