Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.
150

As usual, journalism talking about technical subjects tends to be fuzzy about details... Assuming that a true Quantum Computer can be built, then: RSA, and other algorithms which rely on the hardness of integer factorization (e.g. Rabin), are toast. Shor's algorithm factors big integers very efficiently. DSA, Diffie-Hellman ElGamal, and other algorithms ...


51

An unknown "encryption" algorithm has been historically achieved at least once. I am speaking of Minoan Linear B script, a writing method which was used in Crete around 1300 BC. The method was lost a few centuries later, with the death of all practitioners and the overall collapse of civilization during the so-called Greek Dark Ages. When archaeologists ...


51

The Zodiac killer ciphers are an interesting case. As there were four ciphers sent to the local papers, I will address each in turn. They do share some common traits however. They are each their own cipher, so the 'solution' used for cipher 408 cannot be applied to the other messages. Each message has a unique character count. The Zodiac Killer sent these ...


51

The private key is unrelated to the passphrase. So is the public key. The public key is also generally stored unencrypted, even when the private key is protected by a passphrase. (Exceptions may exist where the public key is stored in an encrypted form, but in the basic case and assuming a sufficiently large key, doing so provides no additional security ...


32

To attack a cryptographic protocol, you have the following attack methods Known plaintext: Trying to find correlations between the plaintext you have and the corresponding ciphertext. Chosen plaintext: Encrypting specific plaintext and studying the changes to the ciphertext as the plaintext changes. Choosen ciphertext: Decrypting specific ciphertext and ...


27

You're assuming that they're actually encrypted. A lot of crazy people have written things that nobody understands. Just because the author thinks they're in code doesn't necessarily mean that the code can be reversed.


24

The passphrase guards against accessing the private key The passphrase is meant to guard the private key in the event of physical access. If the hacker can sign on to your server and can access your certificate store, he could use the passphrase to obtain a copy of the certificate that would include the private key. Hopefully hackers don't routinely have ...


17

There's no exact answer, and here's why: Brute Force We start with a 128-bit symmetric key. Assuming the algorithm (e.g. AES) isn't yet broken, we have to look at power consumption. Assuming 100% efficient computation devices whose technology far exceeds any computer, ASIC, graphics card, or other key-cracking device you can dream up, there's a minimum ...


16

There are two generic ways to produce a "sufficiently unbiased" random digit. First method is to loop if the byte was not in the right range. I.e.: Get next random byte b. If b is in the 0..249 range, return b mod 10. Loop. This method may consume an unbounded number of random bytes, but it is perfectly unbiased and it is very unlikely to require looping ...


15

I think nobody has said it aloud here, so I will. If a cryptographer is given only one ciphertext with no means to get more, the ciphertext is short and no knowledge of the plaintext is given, it is near impossible to decrypt the text. The only way this is still possible is if the cipher is around the difficulty level of a substitution cipher. Given the ...


15

A cryptanalyst would probably just do this by hand; This is a text file. All printable characters. Frequency analysis shows 2 * '<' and 2 * '>' which is true of all plaintexts, whereas all other character frequencies change, which probably means something interesting is going on. I would say less than an hour to figure out your password scheme. ...


14

The short answer is "no". The longer answer is that SSL is specifically designed to make this impossible. If this was possible, SSL would be useless for its primary intended purpose -- to secure things like credit card numbers sent to secure web sites. The short (and technically incorrect) answer for how SSL does this is as follows: The server presents a ...


13

If you're going to distribute a secret algorithm, why not just distribute one-time pads instead? It's more secure. If you don't like the idea of one-time pads because too much data is moving over the wire, then why are you assuming that the attacker only has one cyphertext? Assuming somebody only has one cyphertext, and doesn't have the algorithm, (two ...


13

This could be encrypted with any key length that is equal or longer than 28 characters (sum of lengths of ciphertext you provided) and as such unsolvable. The character variation between the plaintext CANDY VERY CRANBERRYhttphttp and its ciphertext TXOtWjYhVk 8&O$4AmSAcZf.r5Hz is: 17,23,1,48,-2,74,3,35,4,18,0,-11,-44,14,-42,-14,-4,27,1,-24,-5,-26,-14,-...


12

between > and < so I can find it myself Well, that's it. Whatever your "hiding method", you have to remember a way to find it back. So you password is not the sequence of characters which you ultimately type on the keyboard; your real password, the "secret convention" that you keep in your brain, is the method: find the two strings enclosed in '>' and '&...


12

Nope Generally speaking: No. Hashing is not encryption. Hashing is not reversible. At all. It always generates a fixed length output. So with an output fixed to say 32 characters, and an input of 33 characters, there is no possible way to reverse this. The information of that one character is irretrievably lost. -- And along with it all other characters. ...


10

Register for Stanford's online Cryptography class that begins next January. It's free, online, includes both theory (video lectures and quizzes) and practice (programming assignments), let's you work at your own pace and you will get a statement of accomplishment if you succeed. Given the various echoes I got on Stanford's previous online courses session, I'...


10

If an encryption system allows for character-per-character cracking, then it is awfully weak, and should not be used. Mathematically, block ciphers are defined as pseudorandom permutations. A block cipher works over the space of blocks of length n bits; such a space has size 2n. There are 2n! permutations over that space (that's a factorial, meaning that ...


10

No, this won't provide any improvement for encryption with any decent cipher. If a cipher is so bad that a known-plaintext attack is capable of fatally breaking it, then the cipher is worthless. A known-plaintext attack is one where an attacker has knowledge of plaintext/ciphertext pairs and, from that knowledge, is able to either calculate the key or ...


9

To get the number of permutations, multiply the number of possibilities at each position: 26x10x26x10x26x10x26 = 456,976,000


8

I do not have exactly the software you want. However: You can use any existing MD5 implementation and write the code which invokes it twice for all the potential passwords. See for instance sphlib; on my PC (Core2 x86, 2.4 GHz), this code should be able to evaluate more than 6 millions MD5 hashes per second, so that's 3 millions per second passwords with ...


8

I would consider a 128 bits of entropy in a token to be the de-facto standard. OWASP and CWE both recommend this as a minimum. 20 characters of Base64 (capable of 120 bits) is also handy for something in the URL. I would also note that in many cases poor seeding for those tokens creates problems. For one bit of reference, see the (kind of tastelessly ...


8

It can be done, but it requires information beyond what you have on the wire. Wireshark has the ability to do this sort of sniffing, assuming it can see the entire conversation and you also have the private key of the server's SSL certificate. Without the private key it doesn't work. This is why you need to protect your private keys. I've used this ...


8

As always, it depends on the algorithm. The attack technique you are asking about is called a "known plaintext attack", but it only works for certain types of encryption. Modern cryptanalysis is all about pattern detection. A brute force attack is the last thing done because it means that all other avenues of attacking the cipher have failed. Imagine a ...


8

In theory, having several hashes may help; in practice, not so much. The Theory Let's consider SHA-256. From this function, we can define another hash function, which we will call SHB-256, such that SHB-256(m) = SHA-256(m) XOR m. In simple words, I compute the XOR of the SHA-256 and the first 256 bits of m. This "SHB-256" is as good a cryptographic hash ...


8

Quantum computing will make most dramatic impact on asymmetric encryption, but symmetric algorithms are considered safe with a large enough key size (256 bits). So, yeah, we'll have to reinvent x509/SSL by the time quantum computing really takes off (which is a large enough TODO), but there will be large areas of cryptography that will remain relatively safe....


8

For cryptanalysis, the usual three-point method applies: Write down the problem. Think real hard. Write down the answer. And that's about all that can be said generically. The methodology of a cryptanalyst is about the same as that of researchers in any other science. The core of the daily work of a cryptographer is to read, read, read all the papers. ...


Only top voted, non community-wiki answers of a minimum length are eligible