create account

Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro) by lemony-cricket

View this thread on: hive.blogpeakd.comecency.com
· @lemony-cricket · (edited)
$16.36
Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)
Hey everyone! I'm @lemony-cricket. In <a href="https://steemit.com/steemstem/@lemony-cricket/introduction-to-cryptography-i-encryption-pt-1-the-caesar-cipher">the inaugural installment</a> of Introduction to Cryptography, we laid down some of the basic building blocks of understanding encryption. We learned about <b>encryption</b> and <b>decryption</b>, <b>plaintext</b> and <b>ciphertext</b>, and what a <b>key</b> is. In this installment, we'll be learning about <strong>one-time pads</strong> and a little bit about modern <strong>stream ciphers</strong>.

This is the second post in this series. The next post is [here](https://steemit.com/steemstem/@lemony-cricket/introductiontocryptographyiencryptionsalsa20streamcipher-62e89vfmol).

<hr />
<center>
<img src="https://steemitimages.com/0x0/https://ipfs.busy.org/ipfs/QmWCJf8qvND9DqsPoZUZzxEgT8UY7YJzn4a1CBPXQ5BCCa" /><br>
<sup>Rocket graphic extracted from <a title="This link will take you away from steemit.com" href="https://pixabay.com/en/planet-rocket-space-stars-1297860" rel="noopener">this CC0 image</a> from <a title="This link will take you away from steemit.com" href="https://pixabay.com/en/users/OpenClipart-Vectors-30363/" rel="noopener">OpenClipart-Vectors on Pixabay</a>.</sup>
</center>
<hr />

<h1>Retrospective</h1>
<p><strong>First, before we begin</strong>, I'd like to extend gratitude to @bachuslib, @svemirac, @insaneworks, @warpedpoetic, @kex, and @enjar for their participation in the interactive portion last time. Full marks, all of you! All participants successfully encrypted a message using the Caesar shift algorithm and received an encrypted reply from me using the same key.</p>

<p><strong>But how did I know your key</strong> if you didn't tell me? The answer may be obvious to some of you at this point, but if you're still wondering...</p>

<p><strong>The Caesar cipher has an extremely small </strong>𝕜𝕖𝕪𝕤𝕡𝕒𝕔𝕖<sup><sup>d1</sup></sup>. This means it is <em>incredibly</em> weak when faced with a simple 𝕓𝕣𝕦𝕥𝕖-𝕗𝕠𝕣𝕔𝕖 𝕒𝕥𝕥𝕒𝕔𝕜<sup><sup>d2</sup></sup>. Since there are only 26 letters in the English alphabet, I only had to try to decrypt your message 26 times, one for each possible offset. Once I got something that made sense, I knew I had found the "secret" key.</p>
<p><blockquote>But that's cheating!</blockquote></p>

<p><strong>Not really. </strong>In matters of cryptography and security, <em>nothing</em> is cheating. Besides, it made for a very nice introduction to extremely basic 𝕔𝕣𝕪𝕡𝕥𝕒𝕟𝕒𝕝𝕪𝕤𝕚𝕤<sup><sup>d3</sup></sup>, the "cat" from which cryptography's "mouse" is perpetually running.</p>

<p><strong>For every good person</strong> out there who needs cryptographic protection, there is a <strong>bad person</strong> trying to defeat it. For every <strong>bad person</strong> using cryptography for evil, there is a <strong>good person</strong> trying to catch them. In this way, cryptography and cryptanalysis go hand-in-hand to bring balance to a chaotic world. This is just the way that things are.</p>

<hr />

<h1>The one-time pad</h1>
<sup>unbreakable but cumbersome security</sup>
<br>
<p><strong>One way to ensure</strong> that your data is safe is to use a <em>one-time pad</em>. We'll find out what that means in a moment. First, let's assume Alice and Bob are two friends who are currently together in a safe location, away from prying eyes. Bob is going on a trip soon, and Alice wants to be able to send him a secret message while he is away.</p>

<p><strong>The first thing they will do</strong> is generate the key. With a one-time pad, the key has to be very large; at least as large as the message you wish to send! Alice and Bob decide that the message will be small; no longer than 2 or 3 words. They decide that 20 letters will be enough. They use <a href="https://random.org">RANDOM.ORG</a> to generate 20 numbers from 0 to 25...</p>

```
20	21	11	7	14
10	4	4	22	22
17	9	7	25	22
14	0	15	12	1
```
<p><strong>Each keeps a copy of the numbers</strong> and they part ways<strong>. </strong>A week later, Alice writes her message to Bob:</p>

```
I MISS YOU
```
<p><strong>Alice encrypts each letter of this message </strong>using the rules of the Caesar shift we learned before, but with a catch: every letter uses a different shift value, taken in order from the one-time pad (from left to right):</p>

```
I -=20=-> C
M -=21=-> H
I -=11=-> T
S -=07=-> Z
S -=14=-> G
Y -=10=-> I
O -=04=-> S
U -=04=-> Y
```
```
C HTZG ISY
```
<p><strong>When Bob receives the message, </strong>he can just perform the decryptions with the same keys in the same order, and he will get the original message back.</p>

<p><strong>One-time pads</strong> are an example of 𝕚𝕟𝕗𝕠𝕣𝕞𝕒𝕥𝕚𝕠𝕟-𝕥𝕙𝕖𝕠𝕣𝕖𝕥𝕚𝕔 𝕤𝕖𝕔𝕦𝕣𝕚𝕥𝕪<sup><sup>d4</sup></sup>.</em> This means that they are <em>proven</em> to be uncrackable, as without having the key, you actually have <em>no information whatsoever</em> about the plaintext<sup><sup>r1</sup></sup>. I am using spaces in these exercises for readability, but in a real-world application, we would be encrypting the spaces too, and they'd get lost in the jumble.</p>

<p><strong>So this is great, right?</strong> It's a start. There are a few problems with one-time pads:
<ul>
 	<li>The key must be at least as long as the plaintext.</li>
 	<li>Once a part of the key is used, it should <em>never</em> be re-used again. This would expose the key to a <em>reused key attack</em><sup><sup>r2</sup></sup>.</li>
 	<li>The key(s) must be generated in full and, once depleted, there is no way to generate more except to meet up again.</li>
</ul></p>
<h1>Introducing stream ciphers</h1>
<sup>they're like an (almost) infinite one-time-pad</sup><br>

<p><strong>A stream cipher is an extension</strong> of the one-time pad concept. The main logic of a stream cipher is focused upon generating a never-ending stream of 𝕡𝕤𝕖𝕦𝕕𝕠𝕣𝕒𝕟𝕕𝕠𝕞<sup><sup>d5</sup></sup> data called the 𝕜𝕖𝕪𝕤𝕥𝕣𝕖𝕒𝕞<sup><sup>d6</sup></sup>. This keystream then acts as a one-time pad which is much easier to store and transmit, since it is generated from a much smaller key using a publicly-known algorithm.</p>

<p><strong>In the above example,</strong> we used a modified Caesar shift algorithm<strong> with each letter consuming a separate key from the keystream. </strong>In practice, most modern stream cipher implementations operate on individual bits of data and use the 𝕖𝕩𝕔𝕝𝕦𝕤𝕚𝕧𝕖 𝕆ℝ<sup><sup>d7</sup></sup> (XOR) operation for this purpose, as it is fast, universally available, and the decryption operation is actually the same as for encryption! (We will discuss this all in more detail in the next installment.)</p>

<p><blockquote>Well, it can't be <em>all</em> good news. There has to be a catch.</blockquote></p>

<p><strong>There is,</strong> sort of. Since the keystream must be 𝕕𝕖𝕥𝕖𝕣𝕞𝕚𝕟𝕚𝕤𝕥𝕚𝕔<sup><sup>d8</sup></sup>, it cannot possibly be truly random. Therefore, there is a risk some weakness could be discovered in the algorithm which could lead to a practical attack on the cipher. In addition, with the decrease in key size, the keyspace is also decreased, making brute-force and other attacks marginally easier. In general, though, the benefits (which are tangible and tested) outweigh the disadvantages by far (which are theoretical and unlikely).</p>

<p><strong>Next time,</strong> we'll be taking a closer look at a specific stream cipher in order to understand how the keystream is generated. We'll also look at some more complicated attacks.</p>

<hr />

<h1>Interactive exercise</h1>
<sup>You should have paper and something to write with for this portion.</sup><br>

<p><strong>Your name is</strong> <strong>Evelyn</strong>, and you've been trying to get between Alice and Bob for a while now. You've followed Bob to his destination and snuck into his hotel room while he's out running an errand.</p>

<p><strong>You see a note on the desk.</strong> You can't believe your eyes; Bob has left his notes out on the table. Alice always was the more careful one.</p>

```
20	21	11	7	14
10	4	4	22	22
17	9	7	25	22
14	0	15	12	1
```

```
C HTZG ISY
```
<p><strong>What's more,</strong> Bob has carelessly written <em>his</em> copy of the key in pencil. This is it! The moment you've been waiting for.</p>

<p><strong>Hurry! Before Bob gets back!</strong> Change the <em>key</em> so that the message written reflects a malicious message. Then, leave the new key in the comment section below. You can go for the obvious choice, or get a bit creative. The choice is yours!&nbsp;🍋</p>

<hr />

<h1>Definitions</h1>
<sup>From my personal knowledge and experience unless otherwise noted.</sup>
<br>
<ol>
 	<li><strong>keyspace</strong>: this is the number of total possible keys that exist. If you have a 256-bit key, and all possible values are valid, then there are 2<sup>256</sup> possible keys. </li>
 	<li><strong>brute-force attack</strong>: the attempt to try every single possible key (to search the entire keyspace) to find the valid key. While trivial for small keyspaces such as that of the Caesar shift, it quickly becomes impractical and at some point even almost certainly impossible.</li>
 	<li><strong>cryptanalysis</strong>: the science of attempting to break cryptographic systems, especially encryption.</li>
 	<li><strong>information-theoretic security</strong>: <blockquote>a cryptosystem whose security derives purely from information theory. In other words, it cannot be broken even if the adversary had unlimited computing power.<sup><sup>r3</sup></sup></blockquote></li>
 	<li><strong>pseudorandom</strong>: describes a collection of apparently random data which is actually generated by an algorithm in a <b>deterministic</b> manner.</li>
 	<li><strong>keystream</strong>: a continuous, (apparently) randomised stream of data which can be combined in some way (usually XOR) with the plaintext (to encrypt) or ciphertext (to decrypt).</li>
 	<li><strong>exclusive OR</strong>: a bitwise logic operator which returns true (1) if and only if exactly one of the inputs is true (1). For example, the result of XORing <code>1100</code> with <code>1010</code> is <code>0110</code>. We'll see more about this in the next installment.</li>
 	<li><strong>deterministic</strong>: describes an algorithm and an outcome which is repeatable in all cases if the same exact input is provided to the system.</li>
</ol>
<hr>
<h1>References</h1>
<ol>
<li>https://en.wikipedia.org/wiki/One-time_pad#Perfect_secrecy</li>
<li>https://en.wikipedia.org/wiki/Stream_cipher_attacks#Reused_key_attack</li>
<li>https://en.wikipedia.org/wiki/Information-theoretic_security</li>
</ol><br /><center><hr/><em>Posted from my blog with <a href='https://wordpress.org/plugins/steempress/'>SteemPress</a> : https://lemony.cricket/2018/06/12/introduction-to-cryptography-i-encryption-pt-2-one-time-pads-and-stream-cipher-intro/</em><hr/></center>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 89 others
properties (23)
authorlemony-cricket
permlinkintroductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7
categorysteemstem
json_metadata{"community":"steempress","app":"steemit/0.1","image":["https://steemitimages.com/0x0/https://ipfs.busy.org/ipfs/QmWCJf8qvND9DqsPoZUZzxEgT8UY7YJzn4a1CBPXQ5BCCa"],"tags":["steemstem","technology","cryptography","crypto","education"],"original_link":"https://lemony.cricket/2018/06/12/introduction-to-cryptography-i-encryption-pt-2-one-time-pads-and-stream-cipher-intro/","users":["lemony-cricket","bachuslib","svemirac","insaneworks","warpedpoetic","kex","enjar"],"links":["https://steemit.com/steemstem/@lemony-cricket/introduction-to-cryptography-i-encryption-pt-1-the-caesar-cipher","https://steemit.com/steemstem/@lemony-cricket/introductiontocryptographyiencryptionsalsa20streamcipher-62e89vfmol","https://pixabay.com/en/planet-rocket-space-stars-1297860","https://pixabay.com/en/users/OpenClipart-Vectors-30363/","https://random.org","https://en.wikipedia.org/wiki/One-time_pad#Perfect_secrecy","https://en.wikipedia.org/wiki/Stream_cipher_attacks#Reused_key_attack","https://en.wikipedia.org/wiki/Information-theoretic_security","https://wordpress.org/plugins/steempress/","https://lemony.cricket/2018/06/12/introduction-to-cryptography-i-encryption-pt-2-one-time-pads-and-stream-cipher-intro/"],"format":"markdown"}
created2018-06-12 10:02:27
last_update2018-06-19 10:00:51
depth0
children10
last_payout2018-06-19 10:02:27
cashout_time1969-12-31 23:59:59
total_payout_value11.902 HBD
curator_payout_value4.458 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10,827
author_reputation15,797,102,626,770
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries
0.
accountfredrikaa
weight500
1.
accounthowo
weight500
2.
accountsteempress-io
weight500
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,424,376
net_rshares7,077,382,855,632
author_curate_reward""
vote details (153)
@eonwarped ·
$0.14
2   11   23  24  14
    22  14    3  22  22
    17   9    7  25  22
    14   0   15  12   1


*Huh?*
👍  
properties (23)
authoreonwarped
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180615t193929242z
categorysteemstem
json_metadata{"tags":["steemstem"],"app":"steemit/0.1"}
created2018-06-15 19:39:27
last_update2018-06-15 19:39:27
depth1
children2
last_payout2018-06-22 19:39:27
cashout_time1969-12-31 23:59:59
total_payout_value0.102 HBD
curator_payout_value0.033 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length100
author_reputation88,102,208,706,615
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,896,613
net_rshares54,833,872,331
author_curate_reward""
vote details (1)
@lemony-cricket ·
We got it figured out in the end. :) Thanks for your participation!
properties (22)
authorlemony-cricket
permlinkre-eonwarped-re-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180617t160720139z
categorysteemstem
json_metadata{"tags":["steemstem"],"app":"steemit/0.1"}
created2018-06-17 16:07:24
last_update2018-06-17 16:07:24
depth2
children1
last_payout2018-06-24 16:07:24
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length67
author_reputation15,797,102,626,770
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id61,112,127
net_rshares0
@eonwarped ·
$0.02
In case anyone else is wondering WTF is wrong with my submission, I started correctly in manipulating the key for the ciphertext C HTZG ISY, and after the second character, I flipped to the actual message instead I MISS YOU and that screwed it up hahahaha....
👍  
properties (23)
authoreonwarped
permlinkre-lemony-cricket-re-eonwarped-re-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180617t160933953z
categorysteemstem
json_metadata{"tags":["steemstem"],"app":"steemit/0.1"}
created2018-06-17 16:09:33
last_update2018-06-17 16:09:33
depth3
children0
last_payout2018-06-24 16:09:33
cashout_time1969-12-31 23:59:59
total_payout_value0.022 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length259
author_reputation88,102,208,706,615
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id61,112,348
net_rshares10,907,813,313
author_curate_reward""
vote details (1)
@gidionline ·
*For an introductory work -- you did quite great*@lemony-cricket

**Quality content**
properties (22)
authorgidionline
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180613t070239175z
categorysteemstem
json_metadata{"tags":["steemstem"],"users":["lemony-cricket"],"app":"steemit/0.1"}
created2018-06-13 07:02:51
last_update2018-06-13 07:02:51
depth1
children0
last_payout2018-06-20 07:02:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length85
author_reputation1,974,899,646,715
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,547,701
net_rshares0
@jrswab ·
<center>🚀 This is a stellar post! 🚀

I will be featuring it in my weekly #technology and #science curation post for the @minnowsupport project and the [Tech Bloggers' Guild](https://discord.gg/ZTDzbvf)!  The Tech Bloggers' Guild is a new group of Steem bloggers and content creators looking to improve the overall quality of our niche.

Wish not to be featured in the curation post this Friday? Please let me know. In the meantime, keep up the hard work, and I hope to see you at the Creators' Guild!

---
If you have a free witness vote and like what I am doing for the Steem blockchain it would be an honor to have your vote for my witness server. Either [click this SteemConnect link](https://steemconnect.com/sign/account-witness-vote?witness=jrswab&approve=1) or head over to [steemit.com/~witnesses](https://steemit.com/~witnesses) and enter my username it the box at the bottom.</center>
👍  
properties (23)
authorjrswab
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180612t123414233z
categorysteemstem
json_metadata{"tags":["steemstem","technology","science"],"users":["minnowsupport"],"links":["https://discord.gg/ZTDzbvf","https://steemconnect.com/sign/account-witness-vote?witness=jrswab&approve=1","https://steemit.com/~witnesses"],"app":"steemit/0.1"}
created2018-06-12 12:34:15
last_update2018-06-12 12:34:15
depth1
children0
last_payout2018-06-19 12:34:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length894
author_reputation46,062,246,679,771
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,440,063
net_rshares4,799,020,394
author_curate_reward""
vote details (1)
@kimutai ·
Great Piece this one, well researched.
properties (22)
authorkimutai
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180612t101625035z
categorysteemstem
json_metadata{"tags":["steemstem"],"app":"steemit/0.1"}
created2018-06-12 10:16:21
last_update2018-06-12 10:16:21
depth1
children0
last_payout2018-06-19 10:16:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length38
author_reputation21,614,686,341
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,425,880
net_rshares0
@svemirac ·
20 16  3  8   1
10  4   4   22  22
17  9   7   25  22
14  0   15  12  1

no time for thinking :Y
properties (22)
authorsvemirac
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180619t112635377z
categorysteemstem
json_metadata{"tags":["steemstem"],"app":"steemit/0.1"}
created2018-06-19 11:26:33
last_update2018-06-19 11:26:33
depth1
children0
last_payout2018-06-26 11:26:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length96
author_reputation155,437,983,080,202
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id61,347,520
net_rshares0
@traviz ·
Great job you've done with the **intoduction**
Keep em coming @lemony-cricket
properties (22)
authortraviz
permlinkre-lemony-cricket-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180613t064545182z
categorysteemstem
json_metadata{"tags":["steemstem"],"users":["lemony-cricket"],"app":"steemit/0.1"}
created2018-06-13 06:45:51
last_update2018-06-13 06:45:51
depth1
children0
last_payout2018-06-20 06:45:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length77
author_reputation440,807,242,633
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,546,269
net_rshares0
@trufflepig ·
**Congratulations!** Your post has been selected as a daily Steemit truffle! It is listed on **rank 16** of all contributions awarded today. You can find the [TOP DAILY TRUFFLE PICKS HERE.](https://steemit.com/@trufflepig/daily-truffle-picks-2018-06-12) 
    
I upvoted your contribution because to my mind your post is at least **24 SBD** worth and should receive **86 votes**. It's now up to the lovely Steemit community to make this come true.

I am `TrufflePig`, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, [you can find an explanation here!](https://steemit.com/steemit/@trufflepig/weekly-truffle-updates-2018-23)
    
Have a nice day and sincerely yours,
![trufflepig](https://raw.githubusercontent.com/SmokinCaterpillar/TrufflePig/master/img/trufflepig17_small.png)
*`TrufflePig`*
    
properties (22)
authortrufflepig
permlinkre-introductiontocryptographyiencryptionpt2one-timepadsandstreamcipherintro-no463jdqw7-20180612t153814
categorysteemstem
json_metadata""
created2018-06-12 15:38:15
last_update2018-06-12 15:38:15
depth1
children0
last_payout2018-06-19 15:38:15
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length884
author_reputation21,266,577,867,113
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,461,399
net_rshares0
@utopian-io ·
#### Hi @lemony-cricket!

Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.

#### Contribute to Open Source with utopian.io
Learn how to contribute on <a href="https://join.utopian.io">our website</a> and join the new open source economy.

**Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV**
properties (22)
authorutopian-io
permlink20180612t233918418z
categorysteemstem
json_metadata{"tags":["utopian.tip"],"app":"utopian-io"}
created2018-06-12 23:39:18
last_update2018-06-12 23:39:18
depth1
children0
last_payout2018-06-19 23:39:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length428
author_reputation152,955,367,999,756
root_title"Introduction to Cryptography I: Encryption (Pt. 2 – One-Time Pads and Stream Cipher Intro)"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id60,511,055
net_rshares0