Algoritma  kriptografi  berdasarkan  jenis  kunci  yang  digunakan  dapat dibedakan menjadi dua jenis yaitu:
a. Algoritma Simetris
Algoritma  simetri  sering  disebut  dengan  algoritma  klasik,  karena  memakai kunci  yang sama untuk  proses enkripsi dan dekripsi. Algoritma ini sudah ada
sejak 4000 tahun yang lalu. Karena kunci yang digunakan untuk proses enkripsi dan dekripsi sama,
sehingga sering disebut juga one key private key single key, seperti Twofish, One Time Pad. Mollin, Richard A.2007
Gambar 2.1 Diagram proses enkripsi dan dekripsi algoritma simetris
b. Algoritma Asimetris
Algoritma  Asimetri  sering  juga  disebut  dengan  kunci  publik.  Dimana  kunci yang  digunakan  untuk  enkripsi  berbeda  dengan  kunci  yang  digunakan  untuk
dekripsi,  seperti  algoritma  RSA,  ElGamal,  dll.  Kunci-kunci  tersebut berhubungan satu sama lain: Mollin, Richard A.2007
Gambar 2.2 Diagram proses enkripsi dan dekripsi algoritma asimetris
Plainteks Plainteks
Cipherteks enkripsi
dekripsi
Kunci enkripsi K Kunci dekripsi K
Plainteks
Kunci Public K1 Kunci Privat K2
Cipherteks enkripsi
dekripsi Plainteks
Universitas Sumatera Utara
2.2  Algoritma RSA
Dari sekian banyak algoritma kriptografi kunci-publik  yang pernah dibuat,  algoritma yang  paling  populer  adalah  algoritma  RSA.  Algoritma  RSA  dibuat  oleh  3  orang
peneliti  dari  MIT  Massachussets  Institute  of  Technology  pada  tahun  1976,  yaitu: Ron  Rivest,  Adi  Shamir,  dan  Leonard  Adleman.  Keamanan  algoritma  RSA
terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran  dilakukan  untuk  memperoleh  kunci  pribadi.  Selama  pemfaktoran
bilangan  besar  menjadi  faktor-faktor  prima  belum  ditemukan  algoritma  yang  baik, maka selama itu pula keamanan algoritma RSA tetap terjamin. Munir, R. 2007
Besaran-besaran yang digunakan pada algoritma RSA: 1.  p dan q bilangan prima
rahasia 2.  r = p
 q tidak rahasia
3.  n = p – 1q – 1
rahasia 4.  e     kunci enkripsikunci publik
tidak rahasia 5.  d     kunci dekripsikunci privat
rahasia 6.  x     plainteks
rahasia 7.  y    cipherteks
tidak rahasia
a. Prosedur Membuat Pasangan Kunci