From 145ebfa2a4bf82bb14506aaf2b444f9d7bc0b26d Mon Sep 17 00:00:00 2001 From: cynthia Date: Sat, 7 Jun 2025 17:44:07 +0100 Subject: [PATCH 1/4] incomplete tutorial --- pgp/0a.png | Bin 0 -> 33353 bytes pgp/index.md | 42 +++++++++++++++++++++++++++++++++++++----- pgp/qr.png | Bin 0 -> 427 bytes 3 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 pgp/0a.png create mode 100644 pgp/qr.png diff --git a/pgp/0a.png b/pgp/0a.png new file mode 100644 index 0000000000000000000000000000000000000000..b0db4bfd8155b9b63eac4ab6934228d6237c37e9 GIT binary patch literal 33353 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 literal 0 HcmV?d00001 diff --git a/pgp/index.md b/pgp/index.md index b24d01f..8f9c462 100644 --- a/pgp/index.md +++ b/pgp/index.md @@ -4,11 +4,13 @@ date: 2022-12-05 gitea_url: "http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions/issues/85" xmr: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8 --- -# How to use PGP encryption +# How to encrypt files and messages (Age and PGP) ![](0.png) -In this tutorial we're going to look at how to setup PGP keys, and use them to encrypt messages +![](0a.png) + +In this tutorial we're going to look at how to setup Age and PGP keys, and use them to encrypt messages ![](../context/private_remote.png) @@ -22,11 +24,41 @@ Bob wants to send a sensitive message to Alice. Bob intends to send his sensitiv ![](1.png) -Bob then decides that noone other than Alice will be able to decrypt his message. So, Bob decides to use PGP encryption, to be able to send a sensitive message to Alice **on any platform** he wishes, because he knows that only Alice will be able to decrypt it: +Bob then decides that noone other than Alice will be able to decrypt his message. So, Bob decides to use encryption, to be able to send a sensitive message to Alice **on any platform** he wishes, because he knows that only Alice will be able to decrypt it: ![](2.png) -Why should you even care about PGP ? Simple, you only want one person to be able to read your message, so you use PGP. You can use it when you do not trust the chat platform you are using, or the email provider, or any other form of communication with text. PGP gives you a simple way of encrypting your messages with others' public key, so that way you're sure that noone can read your messages. +Why should you even care about encryption? Simple, you only want one person to be able to read your message, so you use PGP or Age. You can use it when you do not trust the chat platform you are using, or the email provider, or any other form of communication with text. Age and PGP give you a simple way of encrypting your messages with others' public key, so that way you're sure that noone can read your messages. + +You may be thinking: what's the difference between PGP and Age? PGP is a traditional way of encrypting files and messages, while Age is meant to be a more modern alternative to PGP. Age has really tiny keys (compared to PGP key sizes), uses modern cryptographic algorithms by default, while being more secure and simpler to use than PGP. + +### Age + +Let's begin by installing age first. + +```bash +root@localhost:~# apt install age +``` + +Generate your key and output the private key into a text file. We will be outputting the private and public key to a file named `key.txt` + +```bash +user@localhost:~$ age-keygen -o key.txt +Public key: age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 +``` + +Now we can give people the public key that age gave us. It can be put publicly on your website, so that users will be able to encrypt their messages before sending it to you. + +The keys are so tiny, that if we want, we can encode the public key into a little QR code for people to scan + +```bash +user@localhost:~$ sudo apt install qrencode +user@localhost:~$ qrencode -o pubkey_qr.png age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 +``` + +![](qr.png) + +### PGP Let's begin by generating your first key: @@ -38,7 +70,7 @@ Let's begin by generating your first key: There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-generate-key" for a full featured key generation dialog. - + GnuPG needs to construct a user ID to identify your key. Real name: nihilist diff --git a/pgp/qr.png b/pgp/qr.png new file mode 100644 index 0000000000000000000000000000000000000000..bd755d67b871ca73f1055b1a420870b421e779c0 GIT binary patch literal 427 zcmV;c0aX5pP)nIqN$=AG^tbJG+P4rV+2F-2$E;<6b)CNnnBy z5>F0p>%x&nIUwJx4rk@i^V_M3zq+9bJlD0F6O3qtP-h{T!P}UwvDJdV@@xD(d;niD VG>96YH%$Nl002ovPDHLkV1f}#ym|lt literal 0 HcmV?d00001 From d6b598bb8404f8961acdcc59cc1838470533d692 Mon Sep 17 00:00:00 2001 From: cynthia Date: Sun, 8 Jun 2025 01:47:04 +0100 Subject: [PATCH 2/4] stufff --- pgp/index.md | 137 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 103 insertions(+), 34 deletions(-) diff --git a/pgp/index.md b/pgp/index.md index 8f9c462..dd3b83a 100644 --- a/pgp/index.md +++ b/pgp/index.md @@ -16,49 +16,22 @@ In this tutorial we're going to look at how to setup Age and PGP keys, and use t ![](../context/private_remote.png) -## **Initial Setup** -### Analogy +## Analogy Bob wants to send a sensitive message to Alice. Bob intends to send his sensitive message to Alice through various means, for example on Teams, Discord or even on Wickr. However Bob knows that these service providers will never respect his privacy, they will always spy on Bob's conversation: ![](1.png) -Bob then decides that noone other than Alice will be able to decrypt his message. So, Bob decides to use encryption, to be able to send a sensitive message to Alice **on any platform** he wishes, because he knows that only Alice will be able to decrypt it: +Bob then decides that noone other than Alice will be able to decrypt his message. So, Bob decides to use some encryption tool, to be able to send a sensitive message to Alice **on any platform** he wishes, because he knows that only Alice will be able to decrypt it: ![](2.png) -Why should you even care about encryption? Simple, you only want one person to be able to read your message, so you use PGP or Age. You can use it when you do not trust the chat platform you are using, or the email provider, or any other form of communication with text. Age and PGP give you a simple way of encrypting your messages with others' public key, so that way you're sure that noone can read your messages. +Why should you even care about encryption? Simple, you only want one person to be able to read your message, so you use an encryption tool. You can use it when you do not trust the chat platform you are using, or the email provider, or any other form of communication with text. They give you a simple way of encrypting your messages with others' public key, so that way you're sure that noone can read your messages. -You may be thinking: what's the difference between PGP and Age? PGP is a traditional way of encrypting files and messages, while Age is meant to be a more modern alternative to PGP. Age has really tiny keys (compared to PGP key sizes), uses modern cryptographic algorithms by default, while being more secure and simpler to use than PGP. +## PGP -### Age - -Let's begin by installing age first. - -```bash -root@localhost:~# apt install age -``` - -Generate your key and output the private key into a text file. We will be outputting the private and public key to a file named `key.txt` - -```bash -user@localhost:~$ age-keygen -o key.txt -Public key: age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 -``` - -Now we can give people the public key that age gave us. It can be put publicly on your website, so that users will be able to encrypt their messages before sending it to you. - -The keys are so tiny, that if we want, we can encode the public key into a little QR code for people to scan - -```bash -user@localhost:~$ sudo apt install qrencode -user@localhost:~$ qrencode -o pubkey_qr.png age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 -``` - -![](qr.png) - -### PGP +### **Initial Setup** Let's begin by generating your first key: @@ -170,7 +143,7 @@ Now let's export our public key like so: This can be put publicly on your website, so that users will be able to encrypt their messages before sending it to you. -## **Encrypt/Decrypt messages** +### **Encrypt/Decrypt messages** Now let's encrypt our messages with alice's public key after she generates her pgp keys: @@ -349,7 +322,7 @@ To sign the message while also remaining in plaintext, we use the second option K307GR4mNIyMy3VRgtuVdONau4X8p68tRS+wqoVRFB8GDLXTkzJsaULwghm8RQaV x0NOx60kgmXckP00uQM+ySDRqpHoVb5HYRqPrbOhJ6L1AFnexyhuhclvQoS4Zm0e PkvcMFaWOevQnbS8Vh2fVby4fsq5YdzSig4mu6KjQeR+Gu29xkAJp+lgMT1Ia0pL - DVZaUw+AVHyaeQzdokdw0eoU01gl+dzPyaPamAGTbqI5Z7+DMOMgtgC9cpPP+26F +DVZaUw+AVHyaeQzdokdw0eoU01gl+dzPyaPamAGTbqI5Z7+DMOMgtgC9cpPP+26F jTpmq7fFxQ3fpAbEIlcahZzNBSyd1QGu6uKs/V4hqx4Fj7qg4puq+raxgg0JlyEZ greVnUYBONlTTIDgIKqI8D5iFhW6cCHQzXvYjLqCCuY35ZHP0TRkSycZaNjO1/4/ EaNNvLm/uzi3+HhvPW57a9+bcGiVvTLhhje8sVUxioDd36DA4fYkd8BqBNkYvjRa @@ -451,3 +424,99 @@ Once decrypted, she can see that the message has our PGP signature. And that's it! That covers the basics of how to use PGP + +## Age + +You may be thinking: what's the difference between PGP and Age? PGP is a traditional way of encrypting files and messages, while Age is meant to be a more modern alternative to PGP. + +Age has really tiny keys (compared to PGP key sizes), uses modern cryptographic algorithms by default, while still being more secure and simpler to use than PGP. + +### **Initial Setup** + +Let's begin by installing age first. + +```bash +root@localhost:~# apt install age +``` + +Generate your key and output the private key into a text file. We will be outputting the private and public key to a file named `key.txt` + +```bash +bob@localhost:~$ age-keygen -o key.txt +Public key: age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 +``` + +Now we can give people the public key that age gave us. It can be put publicly on your website, so that users will be able to encrypt their messages before sending it to you. + +The keys are so tiny, that if we want, we can encode the public key into a little QR code for people to scan + +```bash +bob@localhost:~$ sudo apt install qrencode +bob@localhost:~$ qrencode -o pubkey_qr.png age1gme6y93jm9nx7thzfu7ma8q7t0qhxae6m4r37m23f83d3phheejs25m8h0 +``` + +![](qr.png) + +### **Encrypt/Decrypt messages** + +Since age doesn't have the concept of a keyring like PGP, we have to store Alice's key somewhere in a text file to use. + +```bash +alice@localhost:~$ age-keygen -o key.txt +Public key: age1y7gjjkrukaxzueae3dh60f57cn893d8y38vwh774kye7p8wm850q80ehvm +bob@localhost:~$ mkdir keyring/ +bob@localhost:~$ echo "age1y7gjjkrukaxzueae3dh60f57cn893d8y38vwh774kye7p8wm850q80ehvm" > keyring/alice.txt +``` + +After this, we can encrypt our special file for Alice. + +This special file will be a message in a text file. + +```bash +bob@localhost:~$ vim message.txt +bob@localhost:~$ cat message.txt +This is a very secret message! +``` + +We can then encrypt the file with Alice's key. + +```bash +bob@localhost:~$ age -R keyring/alice.txt -o encrypted_message --armor message.txt +bob@localhost:~$ cat encrypted_message +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjR29MQkg2UVQ2Q2VSbmlP +RmE0QzJ0d0NQQ2tEN2VaL2kxWEZEK2hqeGpZClFVNUNlbmJxL1E3dDNBaFFkbzhN +MnU4OHZneExGWk5pekdsWU9yNE5QeTAKLS0tIG0yWlMwMSs4cXM0Skg4UUtyOGJ2 +b2paVnd1WkdLL1RDdDBJYWdHT3krQTAKL+g6Z7DKLXfmYfW4I3AT9HSimwixmLyx +D5Cc55tVZRk2BPj683U8wqSAZWqFoqJgu/97PCY/BvmBpX3KrnOc +-----END AGE ENCRYPTED FILE----- +``` + +Alternatively, we can also encrypt it in binary-mode, by omitting `--armor` + +```bash +bob@localhost:~$ age -R keyring/alice.txt -o encrypted_message message.txt +bob@localhost:~$ xxd encrypted_message +00000000: 6167 652d 656e 6372 7970 7469 6f6e 2e6f age-encryption.o +00000010: 7267 2f76 310a 2d3e 2058 3235 3531 3920 rg/v1.-> X25519 +00000020: 6337 3053 314c 6753 6767 5568 675a 3733 c70S1LgSggUhgZ73 +00000030: 5030 426e 6442 7277 674c 6465 564e 4245 P0BndBrwgLdeVNBE +00000040: 5557 5473 3077 396b 5979 490a 3936 6236 UWTs0w9kYyI.96b6 +00000050: 6378 5979 4734 7155 5a63 684c 5832 4b76 cxYyG4qUZchLX2Kv +00000060: 464d 4365 4f6c 5a45 5662 6d67 3936 696c FMCeOlZEVbmg96il +00000070: 6b35 3164 3761 340a 2d2d 2d20 654c 6950 k51d7a4.--- eLiP +00000080: 544d 4e53 7a4f 6556 744e 644f 484a 5258 TMNSzOeVtNdOHJRX +00000090: 754f 7979 424d 3438 344a 612b 364c 4f6b uOyyBM484Ja+6LOk +000000a0: 4a63 6d41 2f75 630a c9c7 7824 3919 06c8 JcmA/uc...x$9... +000000b0: ba74 5e39 5c89 118a 4091 3722 7741 f098 .t^9\...@.7"wA.. +000000c0: 5d84 6af2 3cb8 03fa e7a6 8b84 1a20 bf7a ].j.<........ .z +000000d0: e948 32c6 7db9 2f1f abed a677 d5fe 5b80 .H2.}./....w..[. +000000e0: ad2e 837b 5ed9 77 ...{^.w +``` + +Alice can now download and decrypt this file with her key and get the messsage that Bob wanted to send her. + +```bash +alice@localhost:~$ age --decrypt -i key.txt encrypted_message +This is a very secret message! +``` From f04c6ff34af65d9a43915ab79abd352852fb6bd4 Mon Sep 17 00:00:00 2001 From: cynthia Date: Mon, 9 Jun 2025 00:42:14 +0100 Subject: [PATCH 3/4] move pics --- pgp/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pgp/index.md b/pgp/index.md index dd3b83a..9249ca4 100644 --- a/pgp/index.md +++ b/pgp/index.md @@ -6,10 +6,6 @@ xmr: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAU --- # How to encrypt files and messages (Age and PGP) -![](0.png) - -![](0a.png) - In this tutorial we're going to look at how to setup Age and PGP keys, and use them to encrypt messages @@ -31,6 +27,8 @@ Why should you even care about encryption? Simple, you only want one person to b ## PGP +![](0.png) + ### **Initial Setup** Let's begin by generating your first key: @@ -427,6 +425,8 @@ And that's it! That covers the basics of how to use PGP ## Age +![](0a.png) + You may be thinking: what's the difference between PGP and Age? PGP is a traditional way of encrypting files and messages, while Age is meant to be a more modern alternative to PGP. Age has really tiny keys (compared to PGP key sizes), uses modern cryptographic algorithms by default, while still being more secure and simpler to use than PGP. From 78b4bab2368acfed0fafd698fd8a031c04f04e6b Mon Sep 17 00:00:00 2001 From: oxeo0 Date: Mon, 9 Jun 2025 19:24:22 +0200 Subject: [PATCH 4/4] add 2 authors to pgp --- pgp/0a.png | Bin 33353 -> 15848 bytes pgp/index.md | 17 +++++++++++++---- pgp/qr.png | Bin 427 -> 358 bytes 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pgp/0a.png b/pgp/0a.png index b0db4bfd8155b9b63eac4ab6934228d6237c37e9..5630bf190115c7e98738e3705533cb9f4c6c0f19 100644 GIT binary patch literal 15848 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 literal 33353 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 diff --git a/pgp/index.md b/pgp/index.md index 9249ca4..5d02ee1 100644 --- a/pgp/index.md +++ b/pgp/index.md @@ -1,9 +1,18 @@ --- -author: nihilist -date: 2022-12-05 -gitea_url: "http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions/issues/85" -xmr: 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8 +author: + - cynthia (age) + - nihilist (pgp) +date: + - 2025-06-09 + - 2022-12-05 +gitea_url: "http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/blog-contributions/issues/226" +xmr: + - 84ybq68PNqKL2ziGKfkmHqAxu1WpdSFwV3DreM88DfjHVbnCgEhoztM7T9cv5gUUEL7jRaA6LDuLDXuDw24MigbnGqyRfgp + - 8AUYjhQeG3D5aodJDtqG499N5jXXM71gYKD8LgSsFB9BUV1o7muLv3DXHoydRTK4SZaaUBq4EAUqpZHLrX2VZLH71Jrd9k8 +tags: + - Core Tutorial --- + # How to encrypt files and messages (Age and PGP) In this tutorial we're going to look at how to setup Age and PGP keys, and use them to encrypt messages diff --git a/pgp/qr.png b/pgp/qr.png index bd755d67b871ca73f1055b1a420870b421e779c0..f539d0e9abdee033e6bd37503e3a5eeda9b58eb7 100644 GIT binary patch literal 358 zcmV-s0h#_%Nk&Fq0RRA3MM6+kP&iCd0RR9mdVn4P4>14pKmYR|c#zv{TO3=TML=d6 zKyn*@=9Xp}@X`RZMCLY-{sv4o3-Wi)-S2;wIHLa(z@PR1VF6gWzb3yqY$h`2F+PSm zU&?I5$pY?^Pl{w^jDG2I8M?G&=T9@7lXB=t%4{M4NhPTyht0${AG?-J(nNrumI1uS zqnV&`?eh|W>XQv8OMEmfbfuXH@ex3}l8Ms>WQ-iDr0GEu)H2k<$=~X+n+R1-depLZ zf0@XR_gXml1vpL6VeEn~=#OSYA46w$yu&9GYm_uS8jrR6(?sSmV7}bZD4U5;{Vj5> zvc%Giuqo0coBCuT({Jig54uOQp$xU`ESzxKaC4&Ex{N3^K{9ma>Dc+mCIT?xv1{2C zr-{t@n&wThQIZWO$?+cN5oI@{7*W>vFf(?4sz>#g4bEdN&EZn95r9Nl`eS!TGx4+k EVb0sF@Bjb+ literal 427 zcmV;c0aX5pP)nIqN$=AG^tbJG+P4rV+2F-2$E;<6b)CNnnBy z5>F0p>%x&nIUwJx4rk@i^V_M3zq+9bJlD0F6O3qtP-h{T!P}UwvDJdV@@xD(d;niD VG>96YH%$Nl002ovPDHLkV1f}#ym|lt