Senin, 10 April 2017

KOMPONEN ARSITEKTUR DSS

KOMPONEN ARSITEKTUR UNTUK DSS 

Komponen (arsitektur) dalam DSS
     1. Dialog (interface software)  pemakai dengan sitem
     2. Database mendukung sistem tsb
      3. Model Base  memberikan kemampuan analisis

                  
 1. KOMPONEN DIALOG (User System Interface)

                              1.1. Knowledge Base (Bennott)
                                  • Apa yang diketahui user tentang keputusan,
                                     bagaimana cara menggunakan DSS;
                                  • Pengetahuan apa yang harus dimiliki user agar
                                    dapat berinteraksi dengan sistem dalam berhubungan dengan area masalah dan     dalam
                                    pembuatan keputusan yang diperlukan
                                  • atau apa yang sudah dikuasai user (mis : manual, help options, dll)

Teknik pelatihan penggunaan DSS, dapat dilakukan dengan “Melatih” user :
                           - One on one tutorial  eksekutif senior
                           - Closes and lectures  user yang memerlukan training berjumlah banyak
                           - Instruksi terprogram dan instruksi yang dibantu dengan komputer  bila DSS                                          dipakai dalam jangka lama dan digunakan dalam memberikan layanan   bagi                                        banyak pemakai
                           - Manual book
                           - Command / sequence file  Berisi instruksi yang diprogramkan sebelumnya


                        1.2. Action Language (Bahasa Tindakan)
                       •Apa yang dapat dilakukan user dalam berkomunikasi dengan sistem (mengontrol                                    DSS); atau Opsion yang mengarahkan tindakan sistem tsb.
                           Action language dapat dilakukan dengan :
                        - Cara tanya jawab
                        - Menggunakan menu
                        - Bahasa perintah
                        - Pendekatan form Input - Output

                             1.3. Presentation Language (Bahasa Presentasi) Presentasi alternatif dari respon sistem tsb;
                               atau apa yang dilihat oleh user (laporan tercetakdari DSS).
                               Contoh : printer, monitor, grafik, warna, audiooutput, animation, dll



  2.Komponen data

                      4 Jenis informasi :

                       I. Dua jenis informasi yang dikelola secara internal
                      a. Informasi dari record data (entity)
                      b. Informasi dari dokumen (konsep, gagasan,laporan, memo)

                      II. Dua jenis yang dikelola secara eksternal (dapat dibeli)

a. Informasi yang didasarkan pada catatan /record (Kondisi ekonomi dan keuangan, jadwal penerbangan,
    kuotasi harga stock)
b. Informasi yg didasarkan pd dokumen eksternal (Opini mengenai ramalan atau data ekonomi               regional)

3.Komponen model

Model didalam DSS dapat dianggap sebagai model base,Jenis-jenis model :
1. Model Strategis
• Digunakan oleh manajemen puncak untuk :
- Membantu menetapkan tujuan organisasi
- Menetapkan sumber daya untuk meraih tujuan tersebut- menetapkan kebijaksanaan untuk mengatur
  perolehan disposisi sumber daya tsb (misal :perencanaan tujuan perusahaan, penentuan lokasi,             perencanaan
  dampak lingkungan)
• Data yang dibutuhkan sebagian besar data eksternal dan subyektif
• Cakrawala waktu utk model tsb biasanya diukur dalam tahun (misal : jangka waktu tanggung jawab
  perencanaan strategis manajemen puncak)
• Model tsb bersifat deterministik dan deskripti

2. Model Taktis
• Diterapkan oleh manajemen menengah untuk membantu dalam mengalokasi dan mengontrol               penggunaan
  sumber daya organisasi (misal : perencanaan keuangan, perencanaan keperluan pabrik, perencanaan
  promosi penjualan, penentuan tata letak gedung / pabrik)
• Data yang dibutuhkan sebagian besar data internal dan beberapa data eksternal serta subyektif
• Cakrawala waktu : 1 bulan s/d 2 tahun
• Model ini bersifat : deterministik

3. Model Operasional
• Diterapkan untuk mendukung pembuatan keputusan jangka pendek (misal : harian atau mingguan) yang
   sering dijumpai pada tingkat organisasi bawah
• Data yang dibutuhkan : data internal
• Sifat deterministik

4. Block & Subroutine bangunan model
• Meliputi : pemrograman linier, analisis rangkaian waktu, analisis regresi, dan Prosedur Sampling       Monte
  Carlo
• Dapat digunakan secara terpisah untuk mendukung keputusan atau digunakan secara bersama untuk
   merekonstruksi dan memelihara model yang lebih komprehensif Masalah dalam Modeling                 Tradisional
   Dari sudut pandang historis, yang dialami organisasi berhubung dengan model beragam. Ada yang      berhasil
   dan ada yang gagal. Masalah-masalah yang mengarah kepada kegagalan antara lain :
• Sulitnya memperoleh input data utk model
• Sulitnya memahami cara menerapkan output dari model
• Sulitnya menjaga agar model tetap up to date
• Sedikitnya integrasi diantara model.
• Lemahnya interaksi antara model dengan pemakai
• Kurangnya keyakinan user terhadap model yang digunakan, dengan demikian model tsb tidak ia          percaya.
• Sulitnya pemakai dalam menciptakan modelnya sendiri
  Pendekatan SPK terhadap MODELING Pendekatan SPK terhadap modeling berusaha untuk               meminimalkan masalah tradisional dengan cara memberi penekanan bahwa suatu sistem (Dialog,       Data dan Model bekerja secara bersama-sama) diperlukan untuk mendukung pembuatan keputusan.

Cara tsb antara lain :
• Menggunakan database yang diperlukan untuk memecahkan banyak masalah (membangun,                  menggunakan,
  memelihara model).
• Output dari model ditempatkan dalam database, dengan demikian memungkinkan output tsb diakses
   oleh model lain dan memberikan integrasi diantara model tsb
• Dialog yang dirancang dengan baik akan meningkatkan peluang atau kemampuan pemakai dalam
   mengembangkan modelnya sendiri, mengoperasikan sistem dengan baik, menjaga agar tetap up to      date, dan
   menerapkan outputnya untuk mendukung suatu pembuatan keputusan
• Model dalam suatu SPK kemungkinan besar bisa digunakan, sebab didukung oleh komponen data     dan dialog





Senin, 16 Januari 2017

Dekripsi dan Enkripsi dengan Metode RSA


RSA merupakan algoritma kriptografi asimetri, dimana kunci yang digunakan untuk mengenkripsi berbeda dengan yang digunakan untuk mendekripsi. Kunci yang digunakan untuk mengenkripsi disebut dengan kunci public, dan yang digunakan untuk mendekripsi disebut dengan kunci privat. RSA adalah salah satu algoritma kriptografi yang menggunakan konsep kriptografi kunci publik. RSA membutuhkan tiga langkah dalam prosesnya, yaitu pembangkitan kunci, enkripsi, dan dekripsi. Proses enkripsi dan dekripsi merupakan proses yang hampir sama. Jika bilangan acak yang dibangkitkan kuat, maka akan lebih sulit untuk melakukan cracking terhadap pesan. Parameter kuat tidaknya suatu kunci terdapat pada besarnya bilangan acak yang digunakan.

APA ITU RSA?

Algortima RSA dijabarkan pada tahun 1976 oleh tiga orang : Ron Rivest, Adi Shamir dan Len Adleman dari Massachusetts Institute of Technology. Huruf '''RSA''' itu sendiri berasal dari inisial nama mereka (‘R’ivest - ‘S’hamir – ‘A’dleman). Clifford Cocks, seorang matematikawan Inggris yang bekerja untuk GCHQ, menjabarkan tentang sistem equivalen pada dokumen internal di tahun 1973. Penemuan Clifford Cocks tidak terungkap hingga tahun 1997 karena alasan ''top-secret classification''. Algoritma RSA dipatenkan oleh Massachusetts Institute of Technology pada tahun 1983 di Amerika Serikat sebagai US patent 4405829. Paten tersebut berlaku hingga 21 September 2000. Setelah bulan September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat menggunakannya dengan bebas.

RSA adalah sebuah algoritma berdasarkan skema kriptografi public-key. Lebih jauh, RSA adalah algoritma yang mudah untuk diimplementasikan dan dimengerti. algoritma RSA adalah sebuah aplikasi dari sekian banyak teori seperti extended Euclid algorithm, euler's function sampai fermat theorem.

Konsep fundamental dari Kriptografi Kunci Publik ditemukan oleh Whitfield Diffie dan Martin Hellman, dan secara terpisah oleh Ralph Merkle. Sedangkan konsep dasar Kriptografi Kunci Publik terletak pada pemahaman bahwa kunci selalu berpasangan: kunci enkripsi dan kunci dekripsi. Juga perlu diingat bahwa sebuah kunci tidak dapat dibangkitkan dari kunci lainnya. Pemahaman kunci enkripsi dan dekripsi sering disebut sebagai kunci publik dan kunci privat. Seseorang harus memberikan kunci publiknya agar pihak lain dapat mengenkripsi sebuah pesan. Dekripsi hanya terjadi jika seseorang mempunyai kunci privat.


DASAR MATEMATIKA


1. Sifat Pembagian pada Bilangan Bulat


Diberikan dua buah bilangan bulat a dan b dengan syarat a ≠ 0. Dikatakan a habis membagi b (a divides b) jika terdapat bilangan c sedemikian hingga b = ac.

Notasi : a | b jika b = ac, c ϵ Z dan a ≠ 0.

Contoh :

4 | 12 karena 12 = 4 × 3

Teorema Euclidean :

Misalkan m dan b adalah dua buah bilangan bulat dengan syarat n > 0. Jika m dibagi dengan n maka terdapat dua buah bilangan bulat unik q (quotient) dan r (remainder) sedemikian sehingga m = nq + r dengan 0 ≤ r < n.

Contoh :

1987 = 97 × 20 + 47, yaitu 1987 dibagi dengan 97 memberikan hasil 20 dan sisa 47

2. Pembagi Bersama Terbesar

Diberikan dua buah bilangan bulat tidak nol a dan b. Pembagi bersama terbesar (greatest common divisor atau gcd) dari a dan b adalah bilangan bulat terbesar d sedemikian hingga d | a dan d | b, atau dinyatakan dengan gcd(a,b) = d.
Contoh :
Faktor pembagi 45 adalah : 1, 3, 5, 9, 15, 45
Faktor pembagi 36 adalah : 1, 2, 3, 4, 6, 9, 12, 18, 36
Faktor pembagi bersama dari 45 dan 36 adalah : 1, 3, 9
Sehingga gcd(45, 36) = 9

3. Algoritma Euclidean

Dengan dasar Teorema Euclidean sebelumnya, dikembangkan sebuah algoritma (yang disebut dengan algoritma Euclidean) untuk mencari gcd dari dua buah bilangan bulat.
Definisi :
Diberikan dua buah bilangan bulat tak negative a dan b (a ≥ b). Maka terdapat qi, ri ϵ Z sehingga :


Jadi rm+1 = gcd(rm, rm+1) = gcd(rm-1, rm) = gcd(rm-2, rm-1) = … = gcd(a, b)
Contoh :
a = 80, b = 12, dan dipenuhi syarat a ≥ b
Dihitung dengan menggunakan algoritma Euclidean sbb. :




Jadi gcd (80, 12) = gcd (12, 8) = gcd (8,4) = 4

4. Algoritma Euclidean yang Diperluas

Algoritma Euclidean yang diperluas dapat digunakan untuk menentukan bilangan bulat positif b < a memiliki invers (terhadap operasi perkalian) modulo a dengan memeriksa jika rm+1 = 1.
Definisi :
Diberikan qj seperti pada Algoritma Euclidean, didefinisikan


Berdasarkan pada qj hasil algoritma Euclidean dan pendefinisian tj dan sj diperoleh hubungan rj, tj, dan sj yang diberikan oleh :
Teorema :
Jika j = 0, 1, 2, …, m maka rj = sja + tjb dengan tj dan sj seperti yang didefinisikan dan rjdiperoleh di Algoritma Euclidean.
Akibat :
Jika gcd (a, b) = 1, maka b-1 = tj
Contoh :
a = 111, b = 25
Dengan menggunakan algoritma Euclidean dicari j dan dihitung apakah gcd (111, 25) = 1.
111 = 4 × 25 + 11  j=1
25 = 2 × 11 + 3      j=2
11 = 3 × 3 + 2        j=3
3 = 1 × 2 + 1          j=4
2 = 1 × 2                j=5
Dari algoritma Euclidean sebelumnya diketahui jika gcd (111, 25) = 1, maka :
t0 = 0
t1 = 1
t2 = t0 – q1t1 = 0 – 4 × 1 = -4
t3 = t1 – q2t2 = 1 – 2 × (-4) = 9
t4 = t2 – q3t3 = -4 – 3 × 9 = -31
t5 = t3 – q4t4 = 9 – 1 × (-31) = 40
Maka 25-1 terhadap modulo 111 adalah 40.

5. Kekongruenan

Definisi Aritmatika Modulo :
Diberikan dua buah bilangan bulat a dan m yang > 0. Operasi a mod m memberikan sisa jika a dibagi dengan m. Bilangan m disebut modulus atau modulo, dan hasil aritmatika modulo m terletak di himpunan {0, 1, … m-1}
Notasi : a mod m = r, sedemikian sehingga a = mq + r, dengan 0 ≤ r < m.
Contoh :
23 mod 5 = 3
-41 mod 9 = 4
Definisi Kongruen :
Diberikan dua buah bilangan bulat a dan b, dan m adalah bilangan > 0, maka a ≡ b (mod m) jika m habis membagi a – b.
Contoh :
17 ≡ 2 (mod 3)
Kekongruenan a ≡ b (mod m) dapat pula dituliskan dalam hubungan
a = b + km
untuk k adalah sembarang bilangan bulat. Berdasarkan definisi aritmatika modulo,
a mod m = r dapat juga dituliskan sebagai
a ≡ r (mod m)
Teorema :
  1. Jika a ≡ b (mod m) dan c adalah sembarang bilangan bulat positif maka
    • ( a + c) ≡ (b + c) (mod m)
    • ac ≡ bc (mod m)
    • ap ≡ bp (mod m) untuk suatu bilangan bulat tak negative p.
  2. Jika a ≡ b (mod m) dan c ≡ d (mod m), maka
    • (a + c) ≡ (b + d) (mod m)
    • ac ≡ bd (mod m)

6. Bilangan Prima

Bilangan bulat positif p (p>1) disebut bilangan prima jika pembaginya hanya 1 dan p. Bilangan selain bilangan prima disebut dengan bilangan komposit.
The Fundamental Theorem of Arithmetic :
Setiap bilangan bulat positif yang lebih besar atau sama dengan 2 dapat dinyatakan sebagai perkalian satu atau lebih bilangan prima.
Contoh :
91 = 7 × 13
100 = 2 × 2 × 5 × 5
Terdapat banyak metode yang dapat digunakan untuk menguji keprimaan sebuah bilangan. Salah satunya adalah Teorema Eratosthenes.
Teorema Eratosthenes :
Untuk setiap bilangan komposit n, pasti ada bilangan prima p dimana p ≤√n sehingga p | n.
Dari teorema tersebut, dapat kita simpulkan jika p tidak membagi habis n, maka n bukan bilangan komposit (dengan kata lain n adalah bilangan prima).
Contoh :
1.  n = 1993 prima?
1993 = 44.6430…
p ≤ 44.6430…. = 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, dan 43
Karena tidak ada p yang dapat membagi habis n, maka n bukanlah bilangan komposit. Sehingga 1993 adalah bilangan prima. 
2. n = 121
121 = 11
p ≤ 11 = 2, 3, 5, 7, dan 11
7
Karena 11 | 121 maka n merupakan bilangan komposit. Sehingga 121 bukan bilangan prima.

7.  Relatif Prima

Dua buah bilangan bulat a dan b dikatakan relative prima jika gcd (a, b) = 1. Jika a dan b relative prima, maka terdapat bilangan bulat a dan b sedemikian sehingga ma + nb = 1.
Contoh :
gcd (111, 25) = 1
m(111) + n(25) = 1, untuk m = -9 dan n = 40, maka
(-9)(111) + (40)(25) = -999 + 1000 = 1

8. Fungsi Euler (ϕ)

Fungsi Euler mendefinisikan ϕ(n) untuk n ≥ 1 yang menyatakan banyaknya bilangan bulat positif < n yang mempunyai invers terhadap operasi perkalian.
Contoh :
Z8 = {0, 1, 2, 3, 4, 5, 6, 7}
ϕ(8) = 4, karena yang memiliki invers hanya 1, 3, 5, 7.
Teorema (untuk mencari ϕ(n)) :

Diberikan n = =1 dengan pi bilangan prima, m banyaknya bilangan prima, ei > 0,


0 < i < m, maka ϕ(n) = 
Contoh :
n = 8
m = 1, p1 = 2, e1 = 3
ϕ(8) = (23 - 22) = 8 – 4 = 4
Teorema 1 :
Jika n = pq adalah bilangan komposit dengan p dan q prima, maka ϕ(n) = ϕ(p) ϕ(q) = (p-1) (q-1).
Teorema 2 :
Diberikan dua buah bilangan bulat a dan n, dengan n ≥ 2 sedemikian sehingga gcd(a, n) = 1, maka
aϕ(n) ≡ 1 (mod n)

ALGORITMA RSA

RSA merupakan algoritma kriptografi asimetri, dimana kunci yang digunakan untuk mengenkripsi berbeda dengan yang digunakan untuk mendekripsi. Kunci yang digunakan untuk mengenkripsi disebut dengan kunci public, dan yang digunakan untuk mendekripsi disebut dengan kunci privat.
Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa
aϕ(n) ≡ 1 (mod n)
dengan syarat a harus relative prima terhadap n.
Berdasarkan teorema-teorema yang ada pada bahasan kekongruenan sebelumnya, bisa kita peroleh :
aϕ(n) ≡ 1 (mod n)
Berdasarkan ap ≡ bp (mod m) :
≈ akϕ(n) ≡ 1k (mod n)
a diganti dengan m :
≈ mkϕ(n) ≡ 1k (mod n)
Kedua ruas dikalikan dengan m :
≈ mkϕ(n)+1 ≡ m (mod n) (kedua ruas dikali dengan m)
(pers. 1)
Misal e dan d dipilih sedemikian hingga ed = 1 (mod n) atau ed = kϕ(n) + 1.
Maka disubsitusikan ke pers.1 :
med ≡ m (mod n)
(me)d ≡ m (mod n)
Persamaan diatas dapat diartikan perpangkatan m dengan e diikuti dengan perpangkatan dengan d menghasilkan kembali m semula. Maka berdasarkan persamaan tersebut, enkripsi dan dekripsi pada RSA dapat dirumuskan sebagai berikut :
Ee(m) = me (mod n) = cDd(c) = cd (mod n)

1. Algoritma Pembangkitan Kunci pada RSA

Kelebihan RSA terletak pada pasangan kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan. Berikut langkah-langkah yang digunakan untuk membangkitkan pasangan kunci di RSA :
  1. Pilih dua buah bilangan prima sembarang p dan q.
  2. Hitung n = p * q, dengan p ≠ q.
  3. Hitung ϕ(n) = (p-1)(q-1)
  4. Pilih kunci public e, yang relative prima terhadap ϕ(n).
  5. Bangkitkan kunci privat d = 1+ k ϕ(n) / e atau d = e-1 (1 + k.ϕ(n)).
Hasil dari algoritma diatas adalah :
1. Kunci public (n, e)
2. Kunci privat (d)

2. Algoritma Enkripsi dan Dekripsi

Algoritma enkripsi pada RSA adalah sebagai berikut :
  1. Ambil kunci public milik penerima pesan (n dan e).
  2. Pecah plainteks menjadi blok-blok m1, m2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n-1].
  3. Setiap blok mi dienkripsi menjadi blok ci dengan rumus ci = mie mod n
Untuk mendapatkan plainteks kembali, blok cipherteks ci didekripsi menjadi blok mi dengan rumus mi= cid mod n.

KRIPTANALISIS


Sisi keamanan pada sistem RSA terletak pada sulitnya memfaktorkan sebuah bilangan besar n yang dihasilkan dari perkalian dua buah bilangan prima p dan q. nilai n yang dihasilkan bersifat tidak rahasia, sementara nilai bilangan prima p dan q harus bersifat rahasia, sehingga hampir mustahil bagi seorang penyerang untuk mendapatkan nilai ϕ (n) (totien (n)atau disebut juga phi(n)) yang merupakan nilai bilangan dasar yang digunakan untuk menghasilkan pasangan kunci publik e dengan kunci privat d.
Secara umum, tipe serangan yang mungkin untuk algoritma RSA adalah:
  1. Brute Force
  2. Mathematical Attack
  3. Man-In-The-Middle Attack
  4. Choosen Ciphertext Attack

1. Brute Force


Tipe serangan ini berlaku untuk semua jenis algoritma kriptografi, baik kriptografi simetri maupun asimetri. Model serangan brute force adalah dengan melakukan percobaan terhadap semua kemungkinan kunci pada sebuah sistem kriptografi. Oleh karena itu, performa serangan ini sangat tergantung kepada key space dari sistem kriptografi yang ditargetkan.

Pada sistem RSA, brute force bekerja dengan cara melakukan percobaan pada semua kemungkinan kunci privat. Oleh karena itu, kemungkinan serangan tipe ini dapat diperkecil dengan jalan memperbesar nilai key space yang dalam hal ini adalah memperbesar nilai d. Dari persamaan dasar untuk mendapatkan nilai d berikut kita dapat memperbesar nilai d yaitu d = 1 + k ϕ ( n ) / e. Dengan mengambil nilai p dan q yang besar, maka akan dihasilkan nilai d yang cukup besar, sehingga proses dekripsi ciphertext dengan bersamaan : cd mod n menghasilkan kompleksitas yang besar.

Pihak pengembang RSA menyarankan untuk menggunakan nilai desimal diatas 100 untuk nilai p dan q, sehingga menghasilkan key space yang besar pula (mencapai 300 angka desimal). Berikut adalah tabel gambaran waktu untuk menemukan nilai faktorial dari n dalam satuan MIPS (Million Instructions Per Second).




2. Mathematical Attack

Dasar dari tipe serangan ini adalah dengan memanfaatkan persamaan matematis yang mendasari algoritma RSA. Sebagai contoh, diasumsikan terjadi kesalahan dalam bit ci ketika melakukan proses dekripsi ciphertext c. Untuk I bernilai acak, I elemen dari {0,1,2,...,t-1} kita lambangkan bit yang mengalami kesalahan tersebut sebagai c’i. Maka pesan yang akan dihasilkan jika dilakukan dekripsi adalah:

Penyerang sekarang telah memiliki m dan m’, maka ia dapat menghitung:



Yang bernilai sama dengan (c’i/ci ) mod n jika di = 1 atau bernilai sama dengan 1 jika di = 0. Lalu, kita asumsikan tiap angka yang akan didapat adalah relatif prima terhadap n. Penyerang dapat dengan mudah menghitung semua nilai yang mungkin untuk (c’i/ci ) mod n, yang berjumlah sebanyak t2 karena c’i memiliki kemungkinan nilai sebanyak t. Penyerang kemudian membandingkan angka-angka yang didapatnya dengan (m’/m) mod n. Ketika didapatkan sebuah nilai yang sama, maka dapat diketahui i dan di adalah 1. Contoh ini menggambarkan ide dasar dari serangan ini. Contoh ini menunjukkan bahwa kesalahan bit pada lokasi tertentu dapat menyebabkan terbukanya kunci privat.

3. Man in The Middle

Serangan tipe ini sebenarnya tidak bersentuhan langsung dengan algoritma enkripsi yang digunkan, namun dengan memanfaatkan fakta bahwa setiap akan melakukan pengiriman pesan, seorang pengirim akan dikirimkan kunci publik. Kunci ini kemudian akan digunakan oleh pengirim untuk melakukan enkripsi data yang kemudian akan dikirim melalui saluran yang sama. Seorang penyerang dapat melakukan intercept pada saluran komunikasi yang digunakan oleh pengirim dan penerima dalam bertukar data. Untuk lebih jelasnya, skema serangan ini dapat dilihat pada gambar berikut


Misal, penerima mengirimkan kunci publik XYZ kepada pengirim pesan. Namun dalam perjalanannya, seorang penyerang menangkap kunci tersebut. Penyerang kemudia mengubah kunci publik tersebut dengan kunci publik ABC yang telah ia buat. Di sini pengirim pesan, percaya bahwa kunci yang dikirim adalah merupakan kunci dari penerima pesan.

Pengirim kemudian melakukan enkripsi terhadap pesan dengan kunci yang diterianya, kemudian mengirimkannya kepada penerima. Penyerang akan menerima pesan ter-ekripsi yang dikirim oleh pengirim. Oleh karena penyerang memiliki pasangan kunci publik ABC maka dengan mudah ia dapat mendekripsi pesan tersebut dan selanjutnya akan di enkripsi kembali dengan menggunakan kunci public XYZ sebelum diteruskan kepada pihak penerima.

4. Choosen Ciphertext Attack (CCA)

Skema dasar dari RSA sangat rentan terhadapat tipe serangan CCA. Skema Serangan Choosen Ciphertext Attack berupa seorang penyerang akan memilih beberapa buah ciphertext dan kemudian melakukan dekripsi untuk menghasilkan plainteks dengan kunci privat yang ia tentukan. Dengan langkah yang sama, penyerang akan melakukan proses enkripsi. Dari sini, penyerang dapat menganalisa pola yang terbentuk.
Seperti diketahui, bentuk dasar dari pola ekripsi RSA adalah
E({e,n},P1) X E({e,n},P2) = E({e,n},[P1 x P2])
Dari persamaan di atas, kita dapat melakukan dekripsi terhadap ciperteks C dengan persamaan C = Me mod n sebagai berikut :
misal: x = (C x 2e) mod n 
dari x diatas, kita dapat menemukan plainteks sebagai berikut :
x = (C mod n) x (2e mod n)
  = (Me mod n) x (2e mod n)
  = (2M)e mod n 
Untuk itu, dala praktiknya, sebelum dilakukan enkripsi terhadap sebuah pesan, RSA melakukan kombinas padding dan hashing pada pesan seperti yang diperlihatkan pada gambar di bawah, sehingga persamaan di atas tidak terpenuhi.

KELEBIHAN DAN KELEMAHAN RSA

Kekuatan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan menjadi faktor primanya, dalam hal ini memfaktorkan n menjadi p dan q. Karena sekali n berhasil difaktorkan, maka menghitung nilai m adalah perkara mudah. Selanjutnya, walau nilai e diumumkan, perhitungan kunci d tidaklah mudah pula karena nilai m yang tidak diketahui. Kelebihan lain algoritma RSA terletak pada ketahanannya terhadap berbagai bentuk serangan, terutama serangan brute force. Hal ini dikarenakan kompleksitas dekripsinya yang dapat ditentukan secara dinamis dengan cara menentukan nilai p dan q yang besar pada saat proses pembangitkan pasangan kunci, sehingga dihasilakan sebuah key space yang cukup besar, sehingga tahan terhadap serangan.

Namun demikian, kelebihan tersebut sekaligus menjadi kelemahan dari sistem ini. Ukuran kunci privat yang terlalu besar akan mengakibatkan proses dekripsi yang cukup lambat, terutama untuk ukuran pesan yang besar. Oleh karena itu, RSA umumnya digunakan untuk meng-enkripsi pesan berukuran kecil seperti kata kunci dari enkripsi simetris seperti DES dan AES yang kemudian kunci tersebut dikirim secara bersamaan dengan pesan utama.

KESIMPULAN

RSA merupakan metode penyandian yang masih kokoh untuk mengatasi masalah keamanan dalam pengiriman data pada suatu jaringan pada media elektronik. Dari segi teknis penghitungan, system RSA mempunyai cara enkripsi yang mudah, tetapi jika sudah dienkripsi, data yang terenkripsi sulit untuk dibobol jika hanya mempunyai kunci publiknya saja. Dalam proses pembuatan kunci publik dan kunci privat, terdapat beberapa faktor yang menjadi pertimbangan, yaitu ukuran dari kunci, penentuan nilai p dan q agar sulit untuk dibobol, dan kemungkinan-kemungkinan kelemahan yang dapat diketahui saat data selesai dienkripsi. Pada kehidupan sehari-hari, aplikasi sisten RSA dapat ditemukan pada system autentikasi data dan pembuatan tanda tangan digital pada komputer, pada tingkat perangkat keras, RSA banyak digunakan pada telepon yang mempunyai system pengaman dari penyadapan, kartu jaringan ethernet, dan pada kartu cerdas. RSA juga dimasukkan ke dalam protokol internet yang mempunyai sistem pengaman, seperti S-HTTP, S/MIME dan lain-lain

PENERERAPAN DAN PENYELESAIAN DES

PENERERAPAN DAN PENYELESAIAN DES


  Dalam bagian ini akan dilakukan penerapan dari langkah-langkah algoritma DES dengan Plaintext “ENKRIPSI” serta kunci eksternal yang digunakan adalah“SURABAYA”. Berikut ini adalah langkah-langkah penyelesaiannya :
a. Pendefinisian / Pembangkitan Kunci Internal 
Kunci : S U R A B A Y A
ASCII : 83 85 82 65 66 65 89 65
Bit : 01010011 01010101 01010010 01000001 01000010 01000001 01011001 01000001
Dari konversi 64 bit di atas dilakukan permutasi dengan Matriks PC-1 (Gambar 3), sehingga didapat 56 bit kunci :
Kunci : 0000000 0111111 1100000 0000100 0001010 1000000 1001000 0000111
Setelah itu dilakukan pemisahan C0 dan D0 yang masing-masing memilikipanjang 28 bit :
C0                                                                       D0
 Kunci : 0000000 0111111 1100000 0000100 0001010 1000000 1001000 0000111
            Selanjutnya dilakukan pergeseran bit kekiri (left-shift ) dari C0 dan D0 untuk membuat 16 sub kunci (kunci internal) dengan menggunakan Tabel 1, Berikutprosesnya :
C1= 0000000 1111111 1000000 0001000          D1 = 0010101 0000001 0010000 0001110
C2= 0000001 1111111 0000000 0010000          D2 = 0101010 0000010 0100000 0011100
C3= 0000111 1111100 0000000 1000000          D3 = 0101000 0001001 0000000 1110001
C4= 0011111 1110000 0000010 0000000          D4 = 0100000 0100100 0000011 1000101
C5= 1111111 1000000 0001000 0000000          D5 = 0000001 0010000 0001110 0010101
C6= 1111110 0000000 0100000 0000011          D6 = 0000100 1000000 0111000 1010100
C7= 1111000 0000001 0000000 0001111          D7 = 0010010 0000001 1100010 1010000
C8= 1100000 0000100 0000000 0111111          D8 = 1001000 0000111 0001010 1000000
C9= 1000000 0001000 0000000 1111111          D9 = 0010000 0001110 0010101 0000001
C10= 0000000 0100000 0000011 1111110        D10 = 1000000 0111000 1010100 0000100
C11= 0000001 0000000 0001111 1111000        D11 = 0000001 1100010 1010000 0010010
C12= 0000100 0000000 0111111 1100000        D12 = 0000111 0001010 1000000 1001000
C13= 0010000 0000001 1111111 0000000        D13 = 0011100 0101010 0000010 0100000
C14= 1000000 0000111 1111100 0000000        D14 = 1110001 0101000 0001001 0000000
C15= 0000000 0011111 1110000 0000010        D15 = 1000101 0100000 0100100 0000011
C16= 0000000 0111111 1100000 0000100        D16 = 0001010 1000000 1001000 0000111
            Dari masing-masing Cn dan Dn yang telah didapat, digabungkan keduanya dandilakukan permutasi Matriks PC-2 sesuai dengan ketentuan Gambar 4 sehinggaterbentuk kunci internal Kn dengan panjang 48 bit, Berikut ini adalah hasilnya :
K1=101000 001001 001001 000010 001001 000110 000001 010000
K2=101100 000001 001001 010010 110000 100000 100011 000001
K3=001001 000101 001001 010000 010000 101000 011000 100001 
K4=000001 100101 000101 010100 000100 110001 010100 001000
K5=000011 100100 000101 010001 010010 000001 000100 100000
K6=001011 110100 000100 101001 010000 000110 100000 101100
K7=100010 110000 000110 001001 011000 000001 100010 011000
K8=000110 010000 101010 001001 100000 010001 010000 111011
K9=001110 010000 100010 001000 111010 010100 011100 000000
K10=000100 000010 100010 001100 000110 000100 001000 000010
K11=000100 000010 110000 010100 110101 000100 000000 000100
K12=010001 000010 110000 100100 100000 100000 000010 001011
K13=110000 101010 010000 100100 101100 001011 001000 000001
K14=110010 001000 011000 100010 001100 100000 011000 100010
K15=110010 001000 001000 101010 000111 000010 100100 000010
K16=101000 001001 001010 100010 000001 000000 000110 100101
b. Enkripsi 
Sebelum dilakukan enkripsi ubah plainteks dalam bentuk bit, berikutpengubahannya :
Plainteks : E N K R I P S I
ASCII : 69 78 75 82 73 80 83 73
Bit : 01000101 01001110 01001011 01010010 01001001 01010000 01010011 01001001
Dari konversi 64 bit di atas dilakukan permutasi dengan Matriks IP (Gambar 5),sehingga didapat 64 bit kunci :
Plainteks : 11111111 01101000 00000011 11010101 00000000 00000000 10010110 01001110
Setelah itu dilakukan pemisahan L0 dan R0 yang masing-masing memilikipanjang 32 bit :
L0                                                                R0
Plainteks : 11111111 01101000 00000011 11010101 00000000 00000000 10010110 01001110
Iterasi / Putaran 1
            Sebelum dilakukan ciphering dilakukan permutasi R0 32 bit dengan matriks Ekspansi (E) dan menghasilkan R0 48 bit, berikut hasilnya :
E(R0) = 000000 000000 000000 000001 010010 101100 001001 011100
Langkah selanjutnya dilakukan operasi XOR antara E(R0) dan K1, serta selanjutnya dilakukan substitusi S-Box dan Permutasi (P) untuk menghasilkan feistel (f) (Lihatdi halaman Lampiran), berikut langkah operasinya :
 N = 1
K1 = 101000 001001 001001 000010 001001 000110 000001 010000
E(R0) = 000000 000000 000000 000001 010010 101100 001001 011100
XOR
            101000 001001 001001 000011 011011 101010 001000 001100
            S1        S2         S3         S4         S5         S6         S7         S8
S(B) = 1101 1111 0011 1000 1001 1000 0100 0001
f = 0111 0101 1001 1000 1100 1000 0101 0110
R1= L0 XOR f (R0, K1)
    = 1111 1111 0110 1000 0000 0011 1101 0101
       0111 0101 1001 1000 1100 1000 0101 0110
XOR
_______________________________________
= 1000 1010 1111 0000 1100 1011 1000 0011
Iterasi / Putaran 2 
Setelah itu dilakukan ciphering iterasi berikutnya dengan K2 yang sebelumnyadilakukan permutasi R1 32 bit dengan matriks Ekspansi (E) (Lihat di halamanLampiran) dan menghasilkan R1 48 bit, berikut hasilnya :
E(R1) = 110001 010101 011110 100001 011001 010111 110000 000111
Langkah selanjutnya dilakukan operasi XOR antara
E(R1) dan K2, serta selanjutnyadilakukan substitusi S-Box dan Permutasi (P) untuk menghasilkan feistel (f) (Lihatdi halaman Lampiran), berikut langkah operasinya :
N = 2
L2 = R1= 1000 1010 1111 0000 1100 1011 1000 0011
K2 = 101100 000001 001001 010010 110000 100000 100011 000001
E(R1) = 110001 010101 011110 100001 011001 010111 110000 000111
XOR
___________________________________________________________
             011101 010100 010111 110011 101001 110111 010011 000110
             S1         S2         S3          S4         S5         S6        S7             S8
S(B) = 0011 0010 1110 0100 0001 0111 0011 1000
f  = 0110 1010 0010 0001 0011 0111 0000 1110
R2 = L1 XOR f(R1, K2)
=1000 1010 1111 0000 1100 1011 1000 0011
  0110 1010 0010 0001 0011 0111 0000 1110
XOR
______________________________________
 = 1110 0000 1101 0001 1111 1100 1000 1101
Skip Iterasi & Hasil 
            Ciphering tersebut dilakukan terus menerus hingga mencapai 16 iterasi,kemudian L16
dan R16 digabungkan dan dilakukan permutasi akhir Matriks IP-1 (Invers Initial Permutation), berikut hasil penggabungannya :
Cipher = 0000 1110 0010 0000 0011 1001 0110 1111 1111 0000 1100 0101 0010 1001 0110 0111
            Berikut ini adalah hasil permutasi cipherteks dengan Matriks IP-1 beserta konversi bit cipher ke dalam ASCII dan simbol :
Bit : 00101111 01000011 01100011 01001101 10000100 10011111 10100011 10100000
ASCII : 47 67 99 77 132 159 163 160
Cipher : / C c M äƒύá

            Maka hasil enkripsi plainteks ”ENKRIPSI” dengan kunci eksternal ”SURABAYA”melalui algoritma DES (Data Encryption Standard) adalah ” /CcMäƒύá”. 

Jumat, 06 Januari 2017

ALGORITMA RSA

Algoritma RSA merupakan salah satu algoritma public key yang populer dipakai dan bahkan masih dipakai hingga saat ini. Kekuatan algoritma ini terletak pada proses eksponensial, dan pemfaktoran bilangan menjadi 2 bilangan prima yang hingga kini perlu waktu yang lama untuk melakukan pemfaktorannya.
Algoritma ini dinamakan sesuai dengan nama penemunya, Ron Rivest, Adi Shamir dan Adleman(Rivest-Shamir-Adleman) yang dipublikasikan pada tahun 1977 di MIT, menjawab tantangan yang diberikan algoritma pertukaran kunci Diffie Hellman.
Skema RSA sendiri mengadopsi dari skema block cipher, dimana sebelum dilakukan enkripsi, plainteks yang ada dibagi – bagi menjadi blok – blok dengan panjang yang sama, dimana plainteks dan cipherteksnya berupa integer(bilangan bulat) antara 1 hingga n, dimana n berukuran biasanya sebesar 1024 bit, dan panjang bloknya sendiri berukuran lebih kecil atau sama dengan log(n) +1 dengan basis 2. Fungsi enkripsi dan dekripsinya dijabarkan dalam fungsi berikut :
 C = Me mod n ( fungsi enkripsi )
M = Cd mod n (fungsi dekripsi)
C = Cipherteks
M = Message / Plainteks
e = kunci publik
d= kunci privat
n = modulo pembagi(akan dijelaskan lebih lanjut )
Kedua pihak harus mengetahui nilai e dan nilai n ini, dan salah satu pihak harus memilki d untuk melakukan dekripsi terhadap hasil enkripsi dengan menggunakan public key e. Penggunaan algoritma ini harus memenuhi kriteria berikut :
1. Memungkinkan untuk mencari nilai e, d, n sedemikian rupa sehingga Med mod n = M untuk semua M < n.
2. Relatif mudah untuk menghitung nilai Me mod n dan Cd mod n untuk semua nilai M < n.
3. Tidak memungkinkan mencari nilai d jika diberikan nilai n dan e.
Syarat nilai e dan d ini, gcd(d,e)=1
sebelum memulai penggunaan RSA ini, terlebih dahulu kita harus memiliki bahan – bahan dasar sebagai berikut :
1. p, q = 2 bilangan prima yang dirahasiakan
2. n, dari hasil p.q
3. e, dengan ketentuan gcd (Φ(n), e) =1
4. d, e-1 (mod Φ(n))
Saya akan berikan satu contoh :
1. Pilih 2 bilangan prima, misalnya p = 17 dan q = 11.
2. Hitung n = pq = 17 × 11 = 187.
3. Hitung Φ(n) = (p – 1)(q – 1) = 16 × 10 = 160.
4. Pilih nilai e sedemikian sehingga relatif prima terhadap Φ(n) = 160 dan kurang dari Φ(n); kita pilih e = 7.
5. Hitung d sedemikian sehingga de ≡ 1 (mod 160) dan d < 160.Nilai yang didapatkan d = 23,karena  23 × 7 = 161 = (1 × 160) + 1; d dapat dihitung dengan Extended Euclidean Algorithm.
Nah, nilai e dan d inilah yang kita sebut sebagai Public Key(e) dan Private Key(d).  Pasangan Kunci Publiknya ={7,187} dan Kunci Privatnya = {23, 187}
Sekarang kita aplikasikan dalam proses enkripsi.
Misalnya kita punya M 88. Untuk proses enkripsi, kita akan menghitung C = 887 mod 187.
= 887 mod 187.
=894,432 mod 187
=11
Nah, kita mendapatkan nilai C =11.
Selanjutnya, nilai C ini dikirimkan kepada penerima untuk didekripsi dengan kunci privat miliknya.
M = Cd mod n
= 1123 mod 187
=79,720,245 mod187
= 88
Inilah sekilas dari algoritma RSA. Semoga bermanfaat🙂

Senin, 24 Oktober 2016

KSK KRIPTOGRAFI

KRIPTOGRAFI

Kriptografi (cryptography) berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data .Tetapi tidak semua aspek keamanan informasi dapat diselesaikan dengan kriptografi.
Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan pesan.


1. Kriptografi Simetris

Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher yang tidak dapat dipecahkan menggunakanteknik analisis frekuensi. Berbeda dengan caesar cipher, hill cipher tidak mengganti setiap abjad yang sama pada plainteks dengan abjad lainnya yang sama pada cipherteks karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya. 
Hill cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptografi ini enggunakan sebuah matriks persegi sebagai kunci berukuran m x m sebagai kunci untuk melakukan enkripsi dan dekripsi. Dasar teori matriks yang digunakan dalam Hill cipher antara lain adalah perkalian antar matriks dan melakukan invers pada matriks 
Karena menggunakan matriks sebagai kunci, Hill cipher merupakan algoritma kriptografi kunci simetris yang sulit dipecahkan, karena teknik kriptanalisis seperti analisis frekuensi tidak dapat diterapkan dengan mudah untuk memecahkan algoritma ini. Hill cipher sangat sulit dipecahkan jika kriptanalis hanya memiliki ciphertext saja (chipertext-only), namun dapat dipecahkan dengan mudah jika kriptanalis memiliki ciphertext dan potongan dari plaintext-nya (known-plaintext).
  • Enkripsi
Enkripsi (Encryption) adalah sebuah proses menjadikan pesan yang dapat dibaca (plaintext) menjadi pesan acak yang tidak dapat dibaca (ciphertext). Berikut adalah contoh enkripsi yang digunakan oleh Julius Caesar, yaitu dengan mengganti masing-masing huruf dengan 3 huruf selanjutnya (disebut juga Additive/Substitution Cipher):
PlaintextCiphertext
rumahxasgn
motorsuzux
komporqusvux
dst…

  • Dekripsi

Dekripsi merupakan proses kebalikan dari enkripsi dimana proses ini akan mengubah ciphertext menjadi plaintext dengan menggunakan algortima ‘pembalik’ dan key yang sama. Contoh:
CiphertextPlaintext
xasgnrumah
suzuxmotor
qusvuxkompor
dst…

2. Kriptografi Asimetris

Algoritma asimetris, sering juga disebut dengan algoritma kunci publik atausandi kunci publik, menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key). Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan. 
Kunci publik bersifat umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja. Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang tertentu saja yang boleh mengetahuinya. Keuntungan utama dari algoritma ini adalah memberikan jaminan keamanan kepada siapa saja yang melakukan pertukaran informasi meskipun di antara mereka tidak ada kesepakatan mengenai keamanan pesan terlebih dahulu maupun saling tidak mengenal satu sama lainnya. 

Contoh Kriptografi Asimetris

Contoh RSA:
  1. Kunci Publik:
    • Pilih bil. prima p = 7 dan q = 11, n = 7.11 =77
    • F(n)=(p-1).(q-1)=6.10= 60 artinya
       F(n)={1,2,3,4,6,8,..,76}={x|gcd(x, n)=1}
    • Pilih e dalam {x|gcd(x, 60)=1}, misalnya e=17
    • Hapus p dan q dan Kunci Publik n=77, e=17
  2. Kunci Rahasia:
  3. 3. Kriptografi Hibrid

    Permasalahan yang menarik pada bidang kemanan informasi adalah adanya trade off antara kecepatan dengan kenyamanan. Semakin aman semakin tidak nyaman, berlaku juga sebaliknya semakin nyaman semakin tidak aman. Salah satu contohnya adalah bidang kriptografi. Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrida. Kriptografi hibrida sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetrik dan kemudahan transfer kunci menggunakan algoritma asimetrik. Hal ini mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan. Aplikasi kriptografi hibrida yang ada saat ini pada umumnya ditujukan untuk penggunaan umum atau mainstream yang merupakan pengguna komputer.

    Aplikasi pada umumnya mengikuti perkembangan hardware komputer yang semakin cepat dari waktu ke waktu. Sehingga hardware yang sudah lama tidak dapat difungsikan sebagaimana mestinya. Selain itu banyak perangkat embedded dengan kekuatan pemrosesan maupun daya yang terbatas. Terutama dengan trend akhir akhir ini, hampir semua orang memiliki handheld device yang mempunyai kekuatan terbatas, seperti telepon seluler. 
    Dalam tugas akhir ini dibahas mengenai perancangan sebuah aplikasi kriptografi hibrida yang ditujukan untuk kalangan tertentu, terutama pemakai hardware dengan kekuatan pemrosesan yang terbatas. Aplikasi yang ingin dicapai adalah aplikasi yang sederhana, ringan dan cepat tanpa mengurangi tingkat keamanan menggunakan hash. 

    Sistem ini mengggabungkan chiper simetrik dan asimetrik. Proses ini dimulai dengan negosiasi menggunakan chiper asimetrik dimana kedua belah pihak setuju dengan private key/session key yang akan dipakai. Kemudian session key digunakan dengan teknik chiper simetrik untuk mengenkripsi conversation ataupun tukar-menukar data selanjutnya. Suatu session key hanya dipakai sekali sesi. Untuk sesi selanjutnya session key harus dibuat kembali. 

Contoh Kriptografi Hibrid

Metode hibrida terdiri atas enkripsi simetris dengan satu kunci (Session Key) dan enkripsi asimetris dengan sepasang kunci (Public/Private Key).
  1. Langkah 1 : Pengirim mengenkripsi teks dengan Session Key.
  2. Langkah 2 : Mengenkripsi Session Key dengan Public Key.
  3. Langkah 3 : Penerima men-decrypt Session Key dengan Private Key. Langkah 4 : Men-decrypt teks dengan Session Key.

TEKNIK DASAR KRIPTOGRAFI

Teknik Dasar Kriptografi Terbagi 5 Jenis, yaitu :
1. Substitusi

2. Blocking
3. Permutasi
4. Ekspansi
5. Pemampatan




Lanjut Ke penjelasan Dan Contohnya :


1. SUBSTITUSI

Dalam kriptografi, sandi substitusi adalah jenis metode enkripsi dimana setiap satuan pada teks terang digantikan oleh teks tersandi dengan sistem yang teratur. Metode penyandian substitusi telah dipakai dari zaman dulu (kriptografi klasik) hingga kini (kriptografi modern),
Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan decrypt.  Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahanciphertext oleh orang yang tidak berhak.
Metode ini dilakukan dengan mengganti setiap huruf dari teks asli dengan huruf lain sebagai huruf sandi yang telah didefinisikan sebelumnya oleh algoritma kunci.



Contoh:
Metode Penyandian Substitusi Sederhana



2. BLOCKING
Sistem enkripsi ini terkadang membagi plaintext menjadi beberapa blok yang terdiri dari beberapa karakter, kemudian di enkripsikan secara independen.

Caranya :
Plaintext dituliskan secara vertikal ke bawah berurutan pada lajur, dan dilanjutkan pada kolom berikutnya sampai seluruhnya tertulis. Ciphertext-nya adalah hasil pembacaan plaintext secara horizontal berurutan sesuai dengan blok-nya.

Contoh :




3. PERMUTASI
Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut transposisi. Teknik ini memindahkan atau merotasikan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak. Pada teknik permutasi, identitas karakternya tetap, namun posisinya yang diacak.

Caranya
Sebelum dilakukan permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.
Plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi, sebagai berikut :





4. EKSPANSI
Suatu metode sederhana untuk mengacak pesan adalah dengan memelarkan pesan itu dengan aturan tertentu.  Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata di akhir kata itu dan menambahkan akhiran “an”. Jika suatu kata dimulai dengan huruf vokal atau bilangan genap, ditambahkan akhiran “i”.
Contoh :




5. PEMAMPATAN

Mengurangi panjang pesan atau jumlah bloknya dengan cara lain untuk menyembunyikan isi pesan.
Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ke-tiga secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai “lampiran” dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini menggunakan ”  * “.

Contoh :