Keamanan Data Dengan Kriptografi Einstein.

(1)

ABSTRAK

Perkembangan pesat teknologi informasi sekarang ini sangat mempengaruhi kehidupan masyarakat, terutama kebutuhan akan informasi dan komunikasi. Keamanan data informasi merupakan faktor utama dan terdepan yang menentukan apakah data informasi tersebut aman dan berada di tangan yang semestinya. Tingkat keamanan data informasi yang akan digunakan bermacam – macam bergantung pada kegunaan data informasi tersebut.

Salah satu teknik pengamanan data informasi di dunia internet adalah penggunaan teknik algoritma kriptografi. Suatu algoritma kriptografi berisi fungsi-fungsi matematika yang digunakan untuk melakukan proses enkripsi dan dekripsi. Algoritma kriptografi yang digunakan merupakan jenis algoritma kriptografi simetrik yang menggunakan kunci rahasia yang sama untuk proses enkripsi dan dekripsinya.

Tugas akhir ini menggunakan algoritma kriptografi Einstein sebagai salah satu cara untuk mengamankan data. Algoritma Einstein direalisasikan dengan menggunakan program Microsoft Visual Basic 6. Pada algoritma Einstein, terdapat proses acak (random) yang menggunakan metoda kongruensial linear (linear congruential method). Algoritma Einstein mempunyai kelebihan dalam melakukan proses enkripsi dan dekripsi pada hampir semua jenis file yang umum digunakan. Algoritma Einstein bisa diimplementasikan untuk semua ukuran file.


(2)

ABSTRACT

Information technology growth rapidly nowadays makes influence in social society, especially information and communication needs. Information data security is major and first thing factor to decide what if the information data is secure and in the proper hand. Information data security levels which will be used depend on the usage of the information data.

One of information data security technique in internet realm is cryptography algorithm technique usage. Cryptography algorithm contains the mathematics function used to conduct the process of encrypts and decrypts. Cryptography algorithm used represents the symmetrical algorithm type using same key of encrypt and decrypts process.

This Final Assignment is using Einstein cryptography algorithm as one of securing data technique. Realization Einstein algorithm makes use of Microsoft Visual Basic 6 program. Einstein algorithm make use random process using linear congruencies method. Einstein Algorithm has the excess in conducting process encrypts and decrypts at almost file type which is often used. Einstein Algorithm can be implemented for all size file.


(3)

DAFTAR ISI

LEMBAR PENGESAHAN SURAT PERNYATAAN

ABSTRAK i

ABSTRAC ii

KATA PENGANTAR iii

DAFTAR ISI v

DAFTAR TABEL viii

DAFTAR GAMBAR ix

Bab I PENDAHULUAN 1

I.1 Latar Belakang 1

I.2 Identifikasi Masalah 1

I.3 Tujuan 2

I.4 Pembatasan Masalah 3

I.5 Sistematika Pembahasan 3

Bab II TEORI PENUNJANG 4

II.1 Kriptologi, Kriptoanalisis, Kriptografi, dan Sistem Kripto 4

II.1.1 Tujuan Kriptografi 5

II.1.1.1 Kebutuhan Autentikasi 5

II.1.2 Dimensi Kriptografi 12

II.1.3 Ancaman Serangan 12

II.1.3.1 Penyusupan Pihak ke 3 12

II.1.3.2 Serangan Acak 13

II.1.3.3 Eavesdropping 13

II.1.3.4 Chosen ciphertext attack 13

II.1.3.5 Adaptive chosen ciphertext attack 14

II.1.3.6 Kriptanalisis 14

II.1.3.7 Differential Cryptanalysis 15

II.1.3.8 Linear Cryptanalysis 15


(4)

II.1.5 Algoritma dan Pengaturan Kunci 17

II.1.5.1 Algoritma Simetrik 18

II.1.5.2 Algoritma Asimetrik 20

II.1.6 Pemeriksaan kunci 21

II.1.6.1 Infrastruktur Kunci Publik 22

II.1.6.2 Jaringan Kepercayaan 22

II.1.6.3 Otoritas Sertifikasi Robot 23

II.1.7 Angka Acak 23

II.1.7.1 Fungsi Angka Acak 23

II.1.7.2 Pembuatan Angka Acak 24

II.2 Teori Matematika 24

II.2.1 Bilangan Prima 24

II.2.2 Operasi Modulus 25

II.2.3 Operasi XOR 26

II.2.4 Angka Pseudorandom dengan metoda kongruensial linear 26

II.3 Algoritma Einstein 27

II.3.1 Algoritma Enkripsi Einstein 28

II.3.2 Algoritma Dekripsi Einstein 29

II.3.3 Proses Acak 29

Bab III IMPLEMENTASI ALGORITMA DAN REALISASI

PERANGKAT LUNAK 31

III.1 Perangkat Lunak Pengamanan Data Algoritma Einstein 31

III.2 Program Utama 33

III.2.1 Program Enkripsi 33

III.2.2 Program Pemeriksaan Kunci Untuk Enkripsi 34

III.2.3 Program Dekripsi 35

III.2.4 Program Pemeriksaan Kunci Untuk Dekripsi 37

III.2.5 Program Acak 37

Bab IV HASIL PENGAMATAN 39

IV.1 Perangkat Lunak Pengamanan Data 39

IV.2 Hasil Pengamatan 39


(5)

Bab V KESIMPULAN DAN SARAN 42

V.1 Kesimpulan 42

V.2 Saran 42

DAFTAR PUSTAKA 43

LAMPIRAN A LISTING PROGRAM


(6)

DAFTAR TABEL


(7)

DAFTAR GAMBAR

Gambar II.1 Kegunaan dasar enkripsi pesan 8

Gambar II.2 Kegunaan dasar autentikasi pesan 10

Gambar II.3 Kegunaan dasar fungsi hash 11

Gambar II.4 Diagram blok proses enkripsi dan dekripsi 16 Gambar II.5 Contoh penggunaan stream cipher pada algoritma RC4 18

Gambar II.6 Proses enkripsi block cipher 19

Gambar II.7 Proses dekripsi block cipher 19

Gambar II.8 Algoritma simetrik 20

Gambar II.9 Algoritma asimetrik 21

Gambar II.10 Gerbang logika XOR 26

Gambar III.1 Diagram alir perangkat lunak algoritma Einstein 32

Gambar III.2 Diagram alir proses enkripsi 34

Gambar III.3 Diagram alir pemeriksaan kunci untuk enkripsi 35

Gambar III.4 Diagram alir program dekripsi 36


(8)

LAMPIRAN A

LISTING PROGRAM


(9)

EinsteinProject-FormKeyGen (Code)

Dim currNumber As Long

Private Sub CmdGenerate_Click() currNumber = Val(TxtSmallest.Text) TmrGenerator.Enabled = True CmdGenerate.Enabled = False End Sub

Private Sub Form_Load() LstKeys.Clear

SetNumber TxtSmallest, True End Sub

Private Sub LstKeys_DblClick()

FormNMain.TxtEKey.Text = LstKeys.List(LstKeys.ListIndex) End Sub

Private Sub TmrGenerator_Timer() If LstKeys.ListCount < 25 Then If IsValidKey(currNumber) Then LstKeys.AddItem CStr(currNumber) End If

currNumber = currNumber + 1 Else

TmrGenerator.Enabled = False CmdGenerate.Enabled = True End If

End Sub

Private Sub TxtSmallest_Change() If TxtSmallest.Text <> "0" Then CmdGenerate.Enabled = True Else

CmdGenerate.Enabled = False End If

End Sub

EinsteinProject-FormNMain (Code)

Dim FDlg As New ClsFileDialog Dim SHApp As Object

Private Sub Execute(ByVal execName As String, Optional ByVal aParam As Variant, _

Optional ByVal execDirectory As String)

SHApp.ShellExecute execName, aParam, vbNullString, vbNullString, 0 End Sub

Private Sub refreshList() Dim i As Long


(10)

Dim anItem As ListItem i = 0

LVLogs.ListItems.Clear While i < projLogCount

Set anItem = LVLogs.ListItems.Add With projLog(i)

anItem.Text = .projectID

anItem.SubItems(1) = .sourceFilename anItem.SubItems(2) = .saveAsFilename anItem.SubItems(3) = .encryptTime End With

i = i + 1 Wend

Set anItem = Nothing End Sub

Private Sub CmdCompare_Click()

Execute App.Path & "\File Compare.exe", PPDResult.ItemValue(0) End Sub

Private Sub CmdDBrowse_Click()

FDlg.filter = "Einstein Encrypted File (*.eef)|*.eef" FDlg.Filename = TxtDFilename.Text

FDlg.ShowOpen

If FDlg.Filename <> "" And FDlg.Filename <> TxtDFilename.Text Then TxtDFilename.Text = FDlg.Filename

End If End Sub

Private Sub CmdDecrypt_Click() If TxtDFilename.Text = "" Then

MsgBox "Please specify filename to be decrypt!", vbOKOnly + vbCritical, "Decryption Error"

Else

If TxtDKey.Text <> "" Then

If IsValidKey(Val(TxtDKey.Text)) Then pKey = Val(TxtDKey.Text)

If FormProcess.DecryptFile(TxtDFilename.Text, Me) Then PPDResult.ItemValue(1) = Trim(Str(FileLen(App.Path & "\DResult.tmp"))) & " bytes"

Else

MsgBox "Invalid key. The key is not encryption key", vbOKOnly + vbCritical, "Decryption Error"

End If Else

MsgBox "Invalid key. The key must have two prime factor", vbOKOnly + vbCritical, "Decryption Error"

End If Else


(11)

MsgBox "Please specify encryption key", vbOKOnly + vbCritical, "Decryption Error"

End If End If End Sub

Private Sub CmdDNew_Click() TxtDFilename.Text = "" TxtDKey.Text = ""

PPDResult.ItemValue(0) = "" PPDResult.ItemValue(1) = ""

PPDResult.ItemGroupValue(2, 0) = "0" PPDResult.ItemGroupValue(2, 1) = "0" PPDResult.ItemGroupValue(2, 2) = "0" FDlg.DeleteFile App.Path & "\DResult.tmp" End Sub

Private Sub CmdDSave_Click() Dim arrAttr() As String

Dim anAttr As Long Dim i As Long

If PPDResult.ItemValue(0) <> "" Then

FDlg.CopyFile App.Path & "\DResult.tmp", PPDResult.ItemValue(0), True If StrComp(PPDResult.ItemValue(3), "True", vbTextCompare) = 0 Then arrAttr = Split(PPSProp.ItemValue(3), "+", , vbTextCompare)

anAttr = 0

i = LBound(arrAttr)

While i <= UBound(arrAttr)

If StrComp(arrAttr(i), "Normal", vbTextCompare) = 0 Then anAttr = 0

Else

If StrComp(arrAttr(i), "Archive", vbTextCompare) = 0 Then anAttr = anAttr + vbArchive

ElseIf StrComp(arrAttr(i), "Hidden", vbTextCompare) = 0 Then anAttr = anAttr + vbHidden

ElseIf StrComp(arrAttr(i), "Read-only", vbTextCompare) = 0 Then anAttr = anAttr + vbReadOnly

ElseIf StrComp(arrAttr(i), "System", vbTextCompare) = 0 Then anAttr = anAttr + vbSystem

End If End If i = i + 1 Wend

SetAttr PPDResult.ItemValue(0), anAttr End If

Else

MsgBox "Please specify the Save As Filename property!", vbOKOnly + vbCritical, "Saving Error"


(12)

End Sub

Private Sub CmdEBrowse_Click() Dim strAttr As String

FDlg.filter = "All Files(*.*)|*.*" FDlg.Filename = TxtEFilename.Text FDlg.ShowOpen

If FDlg.Filename <> "" Then

TxtEFilename.Text = FDlg.Filename PPESource.ItemValue(0) = FDlg.FileTitle

PPESource.ItemValue(1) = Trim(Str(FileLen(FDlg.Filename))) & " bytes" PPESource.ItemValue(2) = FDlg.FileType

strAttr = ""

If GetAttr(FDlg.Filename) And vbNormal Then strAttr = "Normal"

Else

If GetAttr(FDlg.Filename) And vbArchive Then strAttr = "Archive"

End If

If GetAttr(FDlg.Filename) And vbHidden Then If strAttr <> "" Then

strAttr = "Hidden" Else

strAttr = "+Hidden" End If

End If

If GetAttr(FDlg.Filename) And vbReadOnly Then If strAttr <> "" Then

strAttr = "Read-only" Else

strAttr = "+Read-only" End If

End If

If GetAttr(FDlg.Filename) And vbSystem Then If strAttr <> "" Then

strAttr = "System" Else

strAttr = "+System" End If

End If End If

PPESource.ItemValue(3) = strAttr End If

End Sub

Private Sub CmdEncrypt_Click() Dim fTmp As Long

If TxtEText.Text <> "" Then fTmp = FreeFile


(13)

Open App.Path & "\Untitled.txt" For Output As #fTmp Print #fTmp, TxtEText.Text

Close (fTmp) End If

If TxtEFilename.Text = "" And TxtEText.Text = "" Then

MsgBox "Please specify filename or text to be encrypted", vbOKOnly + vbCritical, "Encryption Error"

Else

If TxtEKey.Text = "" Then

MsgBox "Please specify encryption key", vbOKOnly + vbCritical, "Encryption Error"

Else

If IsValidKey(Val(TxtEKey.Text)) Then Me.MousePointer = 11

pKey = Val(TxtEKey.Text) If TxtEText.Text = "" Then

FormProcess.EncryptFile TxtEFilename.Text, Me Else

FormProcess.EncryptFile App.Path & "\Untitled.txt", Me End If

PPEResult.ItemValue(2) = Trim(Str(FileLen(App.Path & "\EResult.tmp"))) & " bytes"

Me.MousePointer = 0 Else

MsgBox "Invalid key. The key must have two prime factor", vbOKOnly + vbCritical, "Encryption Error"

End If End If End If End Sub

Private Sub CmdENew_Click() TxtEFilename.Text = "" TxtEText.Text = "" TxtEKey.Text = ""

PPEResult.ItemValue(0) = getNewID PPEResult.ItemValue(1) = ""

PPEResult.ItemValue(2) = ""

PPEResult.ItemGroupValue(3, 0) = "0" PPEResult.ItemGroupValue(3, 1) = "0" PPEResult.ItemGroupValue(3, 2) = "0" FDlg.DeleteFile App.Path & "\EResult.tmp" End Sub

Private Sub CmdESave_Click()

If PPEResult.ItemValue(1) <> "" Then If Len(PPEResult.ItemValue(1)) > 4 Then

If StrComp(Right(PPEResult.ItemValue(1), 4), ".eef", vbTextCompare) <> 0 Then


(14)

PPEResult.ItemValue(1) = PPEResult.ItemValue(1) & ".eef" End If

End If

FDlg.CopyFile App.Path & "\EResult.tmp", PPEResult.ItemValue(1), True addLog PPEResult.ItemValue(0), PPESource.ItemValue(0),

PPEResult.ItemValue(1), PPEResult.GroupValueByName("Time") refreshList

Else

MsgBox "Please specify the Save As Filename property!", vbOKOnly + vbCritical, "Saving Error"

PPEResult.SelectedItem = 1 End If

End Sub

Private Sub CmdGenerate_Click() FormKeyGen.Show vbModal, Me End Sub

Private Sub Form_Initialize() InitCommonControls End Sub

Private Sub Form_Load() Dim arrList(0 To 1) As String

Set SHApp = CreateObject("Shell.Application") arrList(0) = "True"

arrList(1) = "False"

FDlg.hWndOwner = hWnd

PPESource.AddItem "Original Filename", "", vtText PPESource.ItemReadOnly(0) = True

PPESource.AddItem "Size", "", vtText PPESource.ItemReadOnly(1) = True PPESource.AddItem "Type", "", vtText PPESource.ItemReadOnly(2) = True PPESource.AddItem "Attribute", "", vtText PPESource.ItemReadOnly(3) = True

PPSProp.AddItem "Original Filename", "", vtText PPSProp.ItemReadOnly(0) = True

PPSProp.AddItem "Size", "", vtText PPSProp.ItemReadOnly(1) = True PPSProp.AddItem "Type", "", vtText PPSProp.ItemReadOnly(2) = True PPSProp.AddItem "Attribute", "", vtText PPSProp.ItemReadOnly(3) = True

PPEResult.AddItem "Encryption ID", "", vtText PPEResult.ItemReadOnly(0) = True

PPEResult.AddItem "Save As Filename", "", vtBrowseForSave

PPEResult.ItemBrowseFilter(1) = "Einstein Encrypted File (*.eef)|*.eef" PPEResult.AddItem "Result Size", "", vtText


(15)

PPEResult.AddGroup "Time" PPEResult.GroupSeparator(3) = ":"

PPEResult.AddGroupMember 3, "Hour", "", vtText PPEResult.AddGroupMember 3, "Minute", "", vtText PPEResult.AddGroupMember 3, "Second", "", vtText PPEResult.ItemGroupReadOnly(3, 0) = True

PPEResult.ItemGroupReadOnly(3, 1) = True PPEResult.ItemGroupReadOnly(3, 2) = True

PPDResult.AddItem "Save As Filename", "", vtBrowseForSave PPDResult.ItemBrowseFilter(0) = "All Files(*.*)|*.*"

PPDResult.AddItem "Result Size", "", vtText PPDResult.ItemReadOnly(1) = True

PPDResult.AddGroup "Time" PPDResult.GroupSeparator(2) = ":"

PPDResult.AddGroupMember 2, "Hour", "", vtText PPDResult.AddGroupMember 2, "Minute", "", vtText PPDResult.AddGroupMember 2, "Second", "", vtText PPDResult.ItemGroupReadOnly(2, 0) = True

PPDResult.ItemGroupReadOnly(2, 1) = True PPDResult.ItemGroupReadOnly(2, 2) = True

PPDResult.AddItem "Set Attributes", GetSetting("Einstein Project", "AppSetting", "SetAttr", "True"), vtList, arrList

SetNumber TxtEKey, True SetNumber TxtDKey, True loadLogFile

CmdENew_Click CmdDNew_Click SSTab1.Tab = 0 refreshList End Sub

Private Sub Form_Unload(Cancel As Integer) Set SHApp = Nothing

SaveSetting "Einstein Project", "AppSetting", "SetAttr", PPDResult.ItemValue(3)

saveLogFile End Sub

Private Sub TxtDFilename_Change() Dim tmpHandle As Long

If TxtDFilename.Text <> "" Then tmpHandle = FreeFile

Open TxtDFilename.Text For Binary As #tmpHandle PPSProp.ItemValue(0) = getOriginalFilename(tmpHandle) PPSProp.ItemValue(1) = getOriginalFileSize(tmpHandle) PPSProp.ItemValue(2) = getOriginalFileType(tmpHandle) PPSProp.ItemValue(3) = getOriginalFileAttribute(tmpHandle) Close (tmpHandle)


(16)

PPDResult.ItemBrowseFilter(0) = PPSProp.ItemValue(2) & " Files|*." & getFileExtension(PPSProp.ItemValue(0)) & "|All Files(*.*)|*.*"

Else

PPSProp.ItemValue(0) = "" PPSProp.ItemValue(1) = "" PPSProp.ItemValue(2) = "" PPSProp.ItemValue(3) = ""

PPDResult.ItemBrowseFilter(0) = "All Files(*.*)|*.*" End If

End Sub

Private Sub TxtEText_Change() Dim strAttr As String

If TxtEText.Text <> "" Then TxtEFilename.Text = ""

PPESource.ItemValue(0) = "Untitled.txt"

PPESource.ItemValue(1) = Trim(Str(Len(TxtEText.Text))) & " bytes" PPESource.ItemValue(2) = "Text"

PPESource.ItemValue(3) = "Normal" Else

TxtEFilename.Text = FDlg.Filename If FDlg.Filename <> "" Then

PPESource.ItemValue(0) = FDlg.FileTitle

PPESource.ItemValue(1) = Trim(Str(FileLen(FDlg.Filename))) & " bytes" PPESource.ItemValue(2) = FDlg.FileType

strAttr = ""

If GetAttr(FDlg.Filename) And vbNormal Then strAttr = "Normal"

Else

If GetAttr(FDlg.Filename) And vbArchive Then strAttr = "Archive"

End If

If GetAttr(FDlg.Filename) And vbHidden Then If strAttr <> "" Then

strAttr = "Hidden" Else

strAttr = "+Hidden" End If

End If

If GetAttr(FDlg.Filename) And vbReadOnly Then If strAttr <> "" Then

strAttr = "Read-only" Else

strAttr = "+Read-only" End If

End If

If GetAttr(FDlg.Filename) And vbSystem Then If strAttr <> "" Then


(17)

strAttr = "System" Else

strAttr = "+System" End If

End If End If

PPESource.ItemValue(3) = strAttr Else

PPESource.ItemValue(0) = "" PPESource.ItemValue(1) = "" PPESource.ItemValue(2) = "" PPESource.ItemValue(3) = "" End If

End If End Sub

EinsteinProject-FormProcess (Code)

Private Declare Function GetTickCount Lib "kernel32" () As Long Dim fHandle As Long

Dim fTmpHandle As Long Dim fBuffer As Byte Dim lstRandom As Long Dim encResult As Double

Dim byteSign1 As Long, byteSign2 As Long, byteData As Long Dim bytesEncrypted(0 To 2) As Long

Dim validKey As Long Dim lastTime As Long Dim elapsedTime As Long Dim isEncrypt As Boolean Private Sub printTime() Dim newTime As Long

newTime = (GetTickCount \ 1000) - lastTime If newTime <> elapsedTime Then

elapsedTime = newTime

LbTime.Caption = Right("00" & Trim(Str(elapsedTime \ 3600)), 2) & ":" & Right("00" & Trim(Str((elapsedTime Mod 3600) \ 60)), 2) & ":" & Right("00" & Trim(Str(elapsedTime Mod 60)), 2)

If isEncrypt Then

FormNMain.PPEResult.ItemGroupValue(3, 0) = Right("00" & Trim(Str(elapsedTime \ 3600)), 2)

FormNMain.PPEResult.ItemGroupValue(3, 1) = Right("00" & Trim(Str((elapsedTime Mod 3600) \ 60)), 2)

FormNMain.PPEResult.ItemGroupValue(3, 2) = Right("00" & Trim(Str(elapsedTime Mod 60)), 2)


(18)

Else

FormNMain.PPDResult.ItemGroupValue(2, 0) = Right("00" & Trim(Str(elapsedTime \ 3600)), 2)

FormNMain.PPDResult.ItemGroupValue(2, 1) = Right("00" & Trim(Str((elapsedTime Mod 3600) \ 60)), 2)

FormNMain.PPDResult.ItemGroupValue(2, 2) = Right("00" & Trim(Str(elapsedTime Mod 60)), 2)

End If End If End Sub

Public Sub EncryptFile(ByVal Filename As String, Owner As Form) isEncrypt = True

Label1.Caption = "Please wait, encrypting..." fHandle = FreeFile

Open Filename For Binary As #fHandle fTmpHandle = FreeFile

Open App.Path + "\EResult.tmp" For Binary As #fTmpHandle PrintFilename originalFilename, fTmpHandle

SplitValue pKey, bytesEncrypted(0), bytesEncrypted(1), bytesEncrypted(2) Put #fTmpHandle, , bytesEncrypted

strResult = strResult + Trim(Chr$(byteSign1)) + Trim(Chr$(byteSign2)) + Trim(Chr$(byteData))

lstRandom = pKey

lastTime = GetTickCount \ 1000 elapsedTime = -1

TmrEncrypt.Enabled = True Me.MousePointer = 11 Me.Show vbModal, Owner End Sub

Public Function DecryptFile(ByVal Filename As String, Owner As Form) As Boolean

isEncrypt = False

Label1.Caption = "Please wait, decrypting..." fHandle = FreeFile

Open Filename For Binary As #fHandle

originalFilename = getOriginalFilename(fHandle) getOriginalFileSize fHandle

getOriginalFileType fHandle getOriginalFileAttribute fHandle Get #fHandle, , bytesEncrypted

validKey = CombineValue(bytesEncrypted(0), bytesEncrypted(1), bytesEncrypted(2))

DecryptFile = True

If IsValidKey(validKey) Then If validKey <> pKey Then DecryptFile = False Close (fHandle)


(19)

Exit Function End If

Else

DecryptFile = False Close (fHandle) Exit Function End If

fTmpHandle = FreeFile

Open App.Path + "\DResult.tmp" For Binary As #fTmpHandle lstRandom = validKey

pKey = validKey

lastTime = GetTickCount \ 1000 elapsedTime = -1

TmrDecrypt.Enabled = True Me.MousePointer = 11 Me.Show vbModal, Owner End Function

Private Sub TmrDecrypt_Timer() Dim ecrData As Double

Dim plainData As Double Dim plainBuffer As Byte Dim i As Long

printTime i = 0

While Not EOF(fHandle) And i < 5 Get #fHandle, , bytesEncrypted If Not EOF(fHandle) Then

ecrData = CombineValue(bytesEncrypted(0), bytesEncrypted(1), bytesEncrypted(2))

lstRandom = NextRandom(lstRandom) ecrData = XORValueEx(ecrData, lstRandom) plainData = DecryptChar(ecrData)

If plainData Mod 256 >= 0 Then plainBuffer = plainData Mod 256 Put #fTmpHandle, , plainBuffer Else

MsgBox "Invalid data!", vbOKOnly + vbExclamation, "Einstein Encryption"

Close (fHandle) Close (fTmpHandle)

TmrDecrypt.Enabled = False Me.MousePointer = 0 Unload Me

End If End If i = i + 1 Wend


(20)

If EOF(fHandle) Then Close (fHandle) Close (fTmpHandle)

TmrDecrypt.Enabled = False Me.MousePointer = 0 Unload Me

End If End Sub

Private Sub TmrEncrypt_Timer() Dim i As Long

printTime i = 0

While Not EOF(fHandle) And i < 5 Get #fHandle, , fBuffer

If Not EOF(fHandle) Then

encResult = EncryptChar(fBuffer) If encResult > -1 Then

lstRandom = NextRandom(lstRandom)

encResult = XORValue(encResult, lstRandom)

SplitValue encResult, bytesEncrypted(0), bytesEncrypted(1), bytesEncrypted(2)

Put #fTmpHandle, , bytesEncrypted Else

Close (fHandle) Close (fTmpHandle)

TmrEncrypt.Enabled = False Me.MousePointer = 0 Unload Me

End If End If i = i + 1 Wend

If EOF(fHandle) Then Close (fHandle) Close (fTmpHandle)

TmrEncrypt.Enabled = False Me.MousePointer = 0 Unload Me

End If End Sub

Private Sub PrintFilename(ByVal printedFilename As String, ByVal fHandle As Long)

Dim i As Long, strPrinted As String

strPrinted = "Original Filename:" & FormNMain.PPESource.ItemValue(0) & ";"

i = 1


(21)

Put #fHandle, , AscB(Mid(strPrinted, i, 1)) i = i + 1

Wend

strPrinted = "File size:" & FormNMain.PPESource.ItemValue(1) & ";" i = 1

While i <= Len(strPrinted)

Put #fHandle, , AscB(Mid(strPrinted, i, 1)) i = i + 1

Wend

strPrinted = "File Type:" & FormNMain.PPESource.ItemValue(2) & ";" i = 1

While i <= Len(strPrinted)

Put #fHandle, , AscB(Mid(strPrinted, i, 1)) i = i + 1

Wend

strPrinted = "File Attribute:" & FormNMain.PPESource.ItemValue(3) & ";" i = 1

While i <= Len(strPrinted)

Put #fHandle, , AscB(Mid(strPrinted, i, 1)) i = i + 1

Wend End Sub

EinsteinProject-EinsteinModule (Code)

Option Explicit

Public Const GWL_STYLE = (-16) Public Const ES_NUMBER = &H2000& Public Enum ReadFileMode

rfmText = 0 rfmBinary = 1 End Enum

Public Type ProjectLogType projectID As String sourceFilename As String saveAsFilename As String encryptTime As String End Type

Private Declare Function GetTickCount Lib "kernel32" () As Long Public Declare Sub InitCommonControls Lib "ComCtl32.dll" () Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _

(ByVal hWnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _


(22)

(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public AFactor As Long, BFactor As Long, pKey As Long Public strResult As String

Public originalFilename As String Public projLog() As ProjectLogType Public projLogCount As Long

Public Function IsValidKey(ByVal aKey As Long) As Boolean Dim i As Long

IsValidKey = False i = 1

While i <= aKey And Not IsValidKey If IsPrimeNumber(i) Then

If aKey Mod i = 0 Then

If IsPrimeNumber(aKey / i) Then If i > aKey / i Then

AFactor = i BFactor = aKey / i Else

BFactor = i AFactor = aKey / i End If

IsValidKey = True Exit Function End If

End If End If i = i + 1 Wend End Function

Public Function IsPrimeNumber(ByVal aValue As Long) As Boolean Dim Divider As Integer

IsPrimeNumber = True If aValue < 0 Then aValue = aValue * -1 End If

Divider = 2

While IsPrimeNumber And Divider < aValue If aValue Mod Divider = 0 Then

IsPrimeNumber = False End If

Divider = Divider + 1 Wend

End Function

Public Function DecToBinary(ByVal aValue As Long, Optional ByVal lBinary As Long) As String


(23)

While aValue > 0

DecToBinary = Trim(Str(aValue Mod 2)) + DecToBinary aValue = aValue \ 2

Wend

While Len(DecToBinary) < lBinary DecToBinary = "0" + DecToBinary Wend

End Function

Public Function BinaryToDec(ByVal ABinaryValue As String) As Long Dim i As Integer

BinaryToDec = 0 i = 0

While i < Len(ABinaryValue)

If Mid(ABinaryValue, Len(ABinaryValue) - i, 1) = "1" Then BinaryToDec = BinaryToDec + (2 ^ i)

End If i = i + 1 Wend End Function

Public Function XORValue(ByVal aValue As Long, ByVal modValue As Long) As Long

Dim aValueBin As String, modValueBin As String, resultBin As String Dim i As Long

i = 1

aValueBin = DecToBinary(aValue, 24) modValueBin = DecToBinary(modValue, 24) resultBin = ""

While i <= Len(aValueBin)

If (Mid(aValueBin, i, 1) = "0" And Mid(modValueBin, i, 1) = "0") Or _ (Mid(aValueBin, i, 1) = "1" And Mid(modValueBin, i, 1) = "1") Then resultBin = resultBin + "0"

Else

resultBin = resultBin + "1" End If

i = i + 1 Wend

XORValue = BinaryToDec(resultBin) End Function

Public Function XORValueEx(ByVal aValue As Long, ByVal modValue As Long) As Long

Dim aValueBin As String, modValueBin As String, resultBin As String Dim i As Long

i = 1

aValueBin = DecToBinary(aValue, 24) modValueBin = DecToBinary(modValue, 24) resultBin = ""


(24)

If Mid(aValueBin, i, 1) = "0" Then

resultBin = resultBin + Mid(modValueBin, i, 1) Else

If Mid(modValueBin, i, 1) = "0" Then resultBin = resultBin + "1"

Else

resultBin = resultBin + "0" End If

End If i = i + 1 Wend

XORValueEx = BinaryToDec(resultBin) End Function

Public Function EncryptChar(ByVal strChar As Byte) As Double On Error GoTo ecrError

EncryptChar = (pKey * AFactor / BFactor) + (pKey * strChar * (AFactor + BFactor))

Exit Function ecrError:

EncryptChar = -1

MsgBox "Key overflow", vbOKOnly + vbCritical, "Einstein Encryption" End Function

Public Function DecryptChar(ByVal encChar As Double) As Double

DecryptChar = (encChar - (pKey * AFactor / BFactor)) / (pKey * (AFactor + BFactor))

End Function

Public Sub SplitValue(ByVal srcValue As Double, ByRef signValue1 As Long, ByRef signValue2 As Long, ByRef dataValue As Long)

dataValue = srcValue Mod 256 signValue1 = srcValue \ 256 signValue2 = signValue1 Mod 256 signValue1 = signValue1 \ 256 End Sub

Public Function CombineValue(ByVal signValue1 As Long, ByVal signValue2 As Long, ByVal dataValue As Long) As Double

CombineValue = (signValue1 * (256 ^ 2)) + (signValue2 * 256) + dataValue End Function

Public Function NextRandom(ByVal rSeed As Long) As Long 'If rSeed <= 0 Then rSeed = 13

NextRandom = (rSeed * 214013 + 2531011) Mod 1023 End Function

Public Sub SetNumber(NumberText As TextBox, Flag As Boolean) Dim curstyle As Long

Dim newstyle As Long

curstyle = GetWindowLong(NumberText.hWnd, GWL_STYLE) If Flag Then


(25)

Else

curstyle = curstyle And (Not ES_NUMBER) End If

newstyle = SetWindowLong(NumberText.hWnd, GWL_STYLE, curstyle) NumberText.Refresh

End Sub

Public Function getOriginalFilename(ByVal fHandle As Long) As String Dim fBuffer As Byte

Dim arrOrig() As String Dim origStr As String origStr = ""

Get #fHandle, , fBuffer While Chr$(fBuffer) <> ";"

origStr = origStr + Chr$(fBuffer) Get #fHandle, , fBuffer

Wend

arrOrig = Split(origStr, ":", , vbTextCompare) getOriginalFilename = arrOrig(1)

End Function

Public Function getOriginalFileSize(ByVal fHandle As Long) As String Dim fBuffer As Byte

Dim arrOrig() As String Dim origStr As String origStr = ""

Get #fHandle, , fBuffer While Chr$(fBuffer) <> ";"

origStr = origStr + Chr$(fBuffer) Get #fHandle, , fBuffer

Wend

arrOrig = Split(origStr, ":", , vbTextCompare) getOriginalFileSize = arrOrig(1)

End Function

Public Function getOriginalFileType(ByVal fHandle As Long) As String Dim fBuffer As Byte

Dim arrOrig() As String Dim origStr As String origStr = ""

Get #fHandle, , fBuffer While Chr$(fBuffer) <> ";"

origStr = origStr + Chr$(fBuffer) Get #fHandle, , fBuffer

Wend

arrOrig = Split(origStr, ":", , vbTextCompare) getOriginalFileType = arrOrig(1)

End Function

Public Function getOriginalFileAttribute(ByVal fHandle As Long) As String Dim fBuffer As Byte


(26)

Dim arrOrig() As String Dim origStr As String origStr = ""

Get #fHandle, , fBuffer While Chr$(fBuffer) <> ";"

origStr = origStr + Chr$(fBuffer) Get #fHandle, , fBuffer

Wend

arrOrig = Split(origStr, ":", , vbTextCompare) getOriginalFileAttribute = arrOrig(1)

End Function

Public Sub loadLogFile() Dim fHandle As Long Dim fBuffer As String Dim arrBuffer() As String

If Dir(App.Path & "\Log.txt") <> "" Then fHandle = FreeFile

projLogCount = 0

Open App.Path & "\Log.txt" For Input As #fHandle While Not EOF(fHandle)

Line Input #fHandle, fBuffer

arrBuffer = Split(fBuffer, ";", , vbTextCompare) projLogCount = projLogCount + 1

ReDim Preserve projLog(0 To projLogCount - 1) As ProjectLogType projLog(projLogCount - 1).projectID = arrBuffer(0)

projLog(projLogCount - 1).sourceFilename = arrBuffer(1) projLog(projLogCount - 1).saveAsFilename = arrBuffer(2) projLog(projLogCount - 1).encryptTime = arrBuffer(3) Wend

Close (fHandle) Else

projLogCount = 0 End If

End Sub

Public Sub saveLogFile() Dim i As Long

Dim fHandle As Long fHandle = FreeFile

Open App.Path & "\Log.txt" For Output As #fHandle i = 0

While i < projLogCount With projLog(i)

Print #fHandle, .projectID & ";" & .sourceFilename & ";" & .saveAsFilename & ";" & .encryptTime

End With i = i + 1 Wend


(27)

Close (fHandle) End Sub

Public Sub addLog(ByVal projID As String, ByVal sourceName As String, ByVal saveAsName As String, ByVal projTime As String)

projLogCount = projLogCount + 1

ReDim Preserve projLog(0 To projLogCount - 1) As ProjectLogType With projLog(projLogCount - 1)

.projectID = projID

.sourceFilename = sourceName .saveAsFilename = saveAsName .encryptTime = projTime

End With End Sub

Public Function HexGenerator(Optional ByVal hexLength As Long = 16) As String

Dim tCount As Double Dim aValue As Long HexGenerator = ""

While Len(HexGenerator) < hexLength tCount = GetTickCount

aValue = (tCount * Rnd) Mod 16

HexGenerator = HexGenerator & UCase(Trim(Hex$(aValue))) Wend

End Function

Public Function getNewID() As String Dim aHexNumber As String

aHexNumber = HexGenerator While checkProjID(aHexNumber) aHexNumber = HexGenerator Wend

getNewID = aHexNumber End Function

Public Function checkProjID(ByVal aProjID As String) As Boolean Dim i As Long

Dim find As Boolean i = 0

find = False

While i < projLogCount And Not find

If StrComp(aProjID, projLog(i).projectID, vbTextCompare) = 0 Then find = True

End If i = i + 1 Wend

checkProjID = find End Function

Public Function getFileExtension(ByVal aFilename As String) As String Dim arrFilename() As String


(28)

arrFilename = Split(aFilename, ".", , vbTextCompare) getFileExtension = ""

If IsArray(arrFilename) Then

getFileExtension = arrFilename(UBound(arrFilename)) End If


(29)

LAMPIRAN B


(30)

(31)

(32)

(33)

(34)

(35)

(36)

Tampilan ciphertext file ”tes gbr.eef” dengan EditPlus

Tampilan gambar ciphertext file ”tes gbr.eef” yang telah didekripsi kembali menjadi file gambar ”balik gbr.jpg”


(37)

(38)

Tampilan dengan EditPlus file ”balik gbr.jpg” hasil dekripsi ciphertext file ”tes gbr.eef”


(39)

Tampilan plaintext file ”Paradise-Sade.mp3” dengan Nero Wave Editor 6

Tampilan dengan Nero Wave Editor 6 file “balik paradise.mp3” hasil dekripsi ciphertext file “tes paradise.eef”


(40)

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas akhir.

I.1. Latar Belakang

Perkembangan pesat teknologi informasi sekarang ini sangat mempengaruhi kehidupan masyarakat, terutama kebutuhan akan informasi dan komunikasi. Hal ini terlihat dari semakin banyaknya penggunaan aplikasi dari teknologi informasi, seperti telepon genggam, komputer, internet, dan sebagainya.

Keamanan pada dunia internet menjadi suatu kebutuhan dan keharusan yang sangat penting dalam semua aspek kehidupan bermasyarakat. Keamanan data informasi merupakan faktor utama dan terdepan yang menentukan apakah data informasi tersebut masih berguna dan dapat digunakan. Tingkat keamanan data informasi yang akan digunakan bermacam – macam bergantung pada kegunaan data informasi tersebut. Pada dunia e-commerce, data informasi yang digunakan dan dipertukarkan mempunyai kriteria tingkat keamanan yang tinggi agar tidak terjadi penyalahgunaan dan pembajakan.

Salah satu teknik pengamanan data informasi di dunia internet adalah teknik kriptografi Einstein. Suatu Algoritma kriptografi berisi fungsi-fungsi matematika yang digunakan untuk melakukan proses enkripsi dan dekripsi. Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi elemen ciphertext.

I.2. Identifikasi Masalah

1. Bagaimana mengamankan data dengan menggunakan kriptografi Einstein? 2. Bagaimana merancang perangkat lunak kriptografi Einstein ?


(41)

I.3. Tujuan

Tugas akhir ini bertujuan merancang dan membuat salah satu teknik pengamanan data dengan menggunakan kriptografi Einstein dalam bentuk sebuah perangkat lunak.

I.4. Pembatasan Masalah

Dalam tugas akhir ini akan dibatasi hal – hal berikut,

1. Merancang program kriptografi enkripsi dan dekripsi dengan teknik Einstein 2. Tidak membahas mengenai transmisi data.

I.5. Sistematika Pembahasan

BAB I PENDAHULUAN

Menjelaskan mengenai latar belakang pembuatan tugas akhir, identifikasi masalah, tujuan, pembatasan masalah dan sistematika pembahasan.

BAB II TEORI PENUNJANG

Menjelaskan kriptografi secara umum serta algoritma-algoritma yang menunjang pembuatan tugas akhir seperti algoritma simetrik, algoritma kunci

publik,

BAB III IMPLEMENTASI DAN REALISASI PERANGKAT LUNAK

Dalam bab ini akan dibahas algoritma kriptografi enkripsi dan dekripsi Einstein dan realisasi perangkat lunak (software) berdasarkan algoritma tersebut.

BAB IV HASIL PENGAMATAN

Membahas hasil pengamatan yang diperoleh berdasarkan implementasi dan realisasi perangkat lunak dari algoritma kriptografi enkripsi dan dekripsi Einstein.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang diperoleh dari hasil pengamatan dan saran-saran yang diajukan untuk pengembangan lebih lanjut.


(42)

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

1. Perancangan perangkat lunak untuk mengamankan data dengan algoritma kriptografi Einstein telah berhasil direalisasikan untuk tipe-tipe file yang umum digunakan, seperti *.jpg, *.mp3, *.swf, *.zip, *.mpg, *.wmv, dan sebagainya.

2. Lama waktu yang dibutuhkan dalam proses dekripsi hampir sama dengan proses enkripsinya.

V.2 Saran

1. Penelitian lebih lanjut untuk memanfaatkan teknik pengamanan kriptografi Einstein dalam pengamanan database.


(43)

DAFTAR PUSTAKA

Davies, D. dan W. Price, Security for computer networks, Wiley, New Yorks, 1989.

Stallings, William, Cryptography and network security : Principles and practices, Prentice Hall, New Jersey, 2003.

Tsudik, G., Message authentication with one-way hash functions, INFOCOM 92, Mei 92.

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Differenti al+cryptanalysis&gwp=8&curtab=2222_1, 9 Oktober 2005

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Linear+cr yptanalysis&gwp=8&curtab=2222_1, 9 Oktober 2005

http://en.wikipedia.org/wiki/Adaptive_chosen_ciphertext_attack, 9 Oktober 2005 http://en.wikipedia.org/wiki/Block_cipher, 9 Oktober 2005

http://en.wikipedia.org/wiki/Chosen_ciphertext_attack, 9 Oktober 2005

http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_g enerator, 1 Januari 2007

http://en.wikipedia.org/wiki/Cryptosystem, 9 Oktober 2005 http://en.wikipedia.org/wiki/Eavesdropping, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_authentication, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_management, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_size, 9 Oktober 2005

http://en.wikipedia.org/wiki/Linear_congruential_generator, 1 Januari 2007 http://en.wikipedia.org/wiki/Man_in_the_middle_attack, 9 Oktober 2005 http://en.wikipedia.org/wiki/Pseudorandom_number_generator, 1 Januari 2007 http://en.wikipedia.org/wiki/Public_key_infrastructure, 9 Oktober 2005 http://en.wikipedia.org/wiki/Self-certifying_key, 9 Oktober 2005

ms-help://MS.MSDNQTR.2004JAN.1033/cpguide/html/cpconcryptographyover view.htm

ms-help://MS.MSDNQTR.2004JAN.1033/dnw98bk/html/encryptionmethods.htm ms-help://MS.MSDNQTR.2004JAN.1033/enu_kbvbwin/vbwin/28150.htm


(1)

Tampilan dengan EditPlus file ”balik gbr.jpg” hasil dekripsi ciphertext file ”tes gbr.eef”


(2)

Tampilan plaintext file ”Paradise-Sade.mp3” dengan Nero Wave Editor 6

Tampilan dengan Nero Wave Editor 6 file “balik paradise.mp3” hasil dekripsi ciphertext file “tes paradise.eef”


(3)

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, perumusan masalah, tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas akhir.

I.1. Latar Belakang

Perkembangan pesat teknologi informasi sekarang ini sangat mempengaruhi kehidupan masyarakat, terutama kebutuhan akan informasi dan komunikasi. Hal ini terlihat dari semakin banyaknya penggunaan aplikasi dari teknologi informasi, seperti telepon genggam, komputer, internet, dan sebagainya.

Keamanan pada dunia internet menjadi suatu kebutuhan dan keharusan yang sangat penting dalam semua aspek kehidupan bermasyarakat. Keamanan data informasi merupakan faktor utama dan terdepan yang menentukan apakah data informasi tersebut masih berguna dan dapat digunakan. Tingkat keamanan data informasi yang akan digunakan bermacam – macam bergantung pada kegunaan data informasi tersebut. Pada dunia e-commerce, data informasi yang digunakan dan dipertukarkan mempunyai kriteria tingkat keamanan yang tinggi agar tidak terjadi penyalahgunaan dan pembajakan.

Salah satu teknik pengamanan data informasi di dunia internet adalah teknik kriptografi Einstein. Suatu Algoritma kriptografi berisi fungsi-fungsi matematika yang digunakan untuk melakukan proses enkripsi dan dekripsi. Dasar matematis yang mendasari proses enkripsi dan dekripsi adalah relasi antara dua himpunan yaitu yang berisi elemen plaintext dan yang berisi elemen ciphertext.

I.2. Identifikasi Masalah

1. Bagaimana mengamankan data dengan menggunakan kriptografi Einstein? 2. Bagaimana merancang perangkat lunak kriptografi Einstein ?


(4)

I.3. Tujuan

Tugas akhir ini bertujuan merancang dan membuat salah satu teknik pengamanan data dengan menggunakan kriptografi Einstein dalam bentuk sebuah perangkat lunak.

I.4. Pembatasan Masalah

Dalam tugas akhir ini akan dibatasi hal – hal berikut,

1. Merancang program kriptografi enkripsi dan dekripsi dengan teknik Einstein 2. Tidak membahas mengenai transmisi data.

I.5. Sistematika Pembahasan

BAB I PENDAHULUAN

Menjelaskan mengenai latar belakang pembuatan tugas akhir, identifikasi masalah, tujuan, pembatasan masalah dan sistematika pembahasan.

BAB II TEORI PENUNJANG

Menjelaskan kriptografi secara umum serta algoritma-algoritma yang menunjang pembuatan tugas akhir seperti algoritma simetrik, algoritma kunci

publik,

BAB III IMPLEMENTASI DAN REALISASI PERANGKAT LUNAK

Dalam bab ini akan dibahas algoritma kriptografi enkripsi dan dekripsi Einstein dan realisasi perangkat lunak (software) berdasarkan algoritma tersebut.

BAB IV HASIL PENGAMATAN

Membahas hasil pengamatan yang diperoleh berdasarkan implementasi dan realisasi perangkat lunak dari algoritma kriptografi enkripsi dan dekripsi Einstein.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang diperoleh dari hasil pengamatan dan saran-saran yang diajukan untuk pengembangan lebih lanjut.


(5)

BAB V

KESIMPULAN DAN SARAN

V.1 Kesimpulan

1. Perancangan perangkat lunak untuk mengamankan data dengan algoritma kriptografi Einstein telah berhasil direalisasikan untuk tipe-tipe file yang umum digunakan, seperti *.jpg, *.mp3, *.swf, *.zip, *.mpg, *.wmv, dan sebagainya.

2. Lama waktu yang dibutuhkan dalam proses dekripsi hampir sama dengan proses enkripsinya.

V.2 Saran

1. Penelitian lebih lanjut untuk memanfaatkan teknik pengamanan kriptografi Einstein dalam pengamanan database.


(6)

DAFTAR PUSTAKA

Davies, D. dan W. Price, Security for computer networks, Wiley, New Yorks, 1989.

Stallings, William, Cryptography and network security : Principles and practices, Prentice Hall, New Jersey, 2003.

Tsudik, G., Message authentication with one-way hash functions, INFOCOM 92, Mei 92.

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Differenti al+cryptanalysis&gwp=8&curtab=2222_1, 9 Oktober 2005

http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Linear+cr yptanalysis&gwp=8&curtab=2222_1, 9 Oktober 2005

http://en.wikipedia.org/wiki/Adaptive_chosen_ciphertext_attack, 9 Oktober 2005 http://en.wikipedia.org/wiki/Block_cipher, 9 Oktober 2005

http://en.wikipedia.org/wiki/Chosen_ciphertext_attack, 9 Oktober 2005

http://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_g enerator, 1 Januari 2007

http://en.wikipedia.org/wiki/Cryptosystem, 9 Oktober 2005 http://en.wikipedia.org/wiki/Eavesdropping, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_authentication, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_management, 9 Oktober 2005 http://en.wikipedia.org/wiki/Key_size, 9 Oktober 2005

http://en.wikipedia.org/wiki/Linear_congruential_generator, 1 Januari 2007 http://en.wikipedia.org/wiki/Man_in_the_middle_attack, 9 Oktober 2005 http://en.wikipedia.org/wiki/Pseudorandom_number_generator, 1 Januari 2007 http://en.wikipedia.org/wiki/Public_key_infrastructure, 9 Oktober 2005 http://en.wikipedia.org/wiki/Self-certifying_key, 9 Oktober 2005

ms-help://MS.MSDNQTR.2004JAN.1033/cpguide/html/cpconcryptographyover view.htm

ms-help://MS.MSDNQTR.2004JAN.1033/dnw98bk/html/encryptionmethods.htm ms-help://MS.MSDNQTR.2004JAN.1033/enu_kbvbwin/vbwin/28150.htm