MANUAL BOOK
“KriptoGraf”
Kelompok :
Nama : Reezky Illmawati (57415601)
Luky Ilyas S (53415880)
Rizqy Fitrianto (56415216)
Reffy Ferdiyatno (55415717)
Rico Chandra (55415917)
Roki Pratama (56415247)
Kelas : 3IA26
Fakultas : Teknologi Industri
Jurusan : Teknik Informatika
Dosen : Dr. HENNY MEDYAWATI, SKom,MM.
UNIVERSITAS GUNADARMA
2017-2018
0
KATA PENGANTAR
Puji dan syukur kami panjatkan kehadirat Allah SWT, karena dengan rahmat dan
karunia-Nya kami dapat menyelesaikan makalah ini dengan baik. Manual Book ini disusun
untuk memenuhi tugas “Sistem Keamanan Komputer” .
Walaupun manual book ini mempunyai kelebihan dan kekurangannya. Oleh karena
itu, kami mengharapkan saran,kritik, dan pendapat yang membangun untuk kesempurnaan
makalah ini .
Terimakasih
Penyusun
1
DAFTAR ISI
KATA PENGANTAR 1
DAFTAR ISI 2
BAB I PENDAHULUAN
3.2 Substitusi 12
3.4 ROT 13 13
BAB IV PENUTUP
4.1 Kesimpulan 26
4.2 Saran 26
DAFTAR PUSTAKA 27
LAMPIRAN 28
2
BAB I
PENDAHULUAN
3
BAB II
LANDASAN TEORI
Kriptografi adalah ilmu yang mempelajari bagaimana membuat suatu pesan yang
dikirim pengirim dapat disampaikan kepada penerima dengan aman. Ilmu kriptografi adalah
ilmu yang mempelajari tentang penyembunyian huruf atau tulisan sehingga membuat tulisan
tersebut tidak dapat dibaca oleh orang yang tidak berkepentingan. Kriptografi sudah dipakai
sejak jaman Julius Caesar dimana akan mengirimkan pesan kepada panglimanya tetapi tidak
mempercayai kurir pembawa pesan tersebut. Kriptografi mempunyai 2 (dua) bagian yang
penting, yaitu enkripsi dan dekripsi. Enkripsi adalah proses dari penyandian pesan asli
menjadi pesan yang tidak dapat diartikan seperti aslinya. Dekripsi sendiri berarti merubah
pesan yang sudahdisandikan menjadi pesan aslinya. Pesan asli biasanya disebut plaintext,
sedangkan pesan yang sudah disandikan disebut ciphertext. Kriptografi dapat memenuhi
kebutuhan umum suatu transaksi:
C = E (M)
dimana
4
M = pesan asli
E = proses enkripsi
disebut sandi)
Sedangkan dekripsi adalah proses mengubah pesan dalam suatu bahasa sandi menjadi
pesan asli kembali.
M = D (C)
D = proses dekripsi
5
2.3 Proses Enkripsi
Enkripsi data merupakan bagian awal dari proses pengamanan data. Dalam proses
enkripsi ini data yang asli akan dilakukan proses pengacakan dengan algoritma yang sudah
ditentukan. Salah satu hal yang penting dalam komunikasi menggunakan computer untuk
menjamin kerahasiaan data adalah Enkripsi. Enkripsi adalah sebuah proses yang melakukan
perubahan sebuah kode yang bisa dimengerti menjadi sebuah kode yang tidak dapat
dimengerti (tidak terbaca).
Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah system pengkodean
menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari
informasi atau yang merupakan bagian dari informasi yang dikirim. Sebuah chiper
mengunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari
sebuah pesan menjadi cryptogram yang tidak dimengerti (unintelligible). Karena teknik
chiper merupakan suatu system yang telah siap untuk di automasi, maka teknik ini digunakan
dalam system keamanan computer dan jaringan. Enkripsi dimaksudkan untuk melindungi
informasi agar tidak terlihat oleh orang atau pihak yang tidak berhak. Informasi ini dapat
berupa nomor kartu kredit, catatan penting dalam komputer, maupun password untuk
mengakses sesuatu. Masalah kerahasiaan ini sudah ada jauh sebelum adanya computer. Julius
Caesar, yang khawatir jangan sampai pesan untuk para jenderalnya jatuh ke tangan musuh,
maka ia menggunakan metode enkripsi sederhana dengan menggeser huruf pada abjad
dengan nilai tertentu. Sederhana memang, namun pada waktu itu sudah memadai. Sepanjang
sejarah pembentukan kode dan pemecahannya selalu mendapat perhatian khusus dalam
operasi militer. Penggunaan computer untuk pertama kalinya dalam kriptografi merupakan
usaha untuk memecahkan kode enigma Nazi sewaktu Perang Dunia II. Kini, pada zaman
modern, adanya computer memungkinkan kita menghasilkan kode yang kompleks, dan
sebaliknya pula dapat digunakan untuk memecahkannya.
6
menangkap paket-paket data tersebut, tetap saja ia tidak dapat memahamin artinya. Enkripsi
juga digunakan untuk verifikasi, maksudnya bila mendownload software, kita akan tahu
bahwa software yang kita download adalah yang asli, bukannya yang telah dipasangkan
Trojan di dalamnya. Dalam hal ini terdapat tiga kategori enkripsi, yaitu :
1. Kunci enkripsi rahasia, artinya terdapat sebuah kunci yang digunakan untuk
mengenkripsi dan juga sekaligus mendekripsikan informasi
2. Kunci enkripsi public, artinya dua kunci digunakan satu untuk proses enkripsi dan
yang lain untuk proses dekripsi.
3. Fungsi one-way, atau fungsi satu arah adalah suatu fungsi dimana informasi
dienkripsi untuk menciptakan “signature” dari informasi asli yang bisa digunakan
untuk keperluan autentikasi.
Tampilan ini meminta pemakai untuk memasukan nama file yang akan dienkripsi.
Adapun langkah-langkah proses enkripsi adalah :
1. Proses enkripsi dilakukan setelah menginputkan file yang akan dienkripsi dan
menginput kunci / key pada text key.
2. Form enkripsi data ditampilkan setelah tombol Enkripsi di pilih.
7
3. Frame Text Area berfungsi untuk menampilkan informasi dari file file sumber / asal
yang akan dilakukan enkripsi.
4. Edit Text berfungsi untuk menginput kata yang akan di enkripsi.
5. Tombol enkripsi berfungsi untuk melakukan proses perubahan / enkripsi dari plaintext
menjadi ciphertext.
6. Proses enkripsi dilakukan setelah menginputkan type file yang akan dienkripsi dan
menginput kunci / key pada text key.
8
2.4 Proses Deskripsi
Proses dekripsi merupakan proses yang dilakukan untuk mengembalikan file dari
bentuk simbol-simbol kembali ke bentuk semula .
Tampilan ini meminta pemakai untuk memasukan nama file yang akan di deskripsi
Adapun langkah-langkah proses deskripsi adalah :
9
Kode program untuk proses dekripsi adalah sebagai berikut :
10
BAB III
PEMBAHASAN
Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan
memiliki tabel yang sama untuk keperluan dekripsi.
Enkripsi Tabel Substitusi Deskripsi Tabel Substitusi
11
3.3 Caesar Chipper
Pada prinsipnya, setiap huruf digantikan dengan huruf yang berada tiga (3) posisi
dalam urutan alfabet. Sebagai contoh huruf “a” digantikan dengan huruf “D” dan
seterusnya.
Enkripsi Caesar Chipper Deskripsi Caesar Chipper
12
3.4 ROT 13
Pada sistem ini sebuah huruf digantikan dengan huruf yang letaknya 13 posisi
darinya. Sebagai contoh, huruf “A” digantikan dengan huruf “N”, huruf “B”
digantikan dengan huruf “O”, dan seterusnya.
Enkripsi ROT13 Deskripsi ROT13
13
3.5 Langkah-langkah Pembuatan
Langkah pertama adalah buka program Android Studio lalu pilih New Project.
14
15
MainActivity.java
package com.example.reezkyillma.kriptografi;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Spinner;
import android.widget.TextView;
16
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_drop
down_item);
keySpinner.setAdapter(adapter);
final ImageButton bEncrypt = (ImageButton)
findViewById(R.id.bttn_encrypt);
final ImageButton bDecrypt = (ImageButton)
findViewById(R.id.bttn_decrypt);
EditText etText = (EditText) findViewById(R.id.et_text);
final TextView tvResult = (TextView)
findViewById(R.id.tv_result);
bEncrypt.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
String in = ((EditText)
findViewById(R.id.et_text)).getText().toString();
String out = Caesar.encrypt(in,
keySpinner.getSelectedItemPosition() - 1);
tvResult.setText(out);
View view = getCurrentFocus();
if (view != null) {
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});
bDecrypt.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
String in = ((EditText)
findViewById(R.id.et_text)).getText().toString();
String out = Caesar.decrypt(in,
keySpinner.getSelectedItemPosition() - 1);
tvResult.setText(out);
17
View view = getCurrentFocus();
if (view != null) {
InputMethodManager imm =
(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
});
}
}
Activity_Main.xml
Activity Main.xml digunakan untuk membuat layout/ tampilan pada aplikasi kriptografi
<ImageView
android:layout_width="113dp"
android:layout_height="17dp"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/et_text"
android:layout_marginTop="155dp"
android:background="@drawable/enter" />
<ImageView
android:layout_width="242dp"
android:layout_height="64dp"
android:layout_alignParentTop="true"
18
android:layout_centerHorizontal="true"
android:layout_marginTop="64dp"
android:background="@drawable/krippp" />
<EditText
android:id="@+id/et_text"
android:layout_width="341dp"
android:layout_height="62dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="174dp"
android:hint="@string/et_hint_text"
android:maxLines="1"
android:textColor="#000"
android:textColorHighlight="#000"
android:textColorHint="#000" />
<LinearLayout
android:id="@+id/ll_key"
android:layout_width="191dp"
android:layout_height="38dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="252dp"
android:orientation="horizontal">
<ImageView
android:layout_width="40dp"
android:layout_height="21dp"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/key" />
<Spinner
android:id="@+id/spnr_keys"
android:layout_width="107dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_buttons"
19
android:layout_width="wrap_content"
android:layout_height="55dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="291dp">
<ImageButton
android:id="@+id/bttn_encrypt"
android:layout_width="129dp"
android:layout_height="44dp"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginStart="16dp"
android:background="@drawable/enkripsi"
android:foregroundGravity="center" />
<ImageButton
android:id="@+id/bttn_decrypt"
android:layout_width="126dp"
android:layout_height="36dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="36dp"
android:background="@drawable/deskripsi"
android:foregroundGravity="center" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_results"
android:layout_width="357dp"
android:layout_height="119dp"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/tv_instructions"
android:layout_marginBottom="62dp"
android:background="#ffff"
android:gravity="center"
android:padding="15dp">
<TextView
android:id="@+id/tv_result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:textSize="20sp" />
</LinearLayout>
20
</RelativeLayout>
</ScrollView>
SpkashScreen.java
package com.example.reezkyillma.kriptografi;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ProgressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
progressBar = (ProgressBar)findViewById(R.id.progressBar1);
new Thread(new Runnable() {
@Override
public void run() {
while(status < 100) {
status = loading();
handler.post(new Runnable() {
@Override
public void run() {
21
progressBar.setProgress(status);
}
});
}
handler.post(new Runnable() {
@Override
public void run() {
Intent pindah = new
Intent(SplashScreen.this,
MainActivity.class);
startActivity(pindah);
finish();
}
});
}
public int loading() {
try {
Thread.sleep(50);
} catch (
InterruptedException ie) {
ie.printStackTrace();
} return ++progress;
}
}).start();
}
}
SplashScreen.xml
SplashScreen.xml digunakan untuk mengatur layout atau tampilan pada splash screen
seperti memesukkan image pada tampilan tersebut.
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="376dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
22
android:layout_marginBottom="21dp"
android:layout_marginStart="0dp" />
<ImageView
android:layout_width="268dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="45dp"
android:layout_marginTop="69dp"
android:background="@drawable/kripp" />
<ImageView
android:layout_width="155dp"
android:layout_height="168dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="144dp"
android:background="@drawable/logoo" />
<ImageView
android:layout_width="155dp"
android:layout_height="222dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="146dp"
android:background="@drawable/kunci" />
</RelativeLayout>
Caesar.java
package com.example.reezkyillma.kriptografi;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
static {
ArrayList<Character> temp = new ArrayList<Character>();
23
for (int i = 0; i < 26; i++) {
temp.add((char) ('A' + i));
}
ALPHABET = temp;
}
24
private static String decryptHelper(String text, int key) {
text = text.toUpperCase();
String result = "";
for (int i = 0; i < text.length(); i++) {
if (ALPHABET.contains(text.charAt(i))) {
result +=
ALPHABET.get((ALPHABET.indexOf(text.charAt(i))
+ key) % 26);
} else {
result += text.charAt(i);
}
}
return result;
}
}
Code Program yang dibutuhkan untuk Aplikasi Kriptografi sudah dimasukkan semua
dan aplikasi bisa dirunning dengan cara menghubungkan ponsel Android ke PC dengan kabel
USB, namun sebelumnya ponsel Android harus dibuka dulu Developer Options dan USB
Debugging sudah di Enable. Atau bisa juga dirunning dengan Emulator Android yang
terinstall di PC seperti Nox, dan BlueStack. Jika sudah dihubungkan dengan Ponsel Android
atau sudah membuka Emulator Android, tekan button Run yang berada di bagian Toolbar
atas layar dan terakhir pilih Device Android yang sudah kita persiapkan.
25
BAB IV
PENUTUP
4.1 Kesimpulan
Kriptografi sederhana Tabel Substitusi yaitu Tabel substitusi dapat dibuat sesuka hati,
dengan catatan bahwa penerima pesan memiliki tabel yang sama untuk keperluan dekripsi.
Kriptografi sederhana Metode Caesar Sistem sandi Caesar ini dilakukan dengan
menggeser deretan huruf (alfabet) tiga langkah kedepan guna mendapatkan alfabet baru yang
digunakan untuk mengirimkan pesan rahasia.
Kriptografi sederhana Metode ROT13 Pada sistem ini sebuah huruf digantikan
dengan huruf yang letaknya 13 posisi darinya. Sebagai contoh, huruf “A” digantikan dengan
huruf “N”, huruf “B” digantikan dengan huruf “O”, dan seterusnya.
4.2 Saran
26
DAFTAR PUSTAKA
http://informatika.stei.itb.ac.id/~rinaldi.munir/Kriptografi/2017-
2018/Algoritma%20Kriptografi%20Klasik_bag1%20(2018).pdf(diakses pada tanggal 1 Juni
2018 pukul 15.10 WIB)
http://staffsite.stimata.ac.id/assets/uploads/files/download/efb95-ki-02.pdf(diakses pada
tanggal 1 Juni 2018 pukul 15.10 WIB)
https://balianzahab.wordpress.com/teknologi-informasi/proses-enkripsi-dan-
deskripsi/(diakses pada tanggal 1 Juni 2018 pukul 15.10 WIB)
27
LAMPIRAN
28
29