ujian uas 2015 kriptography_m0513019_fembi rekrisna grandea putra

7
FAKULTAS MATEMATIKA ILMU PENGETAHUAN ALAM UNS UJIAN AKHIR SEMESTER AUGUSTUS 2015 JANUARY 2016 Mata Kuliah Kriptografi & Informasi Hari/tanggal : 30 Desenber 2015 Jurusan : Informatika Waktu : - Semester : V Dosen : Drs. B Harjito, M.App.Sc PhD Sifat : Open Book dan kerjakan sesuai dengan kelompok masing-masing 1. Perhatikan Rabin Cryptosystem dengan n B x x x e k mod ) ( ) ( dengan n Z B adalah kunci publik. Misalkan p=199, q=211, n=pq dan B=1357. Hitunglah a. Enkripsikan untuk n B x x e Y k mod ) ( ) 32767 ( b. Apabila diberikan chipertext Y, tentukan empat kemungkinan deskripsinya? 2. 3. 4.

Upload: fembi-rekrisna-grandea-putra

Post on 11-Jan-2017

75 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

FAKULTAS MATEMATIKA ILMU PENGETAHUAN ALAM UNS

UJIAN AKHIR SEMESTER AUGUSTUS 2015 – JANUARY 2016

Mata Kuliah : Kriptografi & Informasi Hari/tanggal : 30 Desenber 2015

Jurusan : Informatika Waktu : - Semester : V Dosen : Drs. B Harjito, M.App.Sc PhD

Sifat : Open Book dan kerjakan sesuai dengan kelompok masing-masing

1. Perhatikan Rabin Cryptosystem dengan nBxxxek mod)()( dengan nZB

adalah kunci publik. Misalkan p=199, q=211, n=pq dan B=1357. Hitunglah

a. Enkripsikan untuk nBxxeY k mod)()32767(

b. Apabila diberikan chipertext Y, tentukan empat kemungkinan deskripsinya?

2.

3.

4.

Page 2: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

UJIAN AKHIR SEMESTER

MATA KULIAH : KRIPTOGRAFI DAN KEAMANAN INFORMASI

NAMA : FEMBI REKRISNA GRANDEA PUTRA

NIM : M0513019

1. 𝑝 = 199, 𝑞 = 211, 𝑛 = 𝑝𝑞 = 41989, dan 𝐵 = 1357.

a. 𝐸𝑘(𝑥) = 𝑥(𝑥 + 𝐵) (𝑚𝑜𝑑 𝑛). Oleh karena itu

𝐸𝑘(32767) ≡ (32767)(32767 + 1357) (𝑚𝑜𝑑 41989),

≡ 16027 (𝑚𝑜𝑑 41989).

b. Diketahui bahwa

𝐸𝑘 (𝜔 (𝑥 +𝐵

2) −

𝐵

2) = 𝐸𝑘(𝑥),

dengan ω adalah akar kuadrat dari 1 mod (41989) dan 2−1 ≡ 20995 (𝑚𝑜𝑑 41989).

Oleh karena itu

𝜔 (32767 +1357

2) ≡ 𝜔(12451) − 21673 ≡ 𝜔(12451) + 20316 (𝑚𝑜𝑑 41989).

Empat kemungkinan dekripsi dari 16027 adalah

𝜔 = 1 : 1(12451) + 20316 ≡ 32767 (𝑚𝑜𝑑 41989),

𝜔 = −1 : −1(12451) + 20316 ≡ 7865 (𝑚𝑜𝑑 41989),

𝜔 = 35025 : 35025(12451) + 20316 ≡ 18837 (𝑚𝑜𝑑 41989),

𝜔 = 6964 : 6964(12451) + 20316 ≡ 21795 (𝑚𝑜𝑑 41989).

2. Berikut ini perhitungan untuk menyelesaikan kasus pada a, b, dan c dengan

menggunakan tabel.

X x3 x 28 hasil x3+x+28 mod 71 y (x,y) Status

0 0 0 28 28 28 5.291503 Not cyclic group

1 1 1 28 30 30 5.477226 Not cyclic group

2 8 2 28 38 38 6.164414 Not cyclic group

3 27 3 28 58 58 7.615773 Not cyclic group

4 64 4 28 96 25 5 (4,5) (4,67) CYCLIC GROUP

5 125 5 28 158 16 4 (5,4) (5,66) CYCLIC GROUP

6 216 6 28 250 37 6.082763 Not cyclic group

7 343 7 28 378 23 4.795832 Not cyclic group

8 512 8 28 548 51 7.141428 Not cyclic group

9 729 9 28 766 56 7.483315 Not cyclic group

10 1000 10 28 1038 44 6.63325 Not cyclic group

11 1331 11 28 1370 21 4.582576 Not cyclic group

12 1728 12 28 1768 64 8 (12,8) (12,59) CYCLIC GROUP

13 2197 13 28 2238 37 6.082763 Not cyclic group

14 2744 14 28 2786 17 4.123106 Not cyclic group

Page 3: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

15 3375 15 28 3418 10 3.162278 Not cyclic group

16 4096 16 28 4140 22 4.690416 Not cyclic group

17 4913 17 28 4958 59 7.681146 Not cyclic group

18 5832 18 28 5878 56 7.483315 Not cyclic group

19 6859 19 28 6906 19 4.358899 Not cyclic group

20 8000 20 28 8048 25 5 (20,5) (20,51) CYCLIC GROUP

21 9261 21 28 9310 9 3 (21,3) (21,50) CYCLIC GROUP

22 10648 22 28 10698 48 6.928203 Not cyclic group

23 12167 23 28 12218 6 2.44949 Not cyclic group

24 13824 24 28 13876 31 5.567764 Not cyclic group

25 15625 25 28 15678 58 7.615773 Not cyclic group

26 17576 26 28 17630 22 4.690416 Not cyclic group

27 19683 27 28 19738 0 0 (27,0) (27,71) CYCLIC GROUP

28 21952 28 28 22008 69 8.306624 Not cyclic group

29 24389 29 28 24446 22 4.690416 Not cyclic group

30 27000 30 28 27058 7 2.645751 Not cyclic group

31 29791 31 28 29850 30 5.477226 Not cyclic group

32 32768 32 28 32828 26 5.09902 Not cyclic group

33 35937 33 28 35998 1 1 (33,1) (33,70) CYCLIC GROUP

34 39304 34 28 39366 32 5.656854 Not cyclic group

35 42875 35 28 42938 54 7.348469 Not cyclic group

36 46656 36 28 46720 2 1.414214 Not cyclic group

37 50653 37 28 50718 24 4.898979 Not cyclic group

38 54872 38 28 54938 55 7.416198 Not cyclic group

39 59319 39 28 59386 30 5.477226 Not cyclic group

40 64000 40 28 64068 26 5.09902 Not cyclic group

41 68921 41 28 68990 49 7 (41,7) (41,30) CYCLIC GROUP

42 74088 42 28 74158 34 5.830952 Not cyclic group

43 79507 43 28 79578 58 7.615773 Not cyclic group

44 85184 44 28 85256 56 7.483315 Not cyclic group

45 91125 45 28 91198 34 5.830952 Not cyclic group

46 97336 46 28 97410 69 8.306624 Not cyclic group

47 103823 47 28 103898 25 5 (47,5) (47,24) CYCLIC GROUP

48 110592 48 28 110668 50 7.071068 Not cyclic group

49 117649 49 28 117726 8 2.828427 Not cyclic group

50 125000 50 28 125078 47 6.855655 Not cyclic group

51 132651 51 28 132730 31 5.567764 Not cyclic group

52 140608 52 28 140688 37 6.082763 Not cyclic group

53 148877 53 28 148958 0 0 (53,0 ) (53,71) CYCLIC GROUP

54 157464 54 28 157546 68 8.246211 Not cyclic group

55 166375 55 28 166458 34 5.830952 Not cyclic group

56 175616 56 28 175700 46 6.78233 Not cyclic group

57 185193 57 28 185278 39 6.244998 Not cyclic group

58 195112 58 28 195198 19 4.358899 Not cyclic group

59 205379 59 28 205466 63 7.937254 Not cyclic group

Page 4: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

60 216000 60 28 216088 35 5.91608 Not cyclic group

61 226981 61 28 227070 12 3.464102 Not cyclic group

62 238328 62 28 238418 0 0 (62,0) (62,71) CYCLIC GROUP

63 250047 63 28 250138 5 2.236068 Not cyclic group

64 262144 64 28 262236 33 5.744563 Not cyclic group

65 274625 65 28 274718 19 4.358899 Not cyclic group

66 287496 66 28 287590 40 6.324555 Not cyclic group

67 300763 67 28 300858 31 5.567764 Not cyclic group

68 314432 68 28 314528 69 8.306624 Not cyclic group

69 328509 69 28 328606 18 4.242641 Not cyclic group

70 343000 70 28 343098 26 5.09902 Not cyclic group

Sehingga didapatkan nilai total jumlah titik E, titik x,y untuk setiap titik E, dan titik

maksimumnya sebagai berikut:

Point E= 23

titiknya :

(4,5) (4,67)

(5,4) (5,66)

(12,8) (12,59)

(20,5) (20,51)

(21,3) (21,50)

(27,0) (27,71)

(33,1) (33,70)

(41,7) (41,30)

(47,5) (47,24)

(53,0 ) (53,71)

(62,0) (62,71)

MAX ELEMENT Pada titik

8.306623863 (28,(8.3) )

3. 𝑝 = 31847

𝛼 = 5

𝛽 = 25703

a. 𝑦1 = 𝛼𝑘(𝑚𝑜𝑑 𝑝)

23972 = 5𝑘(𝑚𝑜𝑑 31847)

𝟓𝒌(𝒎𝒐𝒅 𝟑𝟏𝟖𝟒𝟕) = 𝟐𝟑𝟗𝟕𝟐

𝑥 = 𝑦2(𝑦1𝑎)−1 𝑚𝑜𝑑 𝑝

Page 5: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

8990 = 31396(23972𝑎)−1 𝑚𝑜𝑑 31847

(𝟐𝟑𝟗𝟕𝟐𝒂)−𝟏 𝒎𝒐𝒅 𝟑𝟏𝟖𝟒𝟕 =𝟖𝟗𝟗𝟎

𝟑𝟏𝟑𝟗𝟔

b. 𝑦1 = 𝛼𝑘(𝑚𝑜𝑑 𝑝)

23972 = 5𝑘(𝑚𝑜𝑑 31847)

𝟓𝒌(𝒎𝒐𝒅 𝟑𝟏𝟖𝟒𝟕) = 𝟐𝟑𝟗𝟕𝟐

𝑥 = 𝑦2(𝑦1𝑎)−1 𝑚𝑜𝑑 𝑝

31415 = 20481(23972𝑎)−1 𝑚𝑜𝑑 31847

(𝟐𝟑𝟗𝟕𝟐𝒂)−𝟏 𝒎𝒐𝒅 𝟑𝟏𝟖𝟒𝟕 =𝟑𝟏𝟒𝟏𝟓

𝟐𝟎𝟒𝟖𝟏

4. #include <math.h>

#include <stdio.h>

#include <stdlib.h>

#include "lip.h"

struct data {long j, alpha_j;};

int fcmp(const void *d1, const void *d2)

{

struct data *data1 = (struct data *) d1;

struct data *data2 = (struct data *) d2;

if (data1->alpha_j < data2->alpha_j) return - 1;

if (data1->alpha_j > data2->alpha_j) return + 1;

return 0;

}

long Shanks(long alpha, long beta, long p)

/* returns log(alpha, beta) in Z_p where

alpha is a generator and beta is in Z_p */

{

int found = 0;

long i, log, m = ceil(sqrt(p - 1));

struct data *table1 = calloc(m, sizeof(struct data));

struct data *table2 = calloc(m, sizeof(struct data));

struct data *d, key;

verylong za = 0, zb = 0, zc = 0, zp = 0;

verylong zalpha = 0, zalpha_i = 0;

verylong zbeta = 0, zp1 = 0;

if (!table1 || !table2) {

fprintf(stderr, "*error*\nin sufficient memory\n");

Page 6: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

fprintf(stderr, "from Shanks\n");

exit(1);

}

/* create a logarithm table */

zintoz(alpha, &zalpha);

zintoz(beta, &zbeta);

zintoz(p, &zp);

zintoz(p - 1, &zp1);

zsexpmod(zalpha, m, zp, &zalpha_i);

for (i = 0; i < m; i++) {

table1[i].j = i;

zsexpmod(zalpha_i, i, zp, &za);

table1[i].alpha_j = ztoint(za);

}

zinvmod(zalpha, zp, &zalpha_i);

for (i = 0; i < m; i++) {

table2[i].j = i;

zsexpmod(zalpha_i, i, zp, &za);

zmulmod(zbeta, za, zp, &zb);

table2[i].alpha_j = ztoint(zb);

}

/* sort the tables by second data item */

qsort(table1, m, sizeof(struct data), fcmp);

qsort(table2, m, sizeof(struct data), fcmp);

for (i = 0; !found && i < m; i++) {

key.j = table1[i].j;

key.alpha_j = table1[i].alpha_j;

d = bsearch(&key, table2, m, sizeof(struct data), fcmp);

if (d) {

zintoz(key.j, &za);

zintoz(m, &zb);

zmulmod(za, zb, zp1, &zc);

zintoz(d->j, &za);

zaddmod(za, zc, zp1, &zb);

log = ztoint(zb);

zsexpmod(zalpha, log, zp, &za);

found = zcompare(za, zbeta) == 0;

}

}

if (!found) log = 0;

zfree(&za);

zfree(&zb);

zfree(&zc);

zfree(&zp);

zfree(&zalpha);

zfree(&zalpha_i);

zfree(&zbeta);

zfree(&zp1);

return log;

}

Page 7: Ujian UAS 2015 kriptography_M0513019_FEMBI REKRISNA GRANDEA PUTRA

int main(void)

{

long alpha = 5, beta = 26379, gamma = 20679;

long a, k, delta = 11082, p = 31847, x = 20543;

verylong za = 0, zb = 0, zc = 0, zk = 0, zp = 0;

verylong zx = 0;

verylong zalpha = 0, zbeta = 0, zgamma = 0;

verylong zdelta = 0, zp1 = 0;

zintoz(alpha, &zalpha);

zintoz(beta, &zbeta);

zintoz(gamma, &zgamma);

zintoz(delta, &zdelta);

zintoz(p, &zp);

zintoz(x, &zx);

zintoz(p - 1, &zp1);

zexpmod(zbeta, zgamma, zp, &za);

zexpmod(zgamma, zdelta, zp, &zb);

zexpmod(zalpha, zx, zp, &zc);

zmulmod(za, zb, zp, &zk);

if (zcompare(zk, zc) == 0)

printf("signature accepted\n");

else

printf("signature rejected\n");

a = Shanks(alpha, beta, p);

k = Shanks(alpha, gamma, p);

printf("a = %ld\n", a);

printf("k = %ld\n", k);

zfree(&za);

zfree(&zb);

zfree(&zc);

zfree(&zk);

zfree(&zx);

zfree(&zalpha);

zfree(&zbeta);

zfree(&zgamma);

zfree(&zdelta);

return 0;

}