Nama : Adi Liyani Saputra
Nim : 2017-31-235
Kelas : B
Nama Dosen : Desi Rose Hertina, S.T, M.Kom
Quis
A. Algoritma
1. Hubungan KSK dengan Kriptografi Algoritma Kelompok
Keamanan Sistem
Komputer merupakan sebuah upaya yang dilakukan untuk mengamankan kinerja dan
proses komputer. Penerapan Keamanan Sistem
Komputer dalam kehidupan sehari-hari
berguna sebagai penjaga sumber daya sistem agar tidak digunakan, modifikasi, interupsi, dan diganggu oleh orang yang tidak
berwenang.
Sasaran
keamanan sistem komputer antara lain adalah sebagai perlindungan informasi
terhadap pencurian atau korupsi, atau pemeliharaan ketersediaan, seperti
dijabarkan dalam kebijakan keamanan.
Sistem keamanan pengiriman data
(komunikasi data yang aman) dipasang untuk mencegah pencurian, kerusakan, dan
penyalahgunaan data yang terkirim melalui jaringan komputer. Dalam praktek,
pencurian data berwujud pembacaan oleh pihak yang tidak berwenang biasanya
dengan menyadap saluran publik. Teknologi jaringan komputer telah dapat
mengurangi bahkan membuang kemungkinan adanya kerusakan data akibat buruknya
konektivitas fisik, namun gangguan tetap bisa terjadi karena ada unsur
kesengajaan yang mengarah ke penyalahgunaan sistem dari pihak-pihak tertentu.
Makalah ini bertujuan untuk
mengetahui teknik-teknik mengamankan data dengan proses Enkripsi dan Dekripsi. Enkripsi
dan Dekripsi yang akan
dibahas pada makalah ini adalah dengan
menggunakan kriptografi International
Data Encryption Algorithm (IDEA).
2. Penjelasan Algoritma Kriptografi IDEA
- Pengertian Kriptografi Algoritma IDEA
IDEA merupakan block cipher (cipher blok), yang
beroperasi pada blok plaintext 64 bit. Panjang kuncinya 128 bit. Algoritma yang sama digunakan untuk
proses enkripsi dan dekripsi. Sebagaimana algoritma enkripsi yang lain, IDEA
menggunakan confusion dan diffusion. IDEA
menggunakan operasi aljabar yang tidak kompatibel sebagai berikut,
a. XOR.
b. Penambahan
modulo 216.
c. Perkalian
modulo 216+1 (operasi ini menggantikan kotak-S atau S-Box).
- Sejarah Kriptografi Algoritma IDEA
Metode IDEA diperkenalkan pertama kali
oleh Xuejia Lai dan James Massey pada tahun 1990 dengan nama PES (Proposed Encryption Standard). Tahun
berikutnya, setelah Biham dan Shamir mendemonstrasikan cryptanalysis yang berbeda, sang penemu memperkuat algoritma mereka
dari serangan dan algoritma hasil pengubahan tersebut diberi nama IPES (Improved Proposed Encryption Algorithm).
Kemudian pada tahun 1992, IPES diganti namanya menjadi IDEA (International Data Encryption Algorithm).
IDEA dirancang untuk menggantikan DES (Data
Encryption Standard).
- Cara Kerja (Proses Enkripsi dan Proses Deskripsi) Kriptografi Algoritma IDEA
Dalam proses metode IDEA memiliki input 128 bit kunci (key)
yang identik dengan 32 digit heksadesimal ataupun 16 karakter yang diproses
untuk menghasilkan 52 subkey dengan
perincian masing-masing 6 buah subkey akan
digunakan pada 8 putaran dan 4 buah subkey
untuk transformasi output. Algoritma IDEA ini menggunakan kunci (key) simetris, dimana kunci yang
digunakan enkripsi sama dengan dekripsi.
Proses Enkripsi Kriptografi Algoritma IDEA
Proses enkripsi algoritma IDEA adalah sebagai berikut,
pertama–tama plaintext 64 bit dibagi menjadi 4 buah sub blok
dengan panjang 16 bit, yaitu X1, X2,
X3, X4. Empat sub blok ini menjadi masukan bagi iterasi tahap pertama
algoritma. Total terdapat 8 iterasi. Pada setiap iterasi, 4 sub blok
di-XOR-kan, ditambahkan, dikalikan dengan yang lain dan dengan 6 buah subkey 16 bit. Diantara iterasi sub blok
kedua dan ketiga saling dipertukarkan. Akhirnya 4 buah sub blok dikombinasikan
dengan 4 subkey dalam transformasi
output. Pada setiap tahapan, urutan berikut ini dikerjakan,
1.
Kalikan X1
dengan K1 mod (216 + 1).
2.
Tambahkan X2
dengan K2 mod 216.
3.
Tambahkan X3
dengan K3 mod 216.
4.
Kalikan X4 dengan
K4 mod (216
+ 1).
5.
XOR hasil dari
step 1 dan 3.
6.
XOR hasil dari
step 2 dan 4.
7.
Kalikan hasil
dari step 5 dengan K5 mod (216 + 1).
8.
Tambahkan hasil
dari step 6 dan 7 mod 216.
9.
Kalikan hasil
dari step 8 dengan K6 mod (216 + 1).
10.
Tambahkan hasil
dari step 7 dan 9 mod 216.
11.
XOR hasil dari
step 1 dan 9.
12.
XOR hasil dari
step 3 dan 9.
13.
XOR hasil dari
step 2 dan 10.
14.
XOR hasil dari
step 4 dan 10.
Output dari setiap round adalah
empat sub blok yang dihasilkan pada langkah 11, 12, 13 dan 14. Sub blok 12 dan
13 di-swap (kecuali untuk putaran
terakhir) sehingga input dari putaran
berikutnya adalah hasil kombinasi dari langkah 11 13 12 14.Setelah 8 putaran,
akan dilakukan tranformasi output berikut,
1.
Kalikan X1
dengan subkey K1 mod (216 + 1).
2.
Tambahkan X2
dengan subkey K2 mod 216.
3.
Tambahkan X3
dengan subkey K3 mod 216.
4.
Kalikan X4
dengan subkey K4 mod (216 + 1).
Proses Deskripsi
Kriptografi Algoritma IDEA
Proses dekripsi sama persis dengan proses enkripsi.
Perbedaannya hanya terletak pada aturan dari subkey-nya. Urutan subkey terbalik dengan proses enkripsi
dan subkey-nya di-inverse-kan. Subkey pada langkah transformasi output pada proses enkripsi di-inverse-kan dan digunakan sebagai subkey pada putaran 1 pada proses
dekripsi. Subkey pada putaran 8 di-inverse-kan dan digunakan sebagai subkey pada putaran 1 dan 2 pada proses
dekrips. Demikian seterusnya, agar lebih jelas lihatlah tabel berikut ini.
Round
|
Subkey Enkripsi
|
Subkey Dekripsi
|
1
|
K1(1) K2(1) K3(1) K4(1) K5(1) K6(1)
|
K1(9)-1 -K2(9)-K3(9) K4(9)-1
K5(8) K6(8)
|
2
|
K1(2)
K2(2) K3(2) K4(2) K5(2) K6(2)
|
K1(8)-1
-K3(8) -K2(8) K4(8)-1 K5(7) K6(7)
|
3
|
K1(3)
K2(3) K3(3) K4(3) K5(3) K6(3)
|
K1(7)-1
-K3(7) -K2(7) K4(7)-1 K5(6) K6(6)
|
4
|
K1(4)
K2(4) K3(4) K4(4) K5(4) K6(4)
|
K1(6)-1
-K3(6) -K2(6) K4(6)-1 K5(5) K6(5)
|
5
|
K1(5)
K2(5) K3(5) K4(5) K5(5) K6(5)
|
K1(5)-1
-K3(5) -K2(5) K4(5)-1 K5(4) K6(4)
|
6
|
K1(6)
K2(6) K3(6) K4(6) K5(6) K6(6)
|
K1(4)-1
-K3(4) -K2(4) K4(4)-1 K5(3) K6(3)
|
7
|
K1(7)
K2(7) K3(7) K4(7) K5(7) K6(7)
|
K1(3)-1
-K3(3) -K2(3) K4(3)-1 K5(2) K6(2)
|
8
|
K1(8)
K2(8) K3(8) K4(8) K5(8) K6(8)
|
K1(2)-1
-K3(2) -K2(2) K4(2)-1 K5(1) K6(1)
|
Transfor masi output
|
K1(9)
K2(9) K3(9) K4(9)
|
K1(1)-1 -K2(1) -K3(1) K4(1)-1
|
- Flowchart dan Penjelasan Kriptografi Algoritma IDEA
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-SmlhEwCSZKb82Jkg10mkxrgLxY3m2BRsb_O-cE-teMAd3eqZ2ag9xC6J0jE56DhbYc0tSgGlAQdHsIR_ihs6g_i5EH5VCJIwHta-AjQRYodoDrbuAhqJV7Gi6AEtz9KEEPJik01yAt4/s320/IDEA.jpg)
Penjelasan
:
IDEA menggunakan
proses iterasi yang terdiri dari 8 putaran dan 1
transformasi keluaran pada putaran ke 8,5. Algoritma IDEA ini
menggunakan 3 operasi aljabar utama, yakni : Xor,
operasi penjmlahan modulo 2 16 dan operasi perkalian modulo (216 + 1).
Operasi ini semuanya dilakukan pada subblok 16bit. IDEA
mendapatkan keamanannya dari operasi dari grup yang berbeda – penambahan
dan penjumlahan modular serta exclusive or dari bit—yang secara
aljabar tidak cocok dalam beberapa pengertian.
3. Studi Kasus
3. Studi Kasus
Tema : Industri
Jakarta, CNN Indonesia -- Telkomsel
memberi keterangan resmi mengenai peretasan terhadap situsnya. Dalam konferensi
pers yang digelar Telkomsel, Ririek Adriansyah, Direktur Utama Telkomsel
menyebutkan mengakui peretasan tersebut. "Web server kita
diretas sekitar 5.30 (WIB). (Lalu) kita ambil langkah matikan web kita," terang
Ririek kepada wartawan di Jakarta, Jumat (28/4).
Ririek
mengaku situs Telkomsel telah berangsur normal sejak pukul 15.00 WIB.
"Kalau sekarang diakses, sudah normal kembali," tambahnya.
Berdasarkan pengamatan CNN Indonesia.com, situs Telkomsel
kembali tak bisa diakses dalam beberapa jam. Namun, kini sudah bisa diakses
kembali. Lebih lanjut Ririek menyebutkan bahwa web server Telkomsel
tersebut tidak terhubung dengan sistem di dalam, sehingga tidak berimbas kepada
akses data pelanggan. "Jadi (situs itu) hanya untuk menyediakan informasi
saja. Tidak mungkin kena akses pelanggan."
Ririek
juga menyebutkan bahwa Telkomsel saat ini sedang dalam proses migrasi server.
"Kita sudah ambil langkah-langkah sebagai fokus agar tak terulang
kembali." Berdasarkan pantauan CNN Indonesia.com sepanjang hari ini,
berikut kronologi pembajakan situs Telkomsel.
05.30 WIB - Hacker retas situs www.telkomsel.com
06.00 WIB - Laporan peretasan muncul pertama kali di Twitter
disertai tangkapan layar deface yang dilakukan hacker di
situs tersebut.
07.00 WIB - Situs www.telkomsel.com tak
bisa diakses. Netizen mulai ramai membicarakan peristiwa peretasan ini.
11.00 WIB - CNNIndonesia.com sempat berhasil mengecek situs
Telkomsel yang sudah kembali live.
15.00 WIB - Telkomsel mengklaim situs sudah berangsur pulih dan sudah bisa
diakses kembali.
17.30 WIB - Pantauan CNNIndonesia.com situs Telkomsel masih
dalam perbaikan.
18.30 WIB - Pantauan CNNIndonesia.com situs
Telkomsel sudah dapat diakses kembali.
Alfons
Tanujaya, pakar keamanan digital, menyebut ada dua kemungkinan situs Telkomsel
kena retas. Pertama karena ada celah keamanan yang berhasil dieksploitasi dan
kedua karena username dan password web hosting berhasil diketahui oleh peretas.
Soal kemungkinan pertama, Alfons
menyebut pihak keamanan Telkomsel tidak sigap dalam menambal celah keamanan di
sistem hosting yang telah terekspos para peretas. Alhasil pelaku berhasil
mengeksploitasi situs Telkomsel seperti yang terlihat sejak pagi. Alfons
mengatakan celah seperti itu bisa berujung pada risiko eksploitasi database
oleh pihak peretas yang imbasnya bisa sangat parah jika terjadi.
"Kemungkinan
kecil, tapi ceroboh banget kalau itu sampai terjadi," ujar Alfons ketika
ditelpon CNN Indonesia.com, Jumat (28/4).
Kemudian
untuk kemungkinan berikutnya, peretasan terjadi akibat peretas mengetahui nama
pengguna dan kata sandi untuk mengakses web hosting. Menurut
Alfons, Telkomsel seharusnya bisa menghindarinya dengan memasang
pengamanan two-factor authentication (TFA) atau pengamanan
dua pintu. Cara lain yang semestinya dipakai oleh Telkomsel adalah
membatasi Internet Protocol (IP) yang bisa mengakses dan mengganti web hosting
mereka. "Jadi harusnya sekelas Telkomsel melakukan hal-hal seperti itu dan
itu artinya belum dilakukan," ucap Alfons. Selain masalah deface yang
mendera situsnya Telkomsel juga harus menanggung malu lantaran hasil pencarian
teratas dengan kata kunci 'Telkomsel' di Google kena retas sehingga berisi
kata-kata kasar. Menanggapi hal ini, Alfons berujar Telkomsel bisa mengubahnya
secepat mungkin dengan menghubungi pihak Google. "Kalau adminnya peduli,
bisa itu diubah," imbuhnya.
Sampai tulisan ini ditulis pada pukul 12.10 WIB, hasil pencarian
dengan kata kunci 'Telkomsel' di mesin Google masih kena retas. Alfons
memperkirakan hal itu terjadi karena mesin pencari Google bekerja lebih cepat
dibanding mesin pencari lain seperti Bing dan Yahoo karena dapat menangkap
cache dari metadata kurang dari 12 jam. Hal itu menjelaskan pencarian dengan
kata kunci 'Telkomsel' di Bing dan Yahoo tidak menampilkan hal yang sama
seperti di Google.
Pada
bagian username dan password dari studi
kasus tersebut dapat diterapkan Algoritma Kriptografi IDEA sebagai sistem
keamanan data pengguna.
4. Sintaks
dari Algoritma Kriptografi IDEA (Proses Enkripsi dan Deskripsi)
Proses Enkripsi Algoritma IDEA
Sub
Proses_Encryp() On Error Resume Next
Dim
i, cRow As Integer Dim jlhBaris As Integer Dim
bTmp As Double Dim tmpHasil As String Dim jlhx As Integer
Dim X1, X2, X3, X4
As String Dim proses As Integer
jlhx = (msfp.Rows
- 1) * 2 proses = (jlhx / 8) * 14 L1 = ""
L2 = ""
L3 = ""
L4
= ""
L5 = ""
L6
= ""
L7 = ""
L8 = ""
L9
= ""
L10 = ""
L11
= ""
L12 = ""
L13 = ""
L14
= ""
bTmp = 0 tmpHasil
= ""
frmmaster.xF.Caption
= "Informasi Enkripsi Data:" 'frmmaster.txtinfo.Text = ""
i = 0
For
i = 1 To val(txtjlh.Text)
frmmaster.txtinfo.Text
= frmmaster.txtinfo.Text & Chr(13) & " PUTARAN " & i
& " " & Chr(13)
With
frminfopkunci.msf jlhBaris = .Rows - 1
Screen.MousePointer
= vbHourglass For cRow = 1 To proses
Select
Case cRow
Case 1
.TextMatrix(cRow,
1) = "(X1 * K1) mod (2^16 + 1) =(" & msfp.TextMatrix(cRow, 1)
& " * " & msfk.TextMatrix(cRow, 1) & ") mod (2^16 +
1)"
bTmp
= FBiner2Dec(msfp.TextMatrix(cRow, 1)) * FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil
= FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L1 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 2
.TextMatrix(cRow,
1) = "(X2 + K2) mod 2^16 =" & msfp.TextMatrix(cRow, 1) &
" + " & msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp
= FBiner2Dec(msfp.TextMatrix(cRow, 1)) + FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, 2 ^ 16), 16) L2 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 3
.TextMatrix(cRow,
1) = "(X3 + K3) mod 2^16 =" & msfp.TextMatrix(cRow, 1) &
" + " & msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp
= FBiner2Dec(msfp.TextMatrix(cRow, 1)) + FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, 2 ^ 16), 16) L3 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 4
.TextMatrix(cRow,
1) = "(X4 * K4) mod (2^16 + 1) =(" & msfp.TextMatrix(cRow, 1)
& " * " & msfk.TextMatrix(cRow, 1) & ") mod (2^16 +
1)"
bTmp
= FBiner2Dec(msfp.TextMatrix(cRow, 1)) * FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil
= FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L4 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasi
Case 5
.TextMatrix(cRow,
1) = "L#1 XOR L#3 =" & Trim(L1) & " XOR " &
Trim(L3)
tmpHasil =
FXORBiner(Trim(L1), Trim(L3), 16) L5 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 6
.TextMatrix(cRow,
1) = "L#2 XOR L#4 =" & Trim(L2) & " XOR " &
Trim(L4)
tmpHasil =
FXORBiner(Trim(L2), Trim(L4), 16) L6 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 7
.TextMatrix(cRow,
1) = "(L#5 * K5) mod (2^16 + 1) ="
& L5 & " * " & msfk.TextMatrix(cRow - 2, 1) &
" mod (2^16 + 1)"
bTmp =
FBiner2Dec(Trim(L5)) * FBiner2Dec(msfk.TextMatrix(cRow - 2, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L7 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 8
.TextMatrix(cRow,
1) = "(L#6 + L#7)) mod 2^16 =" & L6 & " + " &
L7 & "mod 2^16"
bTmp
= FBiner2Dec(Trim(L6)) + FBiner2Dec(Trim(L7)) tmpHasil = FDec2Biner(FMod(bTmp,
2 ^ 16), 16)
L8 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case
9
.TextMatrix(cRow,
1) = "(L#8 * K6) mod (2^16 + 1) =" & L8 & " * "
& msfk.TextMatrix(cRow - 3, 1)
bTmp
= FBiner2Dec(Trim(L8)) * FBiner2Dec(msfk.TextMatrix(cRow - 3, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L9 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case
10
.TextMatrix(cRow,
1) = "(L#7 + L#9)) mod 2^16 =" & L7 & " + " &
L9 & "mod 2^16"
bTmp =
FBiner2Dec(Trim(L7)) + FBiner2Dec(Trim(L9)) tmpHasil = FDec2Biner(FMod(bTmp, 2
^ 16), 16)
L10 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case 11
.TextMatrix(cRow,
1) = "L#1 XOR L#9 =" & L1 & " XOR " & L9
tmpHasil =
FXORBiner(Trim(L1), Trim(L9), 16) L11 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 12
.TextMatrix(cRow,
1) = "L#3 XOR L#9 =" & L3 & " XOR " & L9
tmpHasil =
FXORBiner(Trim(L3), Trim(L9), 16) L12 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 13
.TextMatrix(cRow,
1) = "L#2 XOR L#10 =" & L2 & " XOR " & L10
tmpHasil =
FXORBiner(Trim(L2), Trim(L10), 16) L13 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 14
.TextMatrix(cRow,
1) = "L#4 XOR L#10 =" & L4 & " XOR " & L10
tmpHasil =
FXORBiner(Trim(L4), Trim(L10), 16) L14 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil End Select
Next cRow d_Grid
End With Next i
Screen.MousePointer
= vbDefault Call transForm
End
Sub
Proses Dekripsi Algoritma IDEA
Sub
Proses_Decryp() On Error Resume Next
Dim
i, cRow As Integer Dim jlhBaris As Integer Dim
bTmp As Double Dim tmpHasil As String Dim jlhx As Integer
Dim X1, X2, X3, X4
As String Dim proses As Integer
jlhx = (msfp.Rows
- 1) * 2 proses = (jlhx / 8) * 14
L1 = ""
L2 = ""
L3
= ""
L4 = ""
L5
= ""
L6 = ""
L7 = ""
L8
= ""
L9 = ""
L10
= ""
L11 = ""
L12 = ""
L13
= ""
L14 = ""
bTmp = 0 tmpHasil
= ""
frmmaster.xF.Caption
= "Informasi Deskripsi Data:" 'frmmaster.txtinfo.Text = ""
i
= 0
For i = 1 To val(txtjlh.Text)
frmmaster.txtinfo.Text
= frmmaster.txtinfo.Text & Chr(13) & "PUTARAN " & i &
" " & Chr(13)
With
frminfopkunci.msf jlhBaris = .Rows - 1
Screen.MousePointer
= vbHourglass For cRow = 1 To proses
Select
Case cRow Case 1
.TextMatrix(cRow,
1) = "(X1 * K1) mod (2^16 + 1) =(" & msfp.TextMatrix(cRow, 1)
& " * " & msfk.TextMatrix(cRow, 1) & ") mod (2^16 +
1)"
bTmp =
FBiner2Dec(msfp.TextMatrix(cRow, 1)) * FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L1 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 2
.TextMatrix(cRow,
1) = "(X2 + K2) mod 2^16 =" & msfp.TextMatrix(cRow, 1) &
" + " & msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp =
FBiner2Dec(msfp.TextMatrix(cRow, 1)) + FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, 2 ^ 16), 16) L2 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 3
.TextMatrix(cRow,
1) = "(X3 + K3) mod 2^16 =" & msfp.TextMatrix(cRow, 1) &
" + " & msfk.TextMatrix(cRow, 1) & ") mod (2^16)"
bTmp =
FBiner2Dec(msfp.TextMatrix(cRow, 1)) + FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil = FDec2Biner(FMod(bTmp,
2 ^ 16), 16) L3 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 4
.TextMatrix(cRow,
1) = "(X4 * K4) mod (2^16 + 1) =(" & msfp.TextMatrix(cRow, 1)
& " * " & msfk.TextMatrix(cRow, 1) & ") mod (2^16 +
1)"
bTmp = FBiner2Dec(msfp.TextMatrix(cRow,
1)) * FBiner2Dec(msfk.TextMatrix(cRow, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L4 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 5
.TextMatrix(cRow,
1) = "L#1 XOR L#3 =" & Trim(L1) & " XOR " &
Trim(L3)
tmpHasil
= FXORBiner(Trim(L1), Trim(L3), 16) L5 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case 6
.TextMatrix(cRow,
1) = "L#2 XOR L#4 =" & Trim(L2) & " XOR " &
Trim(L4)
tmpHasil =
FXORBiner(Trim(L2), Trim(L4), 16) L6 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 7
.TextMatrix(cRow,
1) = "(L#5 * K5) mod (2^16 + 1) =" & L5 & " * "
& msfk.TextMatrix(cRow - 2, 1) & " mod (2^16 + 1)"
bTmp =
FBiner2Dec(Trim(L5)) * FBiner2Dec(msfk.TextMatrix(cRow - 2, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16) L7 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 8
.TextMatrix(cRow,
1) = "(L#6 + L#7)) mod 2^16 =" & L6 & " + " &
L7 & "mod 2^16"
bTmp =
FBiner2Dec(Trim(L6)) + FBiner2Dec(Trim(L7)) tmpHasil = FDec2Biner(FMod(bTmp, 2
^ 16), 16)
L8
= tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case 9
.TextMatrix(cRow,
1) = "(L#8 * K6) mod (2^16 + 1) =" & L8 & " * "
& msfk.TextMatrix(cRow - 3, 1)
bTmp =
FBiner2Dec(Trim(L8)) * FBiner2Dec(msfk.TextMatrix(cRow - 3, 1))
tmpHasil =
FDec2Biner(FMod(bTmp, (2 ^ 16) + 1), 16)
L9 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case
10
.TextMatrix(cRow,
1) = "(L#7 + L#9)) mod 2^16 =" & L7 & " + " &
L9 & "mod 2^16"
bTmp =
FBiner2Dec(Trim(L7)) + FBiner2Dec(Trim(L9)) tmpHasil = FDec2Biner(FMod(bTmp, 2
^ 16), 16)
L10 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case 11
.TextMatrix(cRow,
1) = "L#1 XOR L#9 =" & L1 & " XOR " & L9
tmpHasil =
FXORBiner(Trim(L1), Trim(L9), 16) L11 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 12
.TextMatrix(cRow,
1) = "L#3 XOR L#9 =" & L3 & " XOR " & L9
tmpHasil
= FXORBiner(Trim(L3), Trim(L9), 16) L12 = tmpHasil
.TextMatrix(cRow, 2) = tmpHasil
Case 13
.TextMatrix(cRow,
1) = "L#2 XOR L#10 =" & L2 & " XOR " & L10
tmpHasil =
FXORBiner(Trim(L2), Trim(L10), 16) L13 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil
Case 14
.TextMatrix(cRow,
1) = "L#4 XOR L#10 =" & L4 & " XOR " & L10
tmpHasil =
FXORBiner(Trim(L4), Trim(L10), 16) L14 = tmpHasil
.TextMatrix(cRow,
2) = tmpHasil End Select
Next cRow
d_Grid
End With Next i
Screen.MousePointer
= vbDefault Call transForm
End
Sub
5. Link Blog Anggota Kelompok 7
6. Referensi Sumber Kelompok 7
- http://repository.usu.ac.id/bitstream/handle/123456789/16431/Chapter%20I.pdf?sequence=5
- http://hidayatcahayailmu.blogspot.com/2013/07/keamanan-sistem-komputer.html
- https://id.wikipedia.org/wiki/Keamanan_komputer
- https://www.cnnindonesia.com/teknologi/20170428174948-185-211012/kronologi-peretasan-situs-versi-telkomsel
- https://www.cnnindonesia.com/teknologi/20170428125838-185-210886/beginikah-cara-peretas-bajak-situs-telkomsel
- http://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2007-2008/Makalah/MakalahIF2153-0708-102.pd
- https://karil.uui.ac.id/berkas/11111084-1-c080aa9494675dffb313da04f579c109.pdf
B. Analisa Algoritma
1. Hubungan KSK Kriptografi Algoritma IDEA dan Kriptografi Algoritma DES
Algoritma yang memiliki
kemiripan dengan algoritma IDEA adalah Algoritma
DES karena, perkembangan teknologi informasi dan komunikasi sangat cepat dan
pesat. Secara tidak langsung, teknologi informasi telah menjadi bagian penting
dari berbagai bidang kehidupan. Seiring dengan kemajuan teknologi informasi
maka sangat di perlukan sebuah keamanan data terhadap kerahasiaan informasi
yang bersifat pribadi seperti halnya buku diary.
Oleh karena itu untuk
penulis membuat note diary berbasis android menggunakan algoritma kriptografi
DES (Data Encryption Standard) untuk proses enkripsi dan dekripsi data agar
informasi tersebut dapat terjaga keamanannya.
DES (Data Encryption
Standard) merupakan algoritma cipher blok yang popular karena dijadikan standar
algoritma enkripsi kunci-simetri. Sebenarnya DES adalah nama standar enkripsi
simetri, nama algoritma enkripsinya sendiri adalahDEA (Data Encryption
Algorithm), namun nama DES lebih popular dari pada DEA. Hubungan dari kedua ini
yaitu dimana algoritma DES dijadikan standard enkripsi data sebelum adanya IDEA
sehingga kedua algoritma ini memiliki beberapa kemiripan dan dari segi keamanan
pun hampir sama hubungannya.
Cara Kerja (Proses Enkripsi dan Proses Deskripsi) Kriptografi Algoritma DES
2. Penjelasan Algoritma
Kriptografi DES
- Pengertian Kriptografi Algoritma DES
- Sejarah Kriptografi Algoritma DES
Proses Enkripsi
Algoritma DES merupakan algoritma enkripsi yang
paling banyak digunakan didunia yang diadopsi oleh NIST (National Institue of
Standardsand Technology) sebagaistandar pengolah informasi FederalAS.
Dataplaintext dienkrip dalam blok-blok 64 bitmenjadi 64 bit data cipher text menggunakan kunci 56 bit
kunci internal (internal key).DES mentransformasikan input 64 bit dalam beberapa
tahap enkripsi ke dalamoutput 64bit. Dengan demikian, DES termasuk block
cipher. Dengantahapan dan kunci yang sama,DES digunakan untuk membalik
enkripsi. Kunci internal padaalgoritma DESdibangkitkan dari kunci eksternal
(external key) 64 bit. Skema global dari proses algoritma. Dalam algoritma DES,
terdapat kunci eksternal dan kunci internal. Kunci
internaldibangkitkan dari kunci eksternal yang diberikan olehpengguna. Kunci
internal dapatdibangkitkan sebelum proses enkripsi ataupunbersamaan dengan
proses enkripsi. Kunci eksternal panjangnya 64 bit atau 8 karakter. Karena ada 16
putaran,maka kunci internal yang dibutuhkan sebanyak 16 buah, yaitu
K1, K2, ..., K16. Untuk mengaitkan kunci internal diperlukan beberapa
langkah. Kunci eksternal 64 bit, dikompresi terlebih dahulu menjadi 54 bit menggunakan matriks permutasi
kompresi PC-1. Dalam permutasi tiap bitke-8 dari 8 byte kunci akan diabaikan. Sehingga akan
ada penggunaan 8 bitdari 64 bit awal kunci eksternal. Setelah didapatkan 56
bit hasil permutasi,selanjutnya 56 bit iniakan dibagimenjadi 2 bagian, kiri dan
kanan, yangmasing-masing panjangnya 28 bit.
Lalu
ke-2 bagian
tersebut akan disimpan kedalam C0 dan
D0.
C0 : berisi bit-bit dari K
pada posisi :57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 1810, 2, 59, 51,
43, 35, 27, 19,11, 3, 60, 52, 44, 36
D0 : berisi bit-bit dari K
pada posisi : 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30,
2214, 6, 61, 53, 45, 37,29, 21, 21, 13, 5, 28, 20, 12.
Proses selanjutnya adalah ke-2 bagian (C0 dan D0)
digeser ke kiri (left shift) sepanjang 1 atau 2 bit, tergantung pada tiap
putaran. Perputaranini bersifat wrapping atauround-shift. Hasil dari pergeseran
C0 dan D0 akan didapatkan nilai dari C1 dan C2. Begitu seterusnya, hingga
proses tersebut menghasilkan C16 dan D16. Untuk mendapatkan kunci internal
pertama (K1), maka bit dari C0 dan D0 tadi dilakukan permutasi
kompresidenganmenggunakan matriks PC-2. Jadi setiap kunci Ki, mempunyai panjang
48 bit. Apabila prosespergeseran bit-bitdijumlahkan semuanya, maka jumlah
seluruhnya sama dengan28 putaran. Jumlah ini sama dengan jumlah bit pada Ci dan
Di. Oleh karena itu, setelah putaran ke-16 akan didapatkan kembali C16 = C0 dan
D16 = D0.
- Proses Dekripsi
3. Pengetesan Algoritma
- Menggunakan Bahasa Pemrograman C++
#include<fstream.h>
#include<string.h>
#include<conio.h>
#include<iostream.h>
int key[64]={
0,0,0,1,0,0,1,1,
0,0,1,1,0,1,0,0,
0,1,0,1,0,1,1,1,
0,1,1,1,1,0,0,1,
1,0,0,1,1,0,1,1,
1,0,1,1,1,1,0,0,
1,1,0,1,1,1,1,1,
1,1,1,1,0,0,0,1
};
class Des
{
public:
int keyi[16] [48],total[64],left[32],right[32],ck[28],dk[28],expansion[48],z[48],xor1[48],sub[32],p[32],xor2[32],temp[64],
pc1[56],ip[64],inv[8][8];char final[1000];
void IP();
void PermChoice1();
void PermChoice2();
void Expansion();
void inverse();
void xor_two();
void xor_oneE(int);
void xor_oneD(int);
void substitution();
void permutation();
void keygen();
char * Encrypt(char *);
char * Decrypt(char *);
};
void Des::IP()
{
int k=58,i;
for(i=0;i < 32;i++)
{
ip[i]=total[k-1];
if(k-8>0) k=k-8;
else k=k+58;
}
k=57;
for( i=32;i < 64;i++)
{
ip[i]=total[k-1];
if(k-8 > 0) k=k-8;
else k=k+58;
}
}
void Des::PermChoice1()
{
int k=57,i;
for(i=0;i < 28;i++)
{
pc1[i]=key[k-1];
if(k-8 > 0) k=k-8;
else k=k+57;
}
k=63;
for( i=28;i < 52;i++)
{
pc1[i]=key[k-1];
if(k-8 > 0) k=k-8;
else k=k+55;
}
k=28;
for(i=52;i < 56;i++)
{
pc1[i]=key[k-1];
k=k-8;
}
}
void Des::Expansion()
{
int exp[8][6],i,j,k;
for(i=0;i < 8;i++)
{
for( j=0;j < 6;j++)
{
if((j!=0)||(j!=5))
{
k=4*i+j;
exp[i][j]=right[k-1];
}
if(j==0)
{
k=4*i;
exp[i][j]=right[k-1];
}
if(j==5)
{
k=4*i+j;
exp[i][j]=right[k-1];
}
}
}
exp[0][0]=right[31];
exp[7][5]=right[0];
k=0;
for(i=0;i < 8;i++)
for(j=0;j < 6;j++)
expansion[k++]=exp[i][j];
}
void Des::PermChoice2()
{
int per[56],i,k;
for(i=0;i < 28;i++) per[i]=ck[i];
for(k=0,i=28;i < 56;i++) per[i]=dk[k++];
z[0]=per[13];z[1]=per[16];z[2]=per[10];z[3]=per[23];z[4]=per[0];z[5]=per[4];z[6]=per[2];z[7]=per[27];
z[8]=per[14];z[9]=per[5];z[10]=per[20];z[11]=per[9];z[12]=per[22];z[13]=per[18];z[14]=per[11];z[15]=per[3];
z[16]=per[25];z[17]=per[7];z[18]=per[15];z[19]=per[6];z[20]=per[26];z[21]=per[19];z[22]=per[12];z[23]=per[1];
z[24]=per[40];z[25]=per[51];z[26]=per[30];z[27]=per[36];z[28]=per[46];z[29]=per[54];z[30]=per[29];z[31]=per[39];
z[32]=per[50];z[33]=per[46];z[34]=per[32];z[35]=per[47];z[36]=per[43];z[37]=per[48];z[38]=per[38];z[39]=per[55];
z[40]=per[33];z[41]=per[52];z[42]=per[45];z[43]=per[41];z[44]=per[49];z[45]=per[35];z[46]=per[28];z[47]=per[31];
}
void Des::xor_oneE(int round)
{
int i;
for(i=0;i < 48;i++)
xor1[i]=expansion[i]^keyi[round-1][i];
}
void Des::xor_oneD(int round)
{
int i;
for(i=0;i < 48;i++)
xor1[i]=expansion[i]^keyi[16-round][i];
}
void Des::substitution()
{
int s1[4][16]={
14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7,
0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,
4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0,
15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13
};
int s2[4][16]={
15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,
3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,
0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,
13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9
};
int s3[4][16]={
10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,
13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,
13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,
1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12
};
int s4[4][16]={
7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,
13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,
10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,
3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14
};
int s5[4][16]={
2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,
14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,
4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,
11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3
};
int s6[4][16]={
12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,
10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,
9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,
4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13
};
int s7[4][16]={
4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,
13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,
1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2,
6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12
};
int s8[4][16]={
13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,
1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,
7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,
2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11
};
int a[8][6],k=0,i,j,p,q,count=0,g=0,v;
for(i=0;i < 8;i++)
{
for(j=0;j<6;j++)
{
a[i][j]=xor1[k++];
}
}
for( i=0;i < 8;i++)
{
p=1;q=0;
k=(a[i][0]*2)+(a[i][5]*1);
j=4;
while(j > 0)
{
q=q+(a[i][j]*p);
p=p*2;
j--;
}
count=i+1;
switch(count)
{
case 1: v=s1[k][q]; break;
case 2: v=s2[k][q]; break;
case 3: v=s3[k][q]; break;
case 4: v=s4[k][q]; break;
case 5: v=s5[k][q]; break;
case 6: v=s6[k][q]; break;
case 7: v=s7[k][q]; break;
case 8: v=s8[k][q]; break;
}
int d,i=3,a[4];
while(v > 0)
{
d=v%2;
a[i--]=d;
v=v/2;
}
while(i >= 0)
{
a[i--]=0;
}
for(i=0;i < 4;i++)
sub[g++]=a[i];
}
}
void Des::permutation()
{
p[0]=sub[15];p[1]=sub[6];p[2]=sub[19];p[3]=sub[20];p[4]=sub[28];p[5]=sub[11];p[6]=sub[27];p[7]=sub[16];
p[8]=sub[0];p[9]=sub[14];p[10]=sub[22];p[11]=sub[25];p[12]=sub[4];p[13]=sub[17];p[14]=sub[30];p[15]=sub[9];
p[16]=sub[1];p[17]=sub[7];p[18]=sub[23];p[19]=sub[13];p[20]=sub[31];p[21]=sub[26];p[22]=sub[2];p[23]=sub[8];
p[24]=sub[18];p[25]=sub[12];p[26]=sub[29];p[27]=sub[5];p[28]=sub[21];p[29]=sub[10];p[30]=sub[3];p[31]=sub[24];
}
void Des::xor_two()
{
int i;
for(i=0;i < 32;i++)
{
xor2[i]=left[i]^p[i];
}
}
void Des::inverse()
{
int p=40,q=8,k1,k2,i,j;
for(i=0;i < 8;i++)
{
k1=p;k2=q;
for(j=0;j < 8;j++)
{
if(j%2==0)
{
inv[i][j]=temp[k1-1];
k1=k1+8;
}
else if(j%2!=0)
{
inv[i][j]=temp[k2-1];
k2=k2+8;
}
}
p=p-1;q=q-1;
}
}
char * Des::Encrypt(char *Text1)
{
int i,a1,j,nB,m,iB,k,K,B[8],n,t,d,round;
char *Text=new char[1000];
strcpy(Text,Text1);
i=strlen(Text);
int mc=0;
a1=i%8;
if(a1!=0) for(j=0;j < 8-a1;j++,i++) Text[i]=' '; Text[i]='\0';
keygen();
for(iB=0,nB=0,m=0;m < (strlen(Text)/8);m++)
{
for(iB=0,i=0;i < 8;i++,nB++)
{
n=(int)Text[nB];
for(K=7;n >= 1;K--)
{
B[K]=n%2;
n/=2;
} for(;K >= 0;K--) B[K]=0;
for(K=0;K < 8;K++,iB++) total[iB]=B[K];
}
IP();
for(i=0;i < 64;i++) total[i]=ip[i];
for(i=0;i < 32;i++) left[i]=total[i];
for(;i < 64;i++) right[i-32]=total[i]; for(round=1;round <= 16;round++)
{
Expansion();
xor_oneE(round);
substitution();
permutation();
xor_two();
for(i=0;i < 32;i++) left[i]=right[i];
for(i=0;i < 32;i++) right[i]=xor2[i];
}
for(i=0;i < 32;i++) temp[i]=right[i];
for(;i < 64;i++) temp[i]=left[i-32];
inverse();
k=128; d=0;
for(i=0;i < 8;i++)
{
for(j=0;j < 8;j++)
{
d=d+inv[i][j]*k;
k=k/2;
}
final[mc++]=(char)d;
k=128; d=0;
}
}
final[mc]='\0';
return(final);
}
char * Des::Decrypt(char *Text1)
{
int i,a1,j,nB,m,iB,k,K,B[8],n,t,d,round;
char *Text=new char[1000];
unsigned char ch;
strcpy(Text,Text1);
i=strlen(Text);
keygen();
int mc=0;
for(iB=0,nB=0,m=0;m < (strlen(Text)/8);m++)
{
for(iB=0,i=0;i < 8;i++,nB++)
{
ch=Text[nB];
n=(int)ch ;
for(K=7;n >= 1;K--)
{
B[K]=n%2;
n/=2;
} for(;K >= 0;K--) B[K]=0;
for(K=0;K < 8;K++,iB++) total[iB]=B[K];
}
IP();
for(i=0;i < 64;i++) total[i]=ip[i];
for(i=0;i < 32;i++) left[i]=total[i];
for(;i < 64;i++) right[i-32]=total[i];
for(round=1;round <= 16;round++)
{
Expansion();
xor_oneD(round);
substitution();
permutation();
xor_two();
for(i=0;i < 32;i++) left[i]=right[i];
for(i=0;i < 32;i++) right[i]=xor2[i];
}
for(i=0;i < 32;i++) temp[i]=right[i];
for(;i < 64;i++) temp[i]=left[i-32];
inverse();
k=128; d=0;
for(i=0;i < 8;i++)
{
for(j=0;j < 8;j++)
{
d=d+inv[i][j]*k;
k=k/2;
}
final[mc++]=(char)d;
k=128; d=0;
}
} final[mc]='\0';
char *final1=new char[1000];
for(i=0,j=strlen(Text);i < strlen(Text);i++,j++)
final1[i]=final[j]; final1[i]='\0';
return(final);
}
void main()
{
Des d1,d2;
char *str=new char[1000];
char *str1=new char[1000];
clrscr();
cout<<"Masukkan Nama / NIM : ";
gets(str);
str1=d1.Encrypt(str);
cout<<"\nPlain Text : "<< str<< endl;
cout<<"\nCipher Text : "<< str1<< endl;
cout<<"\nPlain Text : "<< d2.Decrypt(str1)<< endl;
getch();
}
void Des::keygen()
{
PermChoice1();
int i,j,k=0;
for(i=0;i < 28;i++)
{
ck[i]=pc1[i];
}
for(i=28;i < 56;i++)
{
dk[k]=pc1[i];
k++;
}
int noshift=0,round;
for(round=1;round<=16;round++)
{
if(round==1||round==2||round==9||round==16)
noshift=1;
else
noshift=2;
while(noshift > 0)
{
int t;
t=ck[0];
for(i=0;i < 28;i++)
ck[i]=ck[i+1];
ck[27]=t;
t=dk[0];
for(i=0;i < 28;i++)
dk[i]=dk[i+1];
dk[27]=t;
noshift--;
}
PermChoice2();
for(i=0;i < 48;i++)
keyi[round-1][i]=z[i];
}
}
4. Perbandingan Algoritma IDEA dan DES
- Persamaan
- Termasuk kedalam algoritma simetris
- Sama-sama memiliki block 64 bit
- Menghasilkan pesan terenkripsi
- Perbedaan
- Algoritma IDEA menggunakan 3 operasi aljabar utama, yakni : Xor,operasi penjumlahan modulo 2 16 dan operasi perkalian modulo (2 16+1). Dan DES setiap putaran i, blok R dikombinasikan dengan kunci internak Ki. Keluaran dari fungsi f di-XOR kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya.
- DES menggunakan 56 bit kunci internal sedangkan IDEA menggunakan kunci yang sma berukuran 128 bit untuk proses enkripsi dan dekripsi.
- IDEA menggunakan proses iterasi yang terdiri dari 8 putaran dan 1 tranformasi keluaran pada putaran ke8, sedangkan DES melakukan 16 iterasi.
5. Link Kelompok Lain
6. Referensi Sumber
- https://www.academia.edu/21853140/Penerapan_Enkripsi_Dan_Dekripsi_Text_Menggunakan_Algoritma_Data_Encryption_Standard_DES
- https://makalah-update.blogspot.com/2012/11/makalah-pengertian-dan-sejarah-des-data.html
- https://piptools.net/algoritma-des-data-encryption-standard/
C. Kesimpulan
Dari kejelasan di atas
yang terdiri dari pengertian, sejarah, proses kerja (enkripsi dan dekripsi),
flowchart, dan menggunakan bahasa pemrograman dapat simpulkan bahwa dari kedua
algoritma IDEA dan algoritma DES itu memiliki persamaan seperti algoritma
simetris,sama sama memiliki block 64 bit dan pesan pun terenkripsi. Tingkat
keamanan dari kedua algoritma ini juga cukup tinggi dan kedua
algoritma tersebut masih digunakan sampai saat ini. Hanya saja dalam proses
enkripsi dan deskripsi dari kedua algoritma tersebut cukup berbeda, dimana
untuk algoritma IDEA sendiri memiliki proses yang sedikit lebih rumit dibandingkan
dengan algpritma DES sebagai algorima pendahulunya.
Tidak ada komentar:
Posting Komentar