Farhan Al Rasyid
NIM : 1912000217
Kelas : IF B Pagi Semester VI
Mata Kuliah : Kriptografi
Dosen : M. Irfan Aldy Nasution, M.Kom
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
1. C(‘F’) = (F+A)mod 26
= (5+0)mod 26
= 5 mod 26 = 5 = F
2. C(‘A’) = (A+M)mod 26
= (0+12)mod 26
= 12 mod 26 = 12 = M
3. C(‘R’) = (R+A)mod 26
= (17+0)mod 26
= 17 mod 26 = 17 = R
4. C(‘H’) = (H+N)mod 26
= (7+13)mod 26
= 20 mod 26 = 20 = U
5. C(‘A’) = (A+A)mod 26
= (0+0)mod 26
= 0 mod 26 = 0 = A
6. C(‘N’) = (N+M)mod 26
= (13+12)mod 26
= 25 mod 26 = 25 = Z
7. C(‘R’) = (R+A)mod 26
= (17+0)mod 26
= 17 mod 26 = 17 = R
8. C(‘A’) = (A+N)mod 26
= (0+13)mod 26
= 13 mod 26 = 13 = N
9. C(‘S’) = (S+A)mod 26
= (18+0)mod 26
= 18 mod 26 = 18 = S
10. C(‘Y’) = (Y+M)mod 26
= (24+12)mod 26
= 36 mod 26 = 10 = K
11. C(‘I’) = (I+A)mod 26
= (8+0)mod 26
= 8 mod 26 = 8 = I
12. C(‘D’) = (D+N)mod 26
= (3+13)mod 26
= 16 mod 26 = 16 = Q
13. C(‘S’) = (S+A)mod 26
= (18+0)mod 26
= 18 mod 26 = 18 = S
14. C(‘E’) = (E+M)mod 26
= (4+12)mod 26
= 16 mod 26 = 16 = Q
15. C(‘C’) = (C+A)mod 26
= (2+0)mod 26
= 2 mod 26 = 2 = C
16. C(‘U’) = (U+N)mod 26
= (20+13)mod 26
= 33 mod 26 = 7 = H
17. C(‘R’) = (R+A)mod 26
= (17+0)mod 26
= 17 mod 26 = 17 = R
18. C(‘E’) = (E+M)mod 26
= (4+12)mod 26
= 16 mod 26 = 16 = Q
Dekripsi :
Chiphertext : FMRUAZ RNSKIQ SQCHRQ
Kunci : AMAN
Plaintext : ?
Jawab :
C:FMRUAZ RNSKIQ SQCHRQ
K:AMANAMANAMANAMANAM
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
1. P(‘F’) = (F-A)mod 26
= (5-0)mod 26
= 5 mod 26 = 5 = F
2. P(‘M’) = (M-M)mod 26
= (12-12)mod 26
= 0 mod 26 = 0 = A
3. P(‘R’) = (R-A)mod 26
= (17-0)mod 26
= 17 mod 26 = 17 = R
4. P(‘U’) = (U-N)mod 26
= (20-13)mod 26
= 7 mod 26 = 7 = H
5. P(‘A’) = (A-A)mod 26
= (0-0)mod 26
= 0 mod 26 = 0 = A
6. P(‘Z’) = (Z-M)mod 26
= (25-12)mod 26
= 13 mod 26 = 13 = N
7. P(‘R’) = (R-A)mod 26
= (17-0)mod 26
= 17 mod 26 = 17 = R
8. P(‘N’) = (N-N)mod 26
= (13-13)mod 26
= 0 mod 26 = 0 = A
9. P(‘S’) = (S-A)mod 26
= (18-0)mod 26
= 18 mod 26 = 18 = S
10. P(‘K’) = (K-M)mod 26
= (10-12)mod 26
= -2 mod 26 = 24 = Y
11. P(‘I’) = (I-A)mod 26
= (8-0)mod 26
= 8 mod 26 = 8 = I
12. P(‘Q’) = (Q-N)mod 26
= (16-13)mod 26
= 3 mod 26 = 3 = D
13. P(‘S’) = (S-A)mod 26
= (18-0)mod 26
= 18 mod 26 = 18 = S
14. P(‘Q’) = (Q-M)mod 26
= (16-12)mod 26
= 4 mod 26 = 4 = E
15. P(‘C’) = (C-A)mod 26
= (2-0)mod 26
= 2 mod 26 = 2 = C
16. P(‘H’) = (H-N)mod 26
= (7-13)mod 26
= - 6 mod 26 = 20 = U
17. P(‘R’) = (R-A)mod 26
= (17-0)mod 26
= 17 mod 26 = 17 = R
18. P(‘Q’) = (Q-M)mod 26
= (16-12)mod 26
= 4 mod 26 = 4 = E
Plaintext : FARHAN RASYID SECURE
Beaufort Cipher
Enkripsi :
Plaintext : FARHAN RASYID SECURE
Kunci : AMAN
Ciphertext : ?
Jawab :
P:FARHAN RASYID SECURE
K:AMANAMANAMANAMANAM
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Cc = (k – Pc) mod 26
1. C(‘F’) = (A - F) mod 26
= (0 - 5) mod 26
= - 5 mod 26 = 21 = V
2. C(‘A’) = (M - A) mod 26
= (12 - 0) mod 26
= 12 mod 26 = 12 = M
3. C(‘R’) = (A - R) mod 26
= (0 - 17) mod 26
= - 17 mod 26 = 9 = J
4. C(‘H’) = (N - H) mod 26
= (13 - 7) mod 26
= 6 mod 26 = 6 = G
5. C(‘A’) = (A - A) mod 26
= (0 - 0) mod 26
= 0 mod 26 = 0 = A
6. C(‘N’) = (M - N) mod 26
= (12 - 13) mod 26
= - 1 mod 26 = 25 = Z
7. C(‘R’) = (A - R) mod 26
= (0 - 17) mod 26
= - 17 mod 26 = 9 = J
8. C(‘A’) = (N - A) mod 26
= (13 - 0) mod 26
= 13 mod 26 = 13 = N
9. C(‘S’) = (A - S) mod 26
= (0 - 18) mod 26
= - 18 mod 26 = 8 = I
10. C(‘Y’) = (M – Y )mod 26
= (12 - 24) mod 26
= 14 mod 26 = 14 = O
11. C(‘I’) = (A - I) mod 26
= (0 - 8) mod 26
= - 8 mod 26 = 18 = S
12. C(‘D’) = (N - D) mod 26
= (13 - 3) mod 26
= 10 mod 26 = 10 = K
13. C(‘S’) = (A - S) mod 26
= (0 - 18) mod 26
= - 18 mod 26 = 8 = I
14. C(‘E’) = (M - E) mod 26
= (12 - 4) mod 26
= 8 mod 26 = 8 = I
15. C(‘C’) = (A - C) mod 26
= (0 - 2) mod 26
= - 2 mod 26 = 24 = Y
16. C(‘U’) = (N - U) mod 26
= (13 - 20) mod 26
= - 7 mod 26 = 19 = T
17. C(‘R’) = (A - R) mod 26
= (0 - 17) mod 26
= - 17 mod 26 = 9 = J
18. C(‘E’) = (M - E) mod 26
= (12 - 4) mod 26
= 8 mod 26 = 8 = I
Ciphertext : VMJGAZ JNIOSK IIYTJI
Dekripsi :
Chiphertext : VMJGAZ JNIOSK IIYTJI
Kunci : AMAN
Plaintext : ?
Jawab :
C:VMJGAZ JNIOSK IIYTJI
K:AMANAMANAMANAMANAM
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
Pc = (k – Cc) mod 26
1. P(‘V’) = (A - V) mod 26
= (0 - 21) mod 26
= - 21 mod 26 = 5 = F
2. P(‘M’) = (M - M) mod 26
= (0 - 0) mod 26
= 0 mod 26 = 0 = A
3. P(‘J’) = (A - J) mod 26
= (0 - 9) mod 26
= - 9 mod 26 = 17 = R
4. P(‘G’) = (N - G) mod 26
= (13 - 6) mod 26
= 7 mod 26 = 7 = H
5. P(‘A’) = (A - A) mod 26
= (0 - 0) mod 26
= 0 mod 26 = 0 = A
6. P(‘Z’) = (M - Z) mod 26
= (12 - 25) mod 26
= - 13 mod 26 = 13 = N
7. P(‘J’) = (A - J) mod 26
= (0 - 9) mod 26
= - 9 mod 26 = 17 = R
8. P(‘N’) = (N - N) mod 26
= (13 - 13) mod 26
= 0 mod 26 = 0 = A
9. P(‘I’) = (A - I) mod 26
= (0 - 8) mod 26
= - 8 mod 26 = 18 = S
10. P(‘O’) = (M – O)mod 26
= (12 - 14) mod 26
= - 2 mod 26 = 24 = Y
11. P(‘S’) = (A - S) mod 26
= (0 - 18) mod 26
= - 18 mod 26 = 8 = I
12. P(‘K’) = (N - K) mod 26
= (13 - 10) mod 26
= 3 mod 26 = 3 = D
13. P(‘I’) = (A - I) mod 26
= (0 - 8) mod 26
= - 8 mod 26 = 18 = S
14. P(‘I’) = (M - I) mod 26
= (12 - 8) mod 26
= 4 mod 26 = 4 = E
15. P(‘Y’) = (A - Y) mod 26
= (0 - 24) mod 26
= - 24 mod 26 = 2 = C
16. P(‘T’) = (N - T) mod 26
= (13 - 19) mod 26
= - 6 mod 26 = 20 = U
17. P(‘J’) = (A - J) mod 26
= (0 - 9) mod 26
= - 9 mod 26 = 17 = R
18. P(‘I’) = (M - I) mod 26
= (12 - 8) mod 26
= 4 mod 26 = 4 = E
Plaintext : FARHAN RASYID SECURE
3. Buatlah Kriptografi RSA dari nama masing-masing, ambil 2 nama dari depan dan
tambah lagi dibelakang dengan kata “SECURE”, lalu untuk Public Key dan Private
Key gunakan bilangan prima! Buat enkripsi dan dekripsinya lengkap dengan
langkah-langkah pembuatannya! Jika nama hanya 1 kata maka tambah
“SECURELOCK”.
Jawab :
Sebelumnya harus ditentukan dulu Public Key Dan Private Key-nya, berikut langkah-
langkah untuk mendapatkan Public Key dan Private Key :
p = 11
q = 13
n = 11 * 13
n = 143
m = (11 - 1) * (13 - 1)
m = (10) * (12)
m = 120
• Menentukan nilai e dengan syarat e = e > 1 and GCD(m,e) = 1 Dimana"17" adalah nilai
yang memenuhi syarat untuk nilai e adalah e = GCD(120,17) = 1
• Dari proses diatas, maka akan mendapatkan kunci public dan kunci privat dimana :
Setelah mendapatkan public key dan private key, proses selanjutnya melakukan Enkripsi
dan Dekripsi, yaitu kata “FARHAN RASYID SECURE". Berikut prosesnya :
Dekripsi
“50.041.135112.8450.8441.13550.112112.8441.135112.9112.8150.941.
112112.941.8141.50112.135112.8441.81”
4. Buatlah program Kriptografi Klasik bebas menggunakan algoritma apa saja dan
juga bebas menggunakan bahasa pemogramannya, copy paste coding program ke
lembar jawaban! *Catatan: jika sudah dikerjakan program Kriptografi Klasik dan
mau menambah membuat program Kriptografi Simetris atau Kriptografi Asimetris,
maka ada nilai tambahan yang tinggi.
Jawab :
Program Vigenere Cipher Menggunakan Bahasa Pemrograman Java :
package vigenerecipher;
import java.util.Scanner;
if(choice == 1){
System.out.println("---Enkripsi---");
msgAndKey();
cipherEncryption(message, mappedKey);
} else if(choice == 2){
System.out.println("---Dekripsi---");
msgAndKey();
cipherDecryption(message, mappedKey);
} else {
System.out.println("Pilihan Salah");
}
}
} else {
result += (char)(key+i);
}
}
return tableArr;
}
//message input
System.out.print("Masukkan Pesan (Plaintext/Ciphertext) : ");
String msg = in.nextLine();
msg = msg.toUpperCase();
//key input
System.out.print("Masukkan Kunci: ");
String key = in.next();
in.nextLine();
key = key.toUpperCase();
} else {
//mapping letters of key with message
if(j < key.length()){
keyMap += key.charAt(j);
j++;
} else {
//restarting the key from beginning once its length is complete
// and its still not mapped to message
j = 0;
keyMap += key.charAt(j);
j++; //without incrementing here, key's first letter will be mapped twice
}
} //if-else
} //for
message = msg;
mappedKey = keyMap;
#include<iostream>
#include<math.h>
#include<string.h>
#include<stdlib.h>