From 145ebfa2a4bf82bb14506aaf2b444f9d7bc0b26d Mon Sep 17 00:00:00 2001 From: cynthia Date: Sat, 7 Jun 2025 17:44:07 +0100 Subject: [PATCH] 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