Algoritma Fungsi Pendukung dalam Proses Pembentukan Kunci, Enkripsi dan Dekripsi

58 Simpan hasil X X110  Hasil1 X210  Hasil2 X310  Hasil3 X410  Hasil4 ---- KONVERSI KE ASCII ---- strHasil  cTmp1  Hasil1 Hasil2 Hasil3 Hasil4 For i  1 To 64 Step 8 strHasil  strHasil ChrFBiner2DecMidcTmp1, i, 8 Next i Hasil dekripsi IDEADecryption  strHasil End Function

4.1.4 Algoritma Fungsi Pendukung dalam Proses Pembentukan Kunci, Enkripsi dan Dekripsi

Fungsi-fungsi pendukung yang digunakan dalam proses pembentukan kunci, enkripsi dan dekripsi dalam metode IDEA adalah sebagai berikut : 1. Fungsi konversi dari biner ke desimal. Pengubahan biner menjadi desimal Fungsi FBiner2DecpcText As String As Double nHasil  0 Konversi dari belakang For nLoop  LenpcText To 1 Step -1 If MidpcText, nLoop, 1  1 Then nHasil  nHasil + 2 LenpcText - nLoop End If Next nLoop Angka Desimal FBiner2Dec  nHasil End Fungsi Universitas Sumatera Utara 59 2. Fungsi konversi dari desimal ke biner. Pengubahan desimal menjadi biner Fungsi FDec2BinerpnAngka As Double, Optional pnLength As Double = - 1 As String nHasilBagi  pnAngka While nHasilBagi 0 nSisaBagi  FModnHasilBagi, 2 cBiner1  cBiner1 FormatnSisaBagi nHasilBagi  FDivnHasilBagi, 2 Wend If cBiner1  Then cBiner1 = 0 Ambil Terbalik For nLoop  LencBiner1 To 1 Step -1 cBiner2  cBiner2 MidcBiner1, nLoop, 1 Next nLoop If pnLength  -1 Then Angka Biner FDec2Biner  cBiner2 Else If LencBiner2 = pnLength Then Angka Biner Kurang dari pnLength FDec2Biner  StringpnLength - LencBiner2, 0 cBiner2 Else Angka Biner Melebihi pnLength FDec2Biner  LeftcBiner2, pnLength End If End If End Fungsi 3. Fungsi konversi dari biner ke heksadesimal. Biner ke heksa Fungsi FBiner2HexpcText As String As String For i  1 To LenpcText Step 4 Universitas Sumatera Utara 60 FBiner2Hex  FBiner2Hex HexFBiner2DecMidpcText, i, 4 Next i End Fungsi 4. Fungsi konversi dari heksadesimal ke desimal. Heksa ke desimal Function FHex2DecpcText As String As Double For i = 1 To LenpcText Select Case MidpcText, i, 1 Case 1 To 9: FHex2Dec = FHex2Dec + CDecMidpcText, i, 1 16 LenpcText - i Case A, a: FHex2Dec = FHex2Dec + 10 16 LenpcText - i Case B, b: FHex2Dec = FHex2Dec + 11 16 LenpcText - i Case C, c: FHex2Dec = FHex2Dec + 12 16 LenpcText - i Case D, d: FHex2Dec = FHex2Dec + 13 16 LenpcText - i Case E, e: FHex2Dec = FHex2Dec + 14 16 LenpcText - i Case F, f: FHex2Dec = FHex2Dec + 15 16 LenpcText - i End Select Next i End Function 5. Fungsi Rotate Left Fungsi FRotateLeftpcText As String, pnRotate As Long As String cHasil  pcText For nLoop  1 To pnRotate cHasil  RightcHasil, LencHasil - 1 LeftcHasil, 1 Next nLoop FRotateLeft  cHasil End Fungsi Universitas Sumatera Utara 61 6. Fungsi XOR Fungsi FXORBinerpcText1 As String, pcText2 As String, Optional pnByte As Long = 0 As String Banyak byte nByte1  pnByte If nByte1  0 Then Ambil yang terpanjang If LenpcText1 LenpcText2 Then nByte1  LenpcText1 Else nByte1  LenpcText2 End If End If cText1  FormatStrpcText1, 0, nByte1 Text-1 cText2  FormatStrpcText2, 0, nByte1 Text-2 For nF  1 To nByte1 cXOR  cXOR IIfMidcText1, nF, 1 = MidcText2, nF, 1, 0, 1 Next nF Hasil XOR cHasilXOR = FormatStrcXOR, 0, pnByte FXORBiner = cHasilXOR End Fungsi 7. Fungsi Inverse Penjumlahan FMinus Fungsi FMinuspcBiner As String As String FMinus  FDec2Biner65536 - FBiner2DecpcBiner, 16 End Fungsi 8. Fungsi Inverse Perkalian Inverse functions Fungsi InverseA As Double As Double n  65537 Universitas Sumatera Utara 62 G0  n G1  A V0  0 V1  1 While G1 0 Y  IntG0 G1 G2  G0 - Y G1 G0  G1 G1  G2 V2  V0 - Y V1 V0  V1 V1  V2 Wend If V0 = 0 Then Inverse  V0 Else Inverse  V0 + n End If End Fungsi

4.2 Implementasi Sistem