• Tidak ada hasil yang ditemukan

Extended Tiny Encryption Algorithm.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Extended Tiny Encryption Algorithm."

Copied!
40
0
0

Teks penuh

(1)

1

ABSTRAK

Masalah keamanan merupakan salah satu aspek penting dari sebuah

sistem informasi. Pentingnya nilai sebuah informasi menyebabkan seringkali

informasi diinginkan hanya boleh diakses oleh orang-orang tertentu. Jatuhnya

informasi ke tangan pihak yang tidak diinginkan dapat menimbulkan kerugian

bagi pemilik informasi.

Banyak solusi yang dapat digunakan untuk menangani masalah keamanan

data. Salah satu solusi untuk mengamankan data yang dikirimkan adalah dengan

melakukan enkripsi (penyandian) pada data. Enkripsi dibagi menjadi dua bagian

utama, yaitu algoritma simetrik dan algoritma asimetrik. Pada tugas akhir ini

algoritma yang dipakai adalah algoritma XTEA yang merupakan algoritma

simetrik, yaitu penyandian dengan menggunakan kunci yang sama. Data yang

dikirimkan adalah data hasil enkripsi atau disebut juga ciphertext. Setelah data

diterima, maka data akan diolah kembali menjadi data sebenarnya atau disebut

juga plaintext.

Pada tugas akhir ini berhasil direalisasikan sebuah perangkat lunak untuk

pengaman data berbasis algoritma simetrik metoda XTEA dengan menggunakan

(2)

2

ABSTRACT

Security problem is one the most important aspect in an information

system. Importance value of information is often makes the information wanted to

be accessed by certain person only. Fall of information to the unwanted side can

couse losses to info’s owner.

Many solutions can be used to handle information’s security problem. One

of solutions to protect data is to encrypt the data. There are two general types of

encryption algorithm, symmetric algorithm and asymmetric algorithm. The

Algorithm that used in this project is XTEA, one of symmetric algorithm type that

encodes and decodes using only one same key. Sent data is encrypted data or so

called the ciphertext. After data is received, data will be processed back to the

original data or so called the plaintext.

In this project has successfully built an encryption software base on

(3)

DAFTAR ISI

ABSTRAK... ...i

ABSTRACT... ...ii

KATA PENGANTAR... ...iii

DAFTAR ISI... ...v

DAFTAR GAMBAR...ix

DAFTAR TABEL...xi

BAB I PENDAHULUAN...1

1.1 Latar Belakang...1

1.2 Identifikasi Masalah...2

1.3 Tujuan...2

1.4 Pembatasan Masalah...2

1.5 Spesifikasi Hardware...2

1.6 Sistematika Pembahasan...3

BAB II TEORI PENUNJANG...4

2.1 Kriptografi...4

2.1.1 Tujuan Kriptografi...7

2.2 Enkripsi dan Dekripsi Menggunakan Kunci...8

2.3 Algoritma Simetri Dan Algoritma Asimetri...9

2.3.1 Algoritma Simetri...9

2.3.2 Algoritma Asimetri...10

2.4 Mode Operasi Enkripsi Blok Cipher...12

(4)

2.5.1 Fungsi XOR...14

2.5.2 Bilangan Prima...14

2.5.3 Operasi Modulus...15

2.5.4 Algoritma Euclidean...16

2.5.5 Algoritma Extended Euclidean...17

2.5.6 Eksponensial Modulus...18

2.6 Enkripsi Dengan Algoritma XTEA...20

2.7 Algoritma Validasi Data...22

2.8 Algoritma Pembangkit Private Key dan Public Key...22

2.9 Feistel Cihper...22

BAB III Perancangan dan Realisasi Perangkat Lunak...24

3.1 Pengolahan Kunci XTEA...24

3.2 Program Enkripsi...24

3.3 Program Dekripsi...28

3.4 Program Pembangkit Privat Key dan Public Key...30

3.4.1 Sub Program rdmprime...31

3.4.2 Sub Program gcd...32

3.4.3 Sub Program Euclid...32

3.4.4 Program Validasi...34

3.4.5 Sub Program Pangkatmod...34

3.5 Realisasi Program...36

3.5.1 Program Enkripsi...36

(5)

3.5.3 Program Timer...38

BAB IV Data Pengamatan...39

4.1 Hasil Pengamatan Sederhana Program Enkripsi dan Dekripsi XTEA...39

4.1.1 Pengamatan Enkripsi XTEA Dengan Kunci Yang Sama...39

4.1.2 Pengamatan Enkripsi XTEA Dengan Kunci Yang Berbeda...45

4.2 Hasil Pengamatan Program Enkripsi dan Dekripsi Menggunakan File...49

4.2.1 Proses Enkripsi XTEA Dengan Menggunakan File...49

4.3 Hasil Pengamatan Waktu Dan Ukuran File...54

4.3.1 Pengamatan Enkripsi Dan Dekripsi Menggunakan Kunci Yang Sama..54

4.3.2 Pengamatan Enkripsi Dan Dekripsi Menggunakan Kunci Yang Beda..55

4.3.3 Pengamatan enkripsi Dan Dekripsi Menggunakan Kunci Delta Yang Berbeda...57

4.4 Pengamatan Hasil Proses Validasi...58

4.4.1 Pengamatan Terhadap Perubahan Ciphertext...58

4.4.2 Pengamatan Terhadap Perubahan Public Key...63

4.4.3 Pengamatan Terhadap Perubahan File Validasi...64

4.5 Analisa Hasil Pengamatan...65

BAB V Kesimpulan Dan Saran...67

5.1 Kesimpulan...67

5.2 Saran...67

(6)
(7)

4

DAFTAR GAMBAR

Gambar 2.1.... Kriptografi dengan proses enkripsi dan dekripsi ... 6

Gambar 2.2 Kriptografi Simetri Umum... 9

Gambar 2.3 Kriptografi Asimetri Umum... 11

Gambar 2.4 Diagram Umum Feistel Cipher ...23

Gambar 3.1 Diagram Alur Pengolahan Plaintext ... 25

Gambar 3.2 Diagram Alur Proses Enkripsi ... 27

Gambar 3.3 Diagram Alur Proses Dekripsi ... 29

Gambar 3.4 Diagram Alur Program Pembangkit Kunci Tanda Tangan Digital ... 30

Gambar 3.5 Diagram Alir Sub Program RdmPrime ... 31

Gambar 3.6 Diagram Alir Sub Program gcd ... 32

Gambar 3.7 Diagram Alir Sub Program Euclid ... 33

Gambar 3.8 Diagram Alir Program Validasi ... 34

Gambar 3.9 Diagram Alir Sub Program pangkatmod ... 35

Gambar 3.10 Tampilan Program Enkripsi ... 36

Gambar 3.11 Tampilan Program Dekripsi ... 37

Gambar 4.1 Tampilan program enkripsi algoritma XTEA dengan plaintext “percobaan” kunci “kunci” ... 40

Gambar 4.2 Tampilan penyimpan hasil enkripsi ... 41

Gambar 4.3 Tampilan penyimpanan kode validasi... 42

(8)

Gambar 4.5 Isi dari teks01dekrip.txt... 44

Gambar 4.6 Tampilan program enkripsi algoritma XTEA

dengan plaintext “percobaan 2”, kunci “coba” ... 46

Gambar 4.7 Tampilan program dekripsi dari algoritma XTEA plaintext

“percobaan 2” dengan kunci “coba” ... 47

Gambar 4.8 Isi dari coba2dekrip.txt...48

Gambar 4.9 Tampilan program enkripsi algoritma XTEA dengan plaintext

file original_text.txt, kata kunci “kunci”...50

Gambar 4.10 Tampilan program dekripsi dari fileoriginal_text_enkrip.txt

dengan menggunakan kunci “kunci”, disimpan dalam file

original_text_dekrip.txt...52

Gambar 4.11 Isi dari original_text_dekrip.txt...53

(9)

5

DAFTAR TABEL

Tabel 2.1 Nilai Extended Euclidean ... 18

Tabel 4.1 Enkripsi dan dekripsi menggunakan kunci yang sama, plaintext

yang berbeda-beda ... 39

Tabel 4.2 Enkripsi dan dekripsi menggunakan kunci yang sama, plaintext

yang berbeda-beda ... 45

Tabel 4.3 Hasil Pengamatan Proses Enkripsi XTEA ... 54

Tabel 4.4 Hasil Pengamatan Proses Dekripsi XTEA ... 55

Tabel 4.5 Hasil pengamatan Enkripsi file menggunakan kunci yang berbeda,

plaintext yang sama ... 56

Tabel 4.6 Hasil pengamatan Enkripsi file menggunakan kunci yang berbeda,

plaintext yang sama ... 56

Tabel 4.7. Hasil pengamatan Enkripsi file menggunakan kunci kedua

yang berbeda, plaintext yang sama...57

Tabel 4.8. Hasil pengamatan Enkripsi file menggunakan kunci

(10)
(11)

Listing UMain.pas

unit UMain;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Menus, StrUtils;

type

TMain = class(TForm)

(12)

TabSheet2: TTabSheet;

procedure btBrowseClick(Sender: TObject); procedure btEncryptClick(Sender: TObject); procedure btGenClick(Sender: TObject); procedure btBrowse1Click(Sender: TObject); procedure DecryptClick(Sender: TObject); procedure Exit1Click(Sender: TObject); procedure About1Click(Sender: TObject); procedure TabSheet1Show(Sender: TObject); procedure TabSheet2Show(Sender: TObject);

(13)

{$R *.dfm}

uses xtea, RSATools, Tools, UAbout;

procedure TMain.btBrowseClick(Sender: TObject); begin

if OpenDlg.Execute then begin

edPath.Text:=OpenDlg.FileName;

RPlain.Lines.LoadFromFile(OpenDlg.FileName); end; temp:Xtea.TTeaMsgBlock; Read:Integer;

awal,akhir,lama:TDateTime; i,d,n:Integer;

s,x:longint; begin

if edPass.Text = ““ then

MessageDlg(“Kata Kunci Belum Diisi”,mtError,mbOKCancel,0) else

if RPlain.Text = ““ then

MessageDlg(“Document masih kosong”,mtError,mbOKCancel,0) else

if PrivD.Text = ““ then

(14)

Buffer[i]:=0; Signature”,”Pesan”,MB_OK) = IDOK then

(15)

n : Longint; //p * q

temp2 : array of Longint; // temp dynamic array handler that hand selection of e temp3 : Longint;

(16)

ulang:

//select e that is prime

For i1 := 2 To Round(Sqrt(temp4)) do begin

edPath1.Text:=OpenDlg.FileName;

RCipher.Lines.LoadFromFile(OpenDlg.FileName); end; temp:Xtea.TTeaMsgBlock; Read:Integer;

(17)

s,p:Longint; begin

if edPass1.Text = ““ then

MessageDlg(“Kata Kunci Belum Diisi”,mtError,mbOKCancel,0) else

if RCipher.Text = ““ then

(18)
(19)

edDuration.Clear;

OpenDlg.FileName := ““; SaveDlg.FileName := ““; OpenDlgV.FileName := ““; SaveDlgV.FileName := ““; end;

procedure TMain.TabSheet2Show(Sender: TObject); begin

edPath1.Clear; edPass1.Clear; RCipher.Clear; PubE1.Clear; PubN1.Clear; edStart1.Clear; edEnd1.Clear; edDuration1.Clear; OpenDlg.FileName := ““; SaveDlg.FileName := ““; OpenDlgV.FileName := ““; SaveDlgV.FileName := ““; end;

(20)

Listing Uxtea.pas

unit xtea;

interface

type

TTeaMsgBlock = array[0..1] of LongWord; TTeaKeyBlock = array[0..3] of LongWord;

procedure XTeaCrypt(var V: TTeaMsgBlock; const K: TTeaKeyBlock); procedure XTeaDecrypt(var V: TTeaMsgBlock; const K: TTeaKeyBlock); function XTeaCryptStr(const Msg, Pwd: string): string;

function XTeaDecryptStr(const Msg, Pwd: string): string;

function XTeaCryptBin(const Msg : TTeaMsgBlock; const Pwd : String; Len : Integer): TTeaMsgBlock;

function XTeaDeCryptBin(const Msg : TTeaMsgBlock; const Pwd : String; Len : Integer): TTeaMsgBlock;

procedure XTeaCrypt(var V: TTeaMsgBlock; const K: TTeaKeyBlock); var

procedure XTeaDecrypt(var V: TTeaMsgBlock; const K: TTeaKeyBlock); var

(21)

begin

function XTeaCryptStr(const Msg, Pwd: string): string; var

(22)

V[0] := 0; V[1] := 0;

function XTeaCryptBin(const Msg : TTeaMsgBlock; const Pwd : String; Len : Integer): TTeaMsgBlock;

Move(V[0], Result, SizeOf(V)); end;

function XTeaDeCryptBin(const Msg : TTeaMsgBlock; const Pwd : String; Len : Integer): TTeaMsgBlock;

Move(V[0], Result, SizeOf(V)); end;

{

========================================================== =============== }

(23)

Listing Uabout.pas

unit UAbout;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TfrmAbout = class(TForm) Panel1: TPanel;

procedure Button1Click(Sender: TObject); private

frmAbout: TfrmAbout;

(24)

Listing Tools.pas

function LRot16(X: word; c: integer): word; assembler; function RRot16(X: word; c: integer): word; assembler; function LRot32(X: dword; c: integer): dword; assembler; function RRot32(X: dword; c: integer): dword; assembler; procedure XorBlock(I1, I2, O1: PByteArray; Len: integer); procedure IncBlock(P: PByteArray; Len: integer);

function StrToDWord(s : string) : DWord; function DWordToStr(wo : DWord) : string;

implementation

function LRot16(X: word; c: integer): word; assembler; asm

function RRot16(X: word; c: integer): word; assembler; asm

(25)

mov ecx, edx rol eax, cl end;

function RRot32(X: dword; c: integer): dword; register; assembler; asm

mov ecx, edx ror eax, cl end;

procedure XorBlock(I1, I2, O1: PByteArray; Len: integer); var

procedure IncBlock(P: PByteArray; Len: integer); begin

Inc(P[Len-1]);

if (P[Len-1]= 0) and (Len> 1) then IncBlock(P,Len-1);

end;

function StrToDWord(s : string) : DWord; var cely : Dword;

(26)

var vysl : string; rr,ll : word;

Si1,Si2,Si3,Si4 : byte; begin

rr:=(wo shl 16) shr 16; ll:=(wo shr 16); Si2:=(ll shl 8) shr 8; Si1:=(ll shr 8); Si4:=(rr shl 8) shr 8; Si3:=(rr shr 8);

vysl:=chr(Si1)+chr(Si2)+chr(Si3)+chr(Si4); DWordToStr:=vysl;

end;

(27)

Listing RSATools

unit RSATools;

interface

uses SysUtils, StrUtils, IdGlobal, Math;

Function Euclid(nilai1 : Longint; nilai2 : Longint) : Longint ; Function gcd(p : longint; q : longint) : Longint;

Function RdmPrime() : Longint;

Function pangkatmod(num1 : longint;num2 : longint;num3 : longint) : longint;

implementation

(28)

A1 := B1; B1 := T1;

Function gcd(p : longint; q : longint) : Longint; var A11,B11,R11 : Longint;

label balik;

Function RdmPrime() : Longint;

var iRandom : integer; // holds random long result i2 : longint; // checkprime loop counter

(29)

//trap handler

Function pangkatmod(num1 : longint;num2 : longint;num3 : longint) : longint; var a22,b22,n22,nilaimod,nilaic,nilaid,nilaii,nilaik,naik : longint;

(30)

end; end;

pangkatmod := nilaid; End;

(31)
(32)
(33)
(34)
(35)
(36)

1

BAB I

PENDAHULUAN

Pada bab ini akan dijelaskan mengenai latar belakang, perumusan masalah,

tujuan, pembatasan masalah, serta sistematika penulisan laporan tugas akhir.

1.1 Latar Belakang

Masalah keamanan merupakan salah satu aspek penting dari sebuah sistem

informasi. Pentingnya nilai sebuah informasi menyebabkan seringkali informasi

diinginkan hanya boleh diakses oleh orang-orang tertentu. Jatuhnya informasi ke

tangan pihak yang tidak diingingkan dapat menimbulkan kerugian bagi pemilik

informasi.

Banyak solusi yang dapat digunakan untuk menangani masalah keamanan

data, salah satunya adalah dengan menggunakan enkripsi. Penulis akan mencoba

untuk membuat perangkat lunak yang dapat melakukan enkripsi dan dekripsi

terhadap data dengan menggunakan algoritma kunci simetrik XTEA sehingga data

(37)

1.2 Identifikasi Masalah

Permasalahan difokuskan pada bagaimana membuat perangkat lunak yang

mampu melakukan enkripsi data dan dapat melakukan dekripsi data kembali

secara benar dengan algoritma kunci simetrik XTEA.

1.3

Tujuan

Tujuan dari Tugas Akhir ini adalah dapat membuat sebuah perangkat lunak

yang sanggup melakukan enkripsi serta dekripsi data dengan menggunakan

algoritma kunci simetrik XTEA.

1.4 Pembatasan Masalah

• Perancangan perangkat lunak untuk enkripsi dan dekripsi hanya dengan

dengan menggunakan algoritma kunci simetrik XTEA.

• Perangkat lunak dirancang untuk melakukan enkripsi dan dekripsi pada

data berjenis text.

1.5 Spesifikasi Hardware

• CPU AMD Athlon 1700+

• RAM 512 MB

(38)

1.6 Sistematika Pembahasan

Materi pembahasan dalam laporan Tugas Akhir ini adalah:

BAB I PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang Tugas Akhir, tujuan Tugas

Akhir, pembatasan masalah dan sistematika pembahasan.

BAB II TEORI PENUNJANG

Bab ini menjelaskan landasan-landasan teori yang bersangkutan dengan

enkripsi dan dekripsi algoritma XTEA, yaitu antara lain : teori dasar kriptografi,

algoritma simetrik dan asimetrik, mode enkripsi blok cipher, dan algoritma

XTEA.

BAB III PERANCANGAN DAN REALISASI

Bab ini berisi tentang perancangan dan realisasi dari program enkripsi dan

dekripsi algoritma XTEA

BAB IV HASIL PENGAMATAN

Bab ini berisi tentang data hasil pengamatan proses enkripsi dan dekripsi

dengan menggunakan algoritma XTEA.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dan saran yang mungkin berguna dalam

(39)

BAB V

KESIMPULAN DAN SARAN

5.1

Kesimpulan

Berdasarkan hasil pengamatan dapat diambil kesimpulan:

1. Program enkripsi mengubah plaintext menjadi ciphertext dengan ukuran yang

tidak berubah. Ini dikarenakan file validasi yang tidak disatukan dengan

ciphertext_nya. Program dekripsi mengubah ciphertext menjadi plaintext

kembali dengan ukuran plaintext semula.

2. Penggunaan kunci utama maupun kunci kedua (delta) yang makin kompleks

akan cenderung menambah waktu proses enkripsi dan dekripsi.

3. Perubahan kecil pada ciphertext dapat terditeksi dengan baik oleh perangkat

lunak sehingga pemalsuan dengan cara mengubah isi ciphertext dapat

dihindari.

5.2

Saran

Berdasarkan hasil pengamatan dapat diambil saran:

1. Program dapat dikembangkan untuk memproses secara langsung data

masukan selain data teks, misalnya data gambar, suara atau citra digital

(40)

Daftar Pustaka

Knused, L, “Block Cipher – analysis design and application”. Phd Dissertation : Aarhus University, 1994.

Kurniawan, Yusuf , Ir. MT.,Kriptografi Keamanan Internet dan Jaringan Komunikasi, Penerbit Informatika, Bandung, 2004.

Schneier, Bruce, Applied Cryptography Second edition: protocols, Algorithms, and source code in C, John Wiley & Sons Inc, Singapore, 1996.

http://www.kremlinencrypt.com/crypto/algorithms.html

http://www.cix.co.uk

http://www.cs.ua.edu

http://www.di-mgt.com/crypto.html

http://www.ietf.org/rfc/rfc2612.txt

http://www.powerbasic.com/support/forums

http://www.pbcrypto.com

Gambar

Gambar Tampilan Program Enkripsi
Gambar Tampilan Program Dekripsi
Gambar Tampilan About

Referensi

Dokumen terkait

imunisasi pada penelitian ini didukung oleh penelitian Prusty et al yang menemukan alasan ketidaklengkapan imunisasi anak yang paling banyak diutarakan responden secara

Sedangkan penelitian yang dilakukan oleh (Trilaksani, 2012) kadar lemak paling rendah yang dihasilkan dari gelatin kulit ikan kakap merah ini menggunakan larutan asam asetat

Dilihat dari Praktek Konsinyasi Emas di Pegadaian Syariah Ngabean, praktek konsinyasi emas di Pegadaian Syariah cabang Ngabean merupakan layanan titip jual emas di

Landasan pendidikan NU ini berikutnya diturunkan menjadi Anggaran Dasar NU sebagaimana terdapat pada Pasal IX Anggaran Dasar NU sebagai berikut “Di bidang pendidikan, pengajaran

Penelitian ini merupakan penelitian eksperimen semu ( quasi eksperiment ). Selain itu, pada quasi eksperimen juga tidak dapat dilakukan pengontrolan terhadap semua variabel

Penelitian ini bertujuan untuk menganalisis kapasitas lendutan, daktalitas dan kekakuan dari struktur balok beton bertulang yang diperkuat GFRP dengan perendaman air

Melakukan pemeriksaan/pengujian hasil pekerjaan pengadaan barang/jasa sesuai dengan ketentuan yang tercantum dalam Surat Perintah Kerja (SPK) khusus untuk pengadaan

Daya Kombinatorial Siswa pada Materi Peluang dengan Model Penemuan Terbimbing.. Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu