-->
Bayu_Ajie
Bayu_Ajie knowledge is free you can learn anything

Belejar enkripsi RSA private key dan public key menggunakan gpg

 


Hallo welocme back bareng saya Bayu Aji. Kali ini saya akan membuat simple tutorial enkripsi RSA mengggunakan gpg, bagi Anda pengguna Linux pasti tidak asing dengan gpg, gpg adalah software atau tools untuk mengankan data Anda singkatnya menggunakan prinsip asymmetric encryption, yaitu enkripsi dan dekripsi menggunakan dua key yang berbeda. Sama seperti openssl untuk pemograman client server 

 

Okok jika Anda belum mempunyai gpg Anda dapat mendownload melalui tautan di bawah 

 

Tautan : https://github.com/gpg/gnupg

 

Untuk cara compaile dan configurasinya Anda dapat membaca dokumentasi atau user manual pada tautan yang tertaut. Jika Anda menggunakan Linux tak usah khawatir, Linux biasanya otomatis terinstall gpg. Jadi Anda dapat menggunakan nya secara langsung setau saya seperti itu, jika bingung Anda dapat menggunakan command gpg --opsi 

 

contoh : "gpg --help"

 gpg (GnuPG) 2.2.27
libgcrypt 1.8.8
Copyright (C) 2021 Free Software Foundation, Inc.
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/uyab/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Syntax: gpg [options] [files]
Sign, check, encrypt or decrypt
Default operation depends on the input data

Commands:
 
 -s, --sign                  make a signature
     --clear-sign            make a clear text signature
 -b, --detach-sign           make a detached signature
 -e, --encrypt               encrypt data
 -c, --symmetric             encryption only with symmetric cipher
 -d, --decrypt               decrypt data (default)
     --verify                verify a signature
 -k, --list-keys             list keys
     --list-signatures       list keys and signatures
     --check-signatures      list and check key signatures
     --fingerprint           list keys and fingerprints
 -K, --list-secret-keys      list secret keys
     --generate-key          generate a new key pair
     --quick-generate-key    quickly generate a new key pair
     --quick-add-uid         quickly add a new user-id
     --quick-revoke-uid      quickly revoke a user-id
     --quick-set-expire      quickly set a new expiration date
     --full-generate-key     full featured key pair generation
     --generate-revocation   generate a revocation certificate
     --delete-keys           remove keys from the public keyring
     --delete-secret-keys    remove keys from the secret keyring
     --quick-sign-key        quickly sign a key
     --quick-lsign-key       quickly sign a key locally
     --quick-revoke-sig      quickly revoke a key signature
     --sign-key              sign a key
     --lsign-key             sign a key locally
     --edit-key              sign or edit a key
     --change-passphrase     change a passphrase
     --export                export keys
     --send-keys             export keys to a keyserver
     --receive-keys          import keys from a keyserver
     --search-keys           search for keys on a keyserver
     --refresh-keys          update all keys from a keyserver
     --import                import/merge keys
     --card-status           print the card status
     --edit-card             change data on a card
     --change-pin            change a card's PIN
     --update-trustdb        update the trust database
     --print-md              print message digests
     --server                run in server mode
     --tofu-policy VALUE     set the TOFU policy for a key

Options:
 
 -a, --armor                 create ascii armored output
 -r, --recipient USER-ID     encrypt for USER-ID
 -u, --local-user USER-ID    use USER-ID to sign or decrypt
 -z N                        set compress level to N (0 disables)
     --textmode              use canonical text mode
 -o, --output FILE           write output to FILE
 -v, --verbose               verbose
 -n, --dry-run               do not make any changes
 -i, --interactive           prompt before overwriting
     --openpgp               use strict OpenPGP behavior

(See the man page for a complete listing of all commands and options)

Examples:

 -se -r Bob [file]          sign and encrypt for user Bob
 --clear-sign [file]        make a clear text signature
 --detach-sign [file]       make a detached signature
 --list-keys [names]        show keys
 --fingerprint [names]      show fingerprints


Nah Anda dapat memperlajari setiap command atau baris perintah. Kemudian Anda dapat langsung mencobanya. Berikut adalah caranya 

 

Implementasi 


Anda dapat mencobanya dengan teman Anda atau menggunakan 2 device sekaligus. Selanjutnya Anda dapat membuat atau configurasi terlebih dahulu, berikut adalah caranya 

 

Configurasi 

gpg --full-gen-key

 

Gunakan perintah gpg --full-gen-key untuk membuat key (kunci terelebih dahulu) Anda dapat melihat gambar di bawah ini


Anda akan memilih algoritma enkripsi apa yang akan digunakan. Di gpg ada beberapa opsi yang bisa Anda pilih yaitu : 


Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
  (14) Existing key from card

 

Pilih sesuai dengan minat Anda. Untuk tutorial ini menggunakan RSA jika Anda ingin menggunakan yang lain silahkan


Setelah Anda memilih algoritma yang akan digunakan Anda dapat memilih ukuran key nya. Disini terdapat 2 opsi default 


RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)


Nah Anda dapat memilih ukuran bit key, bebas saya memilih 1024 bit length, selanjutnya proses memilih batas expired kunci Anda di gpg terdapat banyak opsi yang bisa Anda pilih berikut adalah opsinya 

 


Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
 

Anda dapat memilih berapa lama kunci Anda expired? Untuk opsi memilihnya Anda bisa menggunakan format seperti ini <n> opsi contohnya 

<n>y

1y  
 

Nah setelah itu akan muncul sebuah pemberitahuan bahwa kunci Anda akan berlaku habis pada masa "Key expires at Min 02 Okt 2022 09:24:07  WIB" Selanjutnya Anda akan memvalidasi configurasi apakah sudah benar? Jika dirasa sudah benar maka tinggal ketik y 


y

 

Sesi selanjutnya Anda akan memverifikasi identitas kunci, lebih jelasnya lihat gambar di bawah ini 

 


 

Anda dapat mengisikan nama Anda, alamat email dan komentar pada bagian komentar Anda dapat memilih bebas tidak diisi juga tidak masalah. Fungsi dari komen untuk identifikasi kunci yang Anda gunakan jika kasus saya tidak usah diisi. Hal yang terpenting adalah nama dan alamat email, untuk verifikasi identitas Anda. Selanjutnya klik O untuk okay 

 

Klik O untuk okay. NAh proses sudah selesai, sekarang Anda akan mendapatkan sebuah public key dan private key. Dsiclaimer Anda dapat share kode public key Anda, private key Anda harap disimpan dengan baik jangan sampai private key Anda diketahui orang lain. Sebagai contoh 

 

pub   rsa1024 2021-10-02 [SC] [expires: 2022-10-02]
      fingerprint Anda
uid                      uyab89 <Email Anda>
sub   rsa1024 2021-10-02 [E] [expires: 2022-10-02]
  

Anda dapat mencetak atau export public key Anda dengan perintah berikut ini

 

"gpg --armor --export <finger_print>"

Finger_print ganti dengan fingerprint yang Anda dapat. Yang terletak pada 

pub   rsa1024 2021-10-02 [SC] [expires: 2022-10-02]
      21q3443242ioaidoasdpadiapd (contoh)

 

contoh : 

gpg --armor --export 21q3443242ioaidoasdpadiapd

Anda dapat copy paste hasil export tersebut kemudian simpan dengan ektensi bebas, biasanya ektensi .asc dan setelah itu Anda dapat memabgikan key tersebut ke siapa saja. Lihat gambar 

 


 

-----BEGIN PGP PUBLIC KEY BLOCK-----

mI0EYVhr/gEEAJ5QgOdcBtCJhE92givr1PSRiShE6snstzoXr3uFPBX3ESLFWrDo
PQNiRMWUy/7D8Bs9sdkhivKK9HkAWU/CzMssjt7q8ocWt/+9+AJIlUD8DHQbqA9K
TxW/WXCv1qfTwX5e4y1CB04uMmdhNkKss6QVcfxjJBOp1QTJ1McbnNDVABEBAAG0
H3V5YWI4OSA8YmF5dS5hamkxMzgxQGdtYWlsLmNvbT6I1AQTAQoAPhYhBDs9N64I
DWsnem5zvOEqFhwfB7Q5BQJhWGv+AhsDBQkB4TOABQsJCAcCBhUKCQgLAgQWAgMB
Ah4BAheAAAoJEOEqFhwfB7Q5rhgD/1un4xTv4MXv6o2olauC+HshVT0w+HzkUX+3
9Y7xzi+3A8IDyqZw6kC6L7U5uXZADYGAFQQ6tOa7cAUxsR/DThzXmRZJtQs4tymt
ghaMHkNLUEVP7aO8sTT/+HmTDNbmuNCslibqyZMfJDK8pzyyP6+W/bTsM59snT3x
gTpjQDIDuI0EYVhr/gEEALiuIjvr/R8H5mm/s4laGjoDyddHaLcb9xYCI6VqILpe
P6oNQQSttSLzB3HMpeDc7uSOtMIYkIEqE5+bZ95fAT3jQr2lNKFxmZrNnemgWYeL
SeU5/4qRw5ZAe7OyqWlPAWpQdD/UbCjC3/HPLA7gcyxovVdD5iDXOIzzGYA+0u5V
ABEBAAGIvAQYAQoAJhYhBDs9N64IDWsnem5zvOEqFhwfB7Q5BQJhWGv+AhsMBQkB
4TOAAAoJEOEqFhwfB7Q55JMD/i7jJRTNwAaAE7fztAXWkHGvsKUFHlFul4jmklEV
2arBdOxOK+bOphtPr1NLMy+k/uIdZM02WWxjF1EYR35Fd4CypI4XbYM6l2RMOnWh
eeNX2UPe0s1anje3x7UrBy6UmelzsUzIh0EzYnqQcXWLSIpw9j+bE0FSaQEIz7XV
2vNI
=FG5P
-----END PGP PUBLIC KEY BLOCK-----

 

JIka Anda ingin mengerimkan pesan saya secara privat, bisa Anda copy paste key public saya kemudian Anda dapat berinteraksi secara enkripsi dengan saya 

 

Interaksi  

A. Enkripsi 

OKok tahap selanjutnya interaksi. Anda dapat mencoba bersama teman atau dengan 2 device Anda sendiri berikut adalah cara mengirimkan pesand dan mendekrispsi pesan dengan gpg 

 

 

Cara mengirimkan pesan enkripsi pertama Anda dapat menggunakan command curl dan perintah gpg import, perhatikan perintah di bawah ini. Gunakan perintah

gpg --import namafile.asc

atau 

curl -s tautan.gpg | gpg --import


Kemudian akan menampilkan informasi mengenai gpg dari reciver (penerima) kemudian Anda dapat menggunakan perintah untuk mengirim isi pesan Anda ke penerima, gunakan perintah di bawah ini 

 


gpg  -a --encrypt -r "recive email" 

atau 

gpg --armor --encrypt -r 'recive email'

 

Perinatah tersebut akan mengenkripsi pesan Anda dengan RSA -r adalah untuk reciver diikuti dengan email. Selanjutnya tekan Y untuk mengirimkan pesan 

 

Isikan pesan Anda bebas. Kemudian untuk mengirimkan pesan tersebut Anda dapat melakukan kombinasi tombol ctrl+d untuk mengirimkan pesan 

 

ctrl+d

 

Untuk mengirimkan pesan ke lawan bicara. Copy dan paste enkripsi tersebut ke lawan bicara. Kemudian akan menerima pesan dari kita 

 

B. Cara mendekrispi 

Anda dapat menggunkan perintah gpg --decrypt dikuti dengan enkripsi RSA untuk mengubah RSA menjadi plaintext  

gpg -- decrypt 

    diikuti dengan key RSA 

 


 

Kemudian masukan password (private key) Anda. Maka enkripsi tersebut akan di dekripsi menjadi sebuah plaintext  

 

Nah itu adalah fungsi implemtasi dasar dari gpg. Gpg dapat kirim melalui email ada beberapa aplikasi yang bisa di support contoh :

 

- Thunderbird

 

Cara export private key  

Anda dapat export key Anda dengan perintah gpg --armor --export-secret-key <finger_print>

gpg --armor --export-secret-keys <finger_print>

 

Ganti <finger_print> dengan fingerprint Anda kemudian Anda dapat menyimpan dengan eketensi .asc atau pun yang lain contoh 

 

gpg --armor --export-secret-keys bablabala 

 

Itu adalah implentasi dasar dari gpg, jika Anda tertarik Anda dapat mempelajarinya di dokumentasi gpg. Software ini dapat Anda pelajari dan dicustom sesuai Anda. Sekian terima kasih  

Bayu_Ajie
Bayu_Ajie  knowledge is free you can learn anything

Komentar