• Tidak ada hasil yang ditemukan

Enkripsi dan Dekripsi Data Menggunakan Kunci Simetris Algoritma Cast.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Enkripsi dan Dekripsi Data Menggunakan Kunci Simetris Algoritma Cast."

Copied!
69
0
0

Teks penuh

(1)

1

ABSTRACT

Nowadays in the age of information, many people using internet for communication and transferring data. The security aspect in data transaction is one of the most important aspect. One of the solutions to handle this is with data encoding or encryption.

The encryption method encodes the data, so anyone can not read the information of data except the owner. There are two general types of encryption algorithm, symmetric algorithm and asymmetric algorithm. The Algorithm which used in this book is symmetric algorithm. Symmetric algorithm encodes and decodes with the same key.

(2)

4

DAFTAR ISI

ABSTRACT... i

ABSTRAK ... 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 ... 1

1.3 Tujuan ... 2

1.4 Pembatasan Masalah ... 2

1.5 Spesifikasi Hardware ... 2

1.6 Spesifikasi Software... 2

1.7 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

(3)

2.3.2 Algoritma Asimetri ... 10

2.4 Mode Operasi Enkripsi Blok Cipher... 12

2.5 Teori Matematika ... 13

2.5.1 Bilangan Prima... 14

2.5.2 Operasi Modulus ... 15

2.5.3 Algoritma Euclidean ... 16

2.5.4 Algoritma Extended Euclidean... 16

2.5.5 Eksponensial Modulus ... 17

2.5.6 Fungsi XOR ... 20

2.6 Enkripsi Dengan Algoritma CAST-128... 20

2.6.1 Pasangan Kunci Round ... 22

2.6.2 Non-Identical Rounds... 22

2.6.3 Subtitution Box ... 23

2.6.4 Pengolahan Kunci ... 23

2.6.5 Masking dan Rotasi Sub Kunci... 27

2.6.6 Panjang dari Kunci Yang Bervariasi... 27

2.7 Algoritma Validasi Data ... 28

2.8 Tanda Tangan Digital... 28

2.8.1 Algoritma Pembangkit Kunci Tanda Tangan Digital ... 29

2.8.2 Algoritma Tanda Tangan Digital ... 29

2.8.3 Algoritma Verifikasi Tanda Tangan Digital ... 29

(4)

3.1 Pengolahan Kunci CAST-128... 30

3.2 Program Enkripsi ... 32

3.3 Program Dekripsi ... 35

3.4 Program Pembangkit Kunci Tanda Tangan Digital ... 38

3.4.1 Sub Program rdmprime ... 39

3.4.2 Sub Program gcd ... 40

3.4.3 Sub Program Euclid ... 40

3.4.4 Program Tanda Tangan Digital... 42

3.4.5 Program Validasi... 42

3.4.6 Sub Program Pangkatmod... 43

3.5 Realisasi Program ... 45

3.5.1 Tampilan Menu Utama ... 45

3.5.2 Program Enkripsi ... 46

3.5.3 Program Dekripsi ... 47

3.5.4 Program Timer... 48

BAB IV Data Pengamatan ... 49

4.1 Hasil Pengamatan Sederhana Program Enkripsi dan Dekripsi CAST-128 ... 49

4.1.1 Pengamatan Enkripsi CAST-128 Dengan Kunci Yang Sama ... 49

4.1.2 Pengamatan Enkripsi CAST-128 Dengan Kunci Yang Berbeda.. 52

(5)

4.2.1 Proses Enkripsi CAST-128 Dengan Menggunakan File... 55

4.2.2 Proses Dekripsi CAST-128 Dengan Menggunakan File ... 59

4.3 Hasil Pengamatan Waktu Dan Ukuran File Proses Enkripsi Dan Dekripsi CAST-128 ... 62

4.3.1 Pengamatan Enkripsi Dan Dekripsi Dengan Menggunakan Kunci Yang Sama ... 62

4.3.2 Pengamatan Enkripsi Dan Dekripsi Dengan Menggunakan Kunci Yang Berbeda... 63

4.4 Hasil Pengamatan Proses Tanda Tangan Digital ... 65

4.5 Pengamatan Hasil Proses Validasi ... 66

4.6 Analisa Hasil Pengamatan ... 70

BAB V Kesimpulan Dan Saran... 72

5.1 Kesimpulan ... 72

5.2 Saran... 72

(6)

5

DAFTAR GAMBAR

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

Gambar 2.3 Kriptografi Asimetri ... 11

Gambar 3.1 Diagram Alur Pengolahan Plaintext ... 32

Gambar 3.2 Diagram Alur Proses Enkripsi ... 34

Gambar 3.3 Diagram Alur Proses Dekripsi ... 37

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

Gambar 3.5 Diagram Alir Sub Program RdmPrime ... 39

Gambar 3.6 Diagram Alir Sub Program gcd ... 40

Gambar 3.7 Diagram Alir Sub Program Euclid ... 41

Gambar 3.8 Diagram Alir Program Tanda Tangan Digital ... 42

Gambar 3.9 Diagram Alir Program Validasi ... 43

Gambar 3.10 Diagram Alir Sub Program pangkatmod ... 44

Gambar 3.11 Tampilan Menu Utama ... 45

Gambar 3.12 Tampilan Program Enkripsi ... 46

Gambar 3.13 Tampilan Program Dekripsi ... 47

Gambar 4.1 Tampilan program enkripsi algoritma CAST-128 dengan plaintext “industri” kunci “enkripsi” ... 50

(7)

Gambar 4.3 Tampilan program enkripsi algoritma CAST-128 dengan plaintext

“Algoritma”, kunci “test” ... 53

Gambar 4.4 Tampilan program enkripsi algoritma CAST-128 dengan plaintext

“Algoritma”, kunci “test” ... 54

Gambar 4.5 Tampilan program enkripsi dari file plain.txt dengan menggunakan

kunci “cast-128”, disimpan dalam file cipher.cip ... 57

Gambar 4.6 Tampilan program dekripsi dari file cipher.cip dengan

menggunakan kunci “cast-128”, disimpan dalam file

plain1.txt ... 60

(8)

6

DAFTAR TABEL

Tabel 2.1 Nilai Extended Euclidean ... 17

Tabel 4.1 Enkripsi dan dekripsi menggunakan kunci yang sama, plaintext

yang berbeda-beda ... 49

Tabel 4.2 Enkripsi dan dekripsi menggunakan kunci yang sama, plaintext

yang berbeda-beda ... 52

Tabel 4.3 Hasil Pengamatan Proses Enkripsi CAST-128 ... 61

Tabel 4.4 Hasil Pengamatan Proses Dekripsi CAST-128 ... 62

Tabel 4.5 Hasil pengamatan Enkripsi file menggunakan kunci yang berbeda,

plaintext yang sama ... 63

Tabel 4.6 Hasil pengamatan Enkripsi file menggunakan kunci yang berbeda,

(9)
(10)

Listing UMain.pas

unit UMain;

interface

uses

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

type

procedure Label1MouseEnter(Sender: TObject); procedure Label1MouseLeave(Sender: TObject); procedure Label2MouseEnter(Sender: TObject); procedure Label2MouseLeave(Sender: TObject); procedure Label1Click(Sender: TObject);

procedure Keluar1Click(Sender: TObject); procedure Label2Click(Sender: TObject); procedure Enkripsi1Click(Sender: TObject); procedure Dekripsi1Click(Sender: TObject); procedure About1Click(Sender: TObject); private

(11)
(12)

frmDekripsi.ShowModal; end;

procedure TMain.About1Click(Sender: TObject); begin

frmAbout.ShowModal; end;

(13)

Listing UEnkripsi.pas

unit UEnkripsi;

interface

uses

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

type

(14)

Signtx: TEdit; Signature: TEdit; Label12: TLabel;

procedure btOpenClick(Sender: TObject); procedure btSaveClick(Sender: TObject); procedure edPassChange(Sender: TObject); procedure btCloseClick(Sender: TObject); procedure btEncryptClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure BtGenKeyClick(Sender: TObject); procedure BtSignClick(Sender: TObject); private

frmEnkripsi: TfrmEnkripsi;

implementation

uses StrUtils, Cast128, RSATools;

{$R *.dfm}

procedure TfrmEnkripsi.btOpenClick(Sender: TObject); begin

if EOpen.Execute then begin

Plain.Lines.LoadFromFile(EOpen.FileName); end;

Cipher.Lines.SaveToFile(ESave.FileName); ShowMessage('Cipher Text telah disimpan dengan nama'+chr(10)+chr(13)+ESave.FileName);

(15)

procedure TfrmEnkripsi.edPassChange(Sender: TObject); begin

if Length(edPass.Text) > 16 then begin

ShowMessage('Kata Kunci Maksimal Terdiri Dari 16 Karakter'); edPass.Text:=LeftStr(edPass.Text,16);

end;

awal,akhir,lama:TDateTime; begin

if edPass.Text = '' then

ShowMessage('Password Belum Terisi') else

if Plain.Text = '' then

ShowMessage('Plain Text Belum Terisi') else

if Signtx.Text = '' then

if Application.MessageBox('Anda belum menambahkan Digital Signature'+chr(10)+chr(13)

(16)

begin

Cipher.Clear; awal:=Time;

Start.Text:=TimeToStr(awal);

Cipher.Lines.Add(Encrypt(Signtx.Text+Plain.Text,edPass.Text)); akhir:=Time;

edPass.Clear; Start.Clear; Plain.Clear; Finished.Clear; Cipher.Clear; times.Clear; Signtx.Clear;

Signature.Clear;

PrivD.Clear; PrivN.Clear; PubE.Clear; PubN.Clear; end;

(17)

p := RdmPrime;

//random selection of e ulang:

//select e that is prime

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

(18)

PubE.Text := IntToStr(temp4);

(19)

Listing Udekripsi.pas

unit UDekripsi;

interface

uses

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

type

TfrmDekripsi = class(TForm) Label1: TLabel;

(20)

procedure FormShow(Sender: TObject); procedure edPassChange(Sender: TObject); procedure Button1Click(Sender: TObject); private

frmDekripsi: TfrmDekripsi;

implementation

uses StrUtils, Cast128, RSATools;

{$R *.dfm}

Cipher.Lines.LoadFromFile(DOpen.FileName); end;

(21)

i,j,k,pjg:integer;

awal,akhir,lama:TDateTime; begin

if edPass.Text = '' then

ShowMessage('Password Belum Terisi') else

(22)

Plain.Clear;

if Length(edPass.Text) > 16 then begin

ShowMessage('Kata Kunci Maksimal Terdiri Dari 16 Karakter'); edPass.Text:=LeftStr(edPass.Text,16);

end;

ShowMessage('Dekripsi dokumen terlebih dahulu') else

if sign = '' then

(23)

k:=j+2;

signtxt:=signtxt+chr(pangkatmod(StrToInt(tmp),e,n)); end;

inc(j); end;

ShowMessage('Digital Signature :'+chr(10)+chr(13)+'"'+signtxt+'"'); end;

end; end;

(24)

Listing Uabout.pas

unit UAbout; interface uses

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

type

TfrmAbout = class(TForm) Panel1: TPanel;

Label1: TLabel; Label5: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Button1: TButton;

procedure Button1Click(Sender: TObject); private

{ Private declarations } public

{ Public declarations } end;

var

frmAbout: TfrmAbout; implementation

{$R *.dfm}

procedure TfrmAbout.Button1Click(Sender: TObject); begin

frmAbout.Close; end;

(25)

Listing Cast128.pas

unit Cast128;

interface

uses StrUtils, SysUtils, Tools;

function Encrypt(data: string; key: string) : string; function Decrypt(data: string; key: string) : string;

implementation

{$I Cast128.inc} {$R-}

function Encrypt(data: string; key: string) : string; var

x, t, z: array[0..3] of DWord; key1: array[0..15] of byte;

i,j,k,len,plainlen,cipherlen,add,Rounds: integer; xKey: array[0..31] of DWord;

u, l, r, valid: DWord;

OutData, InData: array[0..7] of byte; Ciphertext,chip: string;

begin

{pengolahan kunci} len:=length(key);

if (Len<= 0) or (Len> 16) then

raise Exception.Create('Panjang Kunci antara 1 sampai 16 huruf'); if Len<= 10 then

Rounds:= 12 else

Rounds:= 16;

(26)
(27)
(28)

cast_sbox7[(t[2] shr 8) and $FF] xor cast_sbox8[t[2] and $FF];

(29)

plainlen:=length(data);

plainlen:=length(data); {enkripsi}

for k:=1 to (plainlen div 8) do begin

l:= StrtoDWord(data[(((k-1)*8)+1)]+data[(((k-1)*8)+2)]+ data[(((k-1)*8)+3)]+data[(((k-1)*8)+4)]);

(30)

cast_sbox3[(u shr 8) and $FF]) - cast_sbox4[u and $FF]);

ciphertext := ciphertext + DwordToStr(r) + DWordToStr(l); end;

{pengolahan ciphertext} cipherlen:=length(ciphertext); j:=1;

while j<cipherlen+1 do begin

if ciphertext[j] = chr(0) then begin

chip:=copy(ciphertext,1,j-1)+'nilstr'+copy(ciphertext,j+1,cipherlen-j); ciphertext:=chip;

end else

(31)

chip:=copy(ciphertext,1,j-1)+'notret'+copy(ciphertext,j+1,cipherlen-j);

chip:=copy(ciphertext,1,j-1)+'bknret'+copy(ciphertext,j+1,cipherlen-j); ciphertext:=chip;

end;

cipherlen:=length(ciphertext); inc(j);

end;

ciphertext:=ciphertext+IntToStr(add)+DWordToStr(valid); Encrypt:=ciphertext;

end;

function Decrypt(data: string; key: string) : string; var

x, t, z: array[0..3] of DWord; key1: array[0..15] of byte;

i,j,k,p,Len,cipherlen,add,Rounds: integer; xKey: array[0..31] of DWord;

u, l, r, valid, validt: DWord;

OutData, InData: array[0..7] of byte; Plain,Ciphertext,chip,tmp,s: string; adds: array[0..9] of string;

raise Exception.Create('Panjang Kunci antara 1 sampai 16 huruf'); if Len<= 10 then

Rounds:= 12 else

Rounds:= 16;

(32)
(33)
(34)
(35)

{pengolahan cipher text} cipherlen:=length(data); ciphertext:=data;

chip:=copy(ciphertext,1,j-1)+chr(0)+copy(ciphertext,j+6,cipherlen); ciphertext:=chip;

end else

if tmp = 'notret' then begin

chip:=copy(ciphertext,1,j-1)+chr(10)+copy(ciphertext,j+6,cipherlen); ciphertext:=chip;

end else

if tmp = 'bknret' then begin

chip:=copy(ciphertext,1,j-1)+chr(13)+copy(ciphertext,j+6,cipherlen); ciphertext:=chip;

end;

cipherlen:=length(ciphertext); inc(j);

end;

{validasi}

valid:=StrToDWord(RightStr(Ciphertext,4)); for p:=0 to 9 do

adds[p]:=chr(p+48);

s:=(LeftStr(RightStr(Ciphertext,5),1)); for p:=0 to 9 do

begin

if s = adds[p] then goto N; end;

Raise Exception.Create('Data Tidak Valid'); Exit;

N: try

(36)

Raise Exception.Create('Data Tidak Valid'); end;

data:=LeftStr(ciphertext,length(ciphertext)-5); cipherlen:=length(data);

validt:=0;

for k:=1 to (cipherlen div 8) do begin

validt:=validt xor (StrtoDWord(data[(((k-1)*8)+1)]+data[(((k-1)*8)+2)]+ data[(((k-1)*8)+3)]+data[(((k-1)*8)+4)]) xor

r:= StrtoDWord(data[(((k-1)*8)+1)]+data[(((k-1)*8)+2)]+ data[(((k-1)*8)+3)]+data[(((k-1)*8)+4)]);

(37)

cast_sbox3[(u shr 8) and $FF]) - cast_sbox4[u and $FF]);

plain:=plain+DWordToStr(l)+DWordToStr(r); end;

Decrypt:=LeftStr(plain,length(plain)-add); end;

(38)

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

(39)

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;

(40)

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;

(41)

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

Function Euclid(nilai1 : Longint; nilai2 : Longint) : Longint ; var mex,bex,A1,A2,A3,Qex,T1,T2,T3,B1,B2,B3,hasil:Longint; label itung, selesai;

begin

mex := nilai1; bex := nilai2; A1 := 1; B1 := 0; A2 := 0; B2 := 1; A3 := mex; B3 := bex; itung:

if B3 = 0 then begin hasil := 0; GoTo selesai; end;

if B3 = 1 then begin

hasil := B2; GoTo selesai; end;

(42)

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

(43)

//trap handler

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

(44)

end; end;

pangkatmod := nilaid; End;

(45)
(46)

Subtitution Box 1

cast_sbox1: array[0..255]of DWord= (

(47)
(48)

Subtitution Box 2

cast_sbox2: array[0..255] of DWord = (

(49)
(50)

Subtitution Box 3

cast_sbox3: array[0..255] of DWord = (

(51)
(52)

Subtitution Box 4

cast_sbox4: array[0..255] of DWord = (

(53)
(54)

Subtitution Box 5

cast_sbox5: array[0..255] of DWord = (

(55)
(56)

Subtitution Box 6

cast_sbox6: array[0..255] of DWord = (

(57)
(58)

Subtitution Box 7

cast_sbox7: array[0..255] of DWord = (

(59)
(60)

Subtitution Box 8

cast_sbox8: array[0..255] of DWord = (

(61)
(62)
(63)

Gambar Tampilan Program Utama

(64)
(65)
(66)

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

Pada saat ini informasi komputer dan interkoneksinya melalui jaringan

sangat meningkat, tentu saja dalam hal ini sangat dibutuhkan keamanan data yang

handal agar supaya terhindar dari penyadapan yang tidak diinginkan. Dalam hal

ini keamanan data merupakan permasalahan yang sangat penting. Sistem enkripsi

mempunyai kode-kode pengamanan untuk mengacak data dan juga mempunyai

kode-kode untuk mengembalikan data yang teracak ke data yang sebenarnya.

Metoda yang dibahas pada tugas akhir ini adalah algoritma CAST.

1.2

Identifikasi Masalah

1. Bagaimana mengimplementasikan algoritma CAST ?

2. Bagaimana membuat program enkripsi dan dekripsi menggunakan

(67)

1.3

Tujuan

Tugas akhir ini bertujuan untuk merancang program menggunakan

algoritma CAST sebagai pengamanan file data.

1.4

Pembatasan Masalah

• Enkripsi yang digunakan hanya dengan menggunakan metoda CAST

dengan panjang kunci maksimal 128 bit atau lebih dikenal dengan nama

CAST-128.

• Enkripsi yang digunakan hanya untuk file yang berformat txt (berisi

teks).

1.5

Spesifikasi Hardware

Program diuji dengan menggunakan CPU Atlhon 1800 Mhz dengan

memory sebesar 512 MB.

1.6

Spesifikasi Software

Program dibuat dengan menggunakan bahasa pemrograman Borland

(68)

1.7

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 berisi berbagai macam landasan teori yang bersangkutan dengan

enkripsi dan dekripsi algoritma CAST-128, yaitu antara lain : teori dasar

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

algoritma CAST-128.

BAB III PERANCANGAN DAN REALISASI

Bab ini berisi perancangan dan realisasi dari program enkripsi dan dekripsi

algoritma CAST-128

BAB IV HASIL PENGAMATAN

Bab ini berisi tentang data hasil pengamatan dari proses enkripsi dan

dekripsi algoritma CAST-128.

BAB V KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran yang mungkin berguna dalam

(69)

6

Daftar Pustaka

Adams, C., “Constructing Symmetric Chipers using the CAST Design

Procedure”, Design, Codes, and Cryptography.

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.

Http://www.entrust.com/library.htm., “Constructing Symmetric Chipers using the

CAST Design Procedure”

Http://www.adonis.ee.queensu.ca:8000/cast/cast.html., “CAST Encryption

Algorithm Related Publications”.

Schneier, Bruce, Applied Cryptography Second edition: protocols, Algorithms,

Gambar

Gambar Tampilan Program Utama
Gambar Tampilan Program Dekripsi
Gambar Tampilan About Box

Referensi

Dokumen terkait

Munculnya medan listrik radial ini sangat boleh jadi disebabkan tat kala pembawa-pembawa muatan (arus listrik) tertarik oleh gaya magnetik ke arah pusat konduktor

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

2 Keluarga Bapak Nurati merupakan salah satu dari sekian keluarga miskin atau rumah tangga miskin (RTM) yang berada di Desa Manduang. Ia tinggal bersama istri dan satu anak

memudahkan ibu melihat bayinya, tapi sebaiknya dilakukan dengan sistem rawat gabung. Memiliki sistem sirkulasi udara yang memadai dan tersedia pengatur kelembaban

Berdasarkan kriteria yang telah ditetapkan maka aspek ini telah memenuhi kriteria “Baik” (digunakan). Hasil kuesioner para ahli setelah menjadi produk menunjukkan bahwa ahli

Kalau diartikan secara dangkal, rekam medis seakan-akan hanya merupakan catatan dan dokumen tentang keadaan pasien, namun kalau dikaji lebih dalam rekam medis mempunyai makna yang

Setiap peserta wajib mengisi secara lengkap Borang Isian Dokumen Portofolio bidang Senirupa yang menginformasikan data karya serta satu raihan prestasi terbaik (jika ada)