Analisis Algoritma Enkripsi dan deskripsi datadengan algoritma Kriptografi “shift cipher”
-
Upload
selvi-diah-mutiara -
Category
Documents
-
view
65 -
download
6
description
Transcript of Analisis Algoritma Enkripsi dan deskripsi datadengan algoritma Kriptografi “shift cipher”
ENKRIPSI DAN DESKRIPSI DATA
DENGAN ALGORITMA KRIPTOGRAFI
“SHIFT CIPHER”
Nurul Zukhaila
Nurul Indrianingsih
Selvidiah Mutiara
Siti Rupiah
Shift Cipher (Sandi Geser)Dalam kriptografi, sandi Caesar, atau sandi geser, kode Caesar atau
Geseran Caesar adalah salah satu teknik enkripsi paling sederhana dan paling terkenal. Sandi ini termasuk sandi substitusi dimana setiap huruf pada teks terang (plaintext) digantikan oleh huruf lain yang memiliki selisih posisi tertentu dalam alfabet. Misalnya, jika menggunakan geseran 3, W akan menjadi Z, I menjadi L, dan K menjadi N sehingga teks terang “wiki” akan menjadi “ZLNL” pada teks tersandi. Nama Caesar diambil dari Julius Caesar, jenderal, konsul, dan diktator Romawi yang menggunakan sandi ini untuk berkomunikasi dengan para panglimanya.
Seperti :ABCDEFGHIJKLMNOPQRSTUPWXYZ
DEFGHIJKLMNOPQRSTUPWXYZABC
Jadi setiap huruf yang akan di sandikan di geser sebanyak 3 karakter ke kanan.
Contoh
Plainteks : SUMATERA UTARAMaka Cipher Teks : PXPDWHUD XWDUD
Desain Form
Algoritma• Untuk Mengenkripsikan plaintext
• Inputkan bit geser atau kunci pergeseran yang diinginkan
• Inputkan plaintext. Apabila plaintext berupa data klik browse, pilih data yang ingin dienkripsikan
• Klik Enkripsi untuk mengkonversi plaintext pada Text1 sesuai dengan pergeseran yang telah kita inputkan dalam bit geser, hasil enkripsi(CipherText) dari Text1 akan tampil pada Text2.
• Klik Save untuk menyimpan hasil enkripsi
• Untuk mendeskripsikan ciphertext
• Inputkan bit geser atau kunci pergeserannya
• Inputkan ciphertext. Apabila ciphertext berupa data klik browse, pilih data yang ingin dideskripsikan
• Klik Deskripsi untuk mengkonversi ciphertext pada Text3 sesuai dengan kunci pergeserannya, hasil deskripsi(plainText) dari Text3 akan tampil pada Text4.
• Klik Save untuk menyimpan hasil deskripsi
PseudocodeENKRIPSI
Input(bit_geser)
Input(Plaintext)
x Timer
bit Val(Textbit.Text)
If Textbit.Text "" Then
MsgBox "BIT GESER BELUM DIINPUTKAN"
ElseIf Mid(Textbit.Text, 1, 1) "-" Then
If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then
MsgBox "INPUT SALAH"
Else
bit 26 - (Mid(Textbit.Text, 2, 2))
End If
ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then
MsgBox "INPUT SALAH"
ElseIf Not IsNumeric(Textbit.Text) Then
bit (Asc(UCase(Textbit.Text)) - 13) Mod 26
End If
For i 1 To Len(text1.Text)k Asc(Mid(text1.Text, i, i))If ((k >= 65) And (k <= 90)) Thenjk – 65
m (j + bit) Mod 26
k m + 65ElseIf ((k >= 97) And (k <= 122)) Thenj k – 97m (j + bit) Mod 26
k m + 97End IfC C & Chr(k)text2.Text CLabel7.Caption Len(text1.Text) & " karakter"Next iy Timerz CDbl(y) - CDbl(x)Label8.Caption zIf text1.Text "" ThenMsgBox "PLAINTEXT BELUM DIINPUTKAN"text1.SetFocusEnd IfOutput(ciphertext)
DESKRIPSI
Input(bit_geser)
Input(ciphertext)
x Timer
bit Val(Textbit.Text)
If Textbit.Text "" Then
MsgBox "BIT GESER BELUM DIINPUTKAN"
ElseIf Mid(Textbit.Text, 1, 1) "-" Then
If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then
MsgBox "INPUT SALAH"
Else
bit 26 - (Mid(Textbit.Text, 2, 2))
End If
ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then
MsgBox "INPUT SALAH"
O(1)
ElseIf Not IsNumeric(Textbit.Text) Then
bit (Asc(UCase(Textbit.Text)) + 13) Mod 26
End If
For i 1 To Len(text3.Text)k = Asc(Mid(text3.Text, i, i))If ((k >= 65) And (k <= 90)) Thenj k – 65m ((bit + j) Mod 26) - ((2 * bit) Mod 26)If m < 0 Thenk 91 + mElsek65 + mEnd IfElseIf ((k >= 97) And (k <= 122)) Thenj k – 97m ((j + bit) Mod 26) - ((2 * bit) Mod 26)If m < 0 Thenk 123 + mElsek m + 97End IfEnd IfC C & Chr(k)text4.Text CLabel10.Caption = Len(text3.Text) & " karakter"Next iy Timerz CDbl(y) - CDbl(x)Label8.Caption zIf text1.Text "" ThenMsgBox "CIPHERTEXT BELUM DIINPUTKAN"text1.SetFocusEnd IfOutput(Plaintext)
Kompleksitas WaktuENKRIPSI
Input(bit_geser)O(1)
Input(Plaintext)O(1)
x TimerO(1)
bit Val(Textbit.Text)O(1)
If Textbit.Text "" Then
MsgBox "BIT GESER BELUM DIINPUTKAN"O(1)
ElseIf Mid(Textbit.Text, 1, 1) "-" Then
If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then
MsgBox "INPUT SALAH"O(1)
Else
bit 26 - (Mid(Textbit.Text, 2, 2)) O(1)
End If
ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then
MsgBox "INPUT SALAH"O(1)
ElseIf Not IsNumeric(Textbit.Text) Then
bit (Asc(UCase(Textbit.Text)) - 13) Mod 26 O(1)
End If
For i 1 To Len(text1.Text)k Asc(Mid(text1.Text, i, i)) O(n)If ((k >= 65) And (k <= 90)) Thenjk – 65 O(n)m (j + bit) Mod 26 O(n)k m + 65 O(n)ElseIf ((k >= 97) And (k <= 122)) Thenj k – 97 O(n)m (j + bit) Mod 26 O(n)k m + 97 O(n)End IfC C & Chr(k) O(n)text2.Text C O(n)Label7.Caption Len(text1.Text) & " karakter" O(n)Next iy Timer O(1)z CDbl(y) - CDbl(x) O(1)Label8.Caption z O(1)If text1.Text "" ThenMsgBox "PLAINTEXT BELUM DIINPUTKAN” O(1)text1.SetFocusEnd IfOutput(ciphertext)
DESKRIPSI
Input(bit_geser)O(1)
Input(ciphertext)O(1)
x TimerO(1)
bit Val(Textbit.Text)O(1)
If Textbit.Text "" Then
MsgBox "BIT GESER BELUM DIINPUTKAN"O(1)
ElseIf Mid(Textbit.Text, 1, 1) "-" Then
If Not IsNumeric(Mid(Textbit.Text, 2, 2)) Then
MsgBox "INPUT SALAH"O(1)
Else
bit 26 - (Mid(Textbit.Text, 2, 2)) O(1)
End If
ElseIf Asc(Textbit.Text) < 45 Or (Asc(Textbit.Text) > 45 And Asc(Textbit.Text) < 48) Or Asc(Textbit.Text) > 122 Or (Asc(Textbit.Text) > 57 And Asc(Textbit.Text) < 65) Or (Asc(Textbit.Text) > 90 And Asc(Textbit.Text) < 95) Then
MsgBox "INPUT SALAH"O(1)
ElseIf Not IsNumeric(Textbit.Text) Then
bit (Asc(UCase(Textbit.Text)) + 13) Mod 26 O(1)
End If
For i 1 To Len(text3.Text)k = Asc(Mid(text3.Text, i, i)) O(n)If ((k >= 65) And (k <= 90)) Thenj k – 65 O(n)m ((bit + j) Mod 26) - ((2 * bit) Mod 26) O(n)If m < 0 Thenk 91 + m O(n)Elsek65 + m O(n)End IfElseIf ((k >= 97) And (k <= 122)) Thenj k – 97 O(n)m ((j + bit) Mod 26) - ((2 * bit) Mod 26) O(n)If m < 0 Thenk 123 + m O(n)Elsek m + 97 O(n)End IfEnd IfC C & Chr(k) O(n)text4.Text C O(n)Label10.Caption = Len(text3.Text) & " karakter“ O(n)Next iy Timer O(1)z CDbl(y) - CDbl(x) O(1)Label8.Caption z O(1)If text1.Text "" ThenMsgBox "CIPHERTEXT BELUM DIINPUTKAN“ O(1)text1.SetFocusEnd IfOutput(Plaintext)
Kompleksitas Waktu T(n) pada enkripsi T(n)= 10 O(n)+ 13 O(1)
Big Oh
10 O(n)+ 13 O(1) ≤ 13 O(n)+ 13 O(1)
10 O(n)+ 13 O(1) ≤ 13 (O(n)+ O (1))
10 O(n)+ 13 O(1) ≤ O(n)+ O(1)
Jadi Big Oh = O(n)
Big Omega
10 O(n)+ 13 O(1) ≥ 13 O(n)+ 13 O(1)
10 O(n)+ 13 O(1) ≥ 13 (O(n)+ O (1))
10 O(n)+ 13 O(1) ≥O(n)+ O(1)
Jadi Big Omega = O(n)
Big Theta
O(T(n))= (T(n))= O(n) maka (T(n)) = O(n)
Kompleksitas Waktu T(n) pada DeskripsiT(n)= 12 O(n)+ 13 O(1)
Big Oh12 O(n)+ 13 O(1) ≤ 13 O(n)+ 13 O(1)12 O(n)+ 13 O(1) ≤ 13 (O(n)+ O (1))12 O(n)+ 13 O(1) ≤ O(n)+ O(1)Jadi Big Oh = O(n)
Big Omega12 O(n)+ 13 O(1) ≥ 13 O(n)+ 13 O(1)12 O(n)+ 13 O(1) ≥ 13 (O(n)+ O (1))12 O(n)+ 13 O(1) ≥O(n)+ O(1)Jadi Big Omega = O(n)
Big ThetaO(T(n))= (T(n))= O(n) maka (T(n)) = O(n)
Tabel Percobaan
Banyaknya Karakter
Waktu Ekseskusi Enkripsi (s) Waktu Eksekusi Deskripsi (s)
150 0,015625 0,015625
600 0,125 0,125
1000 0,265625 0,265625
2000 0,75 0,75
6000 4,171875 4,171875
GRAFIK
Kesimpulan
Berdasarkan analisis kompleksitas waktu pseudocode di atas menunjukan bahwa kompleksitas waktu program enkripsi dan deskripsi kelompok kami adalah O(n). Selain itu, grafik kompleksitas diatas juga menunjukan grafik lurus (y=x) namun mendekati grafik (y=x2). Dapat kita simpulkan bahwa kompleksitas waktu program di atas adalah O(n).
TERIMA KASIH