Membuat pesan terenkripsi menggunakan GnuPG (gpg)

Assalamu'laykum, kali ini kita akan belajar membuat pesan terenkripsi menggunakan terminal/bash pada linux. Pada umumnya terdapat 2 jenis cipher (cara untuk meng-enkripsi dan dekripsi) jika dilihat dari sama atau tidaknya kunci (key) untuk melakukan enkripsi dan dekripsi (dekripsi ya.., bukan deskripsi), yaitu kunci simetris dan kunci asimetris.

  1. Algoritma kunci simetris, (shared key / kunci bersama / password bersama), digunakan kunci yang sama untuk melakukan enkripsi dan dekripsi. (Contoh kasus: Jika joko mengirimkan pesan rahasia kepada tono, joko juga harus memastikan bahwa tono mengetahui kunci yang sama seperti yang digunakannya untuk mengenkripsi pesan)

  2. Algoritma kunci asimetris, atau dikenal juga dengan "public - private key",kunci asimetris merupakan pasangan antara public-key dan private-key. Dalam hal pengiriman pesan, public-key digunakan untuk melakukan enkripsi dan private-key digunakan untuk membuka pesan / dekripsi. (Contoh kasus: Joko ingin mengirimkan pesan kepada tono, namun joko tidak bisa memberitahukan password kepada tono karena khawatir ketahuan, akhirnya joko melakukan enkripsi pesan dengan public-key milik tono yang dipublish di blog pribadi yang baru dibuat tono kemarin, hanya tono yang bisa membuka pesan rahasia yang dikirimkan joko, karena joko melakukan enkripsi pesan menggunakan public-key milik tono, kita ingat kembali public-key dan private-key merupakan pasangan, hanya tono-lah yang mempunyai private-key miliknya sendiri sehingga hanya dia yang bisa membuka pesan yang dienkripsi menggunakan public-key miliknya)

Kunci Simetris

Selanjutnya kita akan mulai mencoba melakukan enkripsi pesan yang ada didalam file "pesan.txt" menggunakan kunci simetris / password bersama

enkripsi shared key

terbentuk file terenkripsi

Sampai pada langkah ini kita sudah bisa melakukan enkripsi file menggunakan enkripsi simetris. Selanjutnya, kita akan mencoba men-decrypt file "pesan.txt.gpg" yang sudah kita lakukan enkripsi pada langkah sebelumnya.

Dekripsi shared key Dekripsi shared key

Kunci Asimetris

Setelah kita berhasil melakukan enkripsi menggunakan kunci simetris, selanjutnya kita akan mencoba mengenkrisi pesan menggunakan kunci asimetris. Pada contoh kali ini, kita akan mencoba mengirimkan pesan rahasia kepada joko, joko telah mempublikasikan pgp public-key pada blog pribadinya.

public-key milik joko, salin seluruh text dari ----BEGIN PGP .... sampa dengan ----- END PGP ..., kemudian simpan pada sebuah file baru. joko_public.key

Public key joko

Impor public-key milik joko yang tadi sudah kita simpan didalam file joko_public.key

impor public key joko

Selanjutnya akan muncul respon bahwa public-key milik joko telah berhasil di-impor.

telah diimport

Untuk melihat key siapa saja yang sudah tersimpan kita menggunakan opsi --list-key pada gpg

list keys

Mengirim pesan dengan asymmetric key

Sekarang kita akan melakukan enkripsi terhadap file pesan.txt menggunakan public-key milik joko

asymmetric encrypt

akan muncul peringatan dari gpg yang memberitahukan bahwa gpg tidak menjamin public-key tersebut benar-benar milik joko yang kita maksud, namun tidak masalah, karena kita mendapatkan public-key tersebut dari joko kita, bukan joko yang lain.
opsi --armor pada gambar diatas diberikan agar file keluaran dari gpg berbentuk ascii, bukan binary,, karena file binary akan tampak jelek jika dibuka pada text editor.. Namun bila diinginkan hasil berupa binary file, hapus opsi --armor
Secara default, jika opsi --armor diberikan akan menghasilkan file terenkripsi dengan tambahan extensi asc, pada contoh ini "pesan.txt.asc"

encrypted

Pesan ucapan selamat lebaran telah terenkripsi menggunakan public-key milik joko, kita bisa mengirimkan file tersebut "pesan.txt.asc" melalui email atau media lainnya, orang lain yang tidak memilki private-key joko akan sangat sulit (kemungkinannya sangat kecil) untuk bisa melakukan dekripsi.
Berikut ini screenshot dari joko mengenai pesan selamat lebaran yang sudah kita kirimkan untuknya, pesan didekripsi menggunakan applikasi openKeyChain pada smartphone android milik joko.
from joko

Sekian, semoga bermanfaat.


Manusia tidak luput dari kesalahan, begitu pula saya. Jika terdapat kesalahan dalam tulisan, sudilah untuk menghubungi saya, kritik dan saran akan saya terima dengan baik. Hubungi Saya