.

Rabu, 02 Oktober 2013

KRIPTOGRAPHI

KRIPTOGRAPHI 

Saat ini bukan hanya militer yang membutuhkan sandi dalam berkomunikasi. Dalam bisnispun banyak hal terutama yang berkaitan dengan transaksi membutuhkan sandi agar hanya yang berkepentingan saja yang bisa mengerti maksudnya.. Dengan berkembangnya serta akrabnya orang dengan internet, tidak sedikit orang yang menggunakan fasilitas internet untuk berkomunikasi dengan cara menggunakan sandi, yang dalam  ilmu pengetahuan disebut kriptographi. 
Katakanlah Wina dan Johan bersepakat untuk saling mengirim pesan lewat internet sehingga orang lain seperti Thea tidak akan mengerti maksudnya. Pesan yang sesungguhnya yang disebut plaintext akan dikirim oleh Wina dengan cara disandikan dulu menjadi pesan dalam bentuk sandi yang disebut ciphertext. Proses mengubah dari plaintext menjadi ciphertext ini disebut enkripsi. Tetapi Johan yang menerima pesan ini dalam bentuk ciphertext harus mengubah dulu menjadi plaintext dengan cara yang sudah disepakati bersama antara Wina dan Johan. Proses pengubahan dari ciphertext menjadi plaintext ini disebut proses dekripsi.
Baik dalam proses enkripsi maupun dekripsi dibutuhkan kunci, kunci ini merupakan kesepakatan yang telah ditentukan semula. Bisa berbentuk formula matematika ataupun aturan yang berlaku.
Misalnya plaintext mempunyai n buah huruf dalam alphabet. Plaintext ini dinyatakan dalam vektor x  :
                                 x = ( x1 x2 x3 … xn )  dengan  xi adalah huruf
Setelah di enkripsi menjadi ciphertext  dalam bentuk :
                                 y = ( y1 y2 y3 … ym )  dengan yi  juga huruf
Jadi disini    y =  Ek (x)       dan  x = Dk (y)
Ek  adalah kunci Enkripsi, sedangkan  Dk adalah kunci Dekripsi

Beberapa cipher yang sederhana

  1. Cipher pergeseran
Cipher ini adalah cipher yang paling sederhana dalam sistem kriptographi. Sistem ini telah digunakan oleh Julius Caesar kira-kira 2000 tahun yang lalu.
Agar bentuknya menjadi sederhana, kita tidak membedakan antara huruf besar dan huruf kecil. Spasi dan tanda-tanda baca dianggap tidak ada. Kita ubah ke-26 huruf alphabet ini dalam bilangan bulat dari 0 sampai 25 seperti tabel berikut.

      Tabel 1.   Perubahan huruf menjadi bilangan bulat

     A    0                      J           9                      S          18               
     B     1                      K         10                    T          19
     C    2                      L          11                    U         20                   
     D    3                      M         12                    V         21
     E     4                      N         13                    W        22
     F     5                      O         14                    X         23
     G    6                      P          15                    Y         24
     H    7                      Q         16                    Z          25
      I     8                      R          17

Aturan Enkripsi dalam menggeser cipher ditentukan oleh formula matematika :
                                    yi = (xi + k) mod 26  =  Ek (x)
Sedangkan aturan Dekripsinya adalah :
                                    xi = (yi – k) mod 26  =  Dk (yi)
Dengan catatan : bilangan a mod m = b dibaca a modulo m sama dengan b  artinya bila bilangan a dibagi m  hasilnya sama dengan suatu bilangan dengan sisa b ( b harus bilangan positif)
Misal   :   10 mod 26  = 10  karena  10 : 26 = 0 sisa 10
                 30 mod 26 = 4   karena  30 : 26 =  1 sisa 4
                  -5 mod 26 = 21  karena  -5 : 26 = -1 sisa 21

Contoh  : Wina akan meng enkrip pesan  ”JOHAN ITU BAIK”  dengan mengambil
                k = 10
                 Proses enkripsi :
                 Plaintext  : J  =  9  ; ciphertext  9 + 10 = 19 ;  19 mod 26 = 19 →  T
                                   O = 14                    14+10 = 24  ;  24 mod 26 = 24 → Y
                                   H = 7                        7 + 10 = 17 ;  17 mod 26 = 17 → R
                                                                               Dan seterusnya, akan didapat ciphertext
                                                                               TYRKXSDELKSU

Adapun proses dekripsinya :

ciphertext T = 19 ;   plaintext  19 – 10 = 9 ;       9 mod 26 = 9    J
                 Y = 24                    24 – 10 = 14 ; 14 mod 26 = 14    O
                 R = 17                    17 – 10 = 7  ;      7 mod 26 = 7    H
                                                                             Dan seterusnya, akan didapat plaintext
                                                                             JOHANITUBAIK

        2.  Cipher Vigenere
Cipher ini diciptakan oleh Blaise Vigenere pada abad ke-16. Dibandingkan dengan cipher pergeseran dari Julius Caesar, cipher ini lebih kuat; maksudnya lebih sulit bagi orang yang tidak berhak untuk menganalisis dalam mendapatkan plaintext.
Dalam proses enkripsi, ada kata kunci, sebutlah  
                                                      k = k1 k2 k3 …km
Dan dengan menggunakan tabel 1, aturan dalam enkripsi adalah
                                      Ek (x) = (x1+k1 x2+k2……xm+km) mod 26
Sedangkan dekipsinya adalah :
                                      Dk (y) =(y1-k1 y2-k2 ……ym-km)
Apaabila kata kuncinya lebih pendek dari pesan dalam plaintext,  maka dilakukan pengulangan.
Sebagai contoh akan dilakukan enkripsi dari  “JOHAN ITU BAIK YA”, dengan kata kunci “RICHIE”. Dilakukan pemotongan sebagai berikut. Karena kata kunci terdiri dari 6 buah huruf, plaintext dipotong-potong masing-masing 6buah huruf juga.
RICHIE + JOHANI     ;  RICHIE + TUBAIK    ;   RI + YA
Proses Enkripsi :  R + J = (17 + 9) mod 26 = 26 mod 26 = 0    A
                             I + O = (8 + 14) mod 26 = 22 mod 26 = 22     W
                             C + H = (2 + 7) mod 26 = 9 mod 26 = 9     J
                                                                      Dan seterusnya, akan didapat ciphertextnya :
                                                                      AWJHVMKCDHQPWI

      3.   Cipher Substitusi.
Dalam cipher ini setiap huruf disubstitusi secara acak dengan huruf yang lain (boleh juga ada yang sama). Misal dalam tabel berikut ruas kiri adalah huruf dalam plaintext, diganti  denga ruas kanan sebagai ciphertext

                    Tabel 2 .  Contoh substitusi

      A  =  Q                  J  =  P              S  =  L
      B  =  W                  K =  A             T  =  Z
      C  =  E                   L =  S              U  =  X
      D  =  R                   M =  D             V  =  C
      E   = T                   N  =  F             W =  V
      F   = Y                   O  =  G            X  =  B
      G  =  U                  P  =  H             Y  =  N
      H  =  I                    Q  =  J             Z  =  M

Dengan substitusi ini, pesan “JOHAN ITU BAIK’  menjadi  PGIQFOZXWQOA

       4.  Cipher substitusi sandi binair.
Misal dalam cipher ini dilakukan substitusi dilakukan masing-masing dalam blok tiga bit.
Sebutlah  X sebagai plaintext dan Y sebagai ciphertext dengan substitusi :  


                                             Tabel  3  .   Tabel enkripsi

X  :   000        001        010        011        100        101        110        111
Y  :   011        111        000        110        010        100        101        001

Untuk plaintext dengan pesan : “JOHAN ITU BAIK YA”   dipecah dalam beberapa blok :JOH   ANI    TUB   AIK   YA.  
Tetapi pada blok terakhir hanya ada dua huruf. Dalam hal ini kita bisa menambah sebuah huruf lagi missal huruf “A”. Sehingga blok terakhir menjadi “YAA”
Dalam proses baik enkripsi maupun dekripsi menggunakan bilangan binair dengan tabel sebagai berikut :

                     Tabel 4.  Tabel bilangan binair

0 = 00000                    1 = 00001                    2 = 00010
3 = 00011                    4 = 00100                    5 = 00101                   
6 = 00110                    7  =  00111                  8  =  01000
9  =  01001                  10 = 01010                  11 = 01011
12 = 01100                  13 = 01101                  14 =  01110
15 =  01111                 16 = 10000                  17 = 10001
18 = 10010                  19 = 10011                  20 = 10100
21 = 10101                  22 = 10110                  23 = 10111
24 = 11000                  25 = 11001                  26 = 11010
27 = 11011                  28 = 11100                  29 = 11101
30 = 11110                  31 = 11111
Sehingga  proses enkripsinya :
                J   =  8   =  01001
                O  =  14 =  01110                                                                                                     
                H  =  7   =  00111
                JOH      =   010010111000111 , selanjutnya di blok setiap tiga bit; menjadi
                010   010   111   000   111   dan dari tabel 3. didapat enkripsi
               100    000   001   011   001 .  Kemudian dikembalikan dalam blok 5 bit
               10000     =  16   =   Q   ;     00010    =   2   =  C   ;   11001   =   25    =  Z
                Jadi ciphertext dari “JOH”   adalah  “QCZ”
          Bila dijumpai konversi dari lima buah bit menjadi > 25, harus di modulo kan 26.

Kekuatan dan Keamanan  
Dalam menganalisis sistem kriptographi  bisa dihitung seberapa kuat  keamanan suatu  sistem; yaitu sebarapa sulit / lama menghitung untuk mendapatkan dekripsinya. Seperti pada contoh 1, hanya dengan 25 kali percobaan (dengan cara menggeser alphabet) dekripsi sudah bisa ditemukan. Dan dengan demikian  orang lain yang melakukan analisis untuk menemukan proses dekripsi bisa membaca informasi yang sebenarnya. 
Dalam contoh kedua, kekuatannya lebih besar dari contoh pertama. Untuk menelusuri dalam menemukan plaintext dibutuhkan kunci sebanyak 26m. Ambil untuk m = 7, harus menelusuri sebanyak 267 yang sama dengan 8.031.810.176.untuk mendapatkan informasi sebenarnya.
Masih banyak sistem kriptographi yang ada. Selain dengan pergeseran alphabet, ada pula dengan cara permutasi, dan ada yang lain lagi.  Semakin kuat system dalam kriptographi, keamanan semakin terjamin, semakin dicari orang.
Sistem kriptographi yang terkenal kekuatannya hingga saat ini adalah sistem RSA . Adalah Rivest, Shamir,dan Adleman (RSA) pada tahun 1976 yang meneliti serta menemukan algoritma RSA ini.
Kuatnya keamanan dalam sistem kriptographi RSA bisa dilihat dalam proses enkripsi maupun dekripsi nya. Sistem kriptographi RSA menggunakan bilangan prima dan bilangan modulo. Menurut penemunya untuk memfaktorkan bilangan bulat yang terdiri dari 200 digit menjadi factor primanya membutuhkan waktu 4 milyard tahun dengan kecepatan computer pada saat itu. Padahal faktorisasi ini adalah salah satu cara yang digunakan sistem kriptographi RSA.

Tidak ada komentar:

Posting Komentar

free counters