<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Bitbashing (Posts about crypto)</title><link>https://randombit.net/bitbashing/</link><description></description><atom:link href="https://randombit.net/bitbashing/categories/crypto.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2020 &lt;a href="mailto:jack@randombit.net"&gt;Jack Lloyd&lt;/a&gt; </copyright><lastBuildDate>Wed, 04 Mar 2020 15:32:56 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Const-time Modular Inversion Using CRT</title><link>https://randombit.net/bitbashing/posts/modular_inversion_using_crt.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;Modular inversion is an important component in many cryptographic computations,
notably in number-theoretic public key cryptosystems like RSA and ECDSA.  In
such uses, we must both perform the computation as quickly as possible and also
in const-time, that is without any software-observable side channels which leak
information about the inputs or output. Otherwise it is possible to attack
computations such as RSA key generation or ECDSA signature generation, and
recover the secret key.&lt;/p&gt;
&lt;p&gt;This is a bad thing.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/modular_inversion_using_crt.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><category>math</category><guid>https://randombit.net/bitbashing/posts/modular_inversion_using_crt.html</guid><pubDate>Wed, 04 Mar 2020 05:00:00 GMT</pubDate></item><item><title>Simple and hardware friendly RSA threshold signatures</title><link>https://randombit.net/bitbashing/posts/simple_rsa_threshold_sigs.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;A &lt;span class="math"&gt;\((n,t)\)&lt;/span&gt; threshold signature schemes allow splitting a key into
&lt;span class="math"&gt;\(n\)&lt;/span&gt; pieces, in such a way that at least &lt;span class="math"&gt;\(t &amp;lt; n\)&lt;/span&gt;
participants must jointly use their key shards in order to generate a
valid signature.&lt;/p&gt;
&lt;p&gt;Many techniques for RSA threshold signatures have been developed. Currently
published techniques require either a trusted dealer, or use of a distributed
key generation algorithm. In addition, the signers must perform a non-standard
RSA signature; that is, signing a message with a private exponent which is not
equal to &lt;span class="math"&gt;\(e^{-1} \bmod n\)&lt;/span&gt;. Both requirements prevent using standard hardware
such as HSMs or smartcards to protect the key shards.&lt;/p&gt;
&lt;p&gt;I discovered a technique for &lt;span class="math"&gt;\(n\)&lt;/span&gt;-of-&lt;span class="math"&gt;\(n\)&lt;/span&gt; RSA signatures where both
keys and signatures can be computed using standard cryptographic hardware.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/simple_rsa_threshold_sigs.html"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/simple_rsa_threshold_sigs.html</guid><pubDate>Sun, 04 Aug 2019 04:00:00 GMT</pubDate></item><item><title>How Not To Do BLS Signatures</title><link>https://randombit.net/bitbashing/posts/bls_hashing_fail.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;The BLS signature scheme has several interesting properties, namely
that the signatures are very short compared to any other known scheme,
and it affords a simple implementation of threshold signatures and
signature aggregation. For these reasons it has been of some interest
especially in cryptocurrencies which can make good use of these properties.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/bls_hashing_fail.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/bls_hashing_fail.html</guid><pubDate>Wed, 24 Jul 2019 04:00:00 GMT</pubDate></item><item><title>The Case For Skein</title><link>https://randombit.net/bitbashing/posts/the_case_for_skein.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;After the initial set of attacks on MD5 and SHA-1, NIST organized a
series of conferences on hash function design. I was lucky enough to
be able to attend the first one, and had a great time. This was the
place where the suggestion of a competition in the style of the AES
process to replace SHA-1 and SHA-2 was first proposed (to wide
approval). This has resulted in over 60 submissions to the &lt;a class="reference external" href="http://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo"&gt;SHA-3&lt;/a&gt; contest, of
which 14 have been brought into the second round.&lt;/p&gt;
&lt;p&gt;Of the second round contenders, I think Skein is the best choice
for becoming SHA-3, and want to explain why I think so.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/the_case_for_skein.html"&gt;Read more…&lt;/a&gt; (6 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/the_case_for_skein.html</guid><pubDate>Fri, 09 Oct 2009 04:00:00 GMT</pubDate></item><item><title>Speeding up Serpent: SIMD Edition</title><link>https://randombit.net/bitbashing/posts/serpent_in_simd.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;The &lt;a class="reference external" href="http://www.cl.cam.ac.uk/~rja14/serpent.html"&gt;Serpent&lt;/a&gt;
block cipher was one of the 5 finalists in the AES competition, and is
widely thought to be the most secure of them due to its conservative
design.  It was also considered the slowest candidate, which is one
major reason it did not win the AES contest. However, it turns out
that on modern machines one can use SIMD operations to implement
Serpent at speeds quite close to AES.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/serpent_in_simd.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><category>simd</category><guid>https://randombit.net/bitbashing/posts/serpent_in_simd.html</guid><pubDate>Wed, 09 Sep 2009 04:00:00 GMT</pubDate></item><item><title>On Syllable's /dev/random</title><link>https://randombit.net/bitbashing/posts/syllable_dev_random.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;Inspired by the recent &lt;a class="reference external" href="http://security.freebsd.org/advisories/FreeBSD-SA-08:11.arc4random.asc"&gt;FreeBSDarc4random&lt;/a&gt;
vulnerability, I've been taking a look at the random number generators
used by various libraries and operating systems.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/syllable_dev_random.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/syllable_dev_random.html</guid><pubDate>Tue, 09 Dec 2008 05:00:00 GMT</pubDate></item><item><title>Serious Weakness in GNU Classpath/gcj PRNG; DSA keys are compromised</title><link>https://randombit.net/bitbashing/posts/gnu_classpath_prng_analysis.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;&lt;a class="reference external" href="http://www.gnu.org/software/classpath/"&gt;GNU Classpath&lt;/a&gt; is an open source implementation of the Java class
libraries used by &lt;a class="reference external" href="http://gcc.gnu.org/java/"&gt;gcj&lt;/a&gt;, the
GNU Compiler for Java. One component of the Java library is JCE, the
Java Cryptography Extensions (so called because originally it was not
bundled with the JVM due to United States export restrictions), which
provides the basic crypto features one would expect (ciphers, hashing,
signatures) for Java applications. I found a rather interesting bug
that compromised all RSA and DSA keys used with GNU classpath.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/gnu_classpath_prng_analysis.html"&gt;Read more…&lt;/a&gt; (4 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/gnu_classpath_prng_analysis.html</guid><pubDate>Sat, 06 Dec 2008 05:00:00 GMT</pubDate></item><item><title>The More Things Change...</title><link>https://randombit.net/bitbashing/posts/juce_rng_fail.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;blockquote&gt;
"Anyone who considers arithmetic methods of producing random digits
is, of course, in a state of sin." - John von Neumann, 1951&lt;/blockquote&gt;
&lt;p&gt;On an Ubuntu forum I caught a reference to a C++ library called &lt;a class="reference external" href="http://www.rawmaterialsoftware.com/juce/"&gt;JUCE&lt;/a&gt;, which is one of those
all-inclusive C++ libraries along the lines of &lt;a class="reference external" href="http://pocoproject.org"&gt;POCO&lt;/a&gt; or &lt;a class="reference external" href="http://www.gnu.org/software/commoncpp/"&gt;GNU Common C++&lt;/a&gt;. One thing I noticed was
that it includes a few cryptographic operations, including RSA key
generation, so I decided to take a peek at the latest release as of
this writing, 1.46.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/juce_rng_fail.html"&gt;Read more…&lt;/a&gt; (5 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/juce_rng_fail.html</guid><pubDate>Fri, 05 Dec 2008 05:00:00 GMT</pubDate></item><item><title>Fun with assembly</title><link>https://randombit.net/bitbashing/posts/x86_asm_hashing.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;blockquote&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;"If you can explain how you do something, then you're very very bad at it."&lt;/dt&gt;
&lt;dd&gt;-- John Hopfield&lt;/dd&gt;
&lt;/dl&gt;
&lt;/blockquote&gt;
&lt;p&gt;The &lt;a class="reference external" href="http://venge.net/monotone"&gt;Monotone&lt;/a&gt; folks have been doing some
profiling and performance work of late. One thing that came out of
that was the finding that Botan's SHA-1 implementation was causing a
bottleneck; because Monotone identifies everything via hashes, there
are times where it needs to hash many (many) megabytes of source data,
and the faster that happens, the better. Since low-level C++ wasn't
cutting it, I felt that it was time to try my hand at x86 assembly
again.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/x86_asm_hashing.html"&gt;Read more…&lt;/a&gt; (3 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><category>programming</category><guid>https://randombit.net/bitbashing/posts/x86_asm_hashing.html</guid><pubDate>Sun, 13 Aug 2006 04:00:00 GMT</pubDate></item><item><title>Observation on the SSLv3 MAC function</title><link>https://randombit.net/bitbashing/posts/ssl3mac.html</link><dc:creator>Jack Lloyd</dc:creator><description>&lt;div&gt;&lt;p&gt;SSLv3 uses an early form of HMAC for message authentication
functions (we will denote this MAC as SSL3-MAC for brevity). A
critical point of the security of HMAC (and SSL3-MAC) is that the each
of the transformed keys (termed &lt;em&gt;ikey&lt;/em&gt; and &lt;em&gt;okey&lt;/em&gt;) is
exactly &lt;em&gt;B&lt;/em&gt; bytes long, where &lt;em&gt;B&lt;/em&gt; is the input size of
the hash function (for the MD5 and SHA-1 hash functions, &lt;em&gt;B&lt;/em&gt; =
64).&lt;/p&gt;
&lt;p&gt;&lt;a href="https://randombit.net/bitbashing/posts/ssl3mac.html"&gt;Read more…&lt;/a&gt; (1 min remaining to read)&lt;/p&gt;&lt;/div&gt;</description><category>crypto</category><guid>https://randombit.net/bitbashing/posts/ssl3mac.html</guid><pubDate>Sat, 11 Jan 2003 05:00:00 GMT</pubDate></item></channel></rss>