# Shouldn’t commercial encryption systems be easily crackable by Governments?

**URL:** <https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205>\
**Category:** Factual Questions\
**Created:** [March 3, 2021, 4:42pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205 "2021-03-03T16:42:36Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![md-2000](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@md-2000](https://boards.straightdope.com/u/md-2000)\
**Post date:** [March 3, 2021, 9:49pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/21 "2021-03-03T21:49:40Z")

</div>

As I understand it - encrypted message systems generate a different key for each client. they also rely on one-way encryption (public-private key) where the ability to encode does not give one the ability to decode. It’s as if each person using Enigma had a differently configured machine and different pad.

(Also, as I recall, Enigma encoded in blocks of 5 characters?)

An 8-character password with upper/lower case, numbers, and punctuation would mean about 75 characters to the 8th power. Make it 10 characters, and any brute force attach would take 75x75=5625 times longer. But - large prime encryption, with 256 digits or more, theoretically means brute force attacks would take longer than the age of the universe. Any crack would rely on flaws in the algorithm.

For example - dictionary attacks, easy. I tried one in the Pentium days as an experiment, exploiting the Microsoft LAN Manager password flaw, and had about 1/3 of the passwords within 5 minutes and then brute force found most of the rest within 2 hours. LAN Manager would store the password also in upper case only encrypted in 8-character segments; which worked in the 386 days but the feature needs to be turned off since then.

I have not heard of any significant attacks that actually decoded a data stream for properly encrypted internet data. usually the hack in by breaking into the device at one end or the other.

So - getting into the phone or computer - somewhat easy, aided too by social engineering and people who choose poor passwords. Decoding data between two properly encrypted devices - virtually impossible.

---

<div class="post-metadata">

**Author:** ![Cheesesteak](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/cheesesteak/32/3694_2.png) [@Cheesesteak](https://boards.straightdope.com/u/Cheesesteak)\
**Post date:** [March 3, 2021, 10:03pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/22 "2021-03-03T22:03:19Z")

</div>

> [@md-2000](#):
>
> they also rely on one-way encryption (public-private key) where the ability to encode does not give one the ability to decode.

What made me understand this is not calling it public key. I think of it as public lock - private key. I give you the ability to secure your message with a lock that my key will open. I can hand those locks around as much as I want, thousands, millions, because it’s very hard to reverse engineer the key. It’s easier to build a million random keys and try them than try to take the lock apart to design a key to fit.

I’m sure someone will come along to tell me my understanding is all wrong, and that’s ok.

---

<div class="post-metadata">

**Author:** ![echoreply](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/echoreply/32/3641_2.png) [@echoreply](https://boards.straightdope.com/u/echoreply)\
**Post date:** [March 3, 2021, 10:04pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/23 "2021-03-03T22:04:53Z")

</div>

> [@md-2000](#):
>
> LAN Manager would store the password also in upper case only encrypted in 8-character segments; which worked in the 386 days but the feature needs to be turned off since then.

Even worse, it was 7-character segments. 8-characters would have been pretty strong against brute force attacks, but 7 was very weak, especially if the password was less than 14-characters. In the case of an 8-character password, you were brute forcing a 7-character password and a 1-character password. I think on the days hardware it was something like 23 hours max, maybe two days, to brute force all 7-character passwords.

> [@md-2000](#):
>
> Decoding data between two properly encrypted devices - virtually impossible.

It becomes even more difficult with perfect forward secrecy. In that case, decryption of old encrypted data cannot be performed, even if the secret keys are obtained. This, for example, means that if the government records https traffic, they can’t just go to the company hosting the https server and get the keys.

---

<div class="post-metadata">

**Author:** ![iamthewalrus\_3](https://avatars.discourse-cdn.com/v4/letter/i/258eb7/32.png) [@iamthewalrus\_3](https://boards.straightdope.com/u/iamthewalrus_3)\
**Post date:** [March 3, 2021, 10:17pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/24 "2021-03-03T22:17:30Z")

</div>

> [@Cheesesteak](#):
>
> I’m sure someone will come along to tell me my understanding is all wrong, and that’s ok.

No, that’s pretty good. “Public lock, private key” is a good description of public key cryptography. The ambiguity is that cryptographers use the word “key” to mean “small piece of data involved in encryption” which encompasses both the keys used in encrypting (the public one, the “lock”) and decrypting (the private one, the “key”)

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [March 3, 2021, 11:09pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/25 "2021-03-03T23:09:33Z")

</div>

It’s also a bit misleading in that it can work either way: The owner of a private key can prove their identity (or at least, their knowledge of the private key) to encrypt a message, which can then be decrypted by use of the public key. In that case, you’re effectively securing something with a key, and then opening it with a lock. But that’s just a nitpick.

And it should be acknowledged that there is one sense in which you can decrypt a well-encrypted message: If you have reason to think that you know exactly what a message says, then you can test that exact message by encrypting it, and see if it’s the same as the encrypted text that you have. This usually isn’t practical (any change at all, like a single letter or punctuation, will result in a completely different encrypted message), but it could be used to verify a he-said-she-said situation.

---

<div class="post-metadata">

**Author:** ![Kyrie\_Eleison](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/kyrie_eleison/32/7682_2.png) [@Kyrie\_Eleison](https://boards.straightdope.com/u/Kyrie_Eleison)\
**Post date:** [March 4, 2021, 12:44am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/26 "2021-03-04T00:44:10Z")

</div>

> [@md-2000](#):
>
> As I understand it - encrypted message systems generate a different key for each client. they also rely on one-way encryption (public-private key) where the ability to encode does not give one the ability to decode. It’s as if each person using Enigma had a differently configured machine and different pad.

As **naita** mentioned, the message-exchange key is even more specific than that. Usually, the public/private key pair are used only to generate and exchange a randomly generated session key that’s then used to perform more conventional symmetric encryption only for the lifetime of that “session.” The definition of “session” varies by application, but the point is meant to be that the key used to encrypt the actual plaintext has a limited lifetime. In your analogy, you get a differently configured enigma machine with a different pad _each session_ of each person.

---

<div class="post-metadata">

**Author:** ![eschrodinger](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/eschrodinger/32/122_2.png) [@eschrodinger](https://boards.straightdope.com/u/eschrodinger)\
**Post date:** [March 4, 2021, 1:03am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/27 "2021-03-04T01:03:14Z")

</div>

Not only can governments not easily decrypt the contents of good commercially available encryption, but typically, for a well-designed system, neither can the company providing the encryption.

You can know exactly how it works, but unless you have the key, you won’t be able to crack it, absent a flaw in the system.

---

<div class="post-metadata">

**Author:** ![DPRK](https://avatars.discourse-cdn.com/v4/letter/d/4491bb/32.png) [@DPRK](https://boards.straightdope.com/u/DPRK)\
**Post date:** [March 4, 2021, 4:17am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/28 "2021-03-04T04:17:56Z")

</div>

This may have been mentioned, but an important crypto engineering concept here is [perfect forward secrecy](https://en.wikipedia.org/wiki/Forward_secrecy). This means that, if the design of the commercial encryption system is not incompetent, cracking the server’s secret keys will not enable the attacker to read all the messages they have intercepted.

---

<div class="post-metadata">

**Author:** ![leahcim](https://avatars.discourse-cdn.com/v4/letter/l/b4bc9f/32.png) [@leahcim](https://boards.straightdope.com/u/leahcim)\
**Post date:** [March 4, 2021, 9:33am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/29 "2021-03-04T09:33:27Z")

</div>

> [@Cheesesteak](#):
>
> What made me understand this is not calling it public key. I think of it as public lock - private key. I give you the ability to secure your message with a lock that my key will open.

The way I describe it is, the front door to your house is protected by a private key cryptosystem. There is (normally) only one key that will open the lock, and if you want to give someone access to your house, you hand them a copy of that key.

If the front door to your house was protected by a _public_ key cryptosystem. Every person would just always carry one key at all times, and the shape of that key would be publicly known. If you want to give someone access to your house, you reconfigure the _lock_ on your front door to open when that person’s key is inserted (meaning that the lock has to accept many keys if more than one person has access).

(Apparently some [hotel rooms](https://www.extremetech.com/extreme/193450-you-can-now-open-hotel-rooms-with-just-your-smartphone-and-bypass-check-in-too) work like this in some cases)

---

<div class="post-metadata">

**Author:** ![bump](https://avatars.discourse-cdn.com/v4/letter/b/7c8e57/32.png) [@bump](https://boards.straightdope.com/u/bump)\
**Post date:** [March 4, 2021, 3:22pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/30 "2021-03-04T15:22:24Z")

</div>

Yeah, I have a relative who was super-paranoid about how they had a firewall, and turned their PC off and unplugged their router every night, etc… because they were afraid of hackers getting their financial information.

They weren’t very happy when I pointed out that they didn’t have a password on their desktop, and that the easiest way for them to steal that stuff would be to bust out their huge plate glass front window when they’re not home, go into the room with the computer, start it up and copy it all onto a thumb drive. Or just walk off with the computer and scour it for juicy bits at their leisure.

---

<div class="post-metadata">

**Author:** ![bump](https://avatars.discourse-cdn.com/v4/letter/b/7c8e57/32.png) [@bump](https://boards.straightdope.com/u/bump)\
**Post date:** [March 4, 2021, 3:26pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/31 "2021-03-04T15:26:24Z")

</div>

I always thought of it conceptually as something akin to one of those big blue mailboxes. Basically anyone with the public key can open up the hopper and put something in, but once it’s in, only the person with the private key to the lower chamber can actually open it up and get it out.

So you can send out as many copies of the public key as you want- all they can do is open up the hopper and let you put something in. But to get it back out, you have to have the private key.

It’s not a perfect analogy, but it’s one that allows for two separate “keys” without having to conceive of it as a lock opening a key or anything like that.

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [March 4, 2021, 3:36pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/32 "2021-03-04T15:36:06Z")

</div>

> [@iamthewalrus\_3](#):
>
> No, that’s pretty good. “Public lock, private key” is a good description of public key cryptography.

> [@Chronos](#):
>
> It’s also a bit misleading in that it can work either way: The owner of a private key can prove their identity (or at least, their knowledge of the private key) to encrypt a message, which can then be decrypted by use of the public key. In that case, you’re effectively securing something with a key, and then opening it with a lock. But that’s just a nitpick.

Yeah, I like the ‘public lock/private key’ as a completely nontechnical analogy. It is rendered strange by the fact that each key is actually both a lock/key for the complementary key/lock, but I think all analogies are going to break down at some point - I can’t think of a real-world physical object that behaves in the way a key pair does

---

<div class="post-metadata">

**Author:** ![eschereal](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/eschereal/32/18939_2.png) [@eschereal](https://boards.straightdope.com/u/eschereal)\
**Post date:** [March 4, 2021, 4:55pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/33 "2021-03-04T16:55:03Z")

</div>

> [@Chronos](#):
>
> It’s also a bit misleading in that it can work either way: The owner of a private key can prove their identity (or at least, their knowledge of the private key) to encrypt a message, which can then be decrypted by use of the public key. In that case, you’re effectively securing something with a key, and then opening it with a lock. But that’s just a nitpick.

I have seen this on Usenet, but it is not encryption that is happening, rather a poster creates a private-key signature code on the post content that holders of the public key can use to verify that the post was in fact made by the (or a) holder of the private key.

---

<div class="post-metadata">

**Author:** ![Chronos](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/chronos/32/134_2.png) [@Chronos](https://boards.straightdope.com/u/Chronos)\
**Post date:** [March 4, 2021, 9:27pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/34 "2021-03-04T21:27:46Z")

</div>

In what sense is it “not encryption”? It’s the same mathematical operations either way.

---

<div class="post-metadata">

**Author:** ![k9bfriender](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/k9bfriender/32/3283_2.png) [@k9bfriender](https://boards.straightdope.com/u/k9bfriender)\
**Post date:** [March 4, 2021, 9:50pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/35 "2021-03-04T21:50:13Z")

</div>

It is the mathematical concept of encryption, but the reason for it is not to create private text, but instead to create a verifiable signature of the author.

I haven’t usenetted in forever, but when people did that, they’d have the plaintext first, and then the encrypted text after.

So, not traditional encryption, from a definition of encryption being used to create secret text.

---

<div class="post-metadata">

**Author:** ![leahcim](https://avatars.discourse-cdn.com/v4/letter/l/b4bc9f/32.png) [@leahcim](https://boards.straightdope.com/u/leahcim)\
**Post date:** [March 4, 2021, 11:12pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/36 "2021-03-04T23:12:17Z")

</div>

> [@k9bfriender](#):
>
> I haven’t usenetted in forever, but when people did that, they’d have the plaintext first, and then the encrypted text after.

To nit upon this, what usually came after was an encrypted _hashcode_ of the plaintext, not the encrypted plaintext itself. This was done for two reasons:

1. The hash code has a fixed length, so the signature would have a fixed length.
2. The hash code is effectively random characters, erasing the correlations in the plaintext upon which a lot of classical cryptographic attacks are based. I don’t think that there is any evidence that any of those attacks would be effective against RSA or the like, but it is relatively cheap extra protection. (I’ve seen the advice to compress any file you are going to encrypt first, for basically the same reason).

---

<div class="post-metadata">

**Author:** ![Derleth](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Derleth](https://boards.straightdope.com/u/Derleth)\
**Post date:** [March 5, 2021, 4:35am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/37 "2021-03-05T04:35:03Z")

</div>

> [@k9bfriender](#):
>
> I haven’t usenetted in forever, but when people did that, they’d have the plaintext first, and then the encrypted text after.

That’s called a cryptographic signature. It works like this:

1. The message is hashed, or turned into a fixed-size block of data using a complex algorithm such that it’s effectively impossible to craft an input which will come out to a known output. The best you can do is guess-and-check, and that kind of thing would take longer than the Sun will last.
2. The hash is encrypted using the sender’s private key. The encrypted version is turned into text using a known algorithm (Base64, for example) and appended to the message. This is called ASCII-armoring and is done to keep it from being mangled.
3. The recipient can receive the message, hash it, turn the ASCII-armored encrypted hash back into the same data that came out of the encryption, grab the sender’s public key, and use it to decrypt the encrypted hash. If the decrypted hash is the same as the hash the recipient generated, the recipient knows the message was sent by someone with access to the sender’s private key and that the message wasn’t changed in transit.

The point is to prevent forgery and modification, so you have a good reason to think you’re communicating with who you think you’re communicating with and that you’re getting the messages they intend to send you.

---

<div class="post-metadata">

**Author:** ![md-2000](https://avatars.discourse-cdn.com/v4/letter/m/9d8465/32.png) [@md-2000](https://boards.straightdope.com/u/md-2000)\
**Post date:** [March 5, 2021, 5:32am UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/38 "2021-03-05T05:32:30Z")

</div>

A very basic concept I would think -

The “public key” is like “I hand you an open padlock”. You lock the box full of goodies you are sending me - ie. encode with the public key.  
But just because you have the padlock does not mean you have the key to open it.

I have the padlock key (the “private key”). I can open the box by unlocking the padlock, and nobody else can.

(Ignoring the fuss about being able to analyze a padlock to find the shape of key it accepts… the digital equivalent of that could take the life of the universe.)

If I understand perfect Forward Secrecy, You send me a box using a padlock with a padlock and key 9for me) in it, I open it and send you another padlock to send your next set of messages. I also in the box send you a key for the padlocks I’ll use to send to you. You open my sent items with the key I sent you, and use the padlock to send me things, which I open with the key you just sent. We throw those keys and padlocks away when the conversation exchange is over.

Wheels within wheels.

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [March 5, 2021, 4:10pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/39 "2021-03-05T16:10:32Z")

</div>

> [@Chronos](#):
>
> In what sense is it “not encryption”? It’s the same mathematical operations either way.

A short signature hash can’t be decrypted back to the original text - all you can do is verify that the full text does indeed match the signature - in practical terms, it’s more like the utility of a checksum than encryption of a message that someone can later decrypt.

This does make it possible (although difficult) to find hash collisions - that is, another piece of plain text that hashes to the same output as the first - but in addition to being difficult (basically bruteforce trial and error), it’s most likely that the plain text you would find that hashes to the same result would be complete gibberish.

---

<div class="post-metadata">

**Author:** ![leahcim](https://avatars.discourse-cdn.com/v4/letter/l/b4bc9f/32.png) [@leahcim](https://boards.straightdope.com/u/leahcim)\
**Post date:** [March 5, 2021, 6:38pm UTC](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205/40 "2021-03-05T18:38:49Z")

</div>

> [@Mangetout](#):
>
> This does make it possible (although difficult) to find hash collisions - that is, another piece of plain text that hashes to the same output as the first - but in addition to being difficult (basically bruteforce trial and error), it’s most likely that the plain text you would find that hashes to the same result would be complete gibberish.

Practical example of finding two non-gibberish docs with the same (SHA-1) hash: [https://shattered.io/](https://shattered.io/)

This is an enhanced version of a [birthday attack](https://en.wikipedia.org/wiki/Birthday_attack) though, so it is not quite “find a document that has this hash”. And also there are much better hash algorithms than SHA-1 to use.

[Previous page](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205.md?page=1)

[Next page](https://boards.straightdope.com/t/shouldn-t-commercial-encryption-systems-be-easily-crackable-by-governments/934205.md?page=3)
