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