Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu

dokumen-dokumen yang mirip
Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

Elliptic Curve Cryptography (Ecc) Pada Proses Pertukaran Kunci Publik Diffie-Hellman. Metrilitna Br Sembiring 1

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

Studi dan Analisis Perbandingan Antara Algoritma El Gamal dan Cramer-Shoup Cryptosystem

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Analisis dan Perbandingan Kecepatan Algoritma RSA dan Algoritma ElGamal

Integrasi Kriptografi Kunci Publik dan Kriptografi Kunci Simetri

Penerapan Algoritma Elliptic Curve Cryptography Untuk Enkripsi dan Penandatanganan Data Pada Sistem Informasi Geografis (SIG)

Kriptografi Elliptic Curve Dalam Digital Signature

Sistem Kriptografi Kunci-Publik

1.1 Latar Belakang BAB I PENDAHULUAN

Algoritma RSA dan ElGamal

BAB 2 LANDASAN TEORI

Aplikasi Enkripsi Instant Messaging Pada Perangkat Mobile Dengan Menggunakan Algoritma Elliptic Curve Cryptography (ECC)

METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI- DEKRIPSI CITRA DIGITAL BERWARNA

Implementasi Algoritma Kriptografi Kunci Publik Okamoto- Uchiyama

Public Key Cryptography

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN Latar Belakang

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

Perbandingan Penggunaan Bilangan Prima Aman Dan Tidak Aman Pada Proses Pembentukan Kunci Algoritma Elgamal

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

Implementasi Enkripsi File dengan Memanfaatkan Secret Sharing Scheme

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

Studi dan Implementasi Algoritma kunci publik McEliece

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

Penggunaan Fingerprint Sebagai Kunci Privat Pada Algoritma El Gamal

Perhitungan dan Implementasi Algoritma RSA pada PHP

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

Penerapan digital signature pada social media twitter

Skema Boneh-Franklin Identity-Based Encryption dan Identity-Based Mediated RSA

PENERAPAN KRIPTOGRAFI DAN GRAF DALAM APLIKASI KONFIRMASI JARKOM

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Perbandingan Algoritma RSA dan Diffie-Hellman

BAB II LANDASAN TEORI

Pengamanan Removable Disk dengan Mengenkripsi Seluruh Header File

Kriptografi Visual dengan Memanfaatkan Algoritma ElGamal untuk Citra Berwarna

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

KRIPTOGRAFI KUNCI PUBLIK

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Studi dan Implementasi Sistem Kriptografi Rabin

Penerapan Matriks dalam Kriptografi Hill Cipher

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

Sistem Kriptografi Kunci Publik Multivariat

BAB II LANDASAN TEORI

Perbandingan Algoritma RSA dan Rabin

BAB 3 KRIPTOGRAFI RSA

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

Pemanfaatan Metode Pembangkitan Parameter RSA untuk Modifikasi SHA-1

Pengkajian Metode dan Implementasi AES

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Protokol Kriptografi

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

BAB 2 TINJAUAN PUSTAKA

BAB III ANALISIS DAN DESAIN SISTEM

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

Teknik Kriptografi Rabin, Serangan yang Dapat Dilakukan dan Perbandingannya dengan RSA

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

Kriptografi Kunci Publik Berdasarkan Kurva Eliptis

Tandatangan Digital. Yus Jayusman STMIK BANDUNG

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Implementasi ECDSA untuk Verifikasi Berkas Berukuran Besar dengan Menggunakan Merkle Tree

Aplikasi Operasi Baris Elementer Matriks dalam Kriptografi

Implementasi ECDSA pada Audio Digital

RANCANGAN KRIPTOGRAFI HYBRID KOMBINASI METODE VIGENERE CIPHER DAN ELGAMAL PADA PENGAMANAN PESAN RAHASIA

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

Penggunaan Teori Bilangan dan Kriptografi dalam Peningkatan Keamanan Aplikasi Personal and Group Messaging

PENERAPAN TEKNIK ENSKRIPSI EL GAMAL PADA APLIKASI JASA PENGIRIMAN MENGGUNAKAN BAHASA PEMROGRAMAN C#

Modifikasi Cipher Block Chaining (CBC) MAC dengan Penggunaan Vigenere Cipher, Pengubahan Mode Blok, dan Pembangkitan Kunci Berbeda untuk tiap Blok

BAB 2 LANDASAN TEORI Interaksi Manusia dan Komputer. interaktif untuk digunakan oleh manusia. Golden Rules of Interaction Design, yaitu:

Departemen Teknik Informatika Institut Teknologi Bandung 2004

BAB 2 LANDASAN TEORI

Rancangan dan Implementasi Algoritma Pembangkitan Kunci Kombinasi antara Algoritma RSA dan ElGamal

ENKRIPSI DENGAN MENGGUNAKAN METODE ELGAMAL PADA PERANGKAT MOBILE

Tanda Tangan Digital Untuk Gambar Menggunakan Kriptografi Visual dan Steganografi

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

Transaksi Web dengan Protokol SSL Menggunakan Algoritma ECC

Kriptografi Kunci Rahasia & Kunci Publik

Implementasi Algoritma Diffle-Hellman untuk Pertukaran Kunci Sesi Pada Bluetooth

Algoritma Pendukung Kriptografi

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

BAB II TINJAUAN PUSTAKA

KRIPTOGRAFI KURVA ELIPTIK ELGAMAL UNTUK PROSES ENKRIPSI- DEKRIPSI CITRA DIGITAL BERWARNA

Studi dan Implementasi Optimal Asymmetric Encryption Padding(OAEP) pada Algoritma RSA untuk Mencegah Adaptive Chosen Ciphertext Attacks

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Enkripsi Pesan pada dengan Menggunakan Chaos Theory

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Algoritma Kriptografi Kunci-publik RSA menggunakan Chinese Remainder Theorem

BAB 2 LANDASAN TEORI

Implementasi Algoritma RSA dan Three-Pass Protocol pada Sistem Pertukaran Pesan Rahasia

BAB II TINJAUAN PUSTAKA

Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal dengan Algoritma RSA dan El Gamal

Sistem Autentikasi Pengunggahan File dengan Algoritma ECDSA

Transkripsi:

Penerapan ECC untuk Enkripsi Pesan Berjangka Waktu Dinah Kamilah Ulfa-13511087 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1 13510064@std.stei.itb.ac.id Abstraksi Pada makalah ini, akan dibahas implementasi metode kriptografi di mana pesan yang terenkripsi hanya dapat didekripsi dalam jangka waktu tertentu. Contohnya adalah pesan yang hanya dapat dibuka setelah tanggal yang ditentukan, pesan yang menjadi kadaluarsa dan tak dapat lagi diterjemahkan setelah melewati periode tertentu, atau pesan yang dapat dibuka pada jam-jam tertentu setiap harinya. Metode ini akan memanfaatkan algoritma Eliptical Curve Cryptography (ECC) dalam pengenkripsian pesan. Elemen waktu akan diintegrasikan dalam algoritma untuk mendapatkan fitur jangka waktu ini. Selanjutnya, sistem akan mengambil waktu dari clock komputer dalam mekanisme proses dekripsi, dan menggunakannya bersama dengan key dari pengguna untuk membuka pesan. Keywords ECC, ElGamal, Time-Locked Encryption I. PENDAHULUAN Dalam pertukaran informasi, selalu terdapat ancaman berupa pencurian dan penggunaan data oleh pihak yang tidak berhak. Hal ini terutama beresiko terjadi pada pertukaran informasi melalui media digital, di mana perbuatan kriminal dapat dengan mudah lolos dari pengawasan. Oleh karena itu, penjagaan kerahasiaan informasi merupakan bagian penting dari sistem keamanan informasi digital. Salah satu bidang ilmu keamanan informasi adalah kriptografi. Bidang ilmu kriptografi telah banyak menghasilkan algoritma yang melindungi keamanan informasi digital. Beberapa contoh dari algoritma tersebut adalah Advanced Encryption Standard (AES) dan algoritma kriptografi kunci publik seperti RSA, ElGamal, dan Diffie-Helman. Penerapan algoritma ini juga bervariasi, salah satunya adalah menggunakan ECC. Algoritma ECC-ElGamal diakui sebagai algoritma dengan keaanan yang baik walaupun menggunakan kunci yang lebih pendek dari algoritma lain, seperti RSA. Algoritma ini bergantung pada kunci untuk enkripsi dan dekripsinya. Walaupun keamanan algoritma ini sudah cukup baik, keamanan tersebut masih dapat ditingkatkan dengan menambahkan faktor waktu pada algoritma enkripsi tersebut. Penambahan faktor waktu ini adalah dalam bentuk pembatasan waktu dimana pesan tersebut dapat didekripsi. Oleh karena itu, makalah ini akan membahas metode pengenkripsian pesan dengan algoritma ECC di mana elemen waktu akan diintegrasikan dalam algoritma untuk mendapatkan fitur jangka waktu ini. Pengguna dapat mengatur tipe jangka waktu yang diberikan, seperti batas kadaluarsa atau batas waktu sebelum pesan dapat dibuka. Dalam dekripsinya, sistem akan mengambil waktu saat itu dari clock komputer dan menggunakannya bersama dengan key dari pengguna untuk membuka pesan. II. DASAR TEORI A. Algoritma Kriptografi Kunci Publik Kriptografi kunci publik pertama kali dibahas dalam makalah yang ditulis oleh Whitfield Diffie dan Martin Hellman. Pada kriptografi kunci publik, baik pengirim maupun penerima memiliki dua kunci, yaitu: 1. Kunci publik: untuk mengenkripsi pesan. 2. Kunci privat: untuk mendekripsi pesan. Bila dituliskan dengan notasi aritmatik, maka fungsi enkripsi dan dekripsinya adalah E e (m) = c dan D d (c) = m. Gambar 1 Ilustrasi Enkripsi Kriptografi Kunci Publik Gambar 2 Ilustrasi Dekripsi Kriptografi Kunci Publik

Adapun proses pengiriman pesan dengan algoritma ini adalah sebagai berikut. Misalkan: Pengirim pesan: Alice dan penerima pesan: Bob Alice mengenkripsi pesan dengan kunci publik Bob Bob mendekripsi pesan dengan kunci privatnya (kunci privat Bob) Sebaliknya, Bob mengenkripsi pesan dengan kunci publik Alice Alice mendekripsi pesan dengan kunci privatnya (kunci privat Alice) Dengan mekanisme ini, kedua belah pihat dapat mengenkripsi dan dekripsi pesan tanpa harus berbagi kunci rahasia. B. ElGamal Algoritma ElGamal merupakan salah satu algoritma kriptografi kunci publik yang dirancang oleh Taher Elgamal. Keamanan algoritma ini terletak pada sulitnya menghitung logaritma diskrit yang diperlukan untuk menemukan kunci privat dari kunci publik. Properti algoritma ElGamal: 1. Bilangan prima, p (tidak rahasia) 2. Bilangan acak, g ( g < p) (tidak rahasia) 3. Bilangan acak, x (x < p) (rahasia, key privat) 4. y = g x mod p (tidak rahasia, key publik) 5. m (plainteks) (rahasia) 6. a dan b (cipherteks) (tidak rahasia) Algoritma pembangkitan kunci publik dan privat ElGmal adalah sebagai berikut: 1. Pilih sembarang bilangan prima p ( p dapat di-share di antara anggota kelompok) 2. Pilih dua buah bilangan acak, g dan x, dengan syarat g < p dan 1 x p 2 3. Hitung y = g x mod p. Hasil dari algoritma ini: - Kunci publik: tripel (y, g, p) - Kunci privat: pasangan (x, p) Algoritma enkripsi ElGamal adalah sebagai berikut: 1. Susun plainteks menjadi blok-blok m 1, m 2,, (nilai setiap blok di dalam selang [0, p 1]. 2. Pilih bilangan acak k, yang dalam hal ini 1 k p 2. 3. Setiap blok m dienkripsi dengan rumus a = g k mod p b = y k m mod p Pasangan a dan b adalah cipherteks untuk blok pesan m. Jadi, ukuran cipherteks dua kali ukuran plainteksnya. Algoritma Dekripsi ElGamal: 1. Gunakan kunci privat x untuk menghitung (a x ) 1 = a p 1 x mod p 2. Hitung plainteks m dengan persamaan: m = b/a x mod p = b(a x ) 1 mod p C. Eliptic Curve Cryptography Eliptic Curve Cryptography merupakan sistem kriptografi kunci publik yang memanfaatkan persamaan kurva eliptik. Algoritma ini dirancang oleh diajukan oleh Neal Koblitz dan Victor S. Miller. Kurva eliptik merupakan kurva dengan bentuk umum persamaan: y 2 = x 3 + ax + b dengan syarat 4a 3 + 27b 2 0. Tiap nilai a dan b berbeda memberikan kurva eliptik yang berbeda. Penggunaan kurva eliptik dalam ECC adalah sebagai berikut: Dua pihak yang berkomunikasi menyepakati parameter data sebagai berikut: 1. Nilai a, b, dan bilangan prima p dari persamaan kurva eliptik y 2 = x 3 + ax + b mod p 2. Grup eliptik yang dihitung dari persamaan kurva eliptik 3. Titik basis (base point) B (X B, Y B ), dipilih dari grup eliptik untuk operasi kriptografi. Setiap pengguna membangkitkan pasangan kunci publik dan kunci privat 1. Kunci privat = integer x, dipilih dari selang [1, p 1] 2. Kunci publik = titik Q, adalah hasil kali antara x dan titik basis B: Q = x B Dalam pengenkripsiannya, pertama-tama plainteks M dikode menjadisebuah titik, P M dari kurva eliptik.setelah itu, pengirim memilih bilangan acak lain, k, dari selang [1, p-1]. Cipherteks adalah pasangan titik P C = [ (kb), (P M + kp B ) ] Dengan P B merupakan kunci publik penerima. Dalam proses dekripsi, penerima mula-mula menghitung hasil kali titik pertama P C dengan kunci privatnya, b. b (kb) Selanjutnya, penerima kemudian mengurangkan titik kedua dari P C dengan hasil kali di atas (P M +kp B ) [b (kb)] = P M + k (bb) b (kb) = P M Setelah P M didapatkan, penerima mendecode P M kembali ke plainteks untuk membaca pesan.

III. IMPLEMENTASI SOLUSI Implementasi ECC untuk pesan berjangka waktu ini dibuat dalam bahasa Java. Dalam pengenkripsian dan pendekripsiannya, metode ini memiliki dua tahap. Yang pertama adalah pengenkripsian menggunakan ECC yang diintegrasikan dengan elemen waktu. Selanjutnya, informasi waktu ini akan dienkripsi lagi menggunakan algoritma ECC biasa. Kunci privat akan digunakan untuk mendekripsi informasi waktu ini. Bila waktu yang didapat dari clock komputer sesuai dengan batas waktu yang dimiliki ciphertext, maka pesan akan terbuka. A. ECC Enkripsi dengan Elemen Waktu. Seperti yang telah dijelaskan dalam dasar teori, parameter elliptic curve adalah p,a,b, dan G, dengan G adalah poin basis. Dalam ECC biasa, seluruh parameter ini telah disepakati sebelumnya oleh kedua belah pihak. Untuk implementasi ini, nilai a, b, dan G ditentukan oleh parameter batas waktu yang diberikan pengirim pesan. Adapun implementasi fungsi adalah sebagai berikut: public ECC(long start, long finish){ a = new BigInteger(Long.toString(start)); b = new BigInteger(Long.toString(finish)); p = new BigInteger("62771017353866807638357894232 07666416083908700390324961279"); n = new BigInteger("62771017353866807638357894231 76059013767194773182842284081"); k = 20; int m = 11; G = new Point(new BigInteger("188da80eb03090f67cbf20eb43a18 800f4ff0afd82ff1012",16), new BigInteger("07192b95ffc8da78631011ed6b24c dd573f977a11e794811",16)); Gt = getbasepoint(a, b, m); Dengan start adalah batas waktu awal dalam milidetik, dan finish adalah batas waktu akhir dalam milidetik. Dari nilai start dan finish ini, dihitung poin Gt dengan fungsi: public Point getbasepoint(biginteger a, BigInteger b, int M){ BigInteger x=biginteger.zero, y=biginteger.zero; boolean Found=true; for(int i=1;i<=k-1;i++){ x = BigInteger.valueOf((M*k+i)); BigInteger ry2 = ((x.pow(3)).add(a.multiply(x))).add(b); try{ y = IntegerFunctions.ressol(ry2,p); catch(exception e){ Found=false; if (Found) break; return new Point(x,y); Setelah itu, pesan akan dienkripsi menggunakan poin basis yang didapat dari pertambahan antara poin G time dan poin G dari tahap selanjutnya yang menggunakan ECC biasa. private void EncryptT() { for(int i=0;i<plainbytes.length;i++){ EncodeMessage(PlainBytes[i]); BigInteger Km = GenerateBig(192); Point C1 = ScalarMult(G,Km); Point C2 = AddPoint(Pm,AddPoint(Gt,ScalarMult(PubKey,Km))); PointCipher.add(new ECCipher(C1,C2)); Selanjutnya, waktu start dan finish dienkripsikan menggunakan poin G biasa sebagai basisnya. Hasil enkripsi ini kemudian digabungkan di bagian depan dengan pesan terenkripsi sebelumnya. B. ECC Dekripsi dengan Elemen Waktu. Pertama-tama, informasi mengenai jangka waktu pada cipherteks akan didekripsi menggunakan algoritma ECC biasa dengan menggunakan kunci privat dan titik basis G yang telah disepakati. Selanjutnya akan diambil waktu pada komputer saat itu menggunakan fungsi Java System.currentTimeMillis(). Lalu dicek apakah waktu saat itu berada dalam jangka waktu yang ditentukan. Bila tidak, sistem akan mengeluarkan error. Bila ya, maka sistem akan menggenerate poin basis Gt menggunakan fungsi getbasepoint(). private void Decrypt() { long timenow = System.currentTimeMillis(); byte[] TempPlain = new byte[4]; for(int i=0;i<8;i++){ AddPoint((PointCipher.get(i).C2),NegatePo int(scalarmult((pointcipher.get(i).c1),pr ivkey)));

TempPlain[i] = ((Pm.x.subtract(BigInteger.ONE)).divide(B iginteger.valueof(k))).bytevalue(); if (i==3) { date1 = bytetolong (TempPlain); TempPlain = new byte[4]; date2 = bytetolong (TempPlain); if (timenow < Math.max(millis1, millis2) && timenow > Math.min(millis1, millis2)) { Gt = getbasepoint(date1, date2, m); DecryptT(); else { System.out.println("Time doesn't match"); Selanjutnya poin basis Gt akan digunakan bersamaan dengan kunci privat dan poin basis G untuk mendekripsi pesan. private void DecryptT() { byte[] TempPlain = new byte[pointcipher.size()]; for(int i=8;i<pointcipher.size();i++){ AddPoint((PointCipher.get(i).C2),NegatePo int(addpoint(gt,scalarmult((pointcipher.g et(i).c1),privkey)))); TempPlain[i] = ((Pm.x.subtract(BigInteger.ONE)).divide(B iginteger.valueof(k))).bytevalue(); Hasil cipherteks f2b0259b88441ad643d05d85c60e01bfbe3e000658b76a3339303 556722023694681825663594121140048204685005730452544 56,2213520819121794381410290294369712279034492015532 990376728197966767842356121229719770804003042563823 0897235554617585... Hasil dekripsi Time doesn't match Dengan parameter: Batas waktu awal: 2015-05-11 12:00:00 Batas waktu akhir: 2015-05-11 13:00:00 Waktu pembukaan: 2015-05-11 12:30:00 Hasil cipherteks b04c4b57314cf90ac98e7dfa5dfc599781b0bb61e953966c2381 38996808750808056845744249639646604455780072175962 6997,600137427059716315921394315650685921160443237 35382602590945912327523679176974372461225877833880 3356951229913055534... Hasil dekripsi Kriptografi IF 2015 PlainBytes = TempPlain; IV. PENGUJIAN Parameter: Plainteks: Kriptografi IF 2015 Batas waktu awal: 2015-05-11 10:00:00 Batas waktu akhir: 2015-05-11 11:00:00 Waktu pembukaan: 2015-05-11 12:00:00 V. KESIMPULAN Berdasarkan pembahasan di makalah ini, dapat disimpulkan bahwa ECC dapat digunakan untuk mengenkripsi pesan berjangka waktu dengan metode yang mirip dengan timestamp. Cipherteks ditandai dengan waktu pembukaan pesan, untuk selanjutnya dicocokkan dengan waktu pada komputer penerima untuk validasi. Diharapkan kedepannya dapat ditemukan algoritma yang lebih aman untuk menyembunyikan waktu pembukaan, sehingga jangka waktu tidak perlu diterakan pada pesan untuk proses dekripsi. DAFTAR PUSTAKA [1] Padma Bh, D.Chandravathi, P.Prapoorna Roja, Encoding and Decoding of a message in the Implementation of Elliptic Curve Cryptography uing Koblitz Method, International Journal on Com puter Science and Engineering, pp. 1904-1907, 2010.

[2] Munir, Rinaldi, Kriptografi Kunci Publik, Program Studi Teknik [3] Munir, Rinaldi, Algoritma RSA, Program Studi Teknik [4] Munir, Rinaldi, Algoritma ElGamal, Program Studi Teknik Bandung, 11 Mei 2015 PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Dinah Kamilah Ulfa/13511087