• Tidak ada hasil yang ditemukan

Analisi Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time PAD (OTP)Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG)

N/A
N/A
Protected

Academic year: 2016

Membagikan "Analisi Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time PAD (OTP)Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG)"

Copied!
100
0
0

Teks penuh

(1)

ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA

MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)

DENGAN PEMBANGKIT BILANGAN ACAK LINEAR

CONGRUENTIAL GENERATOR (LCG)

SKRIPSI

BILQIS

081401072

PROGRAM STUDI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

(2)

ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)

DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

BILQIS 081401072

PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

(3)

PERSETUJUAN

Judul : ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN

ALGORITMA ONE TIME PAD (OTP) DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)

Kategori : SKRIPSI

Nama : BILQIS

Nomor Induk Mahasiswa : 081401072

Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA

UTARA

Diluluskan di

Medan, 22 Mei 2012

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

M. Andri Budiman, S.T, M.Comp. Sc Dian Rachmawati, S.Si, M.Kom NIP. 197510082008011001 NIP. 198307232009122004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

(4)

PERNYATAAN

ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)

DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 22 Mei 2011

(5)

PENGHARGAAN

Alhamdulillah, puji syukur penulis sampaikan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya sehingga dapat menyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Shalawat dan salam penulis persembahkan kepada Nabi Besar Muhammad SAW.

Pada kesempatan ini penulis juga ingin memberikan ucapan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu penulis mulai dari awal pembuatan skripsi sampai selesainya skripsi ini, antara lain kepada:

1. Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing I dan Bapak M. Andri Budiman, S.T, M.Comp.Sc sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan untuk menyempurnakan kajian ini.

2. Dosen Penguji Ibu Maya Silvi Lydia, B.Sc, M.Sc dan Bapak Amer Sharif, S.Si, M.Kom atas saran dan kritikan yang sangat berguna bagi penulis.

3. Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom dan Ibu Maya Silvi Lydia, B.Sc, M.Sc.

4. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.

5. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU.

6. Kepada kedua orangtua dan keluarga yang telah memberikan dukungan dan motivasi, ayahanda M.Ilyas Arafat dan ibunda Fatma yang selalu sabar dalam mendidik dan selalu mendoakan penulis.

7. Kepada teman-teman penulis di Program S-1 Ilmu Komputer USU Medan yang telah banyak membantu memberikan dukungan penulis selama ini.

Penulis menyadari bahwa skripsi ini jauh dari kesempurnaan, oleh karena itu penulis menerima kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini sehingga dapat bermanfaat bagi kita semua.

Medan, 22 Mei 2012

(6)

ABSTRAK

Meningkatnya penggunaan teknologi informasi yang menggunakan komputer sebagai medianya, maka keamanan data (pesan) menjadi aspek yang sangat penting dalam sistem teknologi informasi. Salah satu metode yang digunakan untuk menjaga keamanan data tersebut adalah algoritma kriptografi One Time Pad (OTP). OTP dipilih karena merupakan algoritma sederhana dan belum dapat terpecahkan. Kunci yang digunakan pada algoritma ini haruslah kunci yang benar-benar acak sehingga kerahasiaan pesan didalamnya dapat terjamin, maka digunakanlah metode pembangkit bilangan acak Linear Congruential Generator (LCG). Sistem ini dikembangkan dengan menggunakan bahasa pemrograman Matlab 7.5.0. Hasil dari pembahasan ini adalah menghasilkan sebuah aplikasi yang dapat digunakan untuk mengenkripsi dan mendekripsi plaintext menggunakan algoritma OTP dan LCG sebagai pembangkit kunci.

(7)

ANALYSIS AND DESIGN APPLICATION OF SECRET MESSAGE USING ONE TIME PAD (OTP) ALGORITHM WITH RANDOM NUMBER

GENERATOR OF LINEAR CONGRUENTIAL GENERATOR (LCG)

ABSTRACT

Because of the increasing usage of information technology that uses computers as medium, then the security data (message) is important aspect in information technology system. One method used to protect data is One Time Pad (OTP) algorithm of cryptography . The OTP is chosen because it is a simple and unbreakable algorithm. Since the key that is used in this algorithm must be truly random so that confidentiality of the data (message) can be assured, so Linear Congruential Generator (LCG) is used as the method of random generator number. The system is implemented by using the program language of Matlab 7.5.0. The result of this study is an application that can be used to encrypt and decrypt a plaintext using OTP algorithm and LCG as key generator.

(8)
(9)

3.4.3 Algoritma dan Flowchart Proses Enkripsi dan dekripsi

dari Keyboard 35

3.5 Diagram Use Case 37

3.6 Perancangan Antarmuka 39

3.6.1 Tampilan Menu Utama 39 3.6.2 Tampilan Enkripsi dan Dekripsi dari File 40 3.6.3 Tampilan Enkripsi dan Dekripsi dari Keyboard 42

3.6.4 Tampilan Bantuan 44

Bab 4 Implementasi dan Pengujian 46

4.1 Implementasi 46

4.2 Pengujian 53

Bab 5 Penutup 58

5.1 Kesimpulan 58

5.2 Saran 59

Daftar Pustaka 60

(10)

DAFTAR TABEL

No. Tabel Judul Halaman

2.1

3.1

3.2

3.3

3.4

3.5

3.6

3.7

3.8

Hasil pembangkitan bilangan acak dengan metode LCG

Proses Enkripsi dengan Kunci yang Sama dengan Plaintext

Proses Enkripsi dengan Sebuah Kunci Berdasarkan Jumlah Karakter Plaintext yang Berulang

Proses Enkripsi dengan Kunci Berdasarkan Sebuah Kata dari Plaintext

Proses Enkripsi dengan Konsep Autokey

Proses Enkripsi dengan OTP dan LCG

Proses Enkripsi dengan OTP dan LCG

Proses Enkripsi dengan OTP dan LCG

Spesifikasi Use Case Kriptografi

18

21

22

22

23

23

24

24

(11)

DAFTAR GAMBAR

Proses - proses kriptografi

Kunci simetris

Penggunaan kunci asimetris

Skema Dasar PRNG

Flowchart Proses Enkripsi dan Dekripsi dari Keyboard

Diagram Use Case Sistem

RancanganTampilan Awal

Rancangan Tampilan Enkripsi dan Dekripsi dari File

Rancangan Tampilan Enkripsi dan Dekripsi dari Keyboard

RancanganTampilan Bantuan

Tampilan Menu Utama

Tampilan Menu Enkripsi dan Dekripsi dari File

(12)

4.4

Tampilan Ciphertext (Kode ASCII) Hasil Enkripsi

Tampilan Plaintext Semula Hasil Dekripsi

Tampilan Pesan Error untuk Mempersingkat Plaintext

Tampilan Pesan Error untuk Inputan Numerik

Tampilan Menu Enkripsi dan Dekripsi dari Keyboard

Tampilan Menu Bantuan

Tampilan Pesan Pilihan Keluar dari Sistem

Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (1)

Tampilan Kunci yang Telah Dibangkitkan dan Disimpan dalam random key.txt

Tampilan Ciphertext yang Disimpan dalam ciphertext.txt

Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (2)

Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (3)

(13)

ABSTRAK

Meningkatnya penggunaan teknologi informasi yang menggunakan komputer sebagai medianya, maka keamanan data (pesan) menjadi aspek yang sangat penting dalam sistem teknologi informasi. Salah satu metode yang digunakan untuk menjaga keamanan data tersebut adalah algoritma kriptografi One Time Pad (OTP). OTP dipilih karena merupakan algoritma sederhana dan belum dapat terpecahkan. Kunci yang digunakan pada algoritma ini haruslah kunci yang benar-benar acak sehingga kerahasiaan pesan didalamnya dapat terjamin, maka digunakanlah metode pembangkit bilangan acak Linear Congruential Generator (LCG). Sistem ini dikembangkan dengan menggunakan bahasa pemrograman Matlab 7.5.0. Hasil dari pembahasan ini adalah menghasilkan sebuah aplikasi yang dapat digunakan untuk mengenkripsi dan mendekripsi plaintext menggunakan algoritma OTP dan LCG sebagai pembangkit kunci.

(14)

ANALYSIS AND DESIGN APPLICATION OF SECRET MESSAGE USING ONE TIME PAD (OTP) ALGORITHM WITH RANDOM NUMBER

GENERATOR OF LINEAR CONGRUENTIAL GENERATOR (LCG)

ABSTRACT

Because of the increasing usage of information technology that uses computers as medium, then the security data (message) is important aspect in information technology system. One method used to protect data is One Time Pad (OTP) algorithm of cryptography . The OTP is chosen because it is a simple and unbreakable algorithm. Since the key that is used in this algorithm must be truly random so that confidentiality of the data (message) can be assured, so Linear Congruential Generator (LCG) is used as the method of random generator number. The system is implemented by using the program language of Matlab 7.5.0. The result of this study is an application that can be used to encrypt and decrypt a plaintext using OTP algorithm and LCG as key generator.

(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Teknologi informasi berkembang semakin pesat dan mempengaruhi hampir seluruh

aspek kehidupan manusia. Perkembangan tersebut secara langsung maupun tidak

langsung mempengaruhi sistem perdagangan, transaksi, bisnis, perbankan, industri

dan pemerintahan. Tentunya tingkat keamanan yang tinggi juga semakin diperlukan

untuk menghindari penyadapan informasi yang mungkin saja terjadi. Terutama di era

internet ini, semua informasi dikirim dengan bebas melalui suatu jaringan dengan

tingkat keamanan yang relatif rendah. Untuk itulah peranan teknologi keamanan

informasi benar-benar dibutuhkan. Salah satu cara yang bisa digunakan adalah

menyandikan (mengenkripsi) informasi atau data rahasia yang akan dikirim, sehingga

walaupun pihak yang tidak berkepentingan dapat membaca informasi tersebut, pihak

tersebut tetap sulit bahkan tidak dapat memahami isi informasi tersebut.

Pengenkripsian yang dilakukan dengan menggunakan algoritma One Time Pad

yang lebih menjamin kerahasiaan data dalam pengenkripsiannya karena algoritma One

Time Pad merupakan algoritma sederhana dan unbreakable yang sampai saat ini

dinyatakan aman karena masih belum ada serangan kriptanalis yang benar-benar dapat

mematahkan algoritma ini. Hal ini dikarenakan algoritma One Time Pad memiliki

barisan kunci acak yang ditambahkan ke pesan plaintext yang tidak acak

menghasilkan ciphertext yang seluruhnya acak. Beberapa barisan kunci yang

digunakan untuk mendekripsi ciphertext mungkin menghasilkan plaintext yang

mempunyai makna, sehingga kriptanalis tidak punya cara untuk menentukan plaintext

mana yang benar. Hal ini didukung oleh beberapa penelitian terdahulu. [3]

(16)

mengombinasikan masing-masing karakter pada plaintext dengan satu karakter pada

kunci. Oleh karena itu, panjang kunci setidaknya harus sama dengan panjang

plaintext.

Kunci yang digunakan pada metode ini haruslah kunci yang benar-benar acak

sehingga keamanan data didalamnya dapat terjamin kerahasiaannya sesuai dengan

tujuan dari kriptografi tentang kerahasiaan data. Hal ini didukung oleh penelitian

sebelumnya. [5] menyimpulkan bahwa generator key yang digunakan pada metode ini

menghasilan key yang acak, agar tidak terdapat pengulangan karakter pada key hasil

generate. Oleh karena itu, untuk membangkitkan kunci pada algoritma One Time Pad

digunakanlah metode pembangkit bilangan acak Linear Congruential Generator

(LCG).

1.2 Perumusan Masalah

Berdasarkan latar belakang masalah diatas, maka yang menjadi rumusan masalah

skripsi ini adalah sebagai berikut:

1. Bagaimana mengimplementasikan algoritma One Time Pad dalam

mengenkripsi dan mendekripsi pesan rahasia.

2. Bagaimana proses pembangkitan bilangan acak pada metode Linear

Congruential Generator (LCG).

1.3 Batasan Masalah

Batasan masalah yang menjadi acuan dalam pengerjaan skripsi ini adalah:

1. Proses penyandian hanya dilakukan pada pesan dalam format teks (berupa

(17)

2. Pesan (plaintext) dalam bentuk karakter ASCII (American Standard Code for

Information Interchange) 8 bit, dengan ukuran file bebas dan panjang teks

maksimal 1024 karakter.

3. Ciphertext yang ditampilkan hanya berupa kode ASCII saja.

4. Aplikasi dibuat dengan menggunakan bahasa pemrograman Matlab 7.5.0 .

1.4 Tujuan Penelitian

Penelitian ini bertujuan untuk menerapkan suatu sistem keamanan dan kerahasiaan

data dengan menggunakan algoritma kriptografi One Time Pad (OTP) dan Linear

Congruential Generator (LCG) sebagai pembangkit kunci.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah menghasilkan aplikasi yang dapat mengenkripsi dan

mendekripsi pesan teks tersebut agar informasinya dapat diperoleh oleh penerima

yang kerahasiaannya masih terjaga.

1.6 Metode Penelitian

Tahapan yang dilakukan dalam penelitian ini adalah:

1. Studi Literatur.

Melakukan studi kepustakaan, dengan mengumpulkan dan mempelajari bahan-

bahan referensi yang berhubungan dengan skripsi ini, baik dari text book maupun

(18)

2. Perancangan Sistem.

Perancangan yang dimaksud adalah membuat flowchart dengan algoritma

kriptografi One Time Pad dan metode pembangkit bilangan acak pada Linear

Congruential Generator (LCG), diagram Use Case serta rancangan interface.

3. Implementasi Sistem.

Perancangan sistem meliputi proses penginputan pesan, proses pembangkit kunci

secara acak, proses enkripsi dan proses dekripsi serta implementasinya dalam

bentuk kode program (coding)dengan menggunakan bahasa pemrograman Matlab

7.5.0.

4. Pengujian Sistem.

Pengujian dilakukan terhadap program yang telah dibuat yang dimulai dengan

proses penginputan pesan, proses pembangkit kunci secara acak, proses enkripsi

dan proses dekripsi .

5. Dokumentasi Sistem.

Penyusunan laporan Tugas Akhir lengkap dengan analisis yang didapatkan.

1.7 Sistematika Penulisan

Penulisan skripsi ini dibagi menjadi lima bab, yaitu sebagai berikut:

BAB 1 Pendahuluan

Pada bab ini dibahas latar belakang pemilihan judul, rumusan masalah, batasan

masalah, tujuan penelitian, metode penelitian dan sistematika penulisan.

BAB 2 Landasan Teori

Bagian ini berisi teori-teori dasar kriptografi, proses pembangkitan bilangan acak

dengan metode Linear Congruential Generator (LCG), proses enkripsi dan dekripsi

(19)

BAB 3 Analisis dan Perancangan Sistem

Pada bab ini dibahas analisis kriptografi OTP dengan pembangkit bilangan acak LCG,

serta rancangan struktur program dengan flowchart dan diagram Use Case serta desain

interface.

BAB 4 Implementasi dan Pengujian

Bab ini berisi tentang implementasi sistem dan melakukan pengujian terhadap sistem.

Bab 5 Penutup

Bab terakhir ini memuat kesimpulan dan saran untuk kesempurnaan pengembangan

(20)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani, yakni kata kriptos dan graphia. Kriptos berarti

secret (rahasia) dan graphia berarti writing (tulisan). Kriptografi merupakan seni dan

ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut

cryptographer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode

(rumusan) yang digunakan, dan dikatakan sebagai seni karena karena dalam membuat

suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan

memerlukan teknik khusus dalam mendisainnya [8]. Sedangkan cryptanalysis adalah

suatu ilmu dan seni memecahkan ciphertext menjadi plaintext tanpa melalui cara yang

seharusnya dan orang yang melakukannya disebut cryptanalyst.

enkripsi

dekripsi

Gambar 2.1 Proses - proses kriptografi

Menurut Request for Comments (RFC), kriptografi merupakan ilmu

matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak

dapat dipahami (untuk menyembunyikan maknanya), mencegahnya dari perubahan

tanpa izin, atau mencegahnya dari penggunaan yang tidak sah. Jika transformasinya

dapat dikembalikan, kriptografi juga bisa diartikan sebagai proses mengubah kembali

(21)

data yang terenkripsi menjadi bentuk yang dapat dipahami. Artinya, kriptografi dapat

diartikan sebagai proses untuk melindungi data dalam arti yang luas [11].

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai

berikut :

“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan

menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan

metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses

kunci, juga semua hal yang ditulis dengan cara seperti ini.”

Jadi, secara umum dapat diartikan sebagai seni menulis atau memecahkan cipher [16].

Algoritma kriptografi selalu terdiri dari dua bagian yaitu fungsi enkripsi dan

dekripsi. Bila keamanan algoritma tergantung pada kerahasiaan algoritma bekerja,

maka algoritma tersebut dikatakan algoritma terbatas (terbatas kemampuannya) [7].

Algoritma terbatas mempunyai sejarah yang menarik, namun tidak cukup baik untuk

digunakan saat ini. Sebagian besar pengguna (yang tidak dalam satu grup) tidak dapat

menggunakannya bersama-sama, sehingga setiap kali seorang pengguna

meninggalkan grupnya, pemakai lain dalam grup tersebut harus mengganti algoritma

agar tidak diketahui kelompok lain. Dan bila salah satu anggota tanpa sengaja

menampakkan algoritma keluar grupnya, grup tersebut harus mengganti algoritmanya.

2.2 Komponen Kriptografi

Pada dasarnya, kriptografi terdiri dari beberapa komponen sebagai berikut [1] :

1. Algoritma, merupakan himpunan aturan matematis yang digunakan dalam

enkripsi dan dekripsi.

2. Enkripsi, adalah transformasi data ke dalam bentuk yang tidak dapat terbaca

(22)

3. Dekripsi, merupakan kebalikan dari enkripsi, yaitu transformasi data

terenkripsi kembali ke bentuknya semula.

4. Kunci, digunakan pada saat melakukan enkripsi dan dekripsi. Pada kriptografi

modern, keamanan enkripsi tergantung pada kunci, dan tidak tergantung

kepada algoritmanya apakah dilihat orang lain atau tidak.

5. Pesan asli (Plaintext), disebut juga dengan clear-text, merupakan teks asli yang

akan diproses menggunakan algoritma kriptografi tertentu untuk menjadi

ciphertext.

6. Ciphertext, merupakan pesan yang telah melalui proses enkripsi yang

merupakan himpunan karakter acak.

7. Kriptologi, merupakan studi tentang kriptografi dan kriptanalisis.

8. Kriptanalisis (Cryptanalysist), merupakan aksi memecahkan mekanisme

kriptografi dengan cara menganalisisnya untuk menemukan kelemahan dari

suatu algoritma kriptografi sehingga akhirnya dapat ditemukan kunci atau teks

asli.

9. Kriptosistem, adalah perangkat keras atau implementasi perangkat lunak

kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi

ciphertext dan juga sebaliknya.

2.3 Kunci Simetris dan Asimetris

2.3.1 Kunci Simetris

Ini adalah jenis kriptografi yang paling umum dipergunakan. Kunci untuk membuat

pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu.

(23)

Siapapun yang memiliki kunci tersebut termasuk pihak-pihak yang tidak diinginkan

dapat membuat dan membongkar rahasia ciphertext. Problem yang paling jelas disini

terkadang bukanlah masalah pengiriman ciphertext-nya, melainkan masalah

bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan.

Contoh algoritma kunci simetris adalah DES (Data Encryption Standard), 2,

RC-4, RC-5, RC-6, TwoFish, Rijndael, International Data Encryption Algorithm (IDEA),

Advanced Encryption Standard (AES), One Time Pad (OTP), dan lainnya .

Gambar 2.2 Kunci simetris (Sumber : Herianto, 1999)

Kelebihan kunci simetris:

a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris.

b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem

real-time

Kelemahan kunci simetris:

a. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan

kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen

kunci tersebut.

b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “key distribution

problem” .

2.3.2 Kunci Asimetris

Pada pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman menemukan

teknik enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris adalah

(24)

enkripsi dan yang satu lagi untuk dekripsi. Semua orang yang mendapatkan kunci

publik dapat menggunakannya untuk mengenkripsikan suatu pesan, sedangkan hanya

satu orang saja yang memiliki rahasia tertentu dalam hal ini kunci privat untuk

melakukan pembongkaran terhadap sandi yang dikirim untuknya.

Dengan cara seperti ini, jika Alice mengirim pesan untuk Bob, Alice dapat

merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh Bob, karena hanya Bob

yang bisa melakukan dekripsi dengan kunci privatnya. Tentunya Alice harus memiliki

kunci publik Bob untuk melakukan enkripsi. Alice bisa mendapatkannya dari Bob,

ataupun dari pihak ketiga seperti Eva.

Gambar 2.3 Penggunaan kunci asimetris (Sumber : Herianto, 1999)

Teknik enkripsi asimetris ini jauh lebih lambat ketimbang enkripsi dengan

kunci simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan

dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci

asimetris. Sedangkan pesannya dikirim setelah disandikan dengan kunci simetris tadi.

Contoh algoritma yang menggunakan kunci asimetris adalah RSA (merupakan

singkatan penemunya yakni Rivest, Shamir dan Adleman), Digital Signature

Algorithm (DSA), Diffie-Hellman, Kriptografi Quantum, ElGamal, dan lainnya.

Contoh penggunaan, misalkan jaringan komputer menghubungkan komputer

karyawan di kantor cabang dengan komputer manejer di kantor pusat. Seluruh kepala

cabang diberitahu bahwa kalau mereka mengirim laporan ke manejer di kantor pusat,

mereka harus mengenkripsi laporan tersebut dengan kunci publik manajer (kunci

publik manajer diumumkan kepada seluruh kepala cabang). Untuk mengembalikan

laporan tersandi ke laporan semula, hanya manajer yang dapat melakukan dekripsi,

karena hanya dialah yang memegang kunci privat. Selama proses transmisi ciphertext

(25)

yang dikirim disadap oleh pihak ketiga, namun pihak ketiga ini tidak dapat

mengembalikan ciphertext ke plaintext-nya karena ia tidak mengetahui kunci untuk

dekripsi.

Kelebihan kunci asimetris:

a. Masalah keamanan pada distribusi kunci dapat lebih baik

b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih

sedikit, maksudnya untuk berkorespondensi secara rahasia dengan banyak pihak

tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup

membuat dua buah kunci (disebut public-key) bagi para koresponden untuk

mengenkripsi pesan, dan private-key untuk mendekripsi pesan.

Kelemahan kunci asimetris:

a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris

b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang

dibandingkan dengan algoritma simetris.

2.4 Block Cipher dan Stream Cipher

Jika kita melihat berdasarkan ukuran serta format data yang akan diproses, maka

algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:

a. Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang berbentuk

blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi

dalam sekali proses enkripsi atau dekripsi data yang masuk mempunyai ukuran

yang sama. Untuk algoritma komputer modern, ukuran blok dasarnya adalah

64 bit atau 128 bit, cukup besar untuk menghindari analisis pemecahan kode

dan cukup kecil agar dapat bekerja dengan cepat. Sebelum pemakaian

komputer, algoritma biasanya beroperasi pada plaintext, satu karakter per satu

operasi. Dapat dikatakan bahwa ini seperti algoritma aliran (stream) yang

(26)

b. Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan

berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa

aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.

Stream cipher adalah sebuah algoritma enkripsi simetris di mana output yang

dihasilkan ciphertext bit per bit atau byte per byte dari sebuah input plaintext

[15]. Yang paling banyak digunakan adalah RC4.

2.5 Tujuan Kriptografi

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan

informasi, yaitu:

1. Kerahasiaan (Confidentiality), adalah layanan yang digunakan untuk menjaga

isi informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas

untuk membuka informasi yang telah disandikan.

2. Integritas Data (Message Integrity), berhubungan dengan penjagaan

(perlindungan data) dari upaya-upaya pengubahan data secara tidak sah. Untuk

dapat menjaga integritas data, suatu sistem harus memiliki kemampuan untuk

mendeteksi pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak

berhak, antara lain penyisipan, penghapusan, dan pendistribusian data lain ke

dalam data yang asli.

3. Autentifikasi (Authentication), berhubungan dengan identifikasi, baik secara

kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling

berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan

harus diautentikasi keasliannya, isi datanya, waktu pengirimannya dan lain

sebagainya.

4. Nirpenyangkalan (Non-repudiation), merupakan usaha untuk mencegah

terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh

(27)

2.6 Keamanan Algoritma Kriptografi

Sebuah algoritma kriptografi dikatakan aman (computationally secure) bila ia

memenuhi tiga kriteria berikut [8] :

1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi

sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara

analitik.

2. Biaya untuk memecahkan ciphertext melampaui nilai informasi yang

terkandung di dalam ciphertext tersebut.

3. Waktu yang diperlukan untuk memecahkan ciphertext melampaui lamanya

waktu informasi tersebut harus dijaga kerahasiaannya.

2.7 Pembangkit Bilangan Acak

Pembangkit Bilangan Acak atau Random Number Generator (RNG) adalah suatu

peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang

tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat

dianggap sebagai suatu keadaan acak (random). RNG ini tidak dapat diterapkan dalam

prakteknya. Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar

acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak

benar-benar acak, tetapi hanya berupa acak semu. Ini berarti bahwa bilangan acak

yang dihasilkan itu dapat ditebak susunan atau urutan nilainya. Dalam kriptografi,

bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak

(28)

2.8 Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak Semu atau Pseudo Random Number Generator (PRNG)

merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana

elemen-elemennya bergantung pada setiap nilai yang dihasilkan. Output dari PRNG tidak

betul-betul acak, tetapi hanya mirip dengan properti dari nilai acak. Hal ini didukung

oleh penelitian sebelumnya. [12] menyimpulkan dari beberapa algoritma untuk

membangkitkan bilangan acak semu, tidak ada yang benar-benar dapat menghasilkan

bilangan acak secara sempurna dalam arti benar-benar acak dan tanpa ada perulangan

selama pembangkit yang digunakan adalah komputer yang memiliki sifat

deterministik dan bilangan yang benar-benar acak hanya dapat dihasilkan oleh

perangkat keras (hardware).

Menurut [14], pembangkit bilangan acak yang cocok untuk kriptografi

dinamakan Cryptographically Secure Pseudorandom Number Generator (CSPRNG).

Persyaratan CSPRNG adalah :

1. Terlihat acak. Artinya mampu melewati uji statistik keacakan .

2. Tidak dapat diprediksi. Perhitungan secara komputasional tidak dapat

mempengaruhi prediksi bilangan acak selanjutnya yang telah diberikan

algoritma secara menyeluruh ataupun dari dibangkitkan dari mesin (komputer).

3. Tidak mampu diproduksi kembali. Jika pembangkit bilangan acak mampu

dibangkitkan dua kali dengan input yang sama akan memperoleh hasil acak

yang berbeda satu dengan lainnya.

Meskipun demikian, pada dasarnya bilangan acak yang diperoleh bukanlah

bilangan acak yang sesungguhnya, maka supaya lebih menyerupai bilangan acak, [4]

mengatakan beberapa syarat penting yang harus dipenuhi oleh bilangan acak adalah

(29)

1. Dapat diulang. Sekumpulan (barisan) bilangan yang sama harus bisa diperoleh

(diulang) dengan menggunakan seed yang sama, hal ini kadang-kadang

diperlukan untuk pemeriksaan dan penelusuran program (debugging).

2. Keacakan. Barisan bilangan harus memenuhi syarat keacakan secara seragam

(uniform) yang dapat diuji melalui uji statistika.

3. Periode panjang. Karena pada dasarnya bilangan acak itu merupakan barisan

berulang dengan berbagai periode, maka periode pengulangan harus sangat

besar atau lama melebihi banyaknya bilangan acak yang diperlukan.

Tidak peka seed. Sekalipun barisan bilangannya bergantung pada seed tetapi

sifat keacakan dan periodisasi sedapat mungkin tidak bergantung pada

seed-nya.

Secara umum, sebuah PRNG didefinisikan sebagai algoritma kriptografi yang

digunakan untuk menghasilkan bilangan secara acak. Pengertian acak sendiri adalah

bilangan yang dihasilkan dalam setiap waktu tidaklah sama. Sebuah PRNG memiliki

sebuah kondisi awal K yang rahasia. Saat digunakan, PRNG harus membangkitkan

output acak yang tidak dapat diidentifikasi oleh kriptanalis yang tidak tahu dan tidak

dapat menebak kondisi awal K. Dalam hal ini, PRNG memiliki kesamaan dengan

cipher aliran. Akan tetapi, sebuah PRNG harus mampu mengubah kondisi awalnya

dengan memproses input sehingga tidak dapat diprediksi oleh kriptanalis. Umumnya

PRNG memiliki kondisi awal yang tidak sengaja dapat ditebak oleh kriptanalis dan

harus mengalami banyak proses sebelum kondisinya rahasia dan aman. Patut dipahami

bahwa sebuah input untuk PRNG memiliki informasi rahasia yang tidak diketahui

oleh kriptanalis. Input-input ini umumnya diperoleh dari proses-proses fisik, interaksi

user dengan mesin, atau proses eksternal lain yang sulit diprediksi. Dalam desain dan

implementasi harus dapat dipastikan bahwa input-input ini memiliki cukup jaminan

keamanan dan kerahasiaan.

Kebanyakan algoritma dari PRNG ditujukan untuk menghasilkan suatu sampel

yang secara seragam terdistribusi. PRNG ini sering digunakan dalam kriptografi pada

(30)

menentukan tingkat keamanan dari metode kriptografi. Semakin rumit PRNG yang

digunakan maka semakin tinggi tingkat keamanan dari metoda kriptografi [7].

.

Bilangan acak semu

Input seed rahasia

Gambar 2.4 Skema Dasar PRNG

Semua deretan bilangan acak yang dibangkitkan dari rumus matematika,

serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang

pembangkitannya. Sementara itu, banyak produk software yang dinyatakan sebagai

produk yang aman karena menggunakan bilangan acak semacam OTP (One Time

Pad). Namun karena OTP ini dibangkitkan dari bilangan acak semu, maka keamanan

yang diperoleh juga semu. Pembangkit bilangan acak yang sering diimplementasikan

adalah Linier Congruential Generator (LCG) dan Linear Feedback Shift Register

(LFSR).

2.9 Linear Congruential Generator (LCG)

Linear Congruential Generator (LCG) mewakili salah satu algoritma pseudo random

number yang tertua dan paling populer. Algoritma ini diciptakan oleh D. H. Lehmer

pada tahun 1951. Teori dari algoritma ini mudah dipahami dan dapat

diimplementasikan secara cepat. Hal ini didukung oleh penelitian sebelumnya. [10]

menyimpulkan hasil analisis yang diperoleh bahwa dari segi kecepatan LCG

membutuhkan waktu yang paling pendek dalam menghasilkan bilangan acak

dibandingkan dengan metode lain. Keuntungan dari LCG adalah operasinya yang

sangat cepat. LCG dapat didefinisikan dengan rumusan berikut :

�� = (a.��−� + b) mod m (2.1)

(31)

Dimana :

�� = bilangan acak ke-n dari deretnya

��−1 = bilangan acak sebelumnya

a = faktor pengali

b = increment

m = modulus (batas maksimum bilangan acak)

(a, b, dan m semuanya konstanta LCG)

Penentuan nilai awal �0 atau ��−1dan konstanta (a, b, dan m) akan menentukan kualitas bilangan acak yang dihasilkan. Bilangan acak yang baik (pada

umumnya) apabila terjadinya perulangan atau munculnya bilangan acak yang sama,

dapat terjadi setelah sekian banyak pembangkitan bilangan acak (semakin banyak

akan semakin baik) serta tidak bisa diprediksi kapan terjadi perulangannya.

Periode dari LCG umumnya adalah sebesar nilai m. Masalah pada LCG adalah

lower order bit yang digenerasi mempunyai periode yang lebih pendek dari deretan

secara keseluruhan jika m di-set menjadi pangkat 2. Tanpa desain yang benar, dengan

m yang sangat besar, bisa jadi periode bilangan acak yang dihasilkan tidak akan

maksimal, bahkan mungkin jauh lebih pendek daripada periode maksimalnya. Kunci

pembangkit adalah X0 yang disebut umpan (seed). LCG mempunyai periode tidak

lebih besar dari m. Jika a, b, dan m dipilih secara tepat (misalnya b seharusnya relatif

prima terhadap m dan b < m ), maka LCG akan mempunyai periode maksimal, yaitu

m – 1.

Sebagai contoh : Untuk membangkitkan bilangan acak sebanyak 10 kali

(32)

Tabel 2.1 Hasil pembangkitan bilangan acak dengan metode LCG

n ��−1 a b �.��−1+� m �� = (�.��−1+�) mod m

1 2 13 7 33 11 0

2 0 13 7 7 11 7

3 7 13 7 98 11 10

4 10 13 7 137 11 5

5 5 13 7 72 11 6

6 6 13 7 85 11 8

7 8 13 7 111 11 1

8 1 13 7 20 11 9

9 9 13 7 124 11 3

10 3 13 7 46 11 2

2.10 One Time Pad (OTP)

One Time Pad (OTP) ditemukan pada tahun 1917 oleh G. Vernam dan Major Joseph

Mauborgne. OTP sering disebut “Vernam Cipher”. OTP merupakan algoritma yang

relatif gampang untuk dipelajari dan sudah dinyatakan oleh para ahli kriptografi

sebagai “perfect encryption algorithm”. [3] sebelumnya pernah melakukan penelitian

tentang penggunaan algoritma OTP untuk sistem pengamanan access database server.

Cipher yang tidak dapat dipecahkan dikatakan memiliki tingkat kerahasiaan

yang sempurna (perfect secrecy). Satu-satunya algoritma kriptografi sempurna, aman

dan tidak dapat dipecahkan adalah One Time Pad [8].

Sistem cipher One Time Pad ini tidak dapat dipecahkan karena barisan kunci

acak yang ditambahkan ke pesan plaintext yang tidak acak menghasilkan ciphertext

yang seluruhnya acak serta panjang kunci harus sama dengan panjang plaintext.

Beberapa barisan kunci yang digunakan untuk mendekripsi ciphertext mungkin

menghasilkan pesan-pesan plaintext yang mempunyai makna, sehingga kriptanalis

(33)

Pad merupakan cipher yang sempurna aman, namun faktanya ia tidak digunakan

secara universal dalam aplikasi kriptografi sebagai satu-satunya sistem cipher yang

tidak dapat dipecahkan ( hanya sedikit sistem komunikasi yang menggunakan OTP).

Malahan orang masih tetap menggunakan sistem cipher yang dapat dipecahkan.

Alasannya adalah dari segi kepraktisan, yaitu karena panjang kunci harus sama

dengan panjang pesan, maka One Time Pad hanya cocok untuk pesan berukuran kecil.

2.10.1 Proses Enkripsi dan Dekripsi

Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan masing-masing

karakter pada plaintext dengan satu karakter pada kunci. Oleh karena itu, panjang

kunci harus sama dengan panjang plaintext. Enkripsi dapat dinyatakan sebagai

penjumlahan modulo 256 (menggunakan kode ASCII 8 bit) dari satu karakter

plaintext dengan satu karakter kunci OTP :

ci = (pi + ki) mod 256 (2.2)

Dalam hal ini, pi adalah plaintext ke-i, ki adalah kunci ke-i, dan ci adalah

huruf ciphertext ke-i. Panjang kunci sama dengan panjang plaintext, sehingga tidak

ada kebutuhan mengulang penggunaan kunci selama proses enkripsi. Setelah pengirim

mengenkripsikan pesan dengan kunci, ia menghancurkan kunci tersebut. Penerimaan

pesan menggunakan kunci yang sama untuk mendekripsikan karakter-karakter

ciphertext menjadi karakter-karakter plaintext dengan persamaan :

pi = (ci - ki) mod 256 (2.3)

Sebagai contoh : Sebuah huruf plaintext ‘B’ akan dienkripsi dengan

menggunakan kunci ‘I’ (kunci ini masih dipilih sembarang, karena belum

menggunakan metode pembangkit bilangan acak, untuk sistem yang akan dibuat

(34)

dibahas pada subbab sebelumnya), maka akan menghasilkan sebuah huruf ciphertext

sebagai berikut:

Plaintext : B (66)

Kunci : I (73)

Plaintext + kunci : 139

Plaintext + kunci mod 256 : 139 ( ‹ )

Untuk mendekripsikannya, akan diproses sebaliknya, yaitu :

Ciphertext : ‹ (139)

Kunci : I (73)

Ciphertext - kunci : 66

Ciphertext - kunci mod 256 : 66 (B)

(35)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Algoritma One Time Pad

One Time Pad (OTP) merupakan algoritma klasik yang tidak dapat dipecahkan. Hal

itu dikarenakan panjang kunci enkripsi memiliki panjang sama dengan jumlah

karakter yang akan dienkripsikan. One Time Pad memiliki kelemahan panjang kunci

yang terlalu panjang, tetapi selain kelemahan hal itu juga merupakan kelebihannya.

Kelemahan dari One Time Pad ini menyebabkan sulit untuk didistribusikan. Oleh

karena itu, untuk mendistribusikan kuncinya harus melalui jalur yang berbeda dari

pengiriman pesan yang akan dienkripsi.

Dibawah ini ada beberapa hasil analisis algoritma OTP dengan beberapa

variasi kunci :

1. Kunci yang dipilih sama dengan plaintext yang akan dienkripsikan

Tabel 3.1 Proses Enkripsi dengan Kunci yang Sama dengan Plaintext Plaintext(p) Ascii Kunci (k) Ascii Cipher = (p+k) mod 256

O 79 O 79 158

N 78 N 78 156

E 69 E 69 138

32 32 64

T 84 T 84 168

I 73 I 73 146

M 77 M 77 154

E 69 E 69 138

32 32 64

P 80 P 80 160

A 65 A 65 130

(36)

2. Kunci yang dipilih berdasarkan jumlah frekuensi karakter terbanyak dari

plaintext

Tabel 3.2 Proses Enkripsi dengan Sebuah Kunci Berdasarkan Jumlah Karakter Plaintext yang Berulang

Plaintext(p) Ascii Kunci (k) Ascii Cipher = (p+k) mod 256

Dari tabel di atas, saat One Time Pad (OTP) menggunakan sebuah kunci yang sama untuk setiap karakter plaintext-nya, maka saat inilah OTP sama dengan Caesar Cipher.

3. Kunci yang dipilih berdasarkan potongan sebuah kata dari plaintext

(37)

4. Kunci dipilih berdasarkan konsep autokey, yaitu kunci pertama dipilih sembarang, lalu kunci berikutnya merupakan sebagian dari plaintext

Tabel 3.4 Proses Enkripsi dengan Konsep Autokey Plaintext(p) Ascii Kunci (k) Ascii Cipher = (p+k) mod 256

O 79 B 66 145

N 78 O 79 157

E 69 N 78 147

32 E 69 101

T 84 32 116

I 73 T 84 157

M 77 I 73 150

E 69 M 77 146

32 E 69 101

P 80 32 112

A 65 P 80 145

D 68 A 65 133

5. Kunci yang dipilih berdasarkan hasil pembangkitan dari metode LCG,

dengan Xo=21, a=6, b=33, m=147

Tabel 3.5 Proses Enkripsi dengan OTP dan LCG Plaintext(p) Ascii Kunci(Ascii) Cipher = (p+k) mod 256

O 79 12 91

N 78 105 183

E 69 75 144

32 42 74

T 84 138 222

I 73 126 199

M 77 54 131

E 69 63 132

32 117 149

P 80 0 80

A 65 33 98

(38)

6. Kunci yang dipilih berdasarkan hasil pembangkitan dari metode LCG,

dengan Xo=1 a=32 b=71 m=147

Tabel 3.6 Proses Enkripsi dengan OTP dan LCG Plaintext(p) Ascii Kunci(Ascii) Cipher = (p+k) mod 256

O 79 103 182

N 78 133 211

E 69 64 133

32 61 93

T 84 112 196

I 73 127 200

M 77 19 96

E 69 91 160

32 43 75

P 80 124 204

A 65 70 135

D 68 106 174

7. Kunci yang dipilih berdasarkan hasil pembangkitan dari metode LCG,

dengan Xo=50, a=2, b=2, m=147

Tabel 3.7 Proses Enkripsi dengan OTP dan LCG Plaintext(p) Ascii Kunci(Ascii) Cipher = (p+k) mod 256

O 79 102 181

N 78 59 137

E 69 120 189

32 95 127

T 84 45 129

I 73 92 165

M 77 39 116

E 69 80 149

32 15 47

P 80 32 112

A 65 66 131

D 68 134 202

Dari beberapa tabel diatas, dapat dilihat bahwa pengenkripsian dengan

(39)

menghasilkan ciphertext yang lebih acak, dalam arti lebih sedikit frekuensi

perulangannya..

3.2 Analisis Algoritma Linear Congruential Generator (LCG)

Linear Congruential Generator membutuhkan empat buah konstanta yaitu Xn-1 atau

bisa juga sebagai Xo(seed), a, b, dan m. Dalam sistem ini, keempat konstanta tersebut

harus diinputkan oleh user. Penentuan keempat konstanta tersebut akan menentukan

kualitas bilangan acak yang dihasilkan.

Di bawah ini, ada beberapa buah contoh hasil analisis yang penulis lakukan

dengan beberapa buah kombinasi keempat konstanta LCG :

1. Grafik dengan nilai Xo = 30, a=19, b=3, dan m=11

Gambar 3.1 Grafik dengan nilai Xo = 30, a=19, b=3, dan m=11

Grafik di atas menunjukkan hasil pembangkitan kunci dengan menggunakan

metode LCG. Nilai 1, 0, 3, 5, 10, 6, 7, 4, 2, 8 dan 1 adalah kunci yang diperoleh dari

hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke

sebelas.

1 2 3 4 5 6 7 8 9 10 11

Series1 1 0 3 5 10 6 7 4 2 8 1

0 5 10 15

A

x

is

T

it

le

(40)

2. Grafik dengan nilai Xo = 30, a=5, b=31, dan m=11

Gambar 3.2 Grafik dengan Xo = 30, a=5, b=31, dan m=11

Grafik di atas menunjukkan hasil pembangkitan kunci dengan menggunakan

metode LCG. Nilai 5, 1, 3, 2, 8, 5, 1, 3, 2, 8, 5 adalah kunci yang diperoleh dari hasil

pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke enam.

3. Grafik dengan nilai Xo = 30, a=13, b=7, dan m=11

Gambar 3.3 Grafik dengan Xo = 30, a=13, b=7, dan m=11

Grafik di atas menunjukkan hasil pembangkitan kunci dengan menggunakan

metode LCG. Nilai 1, 9, 3, 2, 0, 7, 10, 5, 6, 8, 1 adalah kunci yang diperoleh dari hasil

pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke sebelas.

1 2 3 4 5 6 7 8 9 10 11

Series1 5 1 3 2 8 5 1 3 2 8 5

0 2 4 6 8 10

Xn

Grafik LCG

1 2 3 4 5 6 7 8 9 10 11

Series1 1 9 3 2 0 7 10 5 6 8 1

0 2 4 6 8 10 12

Xn

(41)

4. Grafik dengan nilai Xo = 30, a=13, b=10, dan m=11

Gambar 3.4 Grafik dengan Xo = 30, a=13, b=10, dan m=11

Grafik di atas menunjukkan hasil pembangkitan kunci dengan menggunakan

metode LCG. Nilai 4, 7, 2, 3, 5, 9, 6 0, 10, 8, 4 adalah kunci yang diperoleh dari hasil

pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke sebelas.

5. Grafik dengan nilai Xo = 30, a=3, b=23, dan m=11

Gambar 3.5 Grafik dengan Xo = 30, a=3, b=23, dan m=11

Grafik di atas menunjukkan hasil pembangkitan kunci dengan menggunakan

metode LCG. Nilai 3, 10, 9, 6, 8, 3, 10, 9, 6, 8, 3 adalah kunci yang diperoleh dari

hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke enam.

Pada bab sebelumnya sudah disinggung bahwa LCG mempunyai periode tidak

lebih besar dari m. Jika a, b, dan m dipilih secara tepat (misalnya b seharusnya relatif

prima terhadap m dan b < m), maka LCG akan mempunyai periode maksimal, yaitu

1 2 3 4 5 6 7 8 9 10 11

Series1 4 7 2 3 5 9 6 0 10 8 4

0 2 4 6 8 10 12

Xn

Grafik LCG

1 2 3 4 5 6 7 8 9 10 11

Series1 3 10 9 6 8 3 10 9 6 8 3

0 2 4 6 8 10 12

Xn

(42)

m – 1. Dari grafik di atas, dapat kita buktikan pernyataan tersebut. Pada gambar 3.1

sama halnya pada gambar 3.3 dan gambar 3.4, terlihat kombinasi secara tepat antara a,

b, dan m, sehingga LCG mempunyai periode maksimal (m-1), dimana dengan m = 11,

perulangan terjadi pada n=11. Sedangkan pada gambar 3.2 dan 3.5, kombinasi a, b,

dan m sangat buruk, sehingga terjadi perulangan saat n = 6 dengan m = 11, sehingga

tidak memenuhi syarat untuk menghasilkan LCG yang memiliki periode maksimal.

3.3 Desain Sistem

Proses perancangan yang akan digunakan pada sistem ini merupakan proses

perancangan yang berorientasi pada prosedural, untuk itu dibuatlah algoritma dan

flowchart dan perancangan tampilan. Aplikasi ini dirancang suatu sistem yang

memproses karakter ASCII (American Standard Code for Information Interchange)

256 karakter.

3.4 Algoritma dan Flowchart Sistem

Prosedur ini merupakan gambaran sistem secara keseluruhan. Sistem ini terdiri ada

tiga proses utama, yaitu proses enkripsi, proses pembangkitan kunci secara acak, dan

proses dekripsi. Di bawah ini akan digambarkan flowchart dari sistem secara garis

besar :

1. Start

2. Masuk pada tampilan utama sistem

3. Ada empat buah pilihan, pilih salah satu diantaranya

4. Untuk pilihan keluar, setelah di-klik akan muncul pilihan apakah mau keluar

atau tidak, jika iya maka akan keluar dari sistem, jika tidak akan tetap pada

tampilan utama dari sistem.

5. Untuk pilihan enkripsi dari file, setelah di-klik akan muncul form untuk

meng-import file teks, lalu akan ada proses pembangkitan kunci dan proses enkripsi

(43)

6. Untuk tampilan enkripsi dari keyboard, setelah di-klik akan muncul form

untuk menginputkan plaintext, lalu ada proses pembangkitan kunci dan proses

enkripsi serta dekripsi dari keyboard.

7. Untuk pilihan bantuan, jika di-klik akan muncul form bantuan yang

(44)

Tidak

(45)

3.4.1 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari File Teks

Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini

juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya.

Di bawah ini akan dijelaskan prosesnya secara lebih rinci :

1. Start

2. Pilih tombol browse untuk mengambil file teks yang akan dienkripsikan

3. Hitung panjang plaintext

4. Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan error,

dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya

5. Konversi plaintext ke dalam kode ASCII

6. Bangkitkan kunci

7. Hitung ciphertext, Ci = (Pi + Ki

adalah kunci ke-i, dan Ci adalah ciphertext ke-i

) mod 256 ; dimana Pi adalah plaintext ke-i,

Ki

8. Tampilkan ciphertext yang berupa kode ASCII

9. Simpan ciphertext

10. Untuk mendekripsikannya, lalu hitung plaintext,Pi = (Ci - Ki

11. Ubah plaintext ke karakter semula dan tampilkan

) mod 256

12. Finish

(46)

Ya

Tidak

A Browse file teks

Tentukan panjang plaintext, plaintext = konversi ke

kode ASCII

Bangkitkan kunci

Ci = (Pi + Ki) mod 256 Start

If length (plain) >

1024 Tampilkan isi file

Tampilkan pesan error

Tampilkan nilai ASCII, lalu simpan sebagai

(47)

Gambar 3.7 Flowchart Proses Enkripsi dan Dekripsi dari File Teks

3.4.2 Algoritma dan Flowchart Proses Pembangkitan Kunci

Prosedur ini digunakan untuk melakukan proses pembangkitan kunci dengan metode

Linear Congruential Generator (LCG). Proses ini dilakukan setelah user

menginputkan plaintext, dan akan dipanggil kembali saat mau mendekripsikan

ciphertext. Di bawah ini akan dijelaskan prosesnya secara lebih rinci :

1. Start

2. Inputkan nilai Xo (seed), a, b, m yang merupakan konstanta LCG

3. Hitung, total(1) = mod (a*Xo+b, m)

4. For i= 2: length (plain), jadi kunci akan dibangkitkan sepanjang plaintext,

sehingga panjang kunci sama dengan panjang plaintext yang merupakan

ciri khas dari algoritma OTP

5. Hitung, total = mod (a*total (i-1) +b, m) A

Pi = (Ci - Ki) mod 256

Konversi plaintext ke karakter semula

Finish Tampilkan plaintext

(48)

6. Selanjutnya, kunci yang diperoleh dimodulokan lagi dengan 256 untuk

konversi ke ASCII

7. Tampilkan kunci acak dan tampilkan juga grafik keacakannya

8. Finish

Gambar 3.8 Flowchart Proses Pembangkitan Kunci

Start

Input Xo, a,b, dan m

For i = 2: length (plain) total(1) = mod (a*Xo+b, m)

total (i) = mod (a*total ( i-1) +b, m)

(49)

3.4.3 Algoritma dan Flowchart Proses Enkripsi dan Dekripsi dari keyboard

Prosedur ini digunakan untuk melakukan proses enkripsi dan dekripsi. Pada tahap ini

juga akan dipanggil beberapa prosedur pendukung yang telah dijelaskan sebelumnya.

Di bawah ini akan dijelaskan prosesnya secara lebih rinci :

1. Start

2. Inputkan plaintext yang ingin dienkripsikan pada tempat yang telah

disediakan

3. Hitung panjang plaintext

4. Jika panjang plaintext lebih dari 1024 karakter, akan ditampilkan pesan

error, dan isi file harus dipersingkat, jika tidak lanjut ke tahap berikutnya

5. Konversi plaintext ke dalam kode ASCII

6. Bangkitkan kunci

7. Hitung ciphertext, Ci = (Pi + Ki

8. Tampilkan ciphertext yang berupa kode ASCII

) mod 256 ; dimana Pi adalah plaintext

ke-i, Ki adalah kunci ke-ke-i, dan Ci adalah ciphertext ke-i

9. Simpan ciphertext

10.Untuk mendekripsikannya, hitung plaintext, Pi = (Ci - Ki

11.Ubah plaintext ke karakter semula dan tampilkan

) mod 256

(50)

Ya

Tidak

A Input plaintext

Bangkitkan kunci

Ci = (Pi + Ki) mod 256 Start

If length (plain) >

1024

Tentukan panjang plaintext, plaintext = konversi ke kode ASCII

Tampilkan pesan error

Tampilkan nilai ASCII, lalu simpan sebagai

(51)

Gambar 3.9 Flowchart Proses Enkripsi dan Dekripsi dari Keyboard

3.5 Diagram Use Case

Diagram Use Case adalah diagram yang menunjukkan fungsionalitas suatu sistem

atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar dan

menjelaskan sistem secara fungsional yang terlihat user. Diagram use case

menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan

adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case

merepresentasikan sebuah interaksi antara aktor dengan sistem. Di bawah ini adalah

diagram use case dari sistem yang telah dibuat. A

Pi = (Ci - Ki) mod 256

Konversi plaintext ke karakter semula

Finish Tampilkan plaintext

(52)

Input plaintext

Input konstanta LCG

Bangkitkan kunci acak

Informasi detail dari plaintext

Enkripsi plaintext

Dekripsi ciphertext

Simpan kunci acak

Simpan ciphertext

<< include >>

User << include >>

<< include >> << include >>

<< extend >> << extend >>

Gambar 3.10 Diagram Use Case Sistem

Tabel 3.8 Spesifikasi Use Case Kriptografi

Nama Analisis dan perancangan aplikasi pesan rahasia menggunakan algoritma One Time Pad (OTP) dengan pembangkit bilangan acak Linear Congruential

Generator (LCG).

Actor User ( pengguna)

Dekripsi singkat Sistem akan mengenkripsi dan membangkitkan kunci serta mendekripsi pesan yang diinputkan user.

Pre Condition Sistem menyediakan form untuk menginputkan pesan (plaintext) dan menginputkan konstanta LCG sebagai pembangkit kunci acak.

(53)

3.6 Perancangan Antarmuka

Untuk perancangan antarmuka pemakai (user interface) akan dirancang kedalam 4

halaman tampilan, yang terdiri dari menu utama yang menampilkan beberapa tombol,

tombol untuk mengenkripsi dan mendekripsikan file teks yang berisikan sebuah form,

tombol untuk mengenkripsi dan mendekripsikan plaintext langsung yang diinputkan

dari keyboard yang berisikan sebuah form, dan tombol bantuan yang akan

menampilkan form yang menjelaskan cara kerja sistem (program), dan yang terakhir

tombol keluar untuk keluar dari program.

3.6.1 Tampilan Menu Utama

Pada tampilan menu utama, ada terdapat empat buah tombol, tombol pertama enkripsi

dan dekripsi dari file, jika tombol ini diklik, maka proses akan dilanjutkan ke tampilan

file encryption. Tombol kedua enkripsi dan dekripsi dari keyboard, jika tombol ini

diklik, maka proses akan dilanjutkan ke tampilan encryption. Tombol ketiga bantuan,

jika diklik akan muncul tampilan help. Tombol yang terakhir adalah pilihan untuk

keluar dari sistem.

Gambar 3.11 RancanganTampilan Awal

1

ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA

MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP) DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL

GENERATOR (LCG)

7 oleh : BILQIS 081401072 2 MENU UTAMA

3 ENKRIPSI & DEKRIPSI dari FILE

4 ENKRIPSI & DEKRIPSI dari KEYBOARD

5BANTUAN

(54)

Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan

dijelaskan sebagai berikut :

1. Terdiri atas tiga buah komponen Static Text yang disusun sedemikian

rupa sebagai judul program.

2. Terdiri atas sebuah komponen Static Text dengan nama ‘MENU

UTAMA’.

3. Terdiri atas sebuah Push Button dengan nama ‘ENKRIPSI & DEKRIPSI

dari FILE’ .

4. Terdiri atas sebuah Push Button dengan nama ‘ENKRIPSI & DEKRIPSI

dari KEYBOARD’ .

5. Terdiri atas sebuah Push Button dengan nama ‘BANTUAN’ .

6. Terdiri atas sebuah Push Button dengan nama ‘KELUAR’ .

7. Terdiri atas sebuah Static Text untuk menampilkan nama penulis.

3.6.2 Tampilan Enkripsi dan Dekripsi dari File

Pada halaman ini (file encryption), tombol browse diklik untuk memilih file teks yang

akan dienkripsikan, selanjutnya tombol properties diklik, lalu tombol kunci.

Kemudian, ada empat buah konstanta yang harus diinputkan oleh user untuk

memproses kunci secara acak, selanjutnya klik tombol bangkitkan kunci, simpan, lalu

enkripsi. Karakter yang telah terenkripsi beserta kode ASCII akan ditampilkan.

Selanjutnya klik simpan ciphertext dan klik dekripsi, plaintext semula akan

ditampilkan. Pada tombol kembali, jika diklik akan kembali ke tampilan menu utama,

sedangkan pada tombol lanjut akan masuk ke tampilan enkripsi dan dekripsi dari

(55)

Gambar 3.12 Rancangan Tampilan Enkripsi dan Dekripsi dari File Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan

dijelaskan sebagai berikut :

1. Terdiri atas sebuah komponen Static Text sebagai judul.

2. Terdiri atas sebuah Edit Text untuk menampilkan nama file yang akan

dienkripsi.

3. Terdiri atas sebuah Edit Text untuk menampilkan isi file.

4. Terdiri atas sebuah Push Button dengan nama ‘Browse’.

5. Terdiri atas sebuah Push Button dengan nama ‘Properties’.

6. Terdiri atas sebuah Push Button dengan nama ‘Kunci’.

7. Terdiri atas sebuah Edit Text untuk menampilkan panjang karakter dari file.

8. Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII dari karakter

yang sudah dikonversi. 1

ENKRIPSI dan DEKRIPSI dari FILE TEKS

(56)

9. Terdiri atas sebuah Edit Text untuk menginputkan nilai Xo.

10.Terdiri atas sebuah Edit Text untuk menginputkan nilai a.

11.Terdiri atas sebuah Edit Text untuk menginputkan nilai b.

12.Terdiri atas sebuah Edit Text untuk menginputkan nilai m.

13.Terdiri atas sebuah Edit Text untuk menampilkan hasil dari pembangkitan

kunci.

14.Terdiri atas sebuah Axes untuk menampilkan grafik keacakan.

15.Terdiri atas sebuah Push Button dengan nama ‘Bangkitkan kunci’.

16.Terdiri atas sebuah Push Button dengan nama ‘Simpan kunci’.

17.Terdiri atas sebuah Push Button dengan nama ‘Enkripsi’.

18.Terdiri atas sebuah Push Button dengan nama ‘Ulangi’.

19.Terdiri atas sebuah Edit Text untuk menampilkan karakter ciphertext.

20.Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII ciphertext.

21.Terdiri atas sebuah Push Button dengan nama ‘Simpan ciphertext’.

22.Terdiri atas sebuah Push Button dengan nama ‘Dekripsi’.

23.Terdiri atas sebuah Edit Text untuk menampilkan karakter plaintext

semula.

24.Terdiri atas sebuah Push Button dengan nama ‘Kembali’.

25.Terdiri atas sebuah Push Button dengan nama ‘Lanjut’.

3.6.3 Tampilan Enkripsi dan Dekripsi dari Keyboard

Pada halaman ini (encryption), plaintext diisi secara langsung melalui keyboard,

selanjutnya tombol properties diklik, lalu tombol kunci. Kemudian, ada empat buah

konstanta yang harus diinputkan oleh user untuk memproses kunci secara acak,

selanjutnya klik tombol bangkitkan kunci, simpan, lalu enkripsi. Karakter yang telah

terenkripsi beserta kode ASCII akan ditampilkan. Selanjutnya klik simpan ciphertext

dan klik dekripsi, plaintext semula akan ditampilkan. Pada tombol kembali, jika diklik

akan kembali ke tampilan menu utama, sedangkan pada tombol lanjut akan masuk ke

(57)

Gambar 3.13 Rancangan Tampilan Enkripsi dan Dekripsi dari Keyboard

Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan

dijelaskan sebagai berikut :

1. Terdiri atas sebuah komponen Static Text sebagai judul.

2. Terdiri atas sebuah Edit Text untuk menginputkan plaintext yang akan

dienkripsi.

3. Terdiri atas sebuah Push Button dengan nama ‘Properties’.

4. Terdiri atas sebuah Push Button dengan nama ‘Kunci’.

5. Terdiri atas sebuah Edit Text untuk menampilkan panjang karakter dari

plaintext yang diinputkan sebelumnya.

6. Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII dari karakter

yang sudah dikonversi.

8

ENKRIPSI dan DEKRIPSI dari KEYBOARD

(58)

7. Terdiri atas sebuah Edit Text untuk menginputkan nilai Xo.

8. Terdiri atas sebuah Edit Text untuk menginputkan nilai a.

9. Terdiri atas sebuah Edit Text untuk menginputkan nilai b.

10.Terdiri atas sebuah Edit Text untuk menginputkan nilai m.

11.Terdiri atas sebuah Edit Text untuk menampilkan hasil dari pembangkitan

kunci.

12.Terdiri atas sebuah Axes untuk menampilkan grafik keacakan.

13.Terdiri atas sebuah Push Button dengan nama ‘Bangkitkan kunci’.

14.Terdiri atas sebuah Push Button dengan nama ‘Simpan kunci’.

15.Terdiri atas sebuah Push Button dengan nama ‘Enkripsi’.

16.Terdiri atas sebuah Push Button dengan nama ‘Ulangi’.

17.Terdiri atas sebuah Edit Text untuk menampilkan karakter ciphertext.

18.Terdiri atas sebuah Edit Text untuk menampilkan kode ASCII ciphertext.

19.Terdiri atas sebuah Push Button dengan nama ‘Simpan ciphertext’.

20.Terdiri atas sebuah Push Button dengan nama ‘Dekripsi’.

21.Terdiri atas sebuah Edit Text untuk menampilkan karakter plaintext

semula.

22.Terdiri atas sebuah Push Button dengan nama ‘Kembali’.

23.Terdiri atas sebuah Push Button dengan nama ‘Lanjut’.

3.6.4 Tampilan Bantuan

Pada halaman ini (help), berisikan penjelasan singkat tentang mekanisme system

pengenkripsian dan pendekripsian pesan. Terdapat sebuah tombol kembali, jika diklik

(59)

Gambar 3.14 RancanganTampilan Bantuan

Pada gambar di atas terdapat beberapa komponen-komponen visual yang akan

dijelaskan sebagai berikut :

1. Terdiri atas sebuah komponen Panel dengan judul ‘Bantuan’.

2. Terdiri atas sebuah Edit Text untuk menjelaskan proses dari sistem.

3. Terdiri atas sebuah Edit Text untuk menjelaskan proses dari sistem.

4. Terdiri atas sebuah Push Button dengan nama ‘Kembali’. 1

Bantuan

2

Penjelasan singkat

3

Penjelasan singkat

(60)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1 Implementasi

Setelah perancangan sistem kriptografi dibuat, selanjutnya masuk ke pada tahap

implementasi atau pengkodean ke dalam bentuk program komputer. Implementasi

dilakukan dengan menggunakan bahasa pemrograman Matlab 7.5.0.

Pada perancangan perangkat lunak diberi judul ”Analisis dan Perancangan

Aplikasi Pesan Rahasia Menggunakan Algoritma One Time Pad (OTP) dengan

Pembangkit Bilangan Acak Linear Congruential Generator (LCG)”. Ketika program

dijalankan, maka akan ditampilkan interface seperti di bawah ini :

(61)

Terdapat empat buah tombol, jika tombol pertama diklik yaitu tombol Enkripsi

dan Dekripsi dari File akan muncul tampulan seperti di bawah ini :

Gambar 4.2 Tampilan Menu Enkripsi dan Dekripsi dari File

Selanjutnya, klik tombol browse, lalu, pilih file yang akan dienkripsi, akan

muncul tampilan seperti ini :

(62)

Lalu klik open kemudian pada program akan muncul nama file pada tempat

yang sudah disediakan, kemudian klik tombol properties, maka akan muncul tampilan

seperti ini :

Gambar 4.4 Tampilan Isi File Teks dan Properties

Dalam proses pengetikan plaintext maupun isi dari file teks, harus dipastikan

bahwa plaintext diketik tanpa menggunakan tombol enter pada keyboard karena

program tidak dapat menentukan dengan benar jumlah karakter dari plaintext, dimana

panjang karakter akan menentukan panjang kunci untuk mengenkripsi dan dekripsi.

Begitu juga pada file *.txt, harus dimodifikasi agar isinya hanya satu baris ke kanan

tanpa menggunakan tombol enter untuk baris baru.

Selanjutnya, klik tombol kunci untuk menginputkan empat buah konstanta

sebagai syarat untuk membangkitkan kunci pada metode LCG, lalu setelah diinputkan

keempat konstanta tersebut, klik tombol bangkitkan kunci, lalu setelah itu akan ada

tanda peringatan untuk mengecek hasil pembangkitan kunci, perhatikan kunci, jika

perulangan terjadi secara terus menerus, silahkan tekan tombol ‘ulangi’, lebih jelasnya

(63)

Gambar 4.5 Tampilan Pembangkitan Kunci

Selanjutnya, klik tombol simpan dan simpanlah dengan nama file yang

diinginkan, lalu klik tombol enkripsi, setelah itu tampilan akan menjadi seperti

dibawah ini :

(64)

Setelah itu, untuk kembali melihat pesan semula, klik tombol simpan

ciphertext, lalu klik tombol dekripsi, maka akan muncul tampilan seperti ini :

Gambar 4.7 Tampilan Plaintext Semula Hasil Dekripsi

Jika pesan yang diinputkan melebihi 1024 buah karakter, maka akan muncul

tampilan seperti dibawah ini :

(65)

Pada saat penginputan empat buah konstanta, jika input yang dimasukkan

bukan merupakan bilangan, akan muncul pesan error seperti tampilan dibawah :

Gambar 4.9 Tampilan Pesan Error untuk Inputan Numerik

Selanjutnya, Pada gambar 4.7 jika klik tombol lanjut,maka tampilan dengan

proses yang sama akan muncul seperti gambar di bawah ini :

(66)

Jika klik tombol lanjut, maka akan muncul tampilan bantuan seperti gambar di

bawah ini :

Gambar 4.11 Tampilan Menu Bantuan

Jika klik tombol kembali, maka program akan kembali pada tampilan menu

utama seperti tampilan dibawah, jika klik tombol keluar.

Gambar

Tabel 2.1  Hasil pembangkitan bilangan acak dengan metode LCG
Tabel 3.1  Proses Enkripsi dengan Kunci yang Sama dengan Plaintext
Tabel 3.4  Proses Enkripsi dengan Konsep Autokey
Tabel 3.7  Proses Enkripsi dengan OTP dan LCG
+7

Referensi

Dokumen terkait

Demikian juga dengan kepemimpinan manajer yang menunjukkan kategori kurang baik dengan persentase 70%.Hasil penelitian ini juga menunjukkan bahwa adanya hubungan yang

Hal itu dipertegas melalui Permendiknas Nomor 41 Tahun 2007 tentang standar proses yang berbunyi perencanaanproses pembelajaran yang mensyaratkan pendidik untuk mengembangkan

ayat (2) : yang dimaksud dengan memproses pemilihan kepala desa adalah membentuk panitia pemilihan, menetapkan calon kepala desa yang berhak dipilih

yang ditemukan selama pengamatan adalah Gejala serangan Penggerek Batang padi, populasi Wereng hijau dan Walang sangit (lihat gambar 4, 5 dan Lampiran 2), Hasil pengamatan rata

Yohanes Indrayono/Iman Santoso, S.E.. Yohanes Indrayono/Iman

Swasakti Utama Tasikmalaya yang didasarkan pada hasil dari analisis faktor internal dan analisis faktor eksternal juga analisis SWOT yang kemudian datanya digunakan

Abstrak: Penelitian ini bertujuan untuk mengetahui kelayakan kuesioner motivasi belajar sebagai instrumen penelitian bila dikaji dari penskalaan responnya. Penelitian

Pada kelompok serapan P tinggi, model campuran berdasarkan komponen utama juga lebih baik daripada model campuran berdasarkan data asli dengan nilai BIC, AIC, dan AICC lebih