February 18, 2017

Makalah Metode Enkripsi Modern

BAB I

PENDAHULUAN


1.1  Latar Belakang


           Perkembangan teknologi yang semakin pesat, memungkinkan manusia untuk dapat berkomunikasi dan saling bertukar informasi/data cepat, efektif, dan efisien tanpa harus terhalang oleh jarak maupun waktu. Informasi berkembang dengan cepat dan mudahnya, mulai dari antar kota, antar wilayah, antar negara, bahkan antar benua bukan merupakan suatu kendala lagi dalam melakukan komunikasi dan pertukaran data. Seiring dengan itu, tuntutan akan sekuritas (keamanan) terhadap kerahasiaan informasi/data yang saling dipertukarkan tersebut juga semakin meningkat. Begitu banyak pengguna, seperti departemen-departemen suatu negara, lembaga publik, perusahaan, atau bahkan individu-individu yang tidak ingin informasi yang disampaikannya diketahui oleh orang lain, kompetitornya, maupun negara lain. Oleh karena itu dibutuhkan cara-cara pengamanan data dengan melakukan pengacakan terhadap suatu data yang dinamakan dengan enkripsi, agar tidak mudah dibaca atau diketahui oleh orang yang tidak pantas mengetahuinya.
           Keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Sebuah informasi hanya ditujukan bagi segolongan tertentu, hal tersebut terkait dengan bagaimana informasi tidak dapat diakses oleh orang yang tidak berhak. Oleh karena itu sangat penting untuk mencegah jatuhnya informasi kepada pihak-pihak lain yang tidak berkepentingan. Untuk menjaga kerahasiaan data, banyak organisasi, perusahaan, maupun individu melakukan dengan mekanisme keamanan tradisional, salah satunya adalah dengan cara melakukan enkripsi terhadap informasi/data tersebut untuk melindungi kerahasiaan.

1.2  Rumusan Masalah


Berdasarkan latar belakang masalah di atas, penyusun merumuskan rumusan masalah sebagai berikut.

1.     Apa yang dimaksud dengan enkripsi?
2.     Ada berapa jenis enkripsi dengan metode modern dan bagaimana penjelasannya?

1.3  Tujuan


Adapun tujuan dari pembuatan makalah “Metode Enkripsi Modern” ini adalah sebagai berikut.
1.     Pembaca dapat mengetahui tentang enkripsi
2.     Pembaca dapat mengenal jenis-jenis enkripsi beserta contohnya


BAB II

PEMBAHASAN


2.1  Pengertian Enkripsi


           Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus, atau bisa didefinisikan juga sebagai proses untuk mengubah plainteks menjadi chiperteks. Plainteks sendiri adalah data atau pesan asli yang ingin dikirim, sedangkan Chiperteks adalah data hasil enkripsi. Enkripsi dapat diartikan sebagai kode atau chiper.
           Sebuah chiper mengunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik chiper merupakan suatu sistem yang telah siap untuk diautomasi, maka teknik ini digunakan dalam sistem keamanan komputer dan jaringan. Enkripsi dimaksudkan untuk melindungi informasi agar tidak terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat berupa nomor kartu kredit, catatan penting dalam komputer, maupun password untuk mengakses sesuatu.
Dikarenakan enkripsi telah digunakan untuk mengamankan komunikasi di berbagai negara, hanya organisasi-organisasi tertentu dan individu yang memiliki kepentingan yang sangat mendesak akan kerahasiaan yang menggunakan enkripsi. Di pertengahan tahun 1970-an, enkripsi kuat dimanfaatkan untuk pengamanan oleh sekretariat agen pemerintah Amerika Serikat pada domain publik, dan saat ini enkripsi telah digunakan pada sistem secara luas, seperti Internet e-commerce, jaringan telepon bergerak dan ATM pada bank.
           Enkripsi dapat digunakan untuk tujuan keamanan, tetapi teknik lain masih diperlukan untuk membuat komunikasi yang aman, terutama untuk memastikan integritas dan autentikasi dari sebuah pesan. Contohnya, Message Authentication Code (MAC) atau digital signature. Penggunaan yang lain yaitu untuk melindungi dari analisis jaringan komputer. Enkripsi mempunyai kelebihan dan kekurangan yang diantaranya adalah:

Kelebihan dari Enkripsi:
1.     Kerahasiaan suatu informasi terjamin
2.     Menyediakan autentikasi dan perlindungan integritas pada algoritmachecksum/hash
3.     Menanggulangi penyadapan telepon dan email
4.     Untuk digital signature

Kekurangan dari Enkripsi:
1.     Penyandian rencana teroris
2.     Penyembunyian record kriminal oleh seorang penjahat
3.     Pesan tidak bisa dibaca bila penerima pesan lupa atau kehilangan kunci

Adapun tujuan dari enkripsi adalah sebagai berikut.
1.     Kerahasiaan: Untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah dienkripsi.
2.     Integritas data: Untuk menjaga keaslian/keutuhan data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.
3.     Autentikasi: Ini berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.
4.     Non-repudiasi/Nirpenyangkalan: Adalah usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat. Cara kerja dari algoritma ini adalah dengan menggantikan setiap karakter dari plaintext dengan karakter lain.


2.2  Jenis-jenis Enkripsi Modern

Semua algoritma enkripsi yang sudah ada, sebagian besar menggunakan dua jenis enkripsi, yaitu:
1.     Algoritma Symmetric Key, menggunakan kunci enkripsi yang terkait atau identik untuk enkripsi dan dekripsi.
2.     Algoritma Asymmetric Key, menggunakan kunci berbeda untuk enkripsi dan dekripsi. Biasanya ini disebut sebagai Public-key Cryptography.
2.2.1      Enkripsi Symmetric Key
Untuk menjelaskan konsep enkripsi ini, kita akan menggunakan sedikit penjelasan dari Wikipedia untuk memahami bagaimana cara kerja algoritma Symmetric.
Alice menaruh sebuah pesan rahasia di dalam kotak dan mengunci kotak menggunakan gembok dan ia memiliki kuncinya. Kemudian dia mengirimkan kotak ke Bob melalui surat biasa. Ketika Bob menerima kotak, ia menggunakan kunci salinan sama persis yang dimiliki Alice untuk membuka kotak dan membaca pesan. Bob kemudian dapat menggunakan gembok yang sama untuk membalasa pesan rahasia.
Dari contoh itu, algoritma sysmmetric-key dapat dibagikan kepada stream cipher dan block cipher. Stream cipher mengenkripsi satu per satu bit dari pesan, dan block cipher mengambil beberapa bit, biasanya 64 bit dan mengenkripsi mereka menjadi satu bagian. Ada banyak algoritma berbeda dari symmetric termasuk DES (Data Encryption Standard), AES (Rijndael), Blowfish, Twofish, Serpent, CAST5, RC4, TDES, dan IDEA.

·       Algoritma Blowfish
Blowfish diciptakan oleh seorang Cryptanalyst bernama Bruce Schneier, Presiden perusahaan Counterpane Internet Security, Inc (Perusahaan konsultan tentang kriptografi dan keamanan komputer) dan dipublikasikan tahun 1994. Dibuat untuk digunakan pada komputer yang mempunyai microposesor besar (32-bit keatas dengan cache data yang besar). Blowfish merupakan algoritma yang tidak dipatenkan dan licensefree, dan tersedia secara gratis untuk berbagai macam. Pada saat Blowfish dirancang, diharapkan mempunyai kriteria perancangan sebagai berikut:
1.     Cepat, Blowfish melakukan enkripsi data pada microprocessors 32-bit dengan rate 26 clock cycles per byte.
2.     Compact (ringan), Blowfish dapat dijalankan pada memori kurang dari 5K.
3.     Sederhana, Blowfish hanya menggunakan operasi-operasi sederhana: penambahan, XOR, dan lookup tabel pada operan 32-bit.
4.     Memiliki tingkat keamanan yang bervariasi, panjang kunci yang digunakan oleh Blowfish dapat  bervariasi dan bisa sampai sepanjang 448 bit.
Dalam penerapannya sering kali algortima ini menjadi tidak optimal. Karena strategi implementasi yang tidak tepat. Algoritma Blowfish akan lebih optimal jika digunakan untuk aplikasi yang tidak sering berganti kunci, seperti jaringan komunikasi atau enkripsi file otomatis. Selain itu, karena algoritma ini membutuhkan memori yang besar, maka algoritma ini tidak dapat diterapkan untuk aplikasi yang memiliki memori kecil seperti smart card. Panjang kunci yang digunakan, juga mempengaruhi keamanan penerapan algoritma ini. Algoritma Blowfish terdiri atas dua bagian, yaitu ekspansi kunci dan enkripsi data.
a.     Ekspansi kunci (Key-expansion)
Berfungsi merubah kunci (minimum 32-bit, maksimum 448-bit) menjadi beberapa array subkunci (subkey) dengan total 4168 byte (18x32-bit untuk P-array dan 4x256x32-bit untuk S-box sehingga totalnya 33344 bit atau 4168 byte). Kunci disimpan dalam K-array:
K1, K2, ... Kj                                      1 ≤  j ≤ 14
Kunci-kunci ini yang dibangkitkan (generate) dengan menggunakan subkunci yang harus dihitung terlebih dahulu sebelum enkripsi atau dekripsi data. Sub-sub kunci yang digunakan terdiri dari : P-array yang terdiri dari 18 buah 32-bit subkunci,
P1, P2, ..., P18
S-box yang terdiri dari 4 buah 32-bit, masing-masing memiliki 256 entri:
S1,0, S1,1, ..., S1,255
S2,0, S2,1, ..., S2,255
S3,0, S3,1, ..., S3,255
S4,0,S4,1, ..., S4,255
Langkah-langkah perhitungan atau pembangkitan subkunci tersebut adalah sebagai berikut:
1.     Inisialisasi P-array yang pertama dan juga empat S-box, berututan, dengan string yang telah pasti. String tersebut terdiri dari digit-digit heksadesimal dari phi, tidak termasuk angka tiga di awal. Contoh :
P1= 0x243f6a88
P2= 0x85a308d3
P3= 0x13198a2e
P4= 0x03707344
dan seterusnya sampai S-box yang terakhir.
2.     XOR-kan P1 dengan 32-bit awal kunci, XOR-kan P2 dengan 32-bit berikutnya dari kunci, dan seterusnya untuk semua bit kunci. Ulangi siklus seluruh bit kunci secara berurutan sampai seluruh P-array ter-XOR-kan dengan bit-bit kunci. Atau jika disimbolkan : P1 = P1 ⊕ K1, P2 = P2 ⊕ K2, P3 = P3 ⊕ K3, . . . P14 = P14 ⊕ K14, P15 = P15 ⊕ K1, . . . P18 = P18 ⊕ K4.
Keterangan : ⊕ adalah simbol untuk XOR.
3.     Enkripsikan string yang seluruhnya nol (all-zero string) dengan algoritma Blowfish, menggunakan subkunci yang telah dideskripsikan pada langkah 1 dan 2.
4.     Gantikan P1 dan P2 dengan keluaran dari langkah 3.
5.     Enkripsikan keluaran langkah 3 menggunakan algoritma Blowfish dengan subkunci yang telah dimodifikasi.
6.     Gantikan P3 dan P4 dengan keluaran dari langkah 5.
7.     Lanjutkan langkah-langkah di atas, gantikan seluruh elemen P-array dan kemudian keempat S-box secara berurutan, dengan hasil keluaran algoritma Blowfish yang terus-menerus berubah. Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci-subkunci dan membutuhkan memori sebesar 4KB.
Total keseluruhan, terdapat 521 iterasi untuk menghasilkan subkunci-subkunci dan membutuhkan memori sebesar 4KB.

b.     Enkripsi data
Terdiri dari iterasi fungsi sederhana (Feistel Network) sebanyak 16 kali putaran (iterasi), masukannya adalah 64- bit elemen data X. Setiap putaran terdiri dari permutasi kunci-dependent  dan substitusi kunci- dan data-dependent. Semua operasi adalah penambahan (addition) dan XOR pada variabel 32-bit. Operasi tambahan lainnya hanyalah empat penelusuran tabel array berindeks untuk setiap putaran. Langkahnya adalah seperti  berikut.
1.     Bagi X menjadi dua bagian yang masing-masing terdiri dari 32-bit: XL, XR.
2.     Lakukan langkah berikut
For i = 1 to 16:
XL = XL ⊕ Pi
XR  = F(XL)⊕ XR
Tukar XL dan XR
3.     Setelah iterasi ke-16, tukar XL dan XR lagi untuk melakukan membatalkan pertukaran terakhir.
4.     Lalu lakukan
XR  = XR ⊕ P17 XL = XL ⊕ P18
5.     Terakhir, gabungkan kembali XL dan XR  untuk mendapatkan cipherteks.
Pada langkah kedua, telah dituliskan mengenai penggunaan fungsi F. Fungsi F adalah: bagi XL menjadi empat  bagian 8-bit: a,b,c dan d. F(XL) = ((S1,a + S2,b mod2 32) XOR S3,c) + S4,d mod 2 32
Dekripsi sama persis dengan enkripsi, kecuali bahwa P1, P2,…, P18 digunakan pada urutan yang berbalik (reverse). Algoritmanya dapat dinyatakan sebagai berikut:
For  i = 1 to 16 do
 XRi = XLi-1 ⊕ P19-i;
XLi = F[XRi] ⊕ XRi-1;
XL17 = XR16 ⊕ P1;
XR17 = XL16 ⊕ P2;

2.2.2      Enkripsi Asymmetric Key

Pada metode asymmetric key, Bob dan Alice memiliki gembok yang berbeda, bukan satu gembok dengan beberapa kunci seperti contoh symmetrick key di atas. Tentu saja contoh ini lebih sederhana daripada yang seharusnya, tapi sebenarnya jauh lebih rumit.
Pertama Alice meminta Bob untuk mengirim gembok yang terbuka melalui surat biasa, sehingga ia tidak membagikan kuncinya. Ketika Alice menerimanya, ia menggunakannya untuk mengunci sebuah kota yang berisi pesan dan mengirimkan kotak dengan gembok terkunci tadi ke Bob. Bob kemudian membuka kotak dengan kunci yang ia pegang karena itu gembok miliknya untuk membaca pesan Alice. Untuk membalasnya, Bob harus meminta Alice untuk melakukan hal yang sama.
Keuntungan dari metode asymmetric key adalah Bob dan Alice tidak pernah berbagi kunci mereka. Hal ini untuk mencegah pihak ketiga agar tidak menyalin kunci atau memata-matai pesan Alice dan Bob. Selain itu, jika Bob ceroboh dan membiarkan orang lain untuk menyalin kuncinya, pesan Alice ke Bob akan terganggu, namun pesan Alice kepada orang lain akan tetap menjadi rahasia, karena orang lain akan memberikan gembok milik mereka ke Alice untuk digunakan.
Enkripsi asymmetric menggunakan kunci yang berbeda untuk enkripsi dan dekripsi. Penerima pesan memiliki sebuah kunci pribadi dan kunci publik. Kunci publik diberikan ke pengirim pesan dan mereka menggunakan kunci publik untuk melakukan enkripsi pesan. Penerima menggunakan kunci pribadi untuk membuka pesan enrkipsi yang telah dienkripsi menggunakan kunci publik si penerima.
Ada satu keuntungan melakukan enkripsi dengan menggunakan metode ini. Kita tidak perlu mengirim sesuatu yang rahasia (seperti kunci enkripsi kita atau password) melalui saluran yang tidak aman. Kunci publik kamu akan leihat ke dunia dan itu bukan rahasia. Kunci rahasia kamu akan tetap aman di komputer kamu, dimana itu tempatnya.
Adapun contoh algoritma yang menggunakan kunci asymmetric adalah RSA (Riverst Shamir Adleman) dan ECC (Elliptic Curve Cryptography).
·       Contoh Penggunaan Enkripsi dengan metode RSA
Langkah I: pembuatan nilai private key dan public key
n = p x q
dimana nilai p di pilih : 15 dan q dipilih 19
jadi n =15 x 19 =  285
mencari nilai m
m = (p-1) (q-1)
= (15-1)(19-1)
= 14 x 18
= 252
Mencari nilai e dan d
(e x d ) mod m
(e x d) mod 252 = 1
e = 5
d = 101
jadi di dapatkan
1.  Public key (e,n) = (5,285)
2.  Private key (d,n) = (101,285)

Langkah II: Perhitungan nilai chipertext
Ditentukan teks : benny
ASCII -> b = 98     e = 101    n = 110             n = 110     y = 121
C  = Me mod n
* Karakter b
            = 985 mod 285
=  53 (angka 5)
                        * Karakter e
= 1015 mod 285
= 176 (tanda derajat °)
* Karakter n
= 1105 mod 285
= 230 (karakter æ)
* Karakter n
= 1105 mod 285
= 230 (karakter æ)
* Karakter y
            = 1215 mod 285
= 106 (karakter huruf j )

Hasil plaintext “benny” yang sudah dienkripsi ke chipertext adalah ”5° æ æj”

Perhitungan Nilai Dekripsi (Text)
Text = “5° æ æj “  ==> 5 = 53      °=176     æ = 230     æ = 230   j= 106 D = Cd mod n
* Karakter 5 =53101 mod 285 = 98 (karakter b )
* Karakter ° = 176101 mod 285 = 101 (karakter e)
* Karakter æ = 230101 mod 285 = 110 (karakter n )
* Karakter æ = 230101 mod 285 = 110 (karakter n )
* Karakter j = 106101 mod 285 = 121 (karakter y)
 Hasil chipertext “5° æ æj “ yang sudah didekripsi ke plaintext adalah “benny”
BAB III

PENUTUP


3.1  Kesimpulan


Enkripsi adalah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan khusus, atau bisa didefinisikan juga sebagai proses untuk mengubah plainteks menjadi chiperteks. Semua algoritma enkripsi yang sudah ada, sebagian besar menggunakan dua jenis enkripsi, yaitu:
1.     Algoritma Symmetric Key,  menggunakan kunci enkripsi yang terkait atau identik untuk enkripsi dan dekripsi
2.     Algoritma Asymmetric Key, menggunakan kunci berbeda untuk enkripsi dan dekripsi. Biasanya ini disebut sebagai Public-key Cryptography

Ada banyak algoritma berbeda dari symmetric termasuk DES (Data Encryption Standard), AES (Rijndael), Blowfish, Twofish, Serpent, CAST5, RC4, TDES, dan IDEA. Sedangkan contoh algoritma yang menggunakan kunci asymmetric adalah RSA (Riverst Shamir Adleman) dan ECC (Elliptic Curve Cryptography).ryptography).

No comments:

Post a Comment