Python bahasa yang simple

3 Komentar

Sebenernya dah lama belajar. Tapi baru sekarang ngoprek lagi. Dan ternyata dah banyak library yang ditambah. Jadi makin keren aja tuh. Kalo mau dibandingin seberapa simple python. Coba bandingin script berikut :

Python :

print “Hello, python”

C++ :

include <iostream>

using namespace std;

int main()

{

cout<<”Hello, Python”;

return 0;

}

Java :

class Hello {

public static void main(String [] args){

System.out.println(“Hello, python”);

}

}

Terlihat python yang lebih sederhana kan? Python mirip dengan C++ yang menjadikan fitur OOP optional. Tidak seperti Java yang memaksa programmer membuat program sederhana harus dibuat rumit. Dan tidak seperti C++ yang menggunakan lambang yang kurang manusiawi. Python menggunakan indentasi dan spasi sebagai pemisah bagian program. Kita bahas lagi nanti ya….

Penjelasan Kriptografi Keamanan Jaringan – bagian 1

4 Komentar

Pada postingan sebelumnya di judul kriptografi keamanan jaringan gw cuma mencantumkan source code doank. Sebenarnya itu source code buat program tugas dari mata kuliah keamanan jaringan. Metoda transposisi klasik dengan beberapa modifikasi. Metode transposisi yang digunakan cuma pada bagian pembangkitan kuncinya. Buat enkripsi digunakan substitusi alias pertukaran plain ke cipher dengan daftar yang ada di kunci. Metodanya terdiri dari 6 metode, yaitu :

a. Metoda Transposisi ditulis horizontal, dibaca horizontal.

b. Metoda Transposisi ditulis horizontal, dibaca vertikal.

c. Metoda Transposisi ditulis horizontal, dibaca spiral.

d. Metoda Transposisi ditulis horizontal, dibaca diagonal.

e. Metoda Transposisi ditulis zigzag, dibaca horizontal.

f. Metoda Transposisi ditulis piramid, dibaca vertikal.

Berikut penjelasan singkat metoda diatas

1.a. : Metoda Transposisi : Ditulis Horizontal, dibaca Horizontal

Kata kunci : Anak Krakatau -> ANKRTU

Ciphertext : ANKRTUBCDEFGHIJLMOPQSVWXYZ <- Horizontal

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

A

N

K

R

T

U

B

C

D

E

F

G

H

I

J

L

M

O

P

Q

S

V

W

X

Y

Z

B

A

N

D

U

G

T

R

C

E

F

H

I

J

K

L

M

O

P

Q

S

V

W

X

Y

Z

Contoh : BUDIONO -> NSRDJIJ

1.b. : Metoda Transposisi : Ditulis Horizontal, dibaca Vertikal

Kata kunci : Bandung Utara -> BANDUGTR

Horizontal : BANDUGTRCEFHIJKLMNOPQSVWXYZ

Ciphertext : BGFLSZATHMVNRIOWDCJPXUEKQY - Vertikal

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

B

G

F

L

S

Z

A

T

H

M

V

N

R

I

O

W

D

C

J

P

X

U

E

K

Q

Y

B

A

N

D

U

G

K

O

T

E

M

C

F

H

I

J

L

P

Q

R

S

V

W

X

Y

Z

Contoh : KRIPTOGRAFI -> VCHWPOACBZH

1.c. : Metoda Transposisi

Ditulis Horizontal, dibaca Spiral

Kata kunci : Bandung Kota Kembang à BANDUGKOTEM

Horizontal : BANDUGKOTEMCFHIJLPQRSVWXYZ

Ciphertext : ZSJMGBANDUEIRYXWVLCKOTHQPF ß Spiral

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

Z

S

J

M

G

B

A

N

D

U

E

I

R

Y

X

W

V

L

C

K

O

T

H

Q

P

F

Contoh : KRIPTOGRAFI à ELDWKXALZBD

B

A

N

D

U

G

K

O

T

E

M

C

F

H

I

J

L

P

Q

R

S

V

W

X

Y

Z

1.d. : Metoda Transposisi

Ditulis Horizontal, dibaca Diagonal

Kata kunci : Bandung Kota Kembang à BANDUGKOTEM

Horizontal : BANDUGKOTEMCFHIJLPQRSVWXYZ

Ciphertext : BGAMKNJCODSLFTUZVPHEWQIXRY

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

B

G

A

M

K

N

J

C

O

D

S

L

F

T

U

Z

V

P

H

E

W

Q

I

X

R

Y

Contoh : KRIPTOGRAFI à SPOZEUJPBNO

1.e. : Metoda Transposisi

Ditulis Zigzag, dibaca Horizontal

Kata kunci : Anak Krakatau à ANKRTU

Zigzag : ANKRTUBCDEFGHIJLMOPQSVWXYZ

Ciphertext : THSRUGIQVKBFJPWNCELOXZADMY ß Horizontal

T

H

S

R

U

G

I

Q

V

K

B

F

J

P

W

N

C

E

L

O

X

Z

A

D

M

Y

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

T

H

S

R

U

G

I

Q

V

K

B

F

J

P

W

N

C

E

L

O

X

Z

A

D

M

Y

Contoh : SURABAYA KOTA PAHLAWAN à LXETHTMT BWOT NTQFTATP

B

A

N

D

U

G

T

R

C

E

F

H

I

J

K

L

M

O

P

Q

S

V

W

X

Y

Z

1.f. : Metoda Transposisi

Ditulis Piramid, dibaca Vertikal

Kata kunci : Bandung Utara à BANDUGTR

Horizontal : BANDUGTRCEFHIJKLMOPQSVWXYZ

Ciphertext : ZMEOUFPAGHQBNTISDRJVCKWLXY ß Vertikal

Plain

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Cipher

Z

M

E

O

U

F

P

A

G

H

Q

B

N

T

I

S

D

R

J

V

C

K

W

L

X

Y

Contoh : PANCASILA SAKTI à SZTEZJGBZ JZQVG

Dari penjelasan di atas gw asumsikan metode di atas sudah cukup dimengerti. Sekarang kita langsung ke implementasi alias koding. Di sini gw menggunakan C. Pertama kita gunakan 2 pustaka umum yaitu stdio(untuk Input/Output) dan string(untuk pemrosesan string) pada baris 1 sd 2. Karena kita hanya melakukan proses enkripsi alfabet saja maka pada baris 14 sd 17 didefinisikan array alfabet untuk huruf A-Z yang akan kita enkrip. Pada baris 26 didefinisikan untuk array flag sebagai penanda untuk setiap karakter yang didefinisikan pada array alfabet.

Sory, sebelumnya kita definisikan dulu program kita secara garis besar programnya. Program secara garis besar terdiri dari Input -> Proses -> Output. Pada Input, program membutuhkan plaintext dan kunci yang akan digunakan untuk mengencrypt plaintext. Kemudian program akan men-generate kunci untuk setiap metoda yang kemudian digunakan untuk meng-encrypt plain sehingga menjadi ciphertext. Setelah itu program akan mencetak hasil encrypt tiap-tiap metoda.

Horizontal-Horizontal

Pada baris 28 didefinisikan fungsi keygen dengan parameter array sebagai penampung string. pada baris 143 diimplementasikan fungsi tersebut. fungsi ini men-generate key dengan metode Horizontal-Horizontal. parameter yang diterima berupa string kunci. Seperti yang telah dijelaskan di atas. Pada parameter akan dihilangkan karakter kosong alias spasi dan duplikasi pada baris 151 sd 176. pada baris selanjutnya 178 sd 183, dilakukan perulangan untuk mengnolkan flag sebagai penanda bahwa karakter belum dipakai. Pada baris 185 sd 214 perulangan yang dilakukan untuk mencek kunci, huruf apa saja yang belum terpakai untuk kemudian ditambahkan ke array kunci tersebut. sebelumnya perulangan akan mencek huruf apa saja yang telah ada pada array kunci dan kemudian merubah array flag pada indeks tersebut menjadi 1 atau true(baris 189 sd 197) mis A pada indeks 0, Z pada indeks 25. Pada perulangan di baris 202 sd 211 array kunci ditambahkan dengan mencek flag apa saja yang bernilai 0 atau false dan setelah menambahkan ke array kunci, flag akan diubah menjadi 1 atau true. Fungsi ini dapat kita gunakan kembali fungsi selanjutnya karena pada metoda lainnya membutuhkan fungsi ini untuk kemudian ditransposisi(ubah posisi) sesuai dengan metodenya.

Horizontal-Vertikal

Pada baris 30 didefinisikan fungsi HVer dengan parameter array sebagai penampung kunci yang sebelumnya telah diolah oleh fungsi keygen dan sudah terisi penuh dengan semua huruf dan tanpa ada perulangan dan spasi. pada baris 243 sd 279 diimplementasikan fungsi HVer tersebut. Dari penjelasan di atas, telah dijelaskan proses generate kunci pada metoda ini. Setelah diproses oleh fungsi keygen kemudian diterima fungsi HVer yang kemudian akan diubah ke matriks 6×5(baris 249 sd 261). Kemudian dari matriks akan diubah lagi ke array linear(string) pada baris 263 sd 274.

Horizontal-Spiral

Implementasi metoda ini cukup sulit. Dan gw sendiri belum nemuin algoritma yang tepat. Terpaksa gw bikin manual :P . Proses perpindahan dari indeks satu ke indeks selanjutnya secara melingkar dilakukan manual per baris atau kolom. Sama seperti fungsi HVer, kunci diterima dari keygen. Kemudian dirubah ke matriks(baris 288 sd 298 ) dan dirubah ke array linear secara spiral(baris 305 sd 364). kemudian hasilnya digunakan untuk proses enkripsi.

(bersambung…)

Ikuti

Get every new post delivered to your Inbox.