class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
class="post-list__item__description">When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so...</p>
<h3class="post-list__item__title"><ahref="/posts/encryption-primer/"title="Encryption Primer, How does this all work?">Encryption Primer, How does this all work?</a></h3>
class="post-list__item__description">How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write...</p>
<metaname="description"content="How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People…">
<metaproperty="og:type"content="article">
<metaproperty="og:title"content="Encryption Primer, How does this all work?">
<metaproperty="og:description"content="How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People…">
<metaname="twitter:title"content="Encryption Primer, How does this all work?">
<metaname="twitter:description"content="How does encryption work? In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People…">
<h2id="How-does-encryption-work"><ahref="#How-does-encryption-work"class="headerlink"title="How does encryption work?"></a>How does encryption work?</h2>
<p>In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write theses on encryption algorithms and base their entire mathematical careers off of them. I’ve always found it to be a very
intimidating way to approach the concept.</p>
<p>Basically, in order to encrypt something, you need a secret password known by both yourself and the person you’re trying to contact. This “shared secret” is then used to take your input data (your secret message) and transform it into something
that is unrecognizable to an outside observer. Throughout history, this has taken many forms. One-time pads are very tight encryption, the enigma machine was famous for needing the first Turing machine to be built to crack it. If you want
explanations as to how the math works for these, this isn’t the right blog.</p>
<p>This shared secret is then used in a “mathy” way to scramble the letters up in your message so much that it would be very difficult or impossible to unscramble without knowing the secret key.</p>
<p>When people talk about encryption they also always seem to use “Alice” and “Bob” as the people wanting to send messages. “Eve” is always the nefarious third party trying to spy on the communication. I don’t know why but make your own story
up.</p>
<h2id="One-time-pad-encryption-example"><ahref="#One-time-pad-encryption-example"class="headerlink"title="One-time pad encryption example"></a>One-time pad encryption example</h2>
<p>Let me take you through a quick example using a One-time Pad. A One-time pad is called such because in order for it to be secure, you can only use it once to encrypt data. Each successive use, weakens its encryption strength. They’re basically
two paper booklets that are identical to each other with random letters on them. Those random letters are identical in each pad as well. The two people wanting to send messages to one another should each have one.</p>
<p>So let’s make our super secret one time pad. First we’re going to agree on a way to turn letters into numbers. We’ll go elementary school style with just listing the numbers of the letters in the alphabet. There are many techniques to making
these, commonly called checkerboards or conversion tables, that allow for more characters and the use of a codebook to represent whole words as numbers as well.</p>
<table>
<thead>
<tr>
<thstyle="text-align:center">A</th>
<thstyle="text-align:center">B</th>
<thstyle="text-align:center">C</th>
<thstyle="text-align:center">D</th>
<thstyle="text-align:center">E</th>
<thstyle="text-align:center">F</th>
<thstyle="text-align:center">G</th>
<thstyle="text-align:center">H</th>
<thstyle="text-align:center">I</th>
<thstyle="text-align:center">J</th>
<thstyle="text-align:center">K</th>
<thstyle="text-align:center">L</th>
<thstyle="text-align:center">M</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">01</td>
<tdstyle="text-align:center">02</td>
<tdstyle="text-align:center">03</td>
<tdstyle="text-align:center">04</td>
<tdstyle="text-align:center">05</td>
<tdstyle="text-align:center">06</td>
<tdstyle="text-align:center">07</td>
<tdstyle="text-align:center">08</td>
<tdstyle="text-align:center">09</td>
<tdstyle="text-align:center">10</td>
<tdstyle="text-align:center">11</td>
<tdstyle="text-align:center">12</td>
<tdstyle="text-align:center">13</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<thstyle="text-align:center">N</th>
<thstyle="text-align:center">O</th>
<thstyle="text-align:center">P</th>
<thstyle="text-align:center">Q</th>
<thstyle="text-align:center">R</th>
<thstyle="text-align:center">S</th>
<thstyle="text-align:center">T</th>
<thstyle="text-align:center">U</th>
<thstyle="text-align:center">V</th>
<thstyle="text-align:center">W</th>
<thstyle="text-align:center">X</th>
<thstyle="text-align:center">Y</th>
<thstyle="text-align:center">Z</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">14</td>
<tdstyle="text-align:center">15</td>
<tdstyle="text-align:center">16</td>
<tdstyle="text-align:center">17</td>
<tdstyle="text-align:center">18</td>
<tdstyle="text-align:center">19</td>
<tdstyle="text-align:center">20</td>
<tdstyle="text-align:center">21</td>
<tdstyle="text-align:center">22</td>
<tdstyle="text-align:center">23</td>
<tdstyle="text-align:center">24</td>
<tdstyle="text-align:center">25</td>
<tdstyle="text-align:center">26</td>
</tr>
</tbody>
</table>
<p>Next we’ll make our one time pad by generating a bunch of random letters. Important to note here that randomness is essential to this whole thing. Most of the things you <strong>think</strong> are random are not. Truly random things are difficult,
but we’re not dealing with life or death info.</p>
<p>I went to <ahref="https://www.random.org/strings/"rel="external nofollow noopener noreferrer"target="_blank">random.org/strings</a> and got 20 random 2 character strings. One of the most important security rules for making iron clad One-time
Pad ciphers is to not use computers at all for encryption/decryption. You do want something truly random to make the pad and that is usually a computer of some sort. The idea is to have a computer make the One-time pad data while Alice and
Bob are together and in a safe place. That computer should not belong to either Alice or Bob and would likely be owned by Alice and Bob’s handlers. It shouldn’t be connected to any network, and for real security, should be annihilated with
antimatter after use. True randomness is hard to come by but that’s another post. When using a computer to encrypt or decrypt, Alice or Bob could leave behind data without even knowing it and it’s usually a variable that they cannot properly
control. Again, we’re just having fun.</p>
<blockquote>
<p>IM OT WM GU BY SH EB JR PU YC PV LW ZI CZ DB DM RU BH TY FV</p>
</blockquote>
<p>I’ve arranged them in 2 letter groups because this next part is how we’ll encode/decode our message. Let’s convert these to numbers. I’m just going to grab a couple to use as we won’t need all of them.</p>
<p>We’re going to now use this to encode our secret message “I THINK EVE IS LISTENING” by grouping them by two characters, removing spaces, and formatting it like we did before. We do this because we don’t want “Eve” to know how many characters
each word has. That would be a hint to our message’s contents.</p>
<table>
<thead>
<tr>
<thstyle="text-align:center">IT</th>
<thstyle="text-align:center">HI</th>
<thstyle="text-align:center">NK</th>
<thstyle="text-align:center">EV</th>
<thstyle="text-align:center">EI</th>
<thstyle="text-align:center">SL</th>
<thstyle="text-align:center">IS</th>
<thstyle="text-align:center">TE</th>
<thstyle="text-align:center">NI</th>
<thstyle="text-align:center">NG</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">0920</td>
<tdstyle="text-align:center">0809</td>
<tdstyle="text-align:center">1411</td>
<tdstyle="text-align:center">0522</td>
<tdstyle="text-align:center">0509</td>
<tdstyle="text-align:center">1912</td>
<tdstyle="text-align:center">0919</td>
<tdstyle="text-align:center">2005</td>
<tdstyle="text-align:center">1409</td>
<tdstyle="text-align:center">1407</td>
</tr>
</tbody>
</table>
<p>The next part is where the magic happens. We are going to keep the first secret key the same so Alice can know which One-time pad to use to decode the message. Ideally a One-Time pad is made up of several pages of random characters and you’ll
need a way to let each other know which one you’re using. So we’re going to line up the data and add one to the other. We’re only adding the individual digits and ignoring any time it goes over 10 by just writing the remainder. This is called
Modulus 10, but that’s getting into the “mathy” thing we talked about. Just think <code>9 + 4 = 13</code> so we take off the <code>10</code> part and end up with <code>3</code>.</p>
<p>Remember we are only adding single digits. You should never be adding more than one digit from the message to more than one digit of the One-time at a time.</p>
<p>Now that we have our secret encrypted cipher text, we destroy our pad and it will be secure. If we’re caught with the message we wouldn’t be able to provide a way to read it even with a <ahref="https://imgs.xkcd.com/comics/security.png"rel="external nofollow noopener noreferrer"
<p>So Bob sends his message to Alice via carrier pigeon. Eve has a fleet of pigeon intercepting hawks who grab Bob’s pigeon so Eve can copy down the message and send them on their way. Upon arriving, the pigeon tells Alice its harrowing tale.
Unfortunately, Alice doesn’t understand the pigeon’s regional dialect but even if she did, she would not be concerned that the message’s contents were compromised. </p>
<p>To decrypt, Alice needs to take the secret Cipher, and subtract her secret key from it using the same modulus method (subtracting the remainder from 10) so <code>3 - 9 = -2</code> which would mean <code>10 - 2 = 8</code></p>
<p>The pigeon reads the message and nods in agreement. Seeing this, Alice burns her scratch pad and the One-time pad. Eve can now never know what the message said.</p>
<p>As an exercise, and to demonstrate why this is such a strong encryption method, try decoding the previous cipher using the One-time pad of this:</p>
<p>You’ll notice the cipher is the same. It’s the same thing Eve has, but the message is different! It would have been nice to work out a message that could fit our conversion table nicely but remember that our attacker doesn’t know that either
and therefore would have to assume that on the conversion table, there are numbers that go up to 93 and so on. Often time codebooks use numbers like this as well.</p>
</div>
<divclass="article__author"itemscope=""itemprop="author"itemtype="https://schema.org/Person"><imgclass="article__author__image"src="/images/avatar.jpg"alt="John Warren"><aclass="article__author__link"title="About John Warren"rel="author">John Warren</a>
<pclass="article__author__desc">Just a place to make stuff</p>
<metaitemprop="articleBody"content="How does encryption work?
In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write theses on encryption algorithms and base their...">
<metaproperty="og:description"content="When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing…">
<metaname="twitter:title"content="You down with PGP? Yeah you know me!">
<metaname="twitter:description"content="When “pretty good” is good enough PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing…">
...
...
@@ -96,389 +96,12 @@
anything in your house, why have a lock on the door? Why have a door at all? The answer is that A: You don’t want people wandering in. B: You want to keep bad people out.</p>
<p>The same thing goes for encryption. Your identity is something that you need to protect. Identity theft occurs every day and it has far reaching implications. On top of that. As a society, we need Whistleblowers, Journalists, and yes, sometimes
dissidents.</p>
<h2id="How-does-encryption-work"><ahref="#How-does-encryption-work"class="headerlink"title="How does encryption work?"></a>How does encryption work?</h2>
<p>In order to talk about encryption, you usually have to talk about math. Lots of fairly complicated math. People write theses on encryption algorithms and base their entire mathematical careers off them. I’ve always found it to be a very intimidating
way to approach the concept.</p>
<p>Basically, in order to encrypt something, you need a secret password known by both yourself and the person you’re trying to contact. This “shared secret” is then used to take your input data (your secret message) and transform it into something
that is unrecognizable to an outside observer. Throughout history, this has taken many forms. One-time pads are very tight encryption, the enigma machine was famous for needing the first Turing machine to be built to crack it. If you want
explanations as to how the math works for these, this isn’t the right blog.</p>
<p>This shared secret is then used in a “mathy” way to scramble the letters up in your message so much that it would be very difficult or impossible to unscramble without knowing the secret key.</p>
<p>When people talk about encryption they also always seem to use “Alice” and “Bob” as the people wanting to send messages. “Eve” is always the nefarious third party trying to spy on the communication. I don’t know why but make your own story
up.</p>
<h2id="One-time-pad-encryption-example"><ahref="#One-time-pad-encryption-example"class="headerlink"title="One-time pad encryption example"></a>One-time pad encryption example</h2>
<p>Let me take you through a quick example using a One-time Pad. A One-time pad is called such because in order for it to be secure, you can only use it once to encrypt data. Each successive use, weakens its encryption strength. They’re basically
two paper booklets that are identical to each other with random letters on them. Those random letters are identical in each pad as well. The two people wanting to send messages to one another should each have one.</p>
<p>So let’s make our super secret one time pad. First we’re going to agree on a way to turn letters into numbers. We’ll go elementary school style with just listing the numbers of the letters in the alphabet. There are many techniques to making
these, commonly called checkerboards or conversion tables, that allow for more characters and the use of a codebook to represent whole words as numbers as well.</p>
<table>
<thead>
<tr>
<thstyle="text-align:center">A</th>
<thstyle="text-align:center">B</th>
<thstyle="text-align:center">C</th>
<thstyle="text-align:center">D</th>
<thstyle="text-align:center">E</th>
<thstyle="text-align:center">F</th>
<thstyle="text-align:center">G</th>
<thstyle="text-align:center">H</th>
<thstyle="text-align:center">I</th>
<thstyle="text-align:center">J</th>
<thstyle="text-align:center">K</th>
<thstyle="text-align:center">L</th>
<thstyle="text-align:center">M</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">01</td>
<tdstyle="text-align:center">02</td>
<tdstyle="text-align:center">03</td>
<tdstyle="text-align:center">04</td>
<tdstyle="text-align:center">05</td>
<tdstyle="text-align:center">06</td>
<tdstyle="text-align:center">07</td>
<tdstyle="text-align:center">08</td>
<tdstyle="text-align:center">09</td>
<tdstyle="text-align:center">10</td>
<tdstyle="text-align:center">11</td>
<tdstyle="text-align:center">12</td>
<tdstyle="text-align:center">13</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<thstyle="text-align:center">N</th>
<thstyle="text-align:center">O</th>
<thstyle="text-align:center">P</th>
<thstyle="text-align:center">Q</th>
<thstyle="text-align:center">R</th>
<thstyle="text-align:center">S</th>
<thstyle="text-align:center">T</th>
<thstyle="text-align:center">U</th>
<thstyle="text-align:center">V</th>
<thstyle="text-align:center">W</th>
<thstyle="text-align:center">X</th>
<thstyle="text-align:center">Y</th>
<thstyle="text-align:center">Z</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">14</td>
<tdstyle="text-align:center">15</td>
<tdstyle="text-align:center">16</td>
<tdstyle="text-align:center">17</td>
<tdstyle="text-align:center">18</td>
<tdstyle="text-align:center">19</td>
<tdstyle="text-align:center">20</td>
<tdstyle="text-align:center">21</td>
<tdstyle="text-align:center">22</td>
<tdstyle="text-align:center">23</td>
<tdstyle="text-align:center">24</td>
<tdstyle="text-align:center">25</td>
<tdstyle="text-align:center">26</td>
</tr>
</tbody>
</table>
<p>Next we’ll make our one time pad by generating a bunch of random letters. Important to note here that randomness is essential to this whole thing. Most of the things you <strong>think</strong> are random are not. Truly random things are difficult,
but we’re not dealing with life or death info.</p>
<p>I went to <ahref="https://www.random.org/strings/"rel="external nofollow noopener noreferrer"target="_blank">random.org/strings</a> and got 20 random 2 character strings. One of the most important security rules for making iron clad One-time
Pad ciphers is to not use computers at all for encryption/decryption. You do want something truly random to make the pad and that is usually a computer of some sort. The idea is to have a computer make the One-time pad data while Alice and
Bob are together and in a safe place. That computer should not belong to either Alice or Bob and would likely be owned by Alice and Bob’s handlers. It shouldn’t be connected to any network, and for real security, should be annihilated with
antimatter after use. True randomness is hard to come by but that’s another post. When using a computer to encrypt or decrypt, Alice or Bob could leave behind data without even knowing it and it’s usually a variable that they cannot properly
control. Again, we’re just having fun.</p>
<blockquote>
<p>IM OT WM GU BY SH EB JR PU YC PV LW ZI CZ DB DM RU BH TY FV</p>
</blockquote>
<p>I’ve arranged them in 2 letter groups because this next part is how we’ll encode/decode our message. Let’s convert these to numbers. I’m just going to grab a couple to use as we won’t need all of them.</p>
<p>We’re going to now use this to encode our secret message “I THINK EVE IS LISTENING” by grouping them by two characters, removing spaces, and formatting it like we did before. We do this because we don’t want “Eve” to know how many characters
each word has. That would be a hint to our message’s contents.</p>
<table>
<thead>
<tr>
<thstyle="text-align:center">IT</th>
<thstyle="text-align:center">HI</th>
<thstyle="text-align:center">NK</th>
<thstyle="text-align:center">EV</th>
<thstyle="text-align:center">EI</th>
<thstyle="text-align:center">SL</th>
<thstyle="text-align:center">IS</th>
<thstyle="text-align:center">TE</th>
<thstyle="text-align:center">NI</th>
<thstyle="text-align:center">NG</th>
</tr>
</thead>
<tbody>
<tr>
<tdstyle="text-align:center">0920</td>
<tdstyle="text-align:center">0809</td>
<tdstyle="text-align:center">1411</td>
<tdstyle="text-align:center">0522</td>
<tdstyle="text-align:center">0509</td>
<tdstyle="text-align:center">1912</td>
<tdstyle="text-align:center">0919</td>
<tdstyle="text-align:center">2005</td>
<tdstyle="text-align:center">1409</td>
<tdstyle="text-align:center">1407</td>
</tr>
</tbody>
</table>
<p>The next part is where the magic happens. We are going to keep the first secret key the same so Alice can know which One-time pad to use to decode the message. Ideally a One-Time pad is made up of several pages of random characters and you’ll
need a way to let each other know which one you’re using. So we’re going to line up the data and add one to the other. We’re only adding the individual digits and ignoring any time it goes over 10 by just writing the remainder. This is called
Modulus 10, but that’s getting into the “mathy” thing we talked about. Just think <code>9 + 4 = 13</code> so we take off the <code>10</code> part and end up with <code>3</code>.</p>
<p>Remember we are only adding single digits. You should never be adding more than one digit from the message to more than one digit of the One-time at a time.</p>
<p>Now that we have our secret encrypted cipher text, we destroy our pad and it will be secure. If we’re caught with the message we wouldn’t be able to provide a way to read it even with a 5$ wrench attack.</p>
<p>So Bob sends his message to Alice via carrier pigeon. Eve has a fleet of pigeon intercepting hawks who grab Bob’s pigeon so Eve can copy down the message and send them on their way. Upon arriving, the pigeon tells Alice its harrowing tale.
Unfortunately, Alice doesn’t understand the pigeon’s regional dialect but even if she did, she would not be concerned that the message’s contents were compromised. </p>
<p>To decrypt, Alice needs to take the secret Cipher, and subtract her secret key from it using the same modulus method (subtracting the remainder from 10) so <code>3 - 9 = -2</code> which would mean <code>10 - 2 = 8</code></p>
<p>The pigeon reads the message and nods in agreement. Seeing this, Alice burns her scratch pad and the One-time pad. Eve can now never know what the message said.</p>
<p>As an exercise, and to demonstrate why this is such a strong encryption method, try decoding the previous cipher using the One-time pad of this:</p>
<p>You’ll notice the cipher is the same. It’s the same thing Eve has, but the message is different! It would have been nice to work out a message that could fit our conversion table nicely but remember that our attacker doesn’t know that either
and therefore would have to assume that on the conversion table, there are numbers that go up to 93 and so on. Often time codebooks use numbers like this as well.</p>
<p>We’re going to be talking about Alice, Bob, and Eve. Alice and Bob want to share secret messages and don’t want Eve to be able to read them. Alice and Bob could have something called a <strong><em>Shared secret key</em></strong> that they
use to encrypt a message via a <em>Symmetric Encryption</em> algorithm. They both have a copy of the key and therefore can both encrypt and decrypt messages. Eve is out of luck</p>
<p>If you haven’t already, or you’d like an example of this, check out the <ahref="/posts/encryption-primer/"title="Encryption Primer">Encryption Primer</a> to understand a bit more about the basics.</p>
<h2id="Circling-back-to-GPG"><ahref="#Circling-back-to-GPG"class="headerlink"title="Circling back to GPG"></a>Circling back to <abbrtitle="GNU Privacy Guard">GPG</abbr></h2>
<p>What if Alice and Bob were never in the same room together? As soon as anyone, outside Alice and Bob, put their hands on a One-time pad, it should be considered compromised and, for all intents and purposes, useless.</p>
<p>What if Alice and Bob were never in the same room together? As soon as anyone, outside Alice and Bob, put their hands on the secret key, it should be considered <strong>compromised</strong> and, <em>for all intents and purposes</em>, <strong>useless</strong>.</p>
<p>This is where <em>Asymmetric encryption</em> comes in. <abbrtitle="GNU Privacy Guard">GPG</abbr> uses something called <strong>key-pairs</strong>. When Bob wants to get secret information he makes his key pair with an encryption function.
That key pair consists of a <em>public</em> key and a <em>private</em> key. Anyone can know the public key. It’s public, and won’t compromise the security of the message. Sometimes it’s helpful to think of the public key as more of a public
lock. Anyone can put a message in a box and lock it with that public lock but only Bob can unlock it. Alice also has a key pair. The purpose of these public keys are to both encrypt data and authenticate data. If Alice uses Bob’s public
...
...
@@ -520,6 +143,7 @@
useful features of other systems, and more info on why it’s a good idea to not make crypto yourself and instead rely on the genius of others. Until then, try to come up with an explanation of <code>forward secrecy</code>. Think about how
you could change your key every message, Think about what would happen if you received a message out of order in that scenario. How would you protect earlier messages from being decrypted if your key was leaked?</p>
<p>As always, let me know if you have any questions or something you’d like me to add.</p>
<divclass="article__author"itemscope=""itemprop="author"itemtype="https://schema.org/Person"><imgclass="article__author__image"src="/images/avatar.jpg"alt="John Warren"><aclass="article__author__link"title="About John Warren"rel="author">John Warren</a>
<pclass="article__author__desc">Just a place to make stuff</p>
...
...
@@ -546,7 +170,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<metaitemprop="articleBody"content="When “pretty good” is good enough
PGP stands for “Pretty Good Privacy”. It’s a set of algorithms for encrypting, compressing, and signing data so that a specific person can open and read that...">