Analisis Keamanan Pada Kombinasi Protokol Secret Sharing Dan Three-Pass Chapter III V

BAB 3
METODE PENELITIAN

Dalam bab ini akan dibahas mengenai metode penelitian dalam menyelesaikan
permasalahan yang berkaitan dengan penelitian ini. Adapun yang akan dibahas antara
lain: prosedur penelitian, rancangan sistem, analisis algoritma, dan analisis keamanan.

3.1.

Prosedur Penelitian

Adapun prosedur dari pelaksanaan penelitian penulis mengenai analisis kombinasi
Protokol Secret Sharing dan Three-Pass dalam mengamankan pertukaran pesan
adalah sebagai berikut.
Studi
Literatur

Analisis
Literatur

Pemahaman

Konsep
Algoritma

Pengujian Konsep

Konsep Sesuai
Permasalahan?

Tidak

Ya
Analisis
Dan
Evaluasi

Implementasi
Permasalahan

Pengujian Sistem


Perancangan
Sistem

Gambar 3.1 Prosedur Penelitian
Berdasarkan gambar 3.1 diatas, pertama sekali penulis akan mengumpulkan
berbagai literatur terkait tema penelitian, kemudian melakukan analisis literatur,
apakah permasalahan pada literatur relevan dengan permasalahan pada penelitian ini.
Kemudian melakukan pemahaman konsep pada langkah pengimplementasian
algoritma nantinya untuk menyelesaikan permasalahan. Setelah memahami konsep,
dilakukan pengujian terhadap algoritma yang digunakan.

Universitas Sumatera Utara

22

Jika konsep tersebut sesuai untuk menyelesaikan permasalahan pada penelitian
ini dilanjutkan dengan perancangan sistem. Agar hasil yang didapatkan sesuai
harapan, dilakukan analisis dan evaluasi dari sistem dalam penyelesaian
permasalahan.


3.2.

Rancangan Sistem

Berikut ini adalah rancangan dari sistem yang akan penulis kerjakan untuk
menyelesaikan permasalahan.

Mulai

Input pesan

P = pesan

Proses
Secret Sharing
(P)

Proses
Distribusi
(P1...Pn)


A

Output
P1...Pn

Proses
Rekonstruksi
(P1….Pn)

Output
P = Pesan

Selesai

A

Gambar 3.2 Flowchart Rancangan Sistem
Berdasarkan gambar 3.2 proses dimulai dengan input sebuah pesan, kemudian pesan
akan masuk kedalam proses secret sharing untuk menciptakan n buah bagian.

Kemudian dilakukan proses pendistribusian n buah bagian kepada penerima pesan.
Setelah bagian-bagian pesan terdistribusi, pihak penerima dapat melakukan
perekonstruksian pesan dengan mendapatkan bagian-bagian dari pesan tersebut dari

Universitas Sumatera Utara

23

penerima lainnya, langkah tersebut masuk kedalam proses rekonstruksi. Kemudian
output dari proses rekonstruksi adalah pesan awal.

3.3.

Analisis Algoritma

Pada bab ini, akan dibahas analisis dari algoritma-algoritma yang berkaitan dengan
penelitian. Algoritma yang akan dianalisis antara lain Protokol Secret Sharing, dan
Protokol Three-Pass. Didalam Protokol Secret Sharing, juga akan dibahas mengenai
algoritma fungsi pemecahan pesan (split) dan fungsi penggabungan ulang pesan
(reconstruct). Sedangkan pada algoritma three-pass akan dibahas mengenai algoritma

One-Time Pad sebagai pembangkit bilangan acak, fungsi enkripsi pesan, dan fungsi
dekripsi pesan.
Analisis algoritma dibutuhkan untuk menghitung kompleksitas waktu
komputasi T(n) dalam menyelesaikan proses dengan nilai n yang digunakan sebagai
input dalam algoritma tersebut. Dalam penelitian penulis menggunakan notasi O (bigOh) dalam menghitung kompleksitas (Cormen et al, 2009).

3.3.1. Analisis protokol secret sharing
Untuk dapat mengetahui kompleksitas waktu dari algoritma secret sharing, penulis
menggunakan pseudocode dari algoritma secret sharing untuk dianalisis. Berikut ini
penulis lampirkan pseudocode dari Protokol Secret Sharing untuk dihitung
kompleksitasnya menggunakan notasi O.
Terdapat dua buah function yang digunakan dalam Protokol Secret Sharing,
yaitu fungsi untuk proses membagikan pesan (split) kedalam beberapa bagian, dan
fungsi untuk menggabungkan kembali pesan (reconstruct).

a.

Function Split

t = input jumlah penerima

m = input pesan dalam bentuk ascii
k[] = input array koeffisien
p = input modulo
koeffisien = jumlah seluruh koeffisien
P[] = array polinomial
FOR i = 0 to t

Universitas Sumatera Utara

24

FOR j = 1 to t-1
koeffisien += k[i] * (i^j)
END FOR
P[i] = m + koeffisien % p
END FOR

Penjelasan:
Pada penggalan pseudocode dari function split diatas, terjadi proses untuk membagi m
kedalam t bagian. Langkah-langkahnya sebagai berikut:

1.

Terima masukkan berupa t (banyaknya share yang dibutuhkan), m (secret yang
akan dipecah), k (koeffisien-koeffisien yang akan digunakan), p (bilangan prima)

2.

Hitung koeffisien dengan cara, menjumlahkan k i * ij (misalnya: k 1 = 7, i = 1, j =
2, sehingga menjadi 7 * 12)

3.

Setelah melakukan penjumlahan koeffisien, tambahkan dengan m dan
dimodulokan dengan p

4.

Kemudian simpan hasil penjumlahan itu kedalam array P, dimana nilai P i akan
diterima oleh setiap penerima pesan.


Berikut ini adalah analisis notasi O dari function split.
Tabel 3.1 Analisis Function Split
Code

Cost Times

t = input jumlah penerima

C1

1

m = input pesan dalam bentuk ASCII

C2

1

k = input array koeffisien


C3

1

p = input modulo

C4

1

koeffisien = jumlah seluruh koeffisien

C5

1

P[] = array polinomial

C6


1

FOR i = 0 to t

C7

2

log(n)

FOR j = 1 to t-1

C8

2

log(nm)

koeffisien += k[i] * i ^ j

C9

2

log(nm)

END FOR

C10

2

log(nm)

P[i] = m + koeffisien % p

C11

2

log(n)

END FOR

C12

2

log(n)

Universitas Sumatera Utara

25

Sehingga didapat nilai T(n) adalah sebagai berikut:
T(n)

= C1+C2+C3+C3+C4+C5+C6+C7(2log(n))+C8(2log(nm))+
C9(2log(nm))+C10(2log(nm))+C11(2log(n))+C12(2log(n))
= C7(2log(n))+C8(2log(nm))+C9(2log(nm))+C10(2log(nm))+C11(2log(n)) +
C12(2log(n))
= C8(2log(nm))+C9(2log(nm))+C10(2log(nm))
= (C8 + C9 + C10)

log n m
log 2

 C 8 + C 9 + C10 
= 
log n m

log 2


T(n) = log nm = O(log(nm))

Penjelasan:
Setiap baris code pada function split (tabel 3.1) akan dihitung berdasarkan biaya (cost)
dan berapa kali diproses (times). Waktu yang dihitung pada C1 hingga C6 dilakukan
sebanyak satu kali, sedangkan C7, C11, dan C12 dilakukan sebanyak n dimana n = t,
dan untuk C8, C9, dan C10 dilakukan sebanyak nm dimana m = t-1, dikarenakan C8,
C9, dan C10 akan dilakukan ulang sebanyak n kali.

b.

Function Reconstruct

shares[] = input array shares
n = input panjang shares
Li0 = 0
LiX = 0
Li = 0
Px = 0
FOR i = 0 to n
FOR j = 0 to n
IF j == i THEN j_awal = j+1
ELSE j_awal = j
END IF
IF j+1 >= n THEN j_akhir = 0

Universitas Sumatera Utara

26

ELSE j_akhir = j+1
END IF
Li0 = (0 - shares[j_awal][0]) *
(0 -shares[j_akhir][0])

LiX = (shares[j][0] - shares[j_awal][0]) *
(shares[j][0] - shares[j_akhir][0])
Li = Li0 / LiX
END FOR
Px = n THEN j_akhir = 0

C12

2

log(n2)

ELSE j_akhir = j+1

C13

2

log(n2)

END IF

C14

2

log(n2)

Li0 = (0 - shares[j_awal][0]) * (0 - shares[j_akhir][0])

C15

2

log(n2)

LiX = (shares[j][0] - shares[j_awal][0]) * (shares[j][0] shares[j_akhir][0])
Li = Li0 / LiX

C16

2

log(n2)

C17

2

log(n2)

END FOR

C18

2

log(n2)

Px = Px + Li * shares[i][1]

C19

2

log(n)

END FOR

C20

2

log(n)

Sehingga didapat nilai T(n) adalah sebagai berikut:
T(n)

= C1+C2+C3+C4+C5+C6+C7(2log(n))+C8(2log(n2))+C9(2log(n2))
+C10(2log(n2))+C11(2log(n2))+C12(2log(n2))+C13(2log(n2))
+C14(2log(n2))+C15(2log(n2))+C16(2log(n2))+C17(2log(n2))
+C18(2log(n2))+C19(2log(n)) +C20(2log(n))
= C7(2log(n))+C8(2log(n2))+C9(2log(n2))
+C10(2log(n2))+C11(2log(n2))+C12(2log(n2))+C13(2log(n2))
+C14(2log(n2))+C15(2log(n2))+C16(2log(n2))+C17(2log(n2))
+C18(2log(n2))+C19(2log(n)) +C20(2log(n))
= C8(2log(n2))+C9(2log(n2))+C10(2log(n2))+C11(2log(n2))+C12(2log(n2))
+C13(2log(n2))+C14(2log(n2))+C15(2log(n2))+C16(2log(n2))

Universitas Sumatera Utara

28

+C17(2log(n2)) +C18(2log(n2))
= (C8+C9+C10+C11+C12+C13+C14+C15+C16+C17+C18)

log n 2
log 2

 C 8 + C 9 + C10 + C11 + C12 + C13 + C14 + C15 + C16 + C17 + C18 
= 
log n 2

log 2


T(n)

= log n2 = O(log(n2))

Penjelasan:
Setiap baris kode pada function reconstruct (tabel 3.2) akan dihitung berdasarkan
biaya (cost) dan berapa kali diproses (times). Waktu yang dihitung pada C1, C2, C3,
C4, C5, dan C6 dilakukan hanya sekali, sedangkan C7, C19, dan C20 sebanyak n
dimana n = panjang shares, sedangkan C8, C9, C10, C11, C12, C13, C14, C15, C16,
C17, dan C18 dilakukan sebanyak n2 dikarenakan perulangannya akan dilakukan
kembali sebanyak n kali.

Adapun gambaran dari proses secret sharing adalah sebagai berikut.

T1 mendapat P1

T1
menggabungkan
P1, P2, P3, P4

P

P = Pesan asli

T2 mendapat P2

T2
menggabungkan
P1, P2, P3, P4

P

P = Pesan asli

T3 mendapat P3

T3
menggabungkan
P1, P2, P3, P4

P

P = Pesan asli

T4 mendapat P4

T4
menggabungkan
P1, P2, P3, P4

P

P = Pesan asli

P = Pesan asli

P1
T = 4 Penerima
T1, T2, T3, T4
P2

P3
P dipecah menjadi t buah
P1, P2, P3, P4
P4

Gambar 3.3 Proses Protokol Secret Sharing
Dari gambar 3.3 dapat dijelaskan bahwasanya, pesan asli akan dibagi kedalam
T buah atau 4 orang sebagaimana dalam gambar, kemudian pecahan tersebut P1, P2,
P3 dan P4 akan dibagikan masing-masing kepada T1, T2, T3 dan T4. Kemudian agar
T1 dapat mengetahui pesan asli, T1 harus menggabungkan P1 miliknya dengan P2, P3
dan P4 dari masing-masing penerima.

Universitas Sumatera Utara

29

Setelah proses pemecahan pesan (split) berhasil dilakukan, pecahan pesan
tersebut akan didistribusikan dengan suatu cara sehingga masing-masing penerima
menerima pecahan tersebut masing-masing. Terdapat dua tahapan yang akan
dilakukan agar penerima mendapatkan pesan yang dipecahkan tersebut, yaitu proses
distribusi pecahan pesan (shares) dan proses rekonstruksi pecahan pesan (shares).
3.3.1.1. Analisis distribusi share
Setelah pecahan pesan berhasil dilakukan, pecahan pesan (shares) tersebut akan
didistribusikan

kepada

tiap-tiap

penerima.

Adapun

gambaran

dari

proses

pendistribusian shares kepada setiap penerima adalah sebagai berikut.
Secret Sharing(P)
Menghasilkan
P1, P2, P3, P4

P1

T1 mendapat P1

P2

T2 mendapat P2

P3

P4

T3 mendapat P3

T4 mendapat P4

Gambar 3.3 Proses Distribusi Shares
Dari gambar 3.4 dapat dilihat bahwasanya, pecahan pesan dibagi sebanyak T
penerima, kemudian pecahan tersebut yang berupa P1, P2, P3 dan P4 akan dibagikan
masing-masing kepada T1, T2, T3 dan T4.
3.3.1.2. Analisis rekonstruksi secret
Setelah setiap penerima mendapatkan pecahan pesan, langkah berikut yang akan
dilakukan adalah melakukan rekonstruksi secret, hal ini memerlukan pertukaran
shares kepada setiap penerima lainnya. Adapun proses rekonstruksi secret adalah
sebagai berikut.

Universitas Sumatera Utara

30

Request P2

T2

Three-Pass[P2]

Request P3

T1

T3

Three-Pass[P3]

Three-Pass[P4]

T4

Request P4

Gambar 3.4 Proses Rekonstruksi Secret
Berdasarkan gambar 3.5 bahwasanya setiap penerima (T1, T2, T3, dan T4)
akan meminta share kepada penerima lainnya, kemudian penerima tersebut
mengirimkan share miliknya melalui protokol three-pass. Seperti gambar, T1
meminta P2 kepada T2, kemudian T2 mengirimkan P2 menggunakan protokol threepass kepada T1. T1 meminta P3 kepada T3, kemudian T3 mengirimkan P3
menggunakan protokol three-pass kepada T1. T1 meminta P4 kepada T4, kemudian
T4 mengirimkan P4 menggunakan protokol three-pass kepada T1. Setelah T1
memiliki keseluruhan shares, T1 dapat membentuk ulang secret menggunakan
Protokol Secret Sharing.
Pada proses pertukaran shares, penulis memanfaatkan protokol three-pass
guna mengamankan proses pertukaran tersebut dari upaya pencurian share oleh pihak
lain, dalam hal ini dapat berupa pihak dari luar protokol, yang bukan termasuk
penerima. Maupun pihak dari dalam protokol (penerima lain) yang ingin
merekonstruksi secret tanpa harus memberi tahukan share miliknya kepada penerima
lain.
3.3.2. Analisis protokol three-pass
Implementasi Protokol Three-Pass terdapat dalam proses pertukaran shares antar
penerima, yang gunanya untuk mengamankan shares dari upaya pencurian oleh pihak
lain. Adapun proses rekonstruksi pecahan pesan (shares) adalah sebagai berikut.

Universitas Sumatera Utara

31

Gambar 3.6 Proses Protokol Three-Pass
Berdasarkan gambar 3.6 bahwasanya pesan yang akan dikirimkan terlebih
dahulu harus dienkripsi oleh T1 (pengirim pesan) menggunakan suatu kriptografi
simetris, kemudian T2 (penerima pesan) mengenkripsikan kembali pesan terenkripsi
yang sudah diterima dan dikirimkan kembali kepada T1, T1 mendekripsi pesan
terenkripsi dari penerima dengan kunci miliknya dan mengirimkan kembali ke T2, T2
mendekripsi pesan dengan kunci yang miliknya, dengan begitu T2 mendapatkan pesan
asli yang dikirim oleh T1. Proses ini terjadi kembali untuk t berikutnya yang terlibat
dalam proses pembagian secret pada proses secret sharing sebelumnya. Dapat
diketahui bahwasanya dalam protokol three-pass terdapat 2 proses yang terjadi dalam
upaya mengamankan share, yaitu proses enkripsi dan proses dekripsi.

3.3.2.1. Analisis proses enkripsi
Berikut ini adalah flowchart untuk menggambarkan alur dari proses enkripsi share
pada protokol three-pass.

Universitas Sumatera Utara

32

Gambar 3.7 Proses Enkripsi
Dari gambar 3.7 dapat dijelaskan bahwasanya pertama sekali akan dilakukan
pembentukan bilangan acak menggunakan Algoritma One-Time Pad sepanjang n,
dimana nilai n adalah panjang dari karakter pesan. Setelah mendapatkan bilangan acak
sepanjang n, maka dilakukan prosedur enkripsi dengan cara menambahkan setiap
karakter pesan dengan kuncinya.
Terdapat dua buah function dalam proses enkripsi yang digunakan yaitu fungsi
menghasilkan bilangan acak untuk enkripsi menggunakan One-Time Pad dan fungsi
untuk mengenkripsi share.
a.

Function One-Time Pad

panjang_karakter = input panjang karakter yang dibutuhkan
key[] = array kunci yang dihasilkan

Universitas Sumatera Utara

33

m = 25, a = 11, c = 17, X = 1
FOR i = 0 to panjang_karakter-1
t = milidetik_saat_ini
X = ((a * X) + c + t) % M
key[i] = X
END FOR

Penjelasan:
Pada penggalan pseudocode dari function One-Time Pad diatas, terjadi proses untuk
membangkitkan bilangan acak sebanyak panjang_karakter. Sebagaimana terlampir
pada bentuk umum dari algoritma Linear Congruent Generator (4) pada bab
sebelumnya, langkah-langkahnya sebagai berikut:
1.

Terima

masukkan

berupa

panjang_karakter

(banyaknya

karakter

yang

dibutuhkan)
2.

Lakukan perulangan sebanyak panjang_karakter-1, gunanya agar jumlah
bilangan acak tidak melebihi panjang_karakter.

3.

Dalam setiap perulangan lakukan penjumlahan untuk X, dengan nilai ((a * X)
+ c + t) % M

4.

Kemudian simpan X itu kedalam array key, dimana nilai key tersebut akan
digunakan dalam enkripsi maupun dekripsi pesan.

Berikut ini adalah analisis notasi O dari function One-Time Pad.
Tabel 3.3 Analisis One-Time Pad
Code

Cost

Times

panjang_karakter = input panjang karakter yang dibutuhkan

C1

1

key[] = array dari kunci yang dihasilkan

C2

1

m = 25

C3

1

a = 11

C4

1

c = 17

C5

1

X=1

C6

1

FOR i = 0 to panjang_karakter-1

C7

2

log(n)

t = milidetik_saat_ini

C8

2

log(n)

Universitas Sumatera Utara

34

Tabel 3.3 Analisis One-Time Pad (lanjutan)
Code

Cost

Times

X = ((a * X) + c + t) % M

C9

2

log(n)

key[i] = X

C10

2

log(n)

END FOR

C11

2

log(n)

Sehingga didapat nilai T(n) adalah sebagai berikut:
T(n)

= C1+C2+C3+C4+C5+C6+C7(2log(n))+C8(2log(n))+C9(2log(n))+
C10 (2log(n)) + C11 (2log(n))
= C7(2log(n))+C8(2log(n))+C9(2log(n))+C10 (2log(n)) + C11 (2log(n))
= (C7+C8+C9+C10+C11)

log n
log 2

 C 7 + C 8 + C 9 + C10 + C11
= 
 log n
log 2


T(n) = log n = O(log(n))

Penjelasan:
Setiap baris code pada function One-Time Pad (tabel 3.3) akan dihitung berdasarkan
biaya (cost) dan berapa kali diproses (times). Waktu yang dihitung pada C1, C2, C3,
C4, C5, C6 dilakukan sebanyak 1 kali, sedangkan C7, C8, C9, C10, dan C11
dilakukan sebanyak n dimana n = jumlah karakter.

b.

Function Encrypt

p[] = input array pesan dalam bentuk ascii
key[] = input array kunci
modulo = input modulo
panjang_karakter = panjang karakter pesan
c[] = array ciphertext
FOR i = 0 to panjang_karakter-1
c[i] = (p[i] + key[i]) % modulo
END FOR

Universitas Sumatera Utara

35

Penjelasan:
Pada penggalan pseudocode dari function encrypt diatas, terjadi proses untuk
mengenkripsi share. Sebagaimana terlampir pada bentuk umum dari algoritma OneTime Pad (1) pada bab sebelumnya, langkah-langkahnya sebagai berikut:
1.

Terima masukkan berupa p (share yang akan dienkripsi), key (sekumpulan kunci
yang digunakan untuk enkripsi), modulo (nilai untuk dilakukan operasi mudulo),
panjang_karakter (banyaknya karakter yang akan dienkripsi)

2.

Lakukan perulangan sebanyak panjang_karakter-1, gunanya agar operasi dalam
perulangan tidak menghitung karakter diluar indeks array.

3.

Dalam setiap perulangan lakukan penjumlahan untuk c, dengan menambahkan
karakter p ke-i dengan karakter key ke-i kemudian dimodulokan dengan modulo.

4.

Kemudian simpan c itu kedalam array c, dimana array c tersebut adalah pesan
terenkripsi.

Berikut ini adalah analisis notasi O dari function encrypt.
Tabel 3.4 Analisis Function Encrypt
Code

Cost

Times

p[] = input array pesan dalam bentuk ASCII

C1

1

key[] = input array kunci

C2

1

modulo = input modulo

C3

1

panjang_karakter = panjang karakter pesan

C4

1

c[] = array ciphertext

C5

1

FOR i = 0 to panjang_karakter-1

C6

2

log(n)

c[i] = (p[i] + key[i]) % modulo

C7

2

log(n)

END FOR

C8

2

log(n)

Sehingga didapat nilai T(n) adalah sebagai berikut:
T(n)

= C1+C2+C3+C4+C5+C6(2log(n))+C7(2log(n))+C8(2log(n))
= C6(2log(n))+C7(2log(n))+C8(2log(n))
= (C6+C7+C8)

log n
log 2

 C6 + C7 + C8 
= 
 log n
log 2


T(n) = log n = O(log(n))

Universitas Sumatera Utara

36

Penjelasan:
function encrypt (tabel 3.4) dihitung berdasarkan biaya dan berapa kali diproses
(times). Waktu yang dihitung pada C1 hingga C6

dilakukan sebanyak sekali,

sedangkan C7, C8, dan C9 dilakukan sebanyak n dimana n = panjang_karakter-1.
3.3.2.2. Analisis proses dekripsi
Berikut ini adalah flowchart untuk menggambarkan alur dari proses dekripsi share
pada protokol three-pass.

Gambar 3.8 Proses Dekripsi
Dari gambar 3.8 dapat dijelaskan bahwasanya proses dekripsi dilakukan dengan
mengurangkan setiap karakter dari pesan terenkripsi dengan kunci One-Time Pad
sesuai urutan pasangannya. Dalam melakukan proses dekripsi hanya menggunakan
satu fungsi yaitu function decrypt. Berikut ini adalah analisis dari fungsi decrypt.

Universitas Sumatera Utara

37

c.

Function decrypt

c[] = input array ciphertext dalam bentuk ASCII
key[] = input array kunci
modulo = input modulo
panjang_karakter = panjang karakter ciphertext
p = []
FOR i = 0 to panjang_karakter-1
p[i] = (c[i] - key[i]) % modulo
END FOR

Penjelasan:
Pada penggalan pseudocode dari function decrypt diatas, terjadi proses untuk
mendekripsi share. Sebagaimana terlampir pada bentuk umum dari algoritma OneTime Pad (2) pada bab sebelumnya, langkah-langkahnya sebagai berikut:
1.

Terima masukkan berupa c (share yang terenkripsi), key (sekumpulan kunci yang
digunakan pada saat enkripsi), modulo (nilai untuk dilakukan operasi mudulo),
panjang_karakter (banyaknya karakter yang akan dienkripsi)

2.

Lakukan perulangan sebanyak panjang_karakter-1, gunanya agar operasi dalam
perulangan tidak menghitung karakter diluar indeks array.

3.

Dalam setiap perulangan lakukan penjumlahan untuk p, dengan menambahkan
karakter c ke-i dengan karakter key ke-i kemudian dimodulokan dengan modulo.

4.

Kemudian simpan p itu kedalam array p, dimana array p tersebut adalah pesan
terenkripsi.

Berikut ini adalah analisis notasi O dari function decrypt.
Tabel 3.5 Analisis Function Decrypt
Code

Cost

Times

c[] = input array ciphertext dalam bentuk ASCII

C1

1

key[] = input array kunci

C2

1

modulo = input modulo

C3

1

panjang_karakter = panjang karakter ciphertext

C4

1

p[] = array plaintext

C5

1

Universitas Sumatera Utara

38

Tabel 3.5 Analisis Function Decrypt (lanjutan)
Code

Cost

Times

FOR i = 0 to panjang_karakter-1

C6

2

log(n)

p[i] = (c[i] - key[i]) % modulo

C7

2

log(n)

END FOR

C8

2

log(n)

Sehingga didapat nilai T(n) adalah sebagai berikut:
T(n)

= C1+C2+C3+C4+C5+C6(2log(n))+C7(2log(n))+C8(2log(n))
= C6(2log(n))+C7(2log(n))+C8(2log(n))
= (C6+C7+C8)

log n
log 2

 C6 + C7 + C8 
= 
 log n
log 2


T(n) = log n = O(log(n))

Penjelasan:
Setiap baris code pada function encrypt (tabel 3.4) akan dihitung berdasarkan biaya
(cost) dan berapa kali diproses (times). Waktu yang dihitung pada C1 hingga C5
dilakukan sebanyak sekali, sedangkan C6, C7, dan C8 dilakukan sebanyak n dimana n
= panjang_karakter-1.

3.4.

Analisis Keamanan

Pada penelitian ini dilakukan penerapan protokol three-pass kedalam protokol secret
sharing, pada bab sebelumnya diketahui bahwasanya protokol secret sharing
memungkinkan terjadinya upaya pencurian informasi. Untuk menutupi upaya
pencurian informasi tersebut, digunakan protokol three-pass. Pentingnya dilakukan
analisis keamanan dari protokol three-pass tersebut, agar hasil dari penelitian ini
menunjukkan keamanan dari secret sharing setelah dikombinasikan dengan threepass.
Dalam melakukan proses enkripsi dan dekripsi, protokol three-pass
menerapkan Algoritma One-Time Pad sebagai kriptografi simetris. One-Time Pad
menggunakan suatu kunci dengan bilangan yang benar-benar acak, dan panjangnya
sama dengan panjang pesan yang akan dienkripsi.

Universitas Sumatera Utara

39

Diasumsikan pesan m sepanjang 6 karakter, dengan kunci k 6 karakter, dimana
setiap karakternya terdapat dalam 255 ASCII. Dengan demikian penyerang akan
mendapatkan 2556 = 274.941.996.890.625 bilangan acak, dimana penyerang tidak
mengetahui bilangan acak yang merupakan pesan m.
Shannon (1949) dalam publikasinya menyatakan, One-Time Pad termasuk ke
dalam kategori perfect secrecy (keamanan yang sempurna), karena ciphertext yang
dihasilkan tidak memberikan informasi tambahan mengenai plaintext. Informasi
mengenai plaintext yang dimaksud seperti, persentasi penggunaan huruf vokal,
konsonan, atau kata-kata yang berulang. Hal ini terjadi karena setiap karakter pesan
dienkripsi dengan kunci yang acak. Dengan demikian, jika One-Time Pad digunakan
secara tepat, seperti penggunaan bilangan yang benar-benar acak sebagai kunci, dan
hanya menggunakan kunci tersebut sekali dalam setiap pengiriman pesan, maka
keamanan pesan akan terjamin walaupun penyerang memiliki sumber daya komputer
yang tidak terbatas. Keamanan yang diberikan oleh One-Time Pad terletak pada
bilangan acak yang digunakan sebagai kunci, walaupun komputer yang tersedia
memiliki sumber daya yang memadai, penyerang harus menebak sendiri plaintext dari
sekumpulan bilangan acak yang dihasilkan (Shannon, 1949).

Universitas Sumatera Utara

BAB 4
HASIL DAN PEMBAHASAN

Bab ini membahas mengenai hasil penelitian dan pembahasan, dari hasil penelitian
tersebut akan diambil suatu kesimpulan mengenai keamanan dari proses pengiriman
pesan. Adapun yang akan dibahas antara lain: proses analisis, analisis big O, dan
analisis keamanan.

4.1.

Proses Analisis

Sebelum membuat program simulasi perlu dilakukan proses analisis dengan
perhitungan manual pada proses pemecahan pesan untuk mendapatkan share,
pertukaran share antar penerima dalam protokol three-pass termasuk ke dalamnya
proses enkripsi dan dekripsi share, dan rekonstruksi secret. Hasil dari perhitungan
yang benar, menjadi dasar pada pembuatan program untuk melakukan simulasi. Pada
tahapan ini juga dimaksudkan untuk mempermudah dalam perbaikan ataupun
penambahan pada program simulasi.
4.1.1. Proses pemecahan secret menggunakan protokol secret sharing
Langkah-langkah dalam proses pemecahan secret oleh pengirim pesan dalam protokol
secret sharing adalah sebagai berikut:
1.

Pesan (m)

:

FASILKOMTI

2.

Jumlah penerima (t)

:

3

3.

Modulo (p)

:

997

4.

Lakukan perhitungan untuk mendapatkan polinomial dari pesan.
Konversikan pesan kedalam bentuk ASCII

Tabel 4.1 Tabel Konversi
F

A

S

I

L

K

O

M

T

I

70

65

83

73

76

75

79

77

84

73

m1

m2

m3

m4

m5

m6

m7

m8

m9

m 10

Universitas Sumatera Utara

41

Lakukan perhitungan untuk mendapatkan share dari m 1
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 15, k 2 = 19
P 1 = 70 + 15(1) + 19(1)2 mod 997 = 104
P 2 = 70 + 15(2) + 19(2)2 mod 997 = 176
P 3 = 70 + 15(3) + 19(3)2 mod 997 = 286

Lakukan perhitungan untuk mendapatkan share dari m 2
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 11, k 2 = 8
P 1 = 65 + 11(1) + 8(1)2 mod 997 = 84
P 2 = 65 + 11(2) + 8(2)2 mod 997 = 119
P 3 = 65 + 11(3) + 8(3)2 mod 997 = 170

Lakukan perhitungan untuk mendapatkan share dari m 3
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 12, k 2 = 12
P 1 = 83 + 12(1) + 12(1)2 mod 997 = 107
P 2 = 83 + 12(2) + 12(2)2 mod 997 = 155
P 3 = 83 + 12(3) + 12(3)2 mod 997 = 227

Lakukan perhitungan untuk mendapatkan share dari m 4
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 9, k 2 = 11
P 1 = 73 + 9(1) + 11(1)2 mod 997 = 93
P 2 = 73 + 9(2) + 11(2)2 mod 997 = 135
P 3 = 73 + 9(3) + 11(3)2 mod 997 = 199
Lakukan perhitungan untuk mendapatkan share dari m 5
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 6, k 2 = 3
P 1 = 76 + 6(1) + 3(1)2 mod 997 = 85
P 2 = 76 +6(2) + 3(2)2 mod 997 = 100
P 3 = 76 + 6(3) + 3(3)2 mod 997 = 121

Universitas Sumatera Utara

42

Lakukan perhitungan untuk mendapatkan share dari m 6
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 12, k 2 = 12
P 1 = 75 + 12(1) + 12(1)2 mod 997 = 99
P 2 = 75 + 12(2) + 12(2)2 mod 997 = 147
P 3 = 75 + 12(3) + 12(3)2 mod 997 = 219

Lakukan perhitungan untuk mendapatkan share dari m 7
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k1 = 5, k2 = 13
P 1 = 79 + 5(1) + 13(1)2 mod 997 = 97
P 2 = 79 + 5(2) + 13(2)2 mod 997 = 141
P 3 = 79 + 5(3) + 13(3)2 mod 997 = 211

Lakukan perhitungan untuk mendapatkan share dari m 8
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 16, k 2 = 18
P 1 = 77 + 16(1) + 18(1)2 mod 997 = 111
P 2 = 77 + 16(2) + 18(2)2 mod 997 = 181
P 3 = 77 + 16(3) + 18(3)2 mod 997 = 287

Lakukan perhitungan untuk mendapatkan share dari m 9
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 6, k 2 = 17
P 1 = 84 + 6(1) + 17(1)2 mod 997 = 107
P 2 = 84 + 6(2) + 17(2)2 mod 997 = 164
P 3 = 84 + 6(3) + 17(3)2 mod 997 = 255

Lakukan perhitungan untuk mendapatkan share dari m 10
Ambil secara acak nilai untuk koeffisien (k) sebanyak t-1, k=2
k 1 = 19, k 2 = 17
P 1 = 73 + 19(1) + 17(1)2 mod 997 = 109
P 2 = 73 + 19(2) + 17(2)2 mod 997 = 179
P 3 = 73 + 19(3) + 17(3)2 mod 997 = 283

Universitas Sumatera Utara

43

Jadi hasil proses pembentukan polinomial dari m adalah sebagai berikut:
Tabel 4.2 Tabel Shares
m

F

A

S

I

L

K

O

M

T

I

ASCII

70

65

83

73

76

75

79

77

84

73

Share 1

104

84

107

93

85

99

97

111

107

109

Share 2

176

119

155

135

100

147

141

181

164

179

Share 3

286

170

227

199

121

219

211

287

255

283

Kemudian, setiap penerima akan menerima shares sebagai berikut:
Penerima 1 = 104, 84, 107, 93, 85, 99, 97, 111, 107, 109
Penerima 2 = 176, 119, 155, 135, 100, 147, 141, 181, 164, 179
Penerima 3 = 286, 170, 227, 199, 121, 219, 211, 287, 255, 283

4.1.2. Proses pertukaran shares menggunakan three-pass
Pada tahapan sebelumnya pesan telah terbagi kedalam beberapa secret dan telah
diterima oleh masing-masing penerima, langkah selanjutnya yang dilakukan adalah
setiap penerima akan melakukan pertukaran secret.
Adapun langkah-langkah yang akan dilakukan agar Penerima 1 dapat
merekonstruksi pesan adalah sebagai berikut:
1. Lakukan permintaan kepada penerima 2, sehingga penerima 2 akan mengirim
secret miliknya melalui protokol three-pass
-

Penerima 2 mengenkripsi share miliknya.
Share penerima 2 (m) = 176, 119, 155, 135, 100, 147, 141, 181, 164, 179
Kunci (k a ) = 19, 17, 20, 3, 16, 9, 7, 10, 18, 6
e 1 = 176+19 mod 997 = 195
e 2 = 119+17 mod 997=136
e 3 = 155+20 mod 997=175
e 4 = 135+3 mod 997=138
e 5 = 100+16 mod 997=116
e 6 = 147+9 mod 997=156
e 7 = 141+7 mod 997=148
e 8 = 181+10 mod 997=191
e 9 = 164+18 mod 997=182
e 10 = 179+6 mod 997=185
c 1 = 195, 136, 175, 138, 116, 156, 148, 191, 182, 185

Universitas Sumatera Utara

44

-

Penerima 1 mengenkripsi c 1
c 1 = 195, 136, 175, 138, 116, 156, 148, 191, 182, 185
Kunci (k b ) = 0, 14, 18, 12, 21, 20, 9, 13, 7, 16
e 1 = 195+0 mod 997=195
e 2 = 136+14 mod 997=150
e 3 = 175+18 mod 997=193
e 4 = 138+12 mod 997=150
e 5 = 116+21 mod 997=137
e 6 = 156+20 mod 997=176
e 7 = 148+9 mod 997=157
e 8 = 191+13 mod 997=204
e 9 = 182+7 mod 997=189
e 10 = 185+16 mod 997=201
c 2 = 195, 150, 193, 150, 137, 176, 157, 204, 189, 201

-

Penerima 2 mendekripsi c 2
c 2 = 195, 150, 193, 150, 137, 176, 157, 204, 189, 201
Kunci (k a ) = 19, 17, 20, 3, 16, 9, 7, 10, 18, 6
d 1 = 195-19 mod 997=176
d 2 = 150-17 mod 997=133
d 3 = 193-20 mod 997=173
d 4 = 150-3 mod 997=147
d 5 = 137-16 mod 997=121
d 6 = 176-9 mod 997=167
d 7 = 157-7 mod 997=150
d 8 = 204-10 mod 997=194
d 9 = 189-18 mod 997=171
d 10 = 201-6 mod 997=195
c 3 = 176, 133, 173, 147, 121, 167, 150, 194, 171, 195

-

Penerima 1 mendekripsi c 3
c 3 = 176, 133, 173, 147, 121, 167, 150, 194, 171, 195
Kunci (k b ) = 0, 14, 18, 12, 21, 20, 9, 13, 7, 16

Universitas Sumatera Utara

45

d 1 = 176-0 mod 997=176
d 2 = 133-14 mod 997=119
d 3 = 173-18 mod 997=155
d 4 = 147-12 mod 997=135
d 5 = 121-21 mod 997=100
d 6 = 167-20 mod 997=147
d 7 = 150-9 mod 997=141
d 8 = 194-13 mod 997=181
d 9 = 171-7 mod 997=164
d 10 = 195-16 mod 997=179
m = 176, 119, 155, 135, 100, 147, 141, 181, 164, 179

Dengan demikian penerima 1 mengetahui share milik penerima 2 adalah
176, 119, 155, 135, 100, 147, 141, 181, 164, 179
Sedangkan yang diketahui oleh publik adalah
c 1 = 195, 136, 175, 138, 116, 156, 148, 191, 182, 185
c 2 = 195, 150, 193, 150, 137, 176, 157, 204, 189, 201
c 3 = 176, 133, 173, 147, 121, 167, 150, 194, 171, 195

2. Lakukan permintaan kepada penerima 3, sehingga penerima 3 akan mengirim
share miliknya melalui protokol three-pass.
-

Penerima 3 mengenkripsi share miliknya.
Share penerima 3 (m) = 286, 170, 227, 199, 121, 219, 211, 287, 255, 283
Kunci (k a ) = 15, 2, 9, 11, 8, 0, 12, 19, 21
e 1 = 286+23 mod 997=309
e 2 = 170+15 mod 997=185
e 3 = 227+2 mod 997=229
e 4 = 199+9 mod 997=208
e 5 = 121+11 mod 997=132
e 6 = 219+8 mod 997=227
e 7 = 211+0 mod 997=211
e 8 = 287+12 mod 997=299

Universitas Sumatera Utara

46

e 9 = 255+19 mod 997=274
e 10 = 283+21 mod 997=304
c 1 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304

-

Penerima 1 mengenkripsi c 1
c 1 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304
Kunci (k b ) = 23, 15, 2, 9, 11, 8, 0, 12, 19, 21
e 1 = 309+23 mod 997=332
e 2 = 185+15 mod 997=200
e 3 = 229+2 mod 997=231
e 4 = 208+9 mod 997=217
e 5 = 132+11 mod 997=143
e 6 = 227+8 mod 997=235
e 7 = 211+0 mod 997=211
e 8 = 299+12 mod 997=311
e 9 = 274+19 mod 997=293
e 10 = 304+21 mod 997=325
c 2 = 332, 200, 231, 217, 143, 235, 211, 311, 293, 325

-

Penerima 3 mendekripsi c 2
c 2 = 332, 200, 231, 217, 143, 235, 211, 311, 293, 325
Kunci (k a ) = 23, 15, 2, 9, 11, 8, 0, 12, 19, 21
d 1 = 332-23 mod 997=309
d 2 = 200-15 mod 997=185
d 3 = 231-2 mod 997=229
d 4 = 217-9 mod 997=208
d 5 = 143-11 mod 997=132
d 6 = 235-8 mod 997=227
d 7 = 211-0 mod 997=211
d 8 = 311-12 mod 997=299
d 9 = 293-19 mod 997=274
d 10 = 325-21 mod 997=304
c 3 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304

Universitas Sumatera Utara

47

-

Penerima 1 mendekripsi c 3
c 3 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304
Kunci (k b ) = 23, 15, 2, 9, 11, 8, 0, 12, 19, 21
d 1 = 309-23 mod 997=286
d 2 = 185-15 mod 997=170
d 3 = 229-2 mod 997=227
d 4 = 208-9 mod 997=199
d 5 = 132-11 mod 997=121
d 6 = 227-8 mod 997=219
d 7 = 211-0 mod 997=211
d 8 = 299-12 mod 997=287
d 9 = 274-19 mod 997=255
d 10 = 304-21 mod 997=283
m = 286,170,227,199,121,219,211,287,255,283

Dengan demikian penerima 1 mengetahui share milik penerima 3 adalah
286,170,227,199,121,219,211,287,255,283
Sedangkan yang diketahui oleh publik adalah
c 1 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304
c 2 = 332, 200, 231, 217, 143, 235, 211, 311, 293, 325
c 3 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304

Universitas Sumatera Utara

48

4.1.3. Proses rekonstruksi secret menggunakan secret sharing
Langkah-langkah yang akan dilakukan untuk merekonstruksi secret adalah sebagai
berikut:
Tabel 4.3 Tabel Shares
m



m 1 m 2 m 3 m 4 m 5 m 6 m 7 m 8 m 9 m 10

Share milik penerima 1

104 84 107 93

85

99

97 111 107 109

Share milik penerima 2

176 119 155 135 100 147 141 181 164 179

Share milik penerima 3

286 170 227 199 121 219 211 287 255 283

Untuk m 1 = {(1, 104), (2, 176), (3, 286)}
x 0 = 1,

y 0 = 104

x 1 = 2, y 1 = 176
x 2 = 3, y 2 = 286
p = 997
L 0( x) = ( x − x1)( x − x 2)
L1( x) = ( x − x 0)( x − x 2)
L 2( x) = ( x − x 0)( x − x1)

 L 0( x)
L 2( x) 
L1( x)
 mod p
+ y1
+ y2
P( x) =  y 0
L 2( x 2) 
L1( x1)
 L 0( x 0)

( x − x 0)( x − x1) 
( x − x 0)( x − x 2)
( x − x1)( x − x 2)
 mod 997
+ 286
+ 176
P( x) = 104
( x 2 − x 0)( x 2 − x1) 
( x1 − x 0)( x1 − x 2)
( x 0 − x1)( x 0 − x 2)


( x − 2)( x − 3)
( x − 1)( x − 3)
( x − 1)( x − 2) 
 mod 997
P ( x) = 104
+ 286
+ 176
(1 − 2)(1 − 3)
(2 − 1)(2 − 3)
(3 − 1)(3 − 2) 

( x − 1)( x − 2) 
( x − 1)( x − 3)
( x − 2)( x − 3)

P( x) = 104
+ 286
+ 176
 mod 997
−1
2
2


Diketahui bahwasanya P(0) adalah nilai dari share. Maka, dari bentuk
diatas dimasukkan x=0.

Universitas Sumatera Utara

49

(0 − 2)(0 − 3)
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 

P (0) = 104
+ 176
+ 286
 mod 997
−1
2
2


2
3
6

+ 286  mod 997
P (0) = 104 + 176
−1
2
2

P (0) = ((104 × 3) + (176 × (−3)) + (286 × 1)) mod 997
P (0) = (312 + (−528) + 286) mod 997
P (0) = −216 + 286 mod 107
P (0) = 70



Untuk m 2 = {(1, 84), (2, 119), (3, 170)}
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 
 (0 − 2)(0 − 3)
P(0) =  84
+ 119
+ 170
 mod 997
2
−1
2


P(0) = (252 + (−357) + 170) mod 997
P(0) = 65



Untuk m 3 = {(1, 107), (2, 155), (3, 227)}
(0 − 2)(0 − 3)
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 

P (0) = 107
+ 155
+ 227
 mod 997
2
−1
2


P (0) = (321 + (−465) + 227) mod 107
P (0) = 83



Untuk m 4 = {(1, 93), (2, 135), (3, 199)}
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 
 (0 − 2)(0 − 3)
+ 135
P (0) =  93
+ 199
 mod 997
−1
2
2


P (0) = (279 + (−405) + 199) mod 107
P (0) = 73



Untuk m 5 = {(1, 85), (2, 100), (3, 121)}
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 
 (0 − 2)(0 − 3)
+ 100
P (0) =  85
+ 121
 mod 997
2
−1
2


P(0) = (255 + (−300) + 121) mod 997
P(0) = 76



Untuk m 6 = {(1, 99), (2, 147), (3, 219)}
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 
 (0 − 2)(0 − 3)
P (0) =  99
+ 147
+ 219
 mod 997
−1
2
2


P (0) = (297 + (−441) + 219) mod 997
P (0) = 75

Universitas Sumatera Utara

50



Untuk m 7 = {(1, 97), (2, 141), (3, 211)}
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 
 (0 − 2)(0 − 3)
+ 211
P(0) =  97
+ 141
 mod 997
2
−1
2


P(0) = (291 + (−423) + 211) mod 997
P(0) = 79



Untuk m 8 = {(1, 111), (2, 181), (3, 287)}
(0 − 2)(0 − 3)
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 

P(0) = 111
+ 181
+ 287
 mod 997
2
−1
2


P (0) = (333 + (−543) + 287) mod 997
P (0) = 77



Untuk m 9 = {(1, 107), (2, 164), (3, 255)}
(0 − 2)(0 − 3)
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 

P(0) = 107
+ 164
+ 255
 mod 997
2
−1
2


P(0) = (321 + (−492) + 255) mod 997
P(0) = 84



Untuk m 10 = {(1, 109), (2, 179), (3, 283)}
(0 − 2)(0 − 3)
(0 − 1)(0 − 3)
(0 − 1)(0 − 2) 

P(0) = 109
+ 179
+ 283
 mod 997
2
−1
2


P (0) = (327 + (−537) + 283) mod 997
P(0) = 73

m 1 = {(1, 104), (2, 176), (3, 286)}

= 70

=>

F

m 2 = {(1, 84), (2, 119), (3, 170)}

= 65

=>

A

m 3 = {(1, 107), (2, 155), (3, 227)}

= 83

=>

S

m 4 = {(1, 93), (2, 135), (3, 199)}

= 73

=>

I

m 5 = {(1, 85), (2, 100), (3, 121)}

= 76

=>

L

m 6 = {(1, 99), (2, 147), (3, 219)}

= 75

=>

K

m 7 = {(1, 97), (2, 141), (3, 211)}

= 79

=>

O

m 8 = {(1, 111), (2, 181), (3, 287)}

= 77

=>

M

m 9 = {(1, 107), (2, 164), (3, 255)}

= 84

=>

T

m 10 = {(1, 109), (2, 179), (3, 283)} = 73

=>

I

Universitas Sumatera Utara

51

Dengan demikian penerima 1 dapat mengetahui secret yang dikirimkan,
setelah merekonstruksi shares dari penerima 2 dan penerima 3. Proses ini juga
dilakukan oleh penerima 2 dan penerima 3 untuk mengetahui secret yang dikirimkan.

4.2.

Analisis Kompleksitas

Analisis kompleksitas dibutuhkan untuk menghitung kompleksitas waktu komputasi
T(n) dalam menyelesaikan proses dengan nilai n yang digunakan sebagai input dalam
algoritma tersebut. Dalam penelitian penulis menggunakan notasi O (big-Oh) dalam
menghitung kompleksitas (Cormen et al, 2009). Pada bab sebelumnya telah diketahui
mengenai big O dari setiap algoritma yang digunakan, sebagaimana terlampir sebagai
berikut.
Tabel 4.4 Analisis Kompleksitas
Algoritma

big O

Secret Sharing (Split)

O(log(nm))

Secret Sharing (Reconstruct)

O(log(n2))

Three-pass (One Time Pad)

O(log(n))

Three-pass (Encrypt)

O(log(n))

Three-pass (Decrypt)

O(log(n))

4.3.

Analisis Keamanan

Berdasarkan pengujian sebelumnya untuk secret m = FASILKOMTI, dengan
penerima t = 3, dan modulo = 997, dapat diketahui beberapa poin setelah dilakukan
pengamanan pada kombinasi protokol secret sharing dan three-pass. Adapun poinpoin tersebut antara lain:
1. Secret yang dikirimkan melalui protokol secret sharing, akan terpecah sebanyak 3
buah shares, dimana shares tersebut tidak dapat dibaca oleh siapapun, yaitu:
Share 1 = 104, 84, 107, 93, 85, 99, 97, 111, 107, 109
Share 2 = 176, 119, 155, 135, 100, 147, 141, 181, 164, 179
Share 3 = 286, 170, 227, 199, 121, 219, 211, 287, 255, 283
2. Dari ketiga buah shares tersebut, dihasilkan share tersandi melalui protokol threepass. Dimana setiap share yang melalui protokol three-pass akan terdapat 3 buah

Universitas Sumatera Utara

52

bilangan acak yang dapat diketahui publik, untuk setiap kali penerima melakukan
pertukaran share.
Pertukaran share 2 menghasilkan:
c1 = 195, 136, 175, 138, 116, 156, 148, 191, 182, 185
c2 = 195, 150, 193, 150, 137, 176, 157, 204, 189, 201
c3 = 176, 133, 173, 147, 121, 167, 150, 194, 171, 195
Pertukaran share 3 menghasilkan:
c1 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304
c2 = 332, 200, 231, 217, 143, 235, 211, 311, 293, 325
c3 = 309, 185, 229, 208, 132, 227, 211, 299, 274, 304
3. Sehingga, jika pihak penyerang yang ingin melakukan serangan brute-force
terhadap share tersandi tersebut, untuk setiap kali penerima melakukan pertukaran
share akan menghasilkan:
C 1 = 99710 bilangan acak.
C 2 = 99710 bilangan acak.
C 3 = 99710 bilangan acak.

4.4.

Pembahasan

Berdasarkan pembahasan pada bab sebelumnya, penelitian ini bertujuan untuk
menganalisa keamanan pengiriman pesan dalam kombinasi protokol secret sharing
dan three-pass. Adapun yang menjadi fokus dalam analisa penelitian ini adalah waktu
yang diperlukan serta keamanan yang diberikan dari penggunaan kombinasi protokol
tersebut.

4.4.1. Analisis Waktu
Pada tahapan ini, akan dilakukan proses pengujian kombinasi protokol secret sharing
dan three-pass terhadap beberapa variasi pesan. Pengujian ini bertujuan untuk
mengetahui seberapa lama waktu yang digunakan untuk mengamankan pesan, mulai
dari pesan dengan panjang 163 karakter, 590 karakter, hingga 1008 karakter.
Kemudian juga dilakukan pengujian terhadap banyaknya penerima pesan, mulai dari 3
penerima hingga 10 penerima.

Universitas Sumatera Utara

53

Spesifikasi dari komputer yang digunakan untuk melakukan pengujian ini adalah
sebagai berikut:
1.

Sistem Operasi Microsoft Windows 8.1

2.

Prosessor Intel Core i5-3317U @1.70GHz

3.

RAM 4 GB

Tabel 4.5 Analisis waktu terhadap pengiriman pesan kepada 3 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

3

606.48

2

590

3

1928

3

1008

3

3334.45

No.

Panjang Pesan

1

Tabel 4.6 Analisis waktu terhadap pengiriman pesan kepada 4 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

4

750.64

2

590

4

2762.18

3

1008

4

4902.1

No.

Panjang Pesan

1

Tabel 4.7 Analisis waktu terhadap pengiriman pesan kepada 5 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

5

936.93

2

590

5

3557.67

3

1008

5

6314.86

No.

Panjang Pesan

1

Universitas Sumatera Utara

54

Tabel 4.8 Analisis waktu terhadap pengiriman pesan kepada 6 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

6

1637.7

2

590

6

6276.38

3

1008

6

11138.3

No.

Panjang Pesan

1

Tabel 4.9 Analisis waktu terhadap pengiriman pesan kepada 7 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

7

1344.72

2

590

7

5122.49

3

1008

7

9314.19

No.

Panjang Pesan

1

Tabel 4.10 Analisis waktu terhadap pengiriman pesan kepada 8 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

8

2443.81

2

590

8

9548.69

3

1008

8

17250

No.

Panjang Pesan

1

Tabel 4.11 Analisis waktu terhadap pengiriman pesan kepada 9 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

9

1745.36

2

590

9

6698.79

3

1008

9

12004.1

No.

Panjang Pesan

1

Universitas Sumatera Utara

55

Tabel 4.12 Analisis waktu terhadap pengiriman pesan kepada 10 penerima.
Jumlah

Waktu

Penerima

(milidetik)

163

10

4666.33

2

590

10

18126.48

3

1008

10

32175.34

No.

Panjang Pesan

1

Berdasarkan pengujian terhadap panjang pesan mulai dari 100 karakter, 500 karakter,
dan 1000 karakter pesan. Dapat disimpulkan bahwasanya lamanya waktu eksekusi
dalam proses pemecahan pesan hingga rekonstruksi pesan, berbanding lurus dengan
panjang pesan. Begitu juga dengan banyaknya penerima, jika penerima pesan semakin
bertambah, maka lamanya proses eksekusi akan bertambah lama.

4.4.2. Analisis Keamanan
Pada tahapan ini akan dilakukan proses pengujian terhadap keamanan pada kombinasi
protokol yang digunakan. Pengujian ini akan dilakukan terhadap pesan dengan
panjang yang bervariasi, mulai dari 163 karakter, 590 karakter, hingga 1008 karakter.
Juga pengujian ini akan dilakukan terhadap banyaknya penerima pesan, mulai dari 3
penerima, hingga 10 penerima. Hasil dari analisis keamanan ini akan memberikan
jaminan terhadap keamanan pesan dari ancaman pihak ketiga yang melakukan
serangan brute-force terhadap shares pada saat proses pertukaran share berlangsung.

Tabel 4.13 Analisis keamanan terhadap pengiriman pesan kepada 3 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

3

997163 x 3

2

590

3

997590 x 3

3

1008

3

9971008 x 3

Universitas Sumatera Utara

56

Tabel 4.14 Analisis keamanan terhadap pengiriman pesan kepada 4 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

4

997163 x 4

2

590

4

997590 x 4

3

1008

4

9971008 x 4

Tabel 4.15 Analisis keamanan terhadap pengiriman pesan kepada 5 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

5

997163 x 5

2

590

5

997590 x 5

3

1008

5

9971008 x 5

Tabel 4.16 Analisis keamanan terhadap pengiriman pesan kepada 6 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

6

997163 x 6

2

590

6

997590 x 6

3

1008

6

9971008 x 6

Tabel 4.17 Analisis keamanan terhadap pengiriman pesan kepada 7 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

7

997163 x 7

2

590

7

997590 x 7

3

1008

7

9971008 x 7

Universitas Sumatera Utara

57

Tabel 4.18 Analisis keamanan terhadap pengiriman pesan kepada 8 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

8

997163 x 8

2

590

8

997590 x 8

3

1008

8

9971008 x 8

Tabel 4.19 Analisis keamanan terhadap pengiriman pesan kepada 9 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

9

997163 x 9

2

590

9

997590 x 9

3

1008

9

9971008 x 9

Tabel 4.20 Analisis keamanan terhadap pengiriman pesan kepada 10 penerima.
No.

Panjang

Jumlah

Bilangan acak yang

Pesan

Penerima

dihasilkan

1

163

10

997163 x 10

2

590

10

997590 x 10

3

1008

10

9971008 x 10

Berdasarkan pengujian terhadap panjang pesan dan penerima pesan yang bervariasi
dapat disimpulkan, semakin panjang pesan yang diberikan maka usaha penyerang
untuk melakukan brute-force terhadap pesan akan semakin lama, dan semakin
mustahil karena banyaknya jumlah bilangan acak yang dihasilkan setelah dilakukan
proses enkripsi.

Universitas Sumatera Utara

BAB 5
KESIMPULAN DAN SARAN

5.1.

Kesimpulan

Berdasarkan analisis dari pengujian sistem secara menyeluruh yang dilakukan pada
bab 4, maka ada beberapa hal yang dapat dijadikan kesimpulan pada penelitian ini,
antara lain:
1.

Kombinasi protokol Secret Sharing dan Three-Pass berhasil mengamankan pesan
dan mengirimkan pesan tersebut kepada setiap penerimanya.

2.

Protokol Three-Pass berhasil mengamankan shares yang dihasilkan melalui
Protokol Secret Sharing dari upaya perekonstruksian ulang oleh pihak yang tidak
berhak menerima pesan.

3.

Panjang share yang diterima oleh setiap penerima, sama dengan panjang pesan
yang dikirimkan, hanya saja setiap penerima akan melakukan proses 2 kali
enkripsi dan 1 kali dekripsi dalam mengamankan pertukaran share.

4.

Setiap penerima diharuskan untuk aktif dalam melakukan pertukaran shares, agar
secret dapat direkonstruksi. Artinya jika salah satu saja penerima tidak
melakukan pertukaran share, maka tidak satupun penerima akan menerima pesan
yang dikirim.

5.2.

Saran

Untuk pengembangan dari penelitian selanjutnya mengenai kombinasi Protokol Secret
Sharing dan Three-Pass dalam mengamankan pesan, disarankan untuk melakukan
pengembangan pada beberapa hal sebagai berikut:
1.

Protokol Secret Sharing dapat mengetahui penerima yang tidak memberikan
share miliknya dengan benar, hal ini dapat dimanfaatkan oleh penerima yang
melakukan kecurangan tersebut untuk memanfaatkan pesan demi kepentingan
dirinya sendiri.

2.

Protokol Three-Pass juga diimplementasikan pada saat pendistribusian shares
kepada setiap penerima, sehingga keamanan dari shares lebih terjaga.

Universitas Sumatera Utara