1. KELOMPOK 4 :
3IA22
RIDOWAN 55410914
SULIS TIAWATI 56410733
NURUL YUNINDA 59410585
ELVINAARISTA 52410348
RANDY RIZKY 55410634
2. Enkripsi dengan algoritma Rivest Code 4 (RC4). Model ini merupakan salah
satu algoritma kunci simetris yang berbentuk stream chipper. Algoritma ini
ditemukan pada tahun 1987 oleh Ronald Rivest dan menjadi simbol
keamanan RSA(merupakan singkatan dari tiga nama penemu: Rivest Shamir
Adleman) RC4 menggunakan panjang kunci dari 1 sampai 256 bit yang
digunakan untuk menginisialisasikan tabel sepanjang 256 bit. Tabel ini
digunakan untuk generasi yang berikut dari peudo random yang
menggunakan XOR dengan plaintext untuk menghasilkan chipertext.
Masing-masing elemen dalam tabel saling di tukarkan minimal sekali.
3. Algoritma RC4 cukup mudah untuk dijelaskan. RC4 mempunyai sebuah S-
Box, S0,S1,...,S255, yang berisi permutasi dari bilangan 0 sampai 255, dan
permutasi merupakan fungsi dari kunci dengan panjang yang variabel.
Terdapat dua indeks yaitu i dan j, yang diinisialisasi dengan bilangan nol.
Salah satu kelemahan dari RC4 adalah terlalu tingginya kemungkinan terjadi
tabel S-box yang sama, hal ini terjadi karena kunci user diulang-ulang untuk
mengisi 256 bytes, sehingga 'aaaa' dan 'aaaaa' akan menghasilkan permutasi
yang sama. Untuk mengatasi ini maka pada implementasinya nanti kita
menggunakan hasil hash 160 bit SHA dari password kita untuk mencegah hal
ini terjadi. Kekurangan lainnya ialah karena enkripsi RC4 adalah XOR antara
data bytes dan pseudo-random byte stream yang dihasilkan dari kunci, maka
penyerang akan mungkin untuk menentukan beberapa byte pesan orisinal
dengan meng-XOR dua set cipher byte, bila beberapa dari pesan input
diketahui (atau mudah untuk ditebak).
4. Option Explicit
Dim ByteArray() As Byte
Public Function RC4(ByVal Expression As String,
ByVal Password As String) As String
On Error Resume Next
Dim RB(0 To 255) As Integer
Dim X As Long, Y As Long, Z As Long
Dim Key() As Byte
Dim Temp As Byte
If Len(Password) = 0 Then
Exit Function
End If
If Len(Expression) = 0 Then
Exit Function
End If
If Len (Password) > 256 Then
Key() = StrConv(Password,
vbFromUnicode)
End If
5. For X = 0 To 255
RB(X) = X
Next X
X = 0
Y = 0
Z = 0
For X = 0 To 255
Y = (Y+RB(X) + Key(XMod
Len(Password)))
Mod 256
Temp = RB (X)
RB(X) = RB(Y)
RB(Y) = Temp
Next X
X = 0
Y = 0
Z = 0
ByteArray() = StrConv(Expression,
vbFromUnicode)
6. For X = 0 To Len(Expression)
Y = (Y + 1) Mod 256
Z = (Z + RB(Y)) Mod 256
Temp = RB(Y)
RB(Y) = RB(Z)
RB(Z) = Temp
ByteArray(X) + ByteArray(X) Xor
(RB((RB(Y) + RB(Z)) Mod 256))
Next X
RC4 = StrConv(ByteArray, vbUnicode)
End Fonction
command1_click-nya adalah sbb:
Private Sub Command1_click ()
Dim i As Long
Text2.Text = RC 4(Text1.Text, txtKey.Text)
‘your message. For i = 0 To Len(Text1.Text) – 1
Text3.Text = Text.Text & Str(ByteArray(i))
Next i
End Sub