Giter Site home page Giter Site logo

tugas2-ca-irk2015's Introduction

Tugas2-Ca-IRK2015 RSA and Big Number Implementation

Big Number Implementation

Big Number merupakan salah satu library yang sangat berguna untuk melakukan kalkulasi diatas batas memory suatu bahasa pemrograman. Sudah banyak bahasa pemrograman yang menyediakan library tersebut salah satunya adalah Java, kemudian yang sudah bawaan untuk menghitung kalkulasi angka BigNumber seperti Python. Banyak sekali konsep yang dibawa pada implementasi pada Big Number. Konsep yang sering dipakai adalah stack dan Dynamic Programming. Salah satu penerapan library ini adalah pada RSA

RSA

RSA di bidang kriptografi adalah sebuah algoritma pada enkripsi public key. RSA merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi, dan salah satu yang paling maju dalam bidang kriptografi public key. RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamankan dengan menggunakan kunci yang cukup panjang.

Pada tugas kali ini, saya akan mengimplementasikan RSA dengan library Big Number yang sudah saya buat. Langkah proses RSA adalah sebagai berikut:

  1. Generate dua buah bilangan prima p dan q;
  2. Buatlah sebuah variabel baru, sebut saja n, dimana n = p x q;
  3. Lalu, kita cari nilai λ(n) yang biasa disebut Charmicael's totient function, yang dimana nilai dari λ(n) = LCM(p-1,q-1);
  4. Pilih sebuah bilangan, misal e dan 1 < e < λ(n) dan GCD(e,λ(n)) = 1
  5. Pilih sebuah bilangan d dimana d ≡ e⁻¹ (mod(λ(n)))

Disini e akan menjadi public key exponent dan d akan dijadikan private key exponent

Running Program

  1. Lakukan kompilasi program. Untuk default command yang saya gunakan adalah g++ -o main "BigNumber/BigNumber.cpp" "RSA/RSA.cpp" main.cpp -std=c++11.
  2. Run program dengan melakukan command (pada Windows) main atau (pada Linux) ./main di direktori dimana main program dihasilkan
  3. Masukkan nama file yang akan dienkripsi, misal: input.txt. Kemudian masukkan nama file hasil menyimpan kode enkripsi, misal: en.txt dan hasil dekripsi misal: de.txt
  4. Tunggu running proses dilakukan.

Screenshot

running input enkripsi dekripsi

Referensi

https://en.wikipedia.org/wiki/RSA_(cryptosystem)

tugas2-ca-irk2015's People

Contributors

reiva5 avatar varian97 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.