SARAN Eksplorasi Masalah Logaritma Diskret pada Finite Field G P(2m)

97 multiplikatif ∗ berorder komposit maka tidak semua yang dipilih akan menghasilkan logaritma diskret yang benar, jadi dalam hal ini dilakukan pemilihan berulang-ulang sampai ditemukan yang tepat. 5. Komputasi dalam Algoritme Pohlig Hellman dilakukan pada subgrup berorder prima berpangkat integer positif . 6. Faktorisasi polinomial dapat dilakukan dalam 4 tahap. Tahap pertama adalah faktorisasi bebas kuadrat, kedua faktorisasi bebas kuadrat berderajad , ketiga faktorisasi berderajad , dan terakhir faktorisasi lengkap = … . 7. Algoritme Index Calculus memerlukan penentuan faktor basis dan pemilihan yang tepat, agar komputasi dan pemfaktoran lebih efisien.

4.2 SARAN

Algoritme solusi masalah logaritma diskret dapat diaplikasikan pada ∗ dengan = , , …. 98 DAFTAR PUSTAKA Adamek J. 1991. Foundation of Coding. John wiley sons,Inc. Aliatiningtyas N. 2002. Struktur Aljabar. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Buchmann JA. 2000. Introduction to Cryptography. Springer-Verlag New York, Inc. USA. Fraleigh JB. 2000. A First Course in Abstract Algebra. Sixth Edition. Addison- Wesley Publishing Company, Inc., USA. Guritman S. 2004. Struktur Aljabar. Bogor: Departemen Matematika, Institut Pertanian Bogor. Guritman S, Supriyo PT. 2004. Matematika Diskret. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Guritman S. 2005. Aljabar Linear Lanjut. Bogor: Program Pascasarjana, Institut Pertanian Bogor. Hankerson D, Menezes A, Vanstone S. 2004. Guide to Elliptic Curve Cryptography. CRC Press,Inc. New York. Hoffstein J, Pipher J, Silverman JH. 2008. An Introduction to Mathematical Cryptography. New York: Spinger. Leon SJ. 1998. Aljabar Linear dan Aplikasinya. Bondan A, penerjemah; Hardani HW, editor. Jakarta: Erlangga. Terjemahan dari: Linear Algebra with Application. Fifth Edition. Lestari E. 2007. Solusi Masalah Logaritma Diskret pada Grup Z n dan keterkaitannya dalam Persetujuan Kunci Diffie-Hellman [skripsi]. Bogor: Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Menezes A, Oorschot PV, Vanstone S. 1997. Handbook of Applied Cryptography. New York: CRC Press, Inc. Michaels JG. 2000. Algebraic Structures. Di dalam: Rosen KH, editor in chief. Handbook of Discrete and combinatorial Mathematics. USA: CRC Press LLC. Munir R. 2001. Matematika Diskrit. Edisi Kedua. Bandung: Informatika. 99 Munir R. 2006. Kriptografi. Bandung: Informatika. Pretzel O. 1992. Error-Correcting Codes and Finite Fields. Oxford University Press, New York. Rosdiana S. 2009. Konstruksi Algoritme Aritmetika GF2 n dengan Operasi Perkalian Dibangkitkan dari Sifat Grup Siklik [tesis]. Bogor: Program Pascasarjana, Institut Pertanian Bogor. Saeki M. 1997. Elliptic Curve Cryptosystem. [tesis]. School of Computer Science. McGill University, Montreal. Safaat R. 2007. Kajian Teoritik Algoritme Pollard p – 1 dan Algoritme Pollard ρ [skripsi]. Fakultas Matematika dan Ilmu Pengetahuan Alam, Institut Pertanian Bogor. Stinson DR. 2006, Cryptography Theory and Practice. Third Edition. Taylor Francis Group, LLC. LAMPIRAN 101 Lampiran 1 Program Aritmetika Finite Field Program Aritmetika Finite Field adalah program pendukung untuk menyelesaikan masalah logaritma diskret GF2m, diacu dari tesis Rosdiana 2009. Program ini adalah program dengan mempergunakan software Maple 11. Jika diketahui = + + + , maka dalam program ini berbentuk set, dengan representasi {0, 2, 3, 6}.

1. UbahBinKeSet Prosedur untuk mengubah Vektor Biner ke Set

UbahBinKeSet:= procA::list local H::set, i,n::integer: n := nopsA: H:={}: for i from 1 to n do if A[i]=1 then H:=H union {i-1}: end if: end do: returnH: end proc:

2. UbahDesKeSet Mendefinisikan himpunan dari integer

UbahDesKeSet:=procn::integer local X::list: X:=convertn,base,2: UbahBinKeSetX; end proc:

3. UbahSetKeDes Prosedur untuk mengubah Set ke Desimal.

UbahSetKeDes := proc N::set local D::set, Des::integer; D:=mapx - 2x,N: Des:=add i, i=D ; end proc:

4. AcakSet Membangkitkan himpunan m bit secara acak.

AcakSet:=procm::posint local AcIn::procedure, p::integer: AcIn := rand2m: p:=AcIn: UbahDesKeSetp; end proc:

5. AdisiSet Penjumlahan pada Himpunan

AdisiSet:=procS::set,T::set returnS union T minus S intersect T; end proc: 102

6. KaliSet Perkalian pada Himpunan

KaliSet:=procA::set,B::set local H::set, i,j::integer: H:={}: for i in A do H:=AdisiSetH,mapj-j+i,B: end do: returnH: end proc:

7. MultiSet Multiplikasi Himpunan dengan modulo

MultiSet:=procA::set,B::set,m::integer local H::set: H:=KaliSetA,B: ModSetH,m; end proc:

8. BagiSet Pembagian Himpunan dengan Himpunan

BagiSet:=procT::set,S::set local K,Q,R::set, i,r,s,t::integer: R:=T: Q:={}: r:=maxopR: s:=maxopS: for i while r=s do t:=r-s: Q:=Q union {t}: K:=KaliSet{t},S: R:=AdisiSetK,R: r:=maxopR: end do: return[Q,R]; end proc:

9. InvSet Invers Himpunan

InvSet:=procT::set,m::integer local QA,QB,RA,RB,R,S,Tmp::set, L::list, i::integer: S:=DatB[m]: if T={} then returnTidak ada invers end if: RA:=S union {m}: RB:=T: QA:={}: QB:={0}: L:=BagiSetRA,RB: RA:=RB: RB:=op2,L: for i while RB{} do Tmp:=QA: QA:=QB: R:=KaliSetQB,op1,L: QB:=AdisiSetTmp,R: L:=BagiSetRA,RB: RA:=RB: RB:=op2,L: end do: returnQB; end proc: 103

10. ModN Prosedur yang menghitung a mod n dalam rentang negatif.

ModN:= proca::integer, n::posint local b, c::integer: b := a mod n: c := floorn2: if b c then b := -n-b end if: returnb: end proc:

11. ExpSet Pangkat Himpunan

ExpSet:=procA::set,x::integer,m::integer local H,G::set, X::list, i,p,k,n::integer: p:=2m-1: k:=ModNx,p: if k=0 then X:=convertk,base,2; G:=A: H:={0}: if op1,X=1 then H:=G: end if: for i from 2 to nopsX do G:=MultiSetG,G,m: if opi,X=1 then H:=MultiSetH,G,m: end if: end do: else n:=-k: X:=convertn,base,2; G:=InvSetA,m: H:={0}: if op1,X=1 then H:=G: end if: for i from 2 to nopsX do G:=MultiSetG,G,m: if opi,X=1 then H:=MultiSetH,G,m: end if: end do: end if: returnH; end proc:

12. PrimaRelAcak Prosedur untuk membangkitkan bilangan prima relatif

modulo − secara acak. PrimaRelAcak:=procm::posint local AcIn::PrimaRelAcak, g,i,R,p::integer: p:=2m-1: AcIn := randp: R:=AcIn: g:=gcdR,p: for i while g1 do R:=AcIn: g:=gcdR,p: end do: 104 returnR: end proc:

13. HasilBagi Hasil Bagi Himpunan

HasilBagi:=procA::set,B::set local L::list: L:=BagiSetA,B: returnop1,L; end proc:

14. SisaBagi Sisa Pembagian Himpunan

SisaBagi:=procA::set,B::set local L::list: L:=BagiSetA,B: returnop2,L; end proc:

15. PangkatM PangkatMod Himpunan

PangkatM:=procA::set,x::integer,B::set local H,G,K,L::set, X::list, i::integer: X:=convertx,base,2; G:=A: H:={0}: if op1,X=1 then H:=G: end if: for i from 2 to nopsX do K:=KaliSetG,G: G:=SisaBagiK,B: if opi,X=1 then L:=KaliSetH,G: H:=SisaBagiL,B: end if: end do: returnH; end proc:

16. GcdSet Gcd Himpunan

GcdSet:=procA::set,B::set local RA,RB,S,T,L::set, i,a,b::integer: a:=maxopA: b:=maxopB: RA:=A: RB:=B: if ab then RA:=B: RB:=A: end if: if RB={} then returnRA end if; L:=SisaBagiRA,RB: RA:=RB: RB:=L: for i while RB{} do L:=SisaBagiRA,RB: RA:=RB: RB:=L: end do: returnRA; end proc: 105

17. TestIrrB Test Reduce Himpunan

TestIrrB:=procA::set local T,U,H,C,S,W::set, i,m,a::integer: if A={1} or A={0,1} then returntrue; end if: if op1,A0 or nopsA mod 2=0 then returnfalse; end if: a:=maxopA: m:=floora2: W:={1}: for i from 1 to m do W:=PangkatMW,2,A; U:=AdisiSetW,{1}: H:=GcdSetU,A: if H{0} then returnfalse; break; end if: end do: returntrue; end proc: Lampiran 2 Program Faktorisasi Polinomial 2.1 Faktorisasi Bebas Kuadrat 1