algoritme lll dan aplikasinya dalam … · shortest vector in a lattice. size reduction algorithm...
TRANSCRIPT
ALGORITME LLLDAN APLIKASINYA DALAM PEMBONGKARANSISTEMKRIPTO KNAPSACK MERKLE-HELLMAN
ARI AGUSTIANSA
DEPARTEMEN MATEMATIKAFAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR2012
ABSTRAK
ARI AGUSTIANSA. Algoritme LLL dan Aplikasinya dalam Pembongkaran SistemkriptoKnapsack Merkle-Hellman. Dibimbing oleh SUGI GURITMAN dan BIB PARUHUMSILALAHI.
Algoritme LLL adalah algoritme yang dapat digunakan untuk menentukan hampiran darivektor terpendek pada suatu latis. Algoritme reduksi ukuran merupakan langkah pentingpada algoritme LLL. Algoritme LLL dapat diterapkan dalam berbagai bidang. Pada karyailmiah ini dibahas bagaimana algoritme LLL dapat digunakan dalam pembongkaran salahsatu sistemkripto yang terkenal, yaitu sistemkripto knapsack Merkle-Hellman. Sistemkriptoknapsack Merkle-Hellman adalah sistemkripto asimetrik yang menggunakan masalah jumlahsubhimpunan sebagai tumpuan keamanan. Masalah jumlah subhimpunan dapat diubahmenjadi masalah menentukan vektor terpendek pada suatu latis, sehingga algoritme LLLdapat juga digunakan untuk menyelesaikan masalah jumlah subhimpunan. Karena masalahjumlah subhimpunan dapat diselesaikan dengan mudah dengan menerapkan algoritme LLL,maka sistemkripto knapsack Merkle-Hellman juga dapat dengan mudah dihancurkan.
Kata kunci: latis, algoritme LLL, sistemkripto knapsack.
ABSTRACT
ARI AGUSTIANSA. LLL Algorithm and Its Application in Breaking Merkle-HellmanKnapsack Cryptosystem. Supervised by SUGI GURITMAN and BIB PARUHUMSILALAHI.
LLL algorithm is an algorithm that can be used to determine an approximation of theshortest vector in a lattice. Size reduction algorithm is an important step of LLL algorithm.The LLL algorithm can be applied in many fields. This paper shows how LLL algorithm canbe used in breaking one of the famous cryptosystem, namely the Merkle-Hellman knapsackcryptosystem. Merkle-Hellman knapsack cryptosystem is an asymmetric cryptosystem usingthe subset sum problem as the support of security. Subset sum problem can be transformedinto the problem of determining shortest vector in a lattice, so that LLL algorithm can alsobe used to solve the subset sum problem. Since the subset sum problem can be easily solvedby applying LLL algorithm, then the Merkle-Hellman knapsack cryptosystem can also beeasily be destructed.
Keywords: lattice, LLL algorithm, knapsack cryptosystem.
ALGORITME LLLDAN APLIKASINYA DALAM PEMBONGKARANSISTEMKRIPTO KNAPSACK MERKLE-HELLMAN
ARI AGUSTIANSA
Skripsisebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains padaDepartemen Matematika
DEPARTEMEN MATEMATIKAFAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR2012
Judul Skripsi : Algoritme LLL dan Aplikasinya dalam Pembongkaran SistemkriptoKnapsack Merkle-Hellman
Nama : Ari Agustiansa
NIM : G54080040
Menyetujui
Pembimbing I Pembimbing II
Dr. Sugi Guritman Dr. Ir. Bib Paruhum Silalahi, M.Kom.NIP. 19620927 199203 1 004 NIP. 19670101 199203 1 004
Mengetahui
Ketua Departemen Matematika
Dr. Berlian Setiawaty, MS.NIP. 19650505 198903 2 004
Tanggal Lulus : .........................................
PRAKATA
Puji syukur penulis panjatkan ke hadirat Allah SWT atas segala limpahan rahmat dankarunia-Nya sehingga penulis dapat menyelesaikan karya ilmiah ini. Penyusunan karyailmiah ini juga tidak terlepas dari dukungan doa, moril dan materiil dari berbagai pihak.Pada kesempatan ini, penulis menyampaikan terima kasih kepada :1. Dr. Sugi Guritman dan Dr. Ir. Bib Paruhum Silalahi, M.Kom. selaku pembimbing
pertama dan kedua yang telah dengan sabar membimbing penulis dalam menyusunkarya ilmiah ini,
2. Dr. Paian Sianturi selaku dosen pembimbing akademik, Muhamad Ilyas, M.Si. selakudosen penguji, dan seluruh dosen Departemen Matematika FMIPA IPB,
3. Bapak dan almarhumah Ibu tercinta atas doa, dukungan, kasih sayang, nasihat, dankepercayaannya,
4. Retno Wulandari, yang senantiasa menemani, mendukung, membantu, dan memberisemangat kepada penulis,
5. teman-teman Matematika 45 atas segala dukungan, bantuan, dan ketulusan hati yangtelah diberikan,
6. seluruh staf Departemen Matematika : Bapak Yono, Mas Heri, Ibu Ade, Bapak Acep,Ibu Susi, Mas Bono (Alm), Mas Deni yang telah membantu penulis dalam administrasidan sebagainya.Penulis menyadari bahwa dalam tulisan ini masih terdapat kekurangan, oleh kerena itu
penulis mengharapkan saran dan kritik dari semua pihak. Semoga tulisan ini bermanfaatbagi semua pihak yang memerlukan.
Bogor, Oktober 2012
Ari
RIWAYAT HIDUP
Penulis dilahirkan di Jakarta, pada tanggal 22 Agustus 1990 dari pasangan Hazarindan Zubaidah. Penulis merupakan putra kedua dari tiga bersaudara. Pada tahun 2002,penulis lulus dari SD Negeri Sunter Agung 13 Jakarta. Pada tahun 2005, penulis lulus dariSMP Negeri 116 Jakarta. Pada tahun 2008, penulis lulus dari SMA Negeri 80 Jakarta danpada tahun yang sama penulis diterima di Departemen Matematika IPB melalui jalur USMI(Undangan Seleksi Masuk IPB)
Disamping kegiatan akademis, penulis pernah menjadi asisten beberapa mata kuliah,diantaranya:
• Pengantar Metode Komputasi pada tahun ajaran 2010-2011,• Persamaan Diferensial Biasa pada tahun ajaran 2010-2011,• Pemodelan Matematika pada tahun ajaran 2011-2012,• Analisis Numerik pada tahun ajaran 2012-2013.
Penulis juga aktif dalam kegiatan kemahasiswaan yaitu menjadi anggota Himpunan KeprofesianDepartemen Matematika IPB (Gumatika) sebagai staf divisi keilmuan.
DAFTAR ISI
Halaman
DAFTAR GAMBAR .................................................................................................... viii
DAFTAR LAMPIRAN ................................................................................................. viii
I PENDAHULUAN ................................................................................................. 11.1 Latar Belakang ............................................................................................. 11.2 Tujuan .......................................................................................................... 1
II LANDASAN TEORI ............................................................................................ 1
III PEMBAHASAN ................................................................................................... 33.1 Latis dan Basis ............................................................................................. 33.2 Gram-Schmidt dan Determinan .................................................................... 63.2.1 Kompleksitas Gram-Schmidt ................................................................ 8
3.3 Permasalahan dalam Latis ............................................................................ 93.4 Algoritme LLL .............................................................................................. 103.4.1 Pengertian Basis Terreduksi .................................................................. 103.4.2 Reduksi Ukuran ..................................................................................... 113.4.3 Algoritme LLL dan Analisisnya ............................................................ 18
3.5 Sistemkripto Knapsack Merkle-Hellman ....................................................... 223.6 Pembongkaran Sistemkripto Knapsack Merkle-Hellman ............................... 24
IV SIMPULAN DAN SARAN ................................................................................... 244.1 Simpulan ....................................................................................................... 244.2 Saran ............................................................................................................. 24
DAFTAR PUSTAKA .................................................................................................... 25
LAMPIRAN .................................................................................................................. 26
vii
DAFTAR GAMBAR
Halaman
Gambar 3.1: Latis dengan basis B = {(0, 1), (1, 0)} ...................................................... 3
Gambar 3.2: Latis dengan basis B = {(2, 1), (3, 1)} ...................................................... 3
Gambar 3.3: Latis dengan basis B = {(1, 2), (2, 1)} ...................................................... 4
Gambar 3.4: Latis dengan basis B = {(1, 1)} ................................................................ 4
Gambar 3.5: Parallelepiped dasar dengan B = {(2, 1), (1, 2)}.......................................... 6
DAFTAR LAMPIRAN
Halaman
Lampiran 1: Sintaks Mathematica Algoritme LLL ....................................................... 27
Lampiran 2: Sintaks Mathematica Pembangkitkan kunci ............................................. 28
Lampiran 3: Sintaks Mathematica Enkripsi .................................................................. 28
Lampiran 4: Sintaks Mathematica menentukan solusi masalah jumlah subhimpunan ... 28
Lampiran 5: Sintaks Mathematica Dekripsi .................................................................. 29
viii
I PENDAHULUAN
1.1 Latar BelakangLatis (lattice) merupakan obyek
geometrik dalam ruang dimensi-n yangdiilustasikan sebagai himpunan titik-titikdengan susunan yang teratur dan periodik(Guritman 2012).Dalam latis, terdapat suatu
permasalahan yang sangat mendasar, yaitumasalah menentukan vektor terpendek(shortest vector problem) yang disingkatSVP. SVP adalah suatu masalah yangsangat sulit diselesaikan dalam komputasi.Hingga pada tahun 1982, A. K. Lenstra,H. W. Lenstra, Jr, dan L. Lovasz berhasilmenemukan sebuah algoritme untukmenentukan hampiran dari masalah SVPyang bernama algoritme LLL. Walaupunalgoritme LLL tidak dapat menyelesaikanmasalah SVP secara eksak, algoritmeini cukup ampuh dalam menjawab SVP.Sehingga algoritme ini lebih disukai karenamemiliki waktu running polinomial.Setelah ditemukannya algoritme LLL,
bahasan tentang latis menjadi lebihberwarna. Kini latis dapat diterapkan
pada banyak bidang ilmu komputer, sepertialjabar komputer (computer algebra), teorikoding (coding theory), dan kriptologi(kriptografi dan kriptanalisis).Salah satu yang akan dibahas dalam
karya ilmiah ini adalah penerapan latisdalam membongkar sistemkripto knapsackMerkle-Hellman. Terbukti bahwa masalahlatis dapat diterapkan pada pembongkaransistemkripto knapsack Merkle-Hellman.Hal ini membuat sistemkripto knapsackMerkle-Hellman mengalami kejatuhan.
1.2 TujuanTujuan dari penulisan karya ilmiah ini
antara lain adalah :1. merekonstruksi ulang dan melakukananalisa pada algoritme LLL.
2. mengaplikasikan algoritme LLL dalampembongkaran sistemkripto knapsackMerkle-Hellman.
3. mengimplementasikan proses pembongkaransistemkripto knapsack Merkle-Hellmandalam software Mathematica 8.0.
II LANDASAN TEORI
Definisi 2.1 Jika m adalah bilanganbulat positif, maka sebuah m-tupleterurut adalah barisan m bilangan real(a1,a2,. . . ,am). Himpunan dari semuam-tuple disebut m-ruang Euclidean dandinotasikan sebagai Rm.
(Anton 2000)
Definisi 2.2 Jika u = (u1, u2, . . . , um) danv = (v1, v2, . . . , vm) adalah vektor-vektoryang berada dalam Rm, maka hasil kalidalam Euclidean u · v didefinisikan sebagai
u · v = u1v1 + u2v2 + ...+ umvm.
(Anton 2000)
Definisi 2.3 Panjang Euclidean (ataunorm Euclidean) dari sebuah vektor u =(u1, u2, . . . , um) dalam Rm didefinisikansebagai
‖u‖ =√u21 + u22 + ...+ u2m.
(Anton 2000)
Definisi 2.4 Dua vektor u dan v disebutortogonal jika u · v = 0.
(Anton 2000)
Definisi 2.5 Sebuah vektor w disebutkombinasi linear dari vektor-vektorv1,v2, ...vr jika dapat diekspresikan dalambentuk
w = k1v1 + k2v2 + ...+ krvr
dengan k1, k2, ...kr adalah skalar.(Anton 2000)
Definisi 2.6 Jika S = {v1,v2, . . . ,vr}adalah himpunan tak kosong yang berisivektor-vektor, maka persamaan
k1v1 + k2v2 + ...+ krvr = 0
memiliki minimal satu solusi, yaitu:
k1 = 0, k2 = 0,..., kr = 0.
Jika hanya didapatkan satu solusi, makaS disebut himpunan vektor bebas linear.Jika terdapat solusi lain maka S disebuthimpunan vektor bergantung linear.
(Anton 2000)
2
Definisi 2.7 Jika a dan b adalahbilangan bulat, dengan a 6= 0, danjika terdapat sebuah bilangan bulat csedemikian sehingga b = ac, maka kitakatakan bahwa a membagi b, dan ditulisa|b. Jika a tidak membagi b, maka ditulisa - b.
(Stark 1970)
Definisi 2.8 Sebuah bilangan bulatyang nilainya lebih besar dari nol danhanya memunyai satu pembagi positifyaitu bilangan itu sendiri, maka bilangantersebut disebut bilangan prima. Sebuahbilangan yang lebih besar dari satu yangbukan merupakan bilangan prima disebutbilangan komposit.
(Stark 1970)
Definisi 2.9 Misalkan a dan b adalahbilangan positif tak nol. Dan misalkand adalah bilangan terbesar yang beradadalam himpunan pembagi bersama daria dan b. Maka kita sebut d adalahpembagi bersama terbesar (greatestcommon divisor) dari a dan b. Dan ditulissebagai d = gcd(a, b).
(Stark 1970)
Definisi 2.10 Misalkan a dan b adalahbilangan bulat tak nol. Jika gcd(a, b) = 1,maka kita katakan bahwa a dan b relatifprima.
(Stark 1970)
Definisi 2.11 Misalkan a dan b adalahbilangan bulat dan n sebuah bilangan bulatpositif. Jika n|(a − b), maka kita katakanbahwa a kongruen ke b modulo n dan kitatulis
a ≡ bmodn.
(Stark 1970)
Definisi 2.12 Misalkan S adalahsubhimpunan dari R. u ∈ R disebut sebagaibatas atas dari S jika s ≤ u untuk semuas ∈ S. Serupa dengan sebelumnya, w ∈ Rdisebut sebagai batas bawah dari S jikaw ≤ s untuk semua s ∈ S.
(Bartle 1964)
Definisi 2.13 Misalkan S adalahsubhimpunan dari R yang terbatas di atas.Sebuah batas atas dari S disebut sebagaisupremum (batas atas terkecil) dari S jikanilainya lebih kecil dari batas atas yanglain dari S. Serupa dengan sebelumnya,sebuah batas bawah dari S disebut sebagaiinfimum (batas bawah terbesar) dari S jikanilainya lebih besar dari batas bawah yanglain dari S.
(Bartle 1964)
III PEMBAHASAN
3.1 Latis dan BasisSeperti yang telah dijelaskan dalam
pendahuluan bahwa latis merupakan obyekgeometrik dalam ruang dimensi-n yangdiilustasikan sebagai himpunan titik-titikdengan susunan yang teratur dan periodik.Secara formal, definisi latis diberikansebagai berikut.
Definisi 3.1 Misalkan B = {b1,b2, . . . ,bn} adalah himpunan n vektor bebaslinear dalam ruang vektor Rm. LatisL(B) adalah subgrup aditif diskrit dariRm, yang beranggotakan semua kombinasilinear intejer dari B:
L(B) =
n∑j=1
xjbj�xj ∈ Z
dengan n ≤ m. Dalam hal ini B disebutbasis untuk L(B).
Dalam karya ilmiah ini, notasi "�"dibaca sebagai "dengan".
Seperti dalam ruang vektor, basisB untuk latis L(B) dapat diperagakansebagai matriks B berukuran m × n yangkolom-kolomnya merupakan vektor bj :
B =(
b1 b2 · · · bn).
Sehingga L(B) dapat dituliskan sebagaiperkalian matriks
L(B) = {Bx�x ∈ Zn} .
Dalam hal ini, B merupakan bentukmatriks dari B.
Definisi 3.2 Dimensi atau rank padalatis L(B) didefinisikan sebagai banyaknyaanggota pada basis B. Untuk kasus m = n,maka latis L(B) dikatakan berdimensipenuh (full dimensional) atau disebut jugamemiliki rank penuh (full rank).
Terdapat kemiripan antara pengertianlatis yang dibangkitkan oleh B denganpengertian subruang vektor dalam Rm yangdirentang oleh B:
〈B〉 =
n∑j=1
xjbj�xj ∈ R
.Perbedaannya hanya terdapat padabilangan yang dipakai pada kombinasilinear. Pada latis L(B), kombinasi linearmenggunakan koefisien dalam rentangintejer (Z ⊆ R). Sedangkan pada 〈B〉,koefisien pada kombinasi linear yangdigunakan adalah rentang bilangan real(R). Sehingga dapat disimpulkan jika Badalah basis untuk L(B), maka B pasti jugamerupakan basis untuk 〈B〉. Namun halini tidak berlaku sebaliknya, jika B adalahbasis untuk 〈B〉, belum tentu B juga basisuntuk L(B).Berikut merupakan contoh latis dalam
R2.
Gambar 3.1: Latis dengan basisB = {(0, 1), (1, 0)}
Gambar 3.2: Latis dengan basisB = {(2, 1), (3, 1)}
4
Gambar 3.3: Latis dengan basisB = {(1, 2), (2, 1)}
Gambar 3.4: Latis dengan basisB = {(1, 1)}
Gambar 3.1 dan gambar 3.2 merupakanlatis Z2 yang dibangkitkan oleh basis bakuB1 = {(1, 0), (0, 1)} dan basis B2 ={(2, 1), (3, 1)}. Hal ini memperlihatkanbahwa sama seperti ruang vektor, basisuntuk suatu latis tidak tunggal. Padagambar 3.3 merupakan contoh bahwa basisB3 = {(2, 1), (1, 2)} bukan merupakan basisuntuk Z2 walaupun B3 memunyai rankpenuh di dalam R2. Selanjutnya gambar3.4 merupakan sebuah contoh bahwa basisB4 = {(1, 1)} masih dapat membentuk latisL(B4) walaupun B4 tidak memiliki rankpenuh di dalam R2.Cara bagaimana menentukan basis lain
dalam suatu latis akan dijelaskan setelahdefinisi berikut.
Definisi 3.3 Dua basis A dan B dikatakanekuivalen, dinotasikan dengan A ∼ B, jhjA dan B membangkitkan latis yang sama,yaitu
L(A) = L(B).
Definisi 3.4 Matriks U berukuran n × ndisebut unimodular jika U ∈ Zn×n dandet(U) = ±1.
Proposisi 3.1 Invers dari matriksunimodular juga merupakan matriksunimodular.
Bukti:Misalkan U = (uij) adalah matriks
unimodular berukuran n × n, dari asumsidiperoleh uij ∈ Z dan det(U) = ±1.Berdasarkan rumus matriks invers, maka
U−1 =1
det(U)(µij)
T
dimana µij adalah kofaktor dari uij .Karena uij ∈ Z, dari definisi kofaktor, jelasbahwa µij ∈ Z sehingga
(µij)T ∈ Zn×n. (i)
Disamping itu,
U−1U = I
⇒ det(U−1U) = det(I)
⇔ det(U−1) det(U) = 1
⇔ det(U−1) =1
det(U).
Karena det(U) = ±1, maka
det(U−1) = ±1 dan1
det(U)∈ Z. (ii)
Dari (i) dan (ii), dapat disimpulkan bahwaU−1 merupakan matriks unimodular. �
Proposisi 3.2 Misalkan A = {a1,a2,. . . ,an} adalah basis untuk L(A) dan B ={b1,b2, . . . ,bn} adalah basis untuk L(B).Maka A ∼ B jhj ada matriks unimodularU ∈ Zn×n sehingga B = AU, dimana Adan B adalah bentuk matriks dari A dan B.
5
Bukti:(⇒)Misalkan L(A) = L(B). Dari
asumsi ini diperoleh bahwa untuk setiapj = 1, 2, . . . , n, bj ∈ L(A), dan dari definisiL(A) maka ada uj = (u1j , u2j , . . . , unj) ∈Zn sehingga
bj =n∑i=1
uijai. (i)
Dengan demikian, dapat didefinisikanmatriks U ∈ Zn×n yang kolom-kolomnyaadalah vektor uj sebagai berikut.
U =(
u1 u2 · · · un)
Dan dari persamaan (i) diperolehpersamaan matriks
B = AU (ii)
dimana
B =(
b1 b2 · · · bn)
A =(
a1 a2 · · · an)
U =(
u1 u2 · · · un)
Dengan langkah-langkah yang sama, dapatdiperoleh matriks V ∈ Zn×n sehingga
A = BV (iii)
Dari persamaan (ii) dan (iii), didapatkan
A = BV
⇒ det(A) = det(AUV)
⇔ det(U) det(V) = 1.
Disamping itu, karena U dan V adalahmatriks intejer, maka determinannyajuga intejer. Dengan demikian, dapatdisimpulkan bahwa det(U) = ±1(⇐)Misalkan B = AU dengan U
unimodular. Dari asumsi ini diperolehbahwa untuk setiap j = 1, 2, . . . , n, bj ∈L(A), karena bj merupakan kombinasilinear intejer dari A. Selanjutnya,karena untuk setiap x ∈ L(B) merupakankombinasi linear intejer dari B, maka dapatdisimpulkan bahwa x juga merupakankombinasi linear intejer dari A (artinya,x ∈ L(A)). Dengan demikian diperolehL(B) ⊆ L(A). Kemudian perhatikanbahwa dari asumsi juga diperoleh A =BU−1 dengan U−1 juga unimodular(proposisi 3.1). Sehingga denganlangkah-langkah yang serupa dengansebelumnya, diperoleh L(A) ⊆ L(B). �
Cara yang lebih mudah dalammenentukan dua basis yang ekuivalenadalah dengan menerapkan operasi kolomintejer (integer column operations)
Definisi 3.5 Operasi kolom intejer (OKI)pada matriks B memiliki 3 jenis berikut:1. Kjk(B): menukar kolom ke-j dan kolomke-k pada matriks B
2. Kj(-1)(B): mengalikan kolom ke-jdengan skalar -1 pada matriks B
3. Kjk(λ)(B): menambahkan kolom ke-jdengan skalar λ ∈ Z kali kolom ke-kpada matriks B
OKI hampir sama dengan operasi kolomdasar (OKD) yang biasanya diterapkanpada ruang vektor. Hal yang membedakanhanya terdapat pada jenis kedua. PadaOKD, pengali yang digunakan adalahsembarang bilangan real taknol, sedangkanpada OKI pengali yang digunakan adalah-1.Kemudian misalkan I adalah matriks
identitas dan K adalah serangkaian OKIyang diterapkan pada suatu matriks B danmenghasilkan matriks C, maka berlaku
K(B) = C⇔ B K(I) = C.
Serangkaian OKI yang diterapkan pada Ipasti akan menghasilkan matriks intejer,sehingga K(I) merupakan matriks intejer.Disamping itu, karena det(I) = 1, OKIjenis pertama dan kedua bersifat mengubahtanda determinan, dan OKI jenis ketigabersifat tidak mengubah nilai determinan,sehingga didapatkan det(K(I)) = ±1.Dengan demikian dapat disimpulkan bahwaK(I) merupakan matriks unimodular.Sehingga didapatkan proposisi berikut.
Proposisi 3.3 Dua basis dikatakanekuivalen jhj yang satu merupakan hasilserangkaian OKI dari yang lain.
3.2 Gram-Schmidt dan DeterminanSalah satu bahasan dalam aljabar
linear yang merupakan kunci pentingdalam latis adalah proses ortogonalisasiGram-Schmidt. Proses ini yang akanmenjadi ide utama dalam pembentukanalgoritme LLL. Berikut merupakan definisiproses ortogonalisasi Gram-Schmidt.
6
Definisi 3.6 (Ortogonalisasi Gram-Schmidt (OGS)) Misalkan B ={b1,b2, . . . , bn} adalah himpunan n vektorbebas linear dalam ruang vektor Rm. Makadapat dikonstruksi barisan n vektor yangsaling ortogonal B∗ = {b∗1,b∗2, . . . ,b∗n}dimana
b∗1 = b1,
b∗j = bj −j−1∑i=1
µjib∗i ,
dengan j = 2, 3, . . . , n, dan
µji =bj · b∗ib∗i · b∗i
Jika himpunan B = {b1,b2, . . . ,bn}adalah bebas linear, maka B merupakanbasis untuk 〈B〉, dan jika B∗ ={b∗1,b∗2, . . . ,b∗n} adalah hasil OGS dari B,maka B∗ juga merupakan basis untuk 〈B〉.Namun hal ini secara umum tidak berlakudalam latis, jika B adalah basis untuk L(B)tidak harus B∗ merupakan basis untukL(B). Bahkan belum tentu B∗ ⊂ L(B).Dalam ruang vektor, vektor
pj =∑j−1i=1 µjib
∗i merupakan vektor
proyeksi dari b∗j pada subruang vektor⟨{b∗1,b∗2, . . . ,b∗j−1}
⟩dari 〈B∗〉. Sedangkan
b∗j merupakan vektor proyeksi dari bj padasubruang vektor
⟨{b∗j ,b∗j+1, . . . ,b∗n}
⟩dari
〈B∗〉. Sehingga dapat didefinisikan fungsiproyeksi sebagai berikut.
Definisi 3.7 Untuk j = 1, 2, . . . , n,fungsi proyeksi πj dari ruang vektorV = 〈B∗〉 = 〈B〉 ke subruang vektor⟨{b∗j ,b∗j+1, . . . ,b∗n}
⟩didefinisikan sebagai
πj(v) =n∑i=j
(v · b∗ib∗i ·b
∗i
)b∗i .
Jika diambil nilai v = bk, k =1, 2, . . . , n, maka diperoleh
πj(bk) =
0 jika k < jb∗k jika k = j
b∗k +∑k−1i=j µkib
∗i jika k > j
Selanjutnya perhatikan definisi berikut.
Definisi 3.8 Misalkan Λ = L(B) adalahlatis yang dibangkitkan oleh basis B ={b1,b2, . . . ,bn}, maka dapat didefinisikanhimpunan
P(B) =
n∑j=1
xjbj�xj ∈ R, 0 ≤ xj < 1
.Dimana P(B) merupakan bangungeometrik yang disebut parallelepipeddasar atau daerah fundamental(fundamental region).Berikut ilustrasi dari P(B).
Gambar 3.5: Parallelepiped dasardengan B = {(2, 1), (1, 2)}
7
Dari gambar 3.5 terlihat bahwa padalatis dalam R2, P(B) digambarkan sebagaidaerah arsir bidang jajaran genjang. Hasildari luas jajaran genjang pada gambar 3.5disebut vol(P(B)). Pada sembarang latisΛ, dapat didefinisikan nilai determinandari latis Λ, dinotasikan dengan det(Λ),yang merupakan nilai dari vol(P(B)). Dariilustrasi gambar 3.5, maka definisi det(Λ)dapat dinyatakan sebagai berikut.
Definisi 3.9 Misalkan Λ = L(B) adalahlatis yang dibangkitkan oleh basis B ={b1,b2, . . . ,bn} dan B∗ = {b∗1,b∗2, . . . ,b∗n}adalah hasil OGS dari B. Determinan dariΛ didefinisikan sebagai
det(Λ) =n∏i=1
‖b∗i ‖ .
Cara menentukan determinan suatulatis tanpa melakukan OGS akan dijelaskanoleh proposisi setelah lemma berikut ini.
Lemma 3.1 Jika matriks
B∗ =(
b∗1 b∗2 · · · b∗n)
adalah matriks hasil OGS dari matriks
B =(
b1 b2 · · · bn),
maka ada matriksU dengan unsur diagonaladalah 1 sehingga
B = B∗U
Bukti:Perhatikan bahwa rumus OGS dapat
diubah menjadi
b1 = b∗1
b2 = b∗2 + µ21b∗1
b3 = b∗3 + (µ31b∗1 + µ32b
∗2)
...
bn = b∗n +n−1∑i=1
µnib∗i
Hal ini menunjukkan bahwa transformasibalik OGS dari B∗ ke B merupakanserangkaian OKD yang dilakukan padamatriks B, yaitu
B = K(B∗)⇔ B = B∗K(I).
Dengan demikian dapat didefinisikan
sebuah matriks U =K(I), dimana
K(I) =
1 µ21 · · · µn10 1 · · · µn2...
.... . .
...0 0 0 1
�
Proposisi 3.4 Jika Λ = L(B) adalahlatis yang dibangkitkan oleh basis B ={b1,b2, . . . ,bn}, maka
det(Λ) =√
det(BTB)
dimana B adalah bentuk matriks dari B.
Bukti:Misalkan
B∗ =(
b∗1 b∗2 · · · b∗n)
adalah matriks hasil OGS dari matriks
B =(
b1 b2 · · · bn),
menurut lemma 2.1 terdapat sebuahmatriks U yang unsur diagonalnya adalah1 sehingga
B = B∗U.
Dengan demikian diperoleh
BTB = (B∗U)T
(B∗U)
⇔ BTB = UT((B∗)TB∗
)U
⇒ det(BTB) = det(UT
((B∗)TB∗
)U)
⇔ det(BTB) = det((B∗)TB∗
)⇔ det(BTB) =
(n∏i=1
‖b∗i ‖)2
⇔n∏i=1
‖b∗i ‖ =√
det(BTB)
⇔ det(Λ) =√
det(BTB)
�
Berikut merupakan proposisi yangmenjelaskan bahwa determinan suatu latistidak bergantung pada pemilihan suatubasis.
Proposisi 3.5 Jika A ∼ B, makadet(L(A)) = det(L(B)).
Bukti:Misalkan A ∼ B, dengan A dan B
adalah bentuk matriks dari A dan B.
8
Berdasarkan proposisi 3.2 terdapat sebuahmatriks unimodular U sehingga A = BU.Dengan demikian,
det(L(A)) =√
det(ATA)
=
√det((BU)
T(BU))
=√
det(UT (BTB)U)
=√
det(BTB)
= det(L(B))
�
3.2.1 Kompleksitas Gram-SchmidtDalam OGS terlihat bahwa banyaknya
operasi aritmetik yang dilibatkan dalamOGS adalah O(n3). Namun belum dapatdisimpulkan bahwa waktu running padaOGS adalah polinomial. Harus dipastikanterlebih dahulu bahwa bilangan-bilanganyang diproses pada OGS tidak tumbuhterlalu besar.Diasumsikan bahwa matriks B yang
digunakan adalah matriks intejer.Perhatikan bahwa langkah ke-j dari OGSdapat dirumuskan ulang sebagai
b∗j = bj +
j−1∑i=1
vjibi untuk suatu vji ∈ R
(3.1)Karena b∗j ortogonal ke bt untuk setiapt < j, maka diperoleh
bt · b∗j = (bt · bj) +
(bt ·
j−1∑i=1
vjibi
)
⇔ 0 = (bt · bj) +
(bt ·
j−1∑i=1
vjibi
)
⇔ bt ·j−1∑i=1
vjibi = −(bt · bj) (3.2)
Untuk t = 1, 2, . . . , j − 1, Persamaantersebut bisa ditulis dalam bentuk matriks
b1 ·∑j−1i=1 vjibi
b2 ·∑j−1i=1 vjibi...
bj−1 ·∑j−1i=1 vjibi
= −
b1 · bjb2 · bj...
bj−1 · bj
Jika didefinisikan matriks
Bj−1 =(
b1 b2 · · · bj−1)
dan matriks
uj =
vj1vj2...
vj,j−1
maka persamaan (3.2) dapat ditulis sebagai
b1 · (Bj−1uj)b2 · (Bj−1uj)
...bj−1 · (Bj−1uj)
= −
b1 · bjb2 · bj...
bj−1 · bj
⇔ BT
j−1(Bj−1uj) = −BTj−1bj
⇔ (BTj−1Bj−1)uj = −BT
j−1bj(3.3)
Persamaan 3.3 merupakan SPL denganmatriks koefisien BT
j−1Bj−1 dan vektor−BT
j−1bj adalah intejer. Dengan demikian,untuk s = 1, 2, . . . , j − 1, berdasarkanaturan Cramer diperoleh
vjs ∈Z
det(BTj−1Bj−1)
=Z
det(L(Bj−1))2
Hasil ini akan digunakan untuk memberibatas pada koefisien µji. MisalkanDj−1 = det(BT
j−1Bj−1) dan dikalikannilainya kedua ruas dari persamaan 3.1maka diperoleh
Dj−1b∗j = Dj−1bj +
j−1∑i=1
(Dj−1vji)bi
merupakan persamaan yang semuakoefisien vektornya adalah intejer. Iniberarti semua penyebut dari bilangandalam vektor b∗j adalah faktor dari Dj−1.Kemudian
µji =bj · b∗ib∗i · b∗i
=Di−1(bj · b∗i )Di−1(b∗i · b∗i )
=bj · (Di−1b
∗i )(
i−1∏s=1
‖b∗s‖2
)‖b∗i ‖
2
∈ ZDi
Hasil ini menunjukkan bahwa penyebut dariµji harus membagi Di.Uraian di atas membuktikan bahwa
bilangan-bilangan yang ada di dalam vektorb∗i dan µji memunyai penyebut palingbanyak
maxk
Dk ≤n∏i=k
‖b∗k‖2
9
Akhirnya, besarnya bilangan jugapolinomial karena
∥∥b∗j∥∥ ≤ ‖bj‖.Dengan demikian secara keseluruhanOGS memunyai kompleksitas wakturunning polinomial. Hasil ini bermanfaatuntuk menganalisis algoritme LLL yangmerupakan algoritme yang berbasiskanOGS.
3.3 Permasalahan dalam LatisBerikut merupakan pengertian jarak
minimum dan panjang vektor minimumdari suatu latis.
Definisi 3.10 Jarak minimum antarasembarang dua titik di dalam latis Λ,dinotasikan dengan λ(Λ), didefinisikansebagai
λ(Λ) = inf{‖x− y‖�x,y ∈ Λ,x 6= y}
Definisi 3.11 Panjang vektor minimumdi antara titik-titik di dalam latis Λ,dinotasikan dengan π(Λ), didefinisikansebagai
π(Λ) = inf{‖x‖�x ∈ Λ,x 6= 0}
Dua pengertian di atas memiliki artiyang ekuivalen. Hal tersebut dinyatakandalam proposisi berikut.
Proposisi 3.6 Untuk sembarang latis Λ ,berlaku
λ(Λ) = π(Λ).
Bukti:Karena Λ adalah grup, maka berlaku
λ(Λ) = inf{‖x− y‖�x,y ∈ Λ,x 6= y}= inf{‖z‖�z = x− y ∈ Λ,x 6= y}= inf{‖z‖�z ∈ Λ, z 6= 0}= π(Λ)
�
Berikut merupakan batas bawah dari λ.
Teorema 3.1 Jika Λ = L(B) adalahlatis yang dibangkitkan oleh basis B ={b1,b2, . . . ,bn} dan B∗ = {b∗1,b∗2, . . . ,b∗n}adalah hasil ortogonalisasi dari B, maka
minj∈In
∥∥b∗j∥∥ ≤ λ(Λ), In = {1, 2, . . . , n}
Bukti:Ambil sembarang v ∈ L(B) dengan
v 6= 0, maka ada vektor x ∈ Zn denganx 6= 0 sehingga
v = Bx
dengan B adalah bentuk matriks dari B.Misalkan x = {x1, x2, . . . , xn} dan k adalahindeks terbesar dari komponen x sehinggaxk 6= 0, Karena untuk setiap j < k, b∗kortogonal ke bj dan juga ortogonal ke b∗j ,maka
v · b∗k = (Bx) · b∗k
=
k∑j=1
xjbj
·b∗k= xk(bk·b∗k)
dan
b∗k · b∗k =
bk −k−1∑j=1
µkjb∗j
· b∗k= bk · b∗k.
Dengan demikian diperoleh
v · b∗k = xk(b∗k·b∗k)
= xk ‖b∗k‖2
⇒ |v · b∗k| = |xk| ‖b∗k‖2
Berdasarkan ketaksamaan Cauchy-Schwartz,maka diperoleh
|v · b∗k| ≤ ‖v‖ ‖b∗k‖⇔ |xk| ‖b∗k‖
2 ≤ ‖v‖ ‖b∗k‖⇔ |xk| ‖b∗k‖ ≤ ‖v‖
Karena |xk| ≥ 1, untuk In = {1, 2, . . . , n}diperoleh
minj∈In
∥∥b∗j∥∥ ≤ ‖b∗k‖
≤ ‖v‖
Selanjutnya, karena v adalah sembarangvektor dalam L(B), maka dapatdisimpulkan
minj∈In
∥∥b∗j∥∥ ≤ λ(Λ)
�
Selanjutnya akan didefinisikan masalahyang paling mendasar di dalam latis, yaituSVP. Berikut merupakan varian dari SVP.
10
Soal 3.1 (Pelacakan SVP) Diberikansebuah latis dengan basis B, carilahx ∈L(B) sehingga
‖x‖ = λ(L(B))
Soal 3.2 (Optimisasi SVP) Diberikansebuah latis dengan basis B, carilahλ(L(B)).
Soal 3.3 (Pelacakan SVP) Diberikansebuah latis dengan basis B dan bilanganrasional q ∈ Q, tentukan apakah
λ(L(B)) ≤ q atau λ(L(B)) > q
Soal 3.4 (Pelacakan SVP) Diberikansebuah latis dengan basis B dan γ ≥ 1,carilah x ∈L(B) dengan x 6= 0 sehingga
‖x‖ ≤ γ λ(L(B))
Soal 3.5 (Pelacakan SVP) Diberikansebuah latis dengan basis B dan γ ≥ 1,carilah d sehingga
d ≤ λ(L(B)) ≤ γd
3.4 Algoritme LLL3.4.1 Pengertian Basis TerreduksiBerikut merupakan definisi dari basis
terreduksi δ.
Definisi 3.12 Suatu basis B = [b1,b2, . . . ,bn] dalam Rm disebut terreduksi δ (atauterreduksi LLL dengan parameter δ) jikamemenuhi1.∣∣µji∣∣ ≤ 1
2 , untuk setiap intejer i, j,dengan 1 ≤ i < j ≤ n,
2. δ ‖πj(bj)‖2 ≤ ‖πj(bj+1)‖2, untuk j =1, 2, . . . , n− 1,
dimana δ merupakan parameter reduksiyang bernilai real dengan 1
4 < δ < 1.
Syarat pertama dalam definisi diatas disebut dengan reduksi ukuran.Syarat pertama mengatakan bahwa basisterreduksi δ harus "hampir ortogonal"dan dalam komputasinya syarat ini mudahdicapai OGS. Pembahasan mengenai syaratpertama akan dibahas pada subbab 3.4.2.Sedangkan pada syarat kedua dari
definisi di atas disebut syarat pertukaran,atau disebut juga kondisi Lovasz, yang
dapat ditulis ulang sebagai
δ∥∥b∗j∥∥2 ≤ ∥∥b∗j+1 + µj+1,jb
∗j
∥∥2⇔ (δ − µ2j+1,j)
∥∥b∗j∥∥2 ≤ ∥∥b∗j+1∥∥2 .(3.5)Ketaksamaan 3.5 menyatakan bahwavektor-vektor Gram-Schmidt dari basisterreduksi LLL harus terurut turun denganfaktor penurunan sebesar δ − µ2j+1,j . Jikaterdapat pasangan vektor (b∗j ,b
∗j+1) yang
tidak memenuhi kondisi Lovasz, makadapat dilakukan pertukaran antara vektortersebut kemudian OGS kembali dilakukan.Selanjutnya dengan menerapkan
syarat-syarat yang terdapat pada definisi3.12, maka didapatkan batas atas untuk‖b1‖ dari basis terreduksi δ.
Teorema 3.2 Jika B = [b1,b2, . . . ,bn]dalam Rm adalah basis terreduksi δ, makaberlaku
‖b1‖ ≤ αn−12 λ(Λ)
dengan α = 1δ− 1
4
.
Bukti:Misalkan B = [b1,b2, . . . ,bn] adalah
basis terreduksi δ, dari definisi didapatkan∥∥b∗j+1∥∥2 ≥ (δ − µ2j+1,j)∥∥b∗j∥∥2
≥(δ − 1
4
)∥∥b∗j∥∥2≥ 1
α
∥∥b∗j∥∥2⇔∥∥b∗j∥∥2 ≤ α ∥∥b∗j+1∥∥2 (i)
Maka dengan menerapkan ketaksamaan (i)secara berulang, diperoleh
‖b∗1‖2 ≤ α ‖b∗2‖
2
≤ α2 ‖b∗3‖2
...
≤ αn−1 ‖b∗n‖2 .
Atau dengan kata lain, secara umum untuksetiap j ∈ In = {1, 2, . . . n}, berlaku
‖b∗1‖2 ≤ αj−1
∥∥b∗j∥∥2⇒ ‖b∗1‖ ≤ α
j−12
∥∥b∗j∥∥⇔ ‖b1‖ ≤ α
j−12
∥∥b∗j∥∥Karena berlaku untuk setiap j ∈ In, maka
‖b1‖ ≤(αn−12
)(minj∈In
∥∥b∗j∥∥) (ii)
11
Misalkan B = [b1,b2, . . . ,bn] adalah basisterreduksi LLL untuk latis Λ = L(B),menurut teorema 3.1 diperoleh
minj∈In
∥∥b∗j∥∥ ≤ λ(Λ)
sehingga ketaksamaan (ii) menjadi
‖b1‖ ≤ αn−12 λ(Λ)
�
Teorema 3.2 menyatakan bahwa vektorpertama pada basis terreduksi δ merupakanjawaban dari soal 3.4 dengan nilai γ =
αn−12 .
3.4.2 Reduksi UkuranSebagaimana telah dinyatakan
sebelumnya bahwa syarat reduksi ukuran(yaitu
∣∣µji∣∣ ≤ 12 ) mudah dicapai dengan
menggunakan OGS. Selanjutnya akandibahas syarat reduksi ukuran melaluiinterpretasi geometrik. Untuk akan dibahasterlebih dahulu definisi berikut.
Definisi 3.13 Misalkan Λ = L(B) adalahlatis yang dibangkitkan oleh basis B =[b1,b2, . . . ,bn] dalam ruang vektor Rm.Daerah fundamental terpusat (centeredfundamental region) dari Λ, dinotasikandengan C(B), didefinisikan sebagai:
C(B) =
n∑j=1
xjbj�xj ∈ R,−1
2≤ xj ≤
1
2
.C(B) juga disebut parallelepipeddasar terpusat (centered fundamentalparallelepiped).
Proposisi 3.7 Jika Λ = L(B) adalahlatis yang dibangkitkan oleh basis B =[b1,b2, . . . ,bn] dalam ruang vektor Rm,maka untuk setiap vektor w ∈ 〈B〉, adatepat satu vektor t ∈ C(B) sehingga dapatdituliskan w = v + t
Bukti:Karena B merupakan basis untuk Λ,
maka B juga merupakan basis untuk ruangvektor 〈B〉. Dan karena w ∈ 〈B〉, maka adatepat satu (w1, w2, . . . , wn) ∈ Rn sehingga
w =n∑j=1
wjbj .
Kemudian, karena wj ∈ R, maka ada
bwje ∈ Z sehingga
wj = bwje+ tj , dengan −1
2≤ tj ≤
1
2.
Selanjutnya,
w =n∑j=1
(bwje+ tj) bj
=n∑j=1
bwjebj +n∑j=1
tjbj
= v + t
�
Lemma 3.2 Misalkan B∗ = [b∗1,b∗2, . . . ,
b∗n] adalah hasil proses ortogonalisasiGram-Schmidt dari himpunan bebas linearB = [b1,b2, . . . ,bn], dan diberikansembarang w ∈ 〈B〉. Jika w =
∑nj=1 wjbj ,
maka
wn =w · b∗nb∗n · b∗n
Bukti:Perhatikan bahwa
w · b∗n =
n∑j=1
wjbj
·b∗n=
n∑j=1
wj (bj ·b∗n)
= wn (bn·b∗n)
⇔ wn =w · b∗nbn · b∗n
Selanjutnya akan ditunjukkan bahwa bn ·b∗n = b∗n · b∗n,
bn · b∗n =
(b∗n +
n−1∑i=1
µnib∗i
)· b∗n
= b∗n · b∗n +n−1∑i=1
µni (b∗i · b∗n)
= b∗n · b∗n�
Sifat dari daerah fundamental terpusatdinyatakan dalam proposisi berikut.
Proposisi 3.9 Jika B∗ = [b∗1,b∗2, . . . ,b
∗n]
adalah hasil OGS dari basis latis B =[b1,b2, . . . ,bn], maka setiap w ∈ 〈B〉, adatepat satu vektor latis v ∈ L(B) dan adatepat satu vektor t ∈ C(B∗) sehingga dapat
12
dituliskan w = v + t.
Bukti:Demi kepentingan bagaimana
menentukan v dan t secara algoritmik,proposisi akan dibuktikan secara instruktif.Kemudian, tanpa mengurangi keumuman,akan diambil untuk kasus n = 3 sebagaiberikut.1. Definisikan w3 = w. Karena w3 ∈〈{b1,b2,b3}〉, berarti ada tepat satu(x31, x32, x33) ∈ R3 sehingga
w3 =3∑j=1
x3jbj
dan berdasarkan lemma 3.2, dapatdituliskan
w3 =2∑j=1
x3jbj +w3 · b∗3b∗3 · b∗3
b3
=
2∑j=1
x3jbj +
(⌊w3 · b∗3b∗3 · b∗3
⌉+
t3b3)
dengan − 12 ≤ t3 ≤12 . Selanjutnya,
w3 =2∑j=1
x3jbj +
(⌊w3 · b∗3b∗3 · b∗3
⌉b3+
t3b3)
=2∑j=1
x3jbj +
⌊w3 · b∗3b∗3 · b∗3
⌉b3 +
t3
(b∗3 +
2∑i=1
µ3ib∗i
)
⇔ w3 −⌊
w3 · b∗3b∗3 · b∗3
⌉b3 + (t3b
∗3) =
2∑j=1
x3jbj +2∑i=1
t3µ3ib∗i (i)
2. Definisikan
w2 = w3 −(⌊
w3 · b∗3b∗3 · b∗3
⌉b3+
t3b∗3).
Dari persamaan (i) dan karena〈{b1,b2}〉 = 〈{b∗1,b∗2}〉, maka w2 ∈〈{b1,b2}〉. Dengan ada tepat satu(x21, x22) ∈ R2 sehingga
w2 = x21b1 + x22b2
dan berdasarkan lemma 3.2, dapat
dituliskan
w2 = x21b1 +w2 · b∗2b∗2 · b∗2
b2
= x21b1 +
(⌊w2 · b∗2b∗2 · b∗2
⌉+
t2)b2
dengan − 12 ≤ t2 ≤12 . Selanjutnya,
w2 = x21b1 +
⌊w2 · b∗2b∗2 · b∗2
⌉b2 +
t2b2
= x21b1 +
⌊w2 · b∗2b∗2 · b∗2
⌉b2 +
t2(b∗2 + µ21b
∗1)
⇔ w2 −(⌊
w2 · b∗2b∗2 · b∗2
⌉b2 + t2b
∗2
)=
x21b1 + t2µ21b∗1 =
(x21 + t2µ21)b1 (ii)
3. Definisikan
w1 = w2 −(⌊
w2 · b∗2b∗2 · b∗2
⌉b2 + t2b
∗2
).
Dari persamaan (ii), maka w1 ∈ 〈{b1}〉dan ada x11 ∈ R sehingga w1 =x11b1. Berdasarkan lemma 3.2, dapatdituliskan
w1 =w1 · b∗1b∗1 · b∗1
b1
=
(⌊w1 · b∗1b∗1 · b∗1
⌉+ t1
)b1
=
⌊w1 · b∗1b∗1 · b∗1
⌉b1 + t1b
∗1
dengan − 12 ≤ t1 ≤ 12 . Dari ketiga
langkah di atas, didapatkan bahwa
w1 =
⌊w1 · b∗1b∗1 · b∗1
⌉b1 + t1b
∗1
w2 = w1 +
⌊w2 · b∗2b∗2 · b∗2
⌉b2 + t2b
∗2
w3 = w2 +
⌊w3 · b∗3b∗3 · b∗3
⌉b3 + t3b
∗3
Karena w = w3, maka dapat dituliskan
w = v + t
dimana
v =
⌊w1 · b∗1b∗1 · b∗1
⌉b1 +
⌊w2 · b∗2b∗2 · b∗2
⌉b2 +⌊
w3 · b∗3b∗3 · b∗3
⌉b3
t = t1b∗1 + t2b
∗2 + t3b
∗3
13
dan dapat dilihat bahwa v ∈ L(B) dant ∈ C(B∗) �
Bukti dari proposisi sekaligusmerupakan bukti kebenaran dari algoritmeberikut.
Algoritme 3.1Input: B = [b1,b2, . . . ,bn] basis untukL(B) dan w ∈ 〈B〉.Output: Vektor latis v ∈ L(B) dan vektort ∈ C(B∗).1. Dengan OGS, hitung [b∗1,b
∗2, . . . ,b
∗n]
dengan input B.2. v := 03. t := 04. Untuk i = n, n− 1, . . . , 1, lakukan:
a. xi :=w·b∗ib∗i ·b∗i
b. vi := bxiec. v := v + vibid. ti := xi − vie. t := t + tib
∗i
f. w := w − (vibi + tib∗i )
5. return(v dan t)
Algoritme di atas dapat disederhanakanhanya untuk menentukan vektor v sebagaiberikut.
Algoritme 3.2 (Menentukan vektorterdekat)Input: B = [b1,b2, . . . ,bn] basis untukL(B) dan w ∈ 〈B〉.Output: Vektor latis v ∈ L(B)1. Dengan OGS, hitung [b∗1,b
∗2, . . . ,b
∗n]
dengan input B.2. v := 03. Untuk i = n, n− 1, . . . , 1, lakukan:
a. xi :=w·b∗ib∗i ·b∗i
b. vi := bxiec. v := v + vibid. ti := xi − vie. w := w − (vibi + tib
∗i )
4. return(v)
Akibat dari proposisi 3.7 diberikandalam teorema berikut.
Teorema 3.3 Jika B∗ = [b∗1,b∗2, . . . ,b
∗n]
adalah hasil proses ortogonalisasiGram-Scmidt dari basis latis B =[b1,b2, . . . ,bn], maka B dapatditransformasikan menjadi B′ =[b′1,b
′2, . . . ,b
′n] yang juga merupakan basis
untuk L(B) dan B∗ juga merupakan hasil
ortogonalisasi Gram-Scmidt dari B′. Dalamhal ini,
b∗1 = b′1
b∗j = b′j −j−1∑i=1
µ′jib∗i
untuk j = 2, 3, . . . , n, dengan
µ′ji =b′j · b∗ib∗i · b∗i
dan∣∣µ′ji∣∣ ≤ 1
2.
Bukti:Transformasi dari B ke B′ akan
dilakukan secara instruktif sebagai berikut.1. Definisikan
b′1 = b1
Dalam hal ini, diperoleh subruangvektor berdimensi-1, yaitu
S1 = 〈{b1}〉= 〈{b′1}〉= 〈{b∗1}〉
2. Dari proses ortogonalisasi b2 ke b∗2berlaku hubungan
b∗2 = b2 − p1
dengan p1 = µ21b∗1 =
b2·b∗1b∗1 ·b∗1
b∗1 adalahvektor proyeksi dari b2 pada S1 berartip1 ∈ S1. Dengan demikian, berdasarkanproposisi 3.6, ada vektor latis v1 ∈L({b1}) dan vektor t1 ∈ C({b∗1})sehingga
p1 = v1 + t1
dan diperoleh
b∗2 = b2 − (v1 + t1)
= (b2 − v1)− t1.
Kemudian dari persamaan di atas dapatdidefinisikan
b′2 = b2 − v1
sehingga jelas (karena latis adalah grup)bahwa b′2 ∈ L(B) dan diperolehpersamaan
b∗2 = b′2 − t1.
Hasil ini menunjukkan bahwaortogonalisasi {b′1,b′2} juga menghasilkan{b∗1,b∗2} dengan vektor proyeksi dari b′2
14
pada S1 adalah
t1 = µ′21b∗1
=b′2 · b∗1b∗1 · b∗1
b∗1
dalam hal ini
µ′21 = µ21 − bµ21e
sehingga |µ′21| ≤ 12 . Selanjutnya, untuk
menghitung b′2 berarti ukup menghitungv1 menggunakan algoritme 3.2 dan
b′2 = b2 − v1
Sebelum ke langkah berikutnya,dinotasikan terlebih dahulu subruangvektor berdimensi-2, yaitu
S2 = 〈{b1,b2}〉= 〈{b′1,b′2}〉= 〈{b∗1,b∗2}〉
3. Dari proses ortogonalisasi b3 ke b∗3berlaku hubungan
b∗3 = b3 − p2
dengan
p2 = µ31b∗1 + µ32b
∗2
p2 dimana adalah vektor proyeksi darib3 pada S2 berarti p2 ∈ S2. Dengandemikian,berdasarkan proposisi 3.6, adavektor latis v2 ∈ L({b1,b2}) dan vektort2 ∈ C({b∗1,b∗2}) sehingga
p2 = v2 + t2
dan diperoleh
b∗3 = b3 − (v2 + t2)
= (b3 − v2)− t2.
Kemudian dari persamaan di atas dapatdidefinisikan
b′3 = b3 − v2
sehingga jelas bahwa b′3 ∈ L(B) dandiperoleh persamaan
b∗3 = b′3 − t3.
Hasil ini menunjukkan bahwaortogonalisasi b′3 juga menghasilkan b∗3dengan vektor proyeksi dari b′3 pada S2adalah
t1 = µ′31b∗1 + µ′32b
∗2
=b′3 · b∗1b∗1 · b∗1
b∗1 +b′3 · b∗2b∗2 · b∗2
b∗2
dalam hal ini, untuk i = 1, 2, berlaku
µ′3i = µ3i − bµ3ie
sehingga |µ′3i| ≤ 12 . Selanjutnya,
untuk menghitung b′3 berarti cukupmenghitung v2 menggunakan algoritme3.2 dan
b′3 = b3 − v2
Demikian seterusnya, dari 3 langkahdi atas secara rekursuf dapat dilanjutkansampai langkah ke-n untuk memperolehbasis latis B′ hasil transformasi dari basislatis B. �
Makna geometrik dari transformasi Bke B′ dalam teorema 3.3 beserta buktinyaadalah memperkecil panjang vektor basis,yaitu untuk j = 1, 2, . . . , n berlaku ‖bj‖ ≥∥∥b′j∥∥. Hal ini terlihat dari vektor proyeksipi−1 hasil proyeksi dari bi ke subruang Si−1untuk i = 2, 3, . . . , n, ditransformasikanke vektor proyeksi ti−1, hasil proyeksidari b′i ke subruang Si−1. Jika pi−1 ∈C([b∗1,b∗2, . . . ,b∗i−1]), maka bi ≥ b′i,tetapi jika pi−1 /∈ C([b∗1,b∗2, . . . ,b∗i−1]),maka bi ditransformasikan b′i denganvektor proyeksi pada Si−1 adalah t ∈C([b∗1,b∗2, . . . ,b∗i−1]) sehingga ‖bi‖ ≥ ‖b′i‖.Dengan demikian, teorema 3.3 beserta
buktinya merupakan landasan teori yangdigunakan untuk menyusun algoritmereduksi ukuran dari algoritme LLL berikutini.
Algoritme 3.3 (Reduksi Ukuran LLL)Input: B = [b1,b2, . . . ,bn] basis untukL(B)Output: B∗ = [b∗1,b
∗2, . . . ,b
∗n] adalah
hasil proses ortogonalisasi Gram-Schmidtdari B dan B′ = [b′1,b
′2, . . . ,b
′n] adalah
hasil reduksi ukuran dari B1. b∗1 := b12. b′1 := b1.3. Untuk j = 2, 3, . . . , n, lakukan:
a. p := 0b. Untuk i = 1, 2, . . . , j − 1, lakukan:
i. µji :=bj ·b∗ib∗i ·b∗i
ii. p := p + µjib∗i
c. Gunakan algoritme 3.2 untukmenghitung vektor v dengan inputB = [b1,b2, . . . ,bn] dan B∗ =[b∗1,b
∗2, . . . ,b
∗n] serta p
d. b′j := bj − v4. return([b∗1,b
∗2, . . . ,b
∗n]
15
dan [b′1,b′2, . . . ,b
′n])
Berikut ini langkah-langkah ilustratif
penyusunan algoritme reduksi ukuran LLLyang sifatnya rekursif tanpa memanggilalgoritme 3.2
1. Untuk j = 1, definisikan langsung
b∗1 := b1 dan b′1 := b1
2. Untuk j = 2, perhatikan bahwa p1 = µ21b∗1, berdasarkan algoritme 3.2, maka
v1 =
⌊p · b∗1b∗1 · b∗1
⌉b∗1
= bµ21eb1Jadi, untuk menghitung b∗2 dan b′2, cukup menghitung dahulu µ21, kemudian
b∗2 = b2 − p1
= b2 − µ21b∗1dan
b∗2 = b2 − v1
= b2 − bµ21eb13. Untuk j = 3, perhatikan bahwa p2 = µ31b
∗1 + µ32b
∗2, berdasarkan algoritme 3.2,
nyatakan v2 = v22 + v21 sehingga
v22 =
⌊(p2 · b∗2b∗2 · b∗2
⌉b1
= bµ32eb2
v21 =
⌊p2 − bµ32eb2 − µ′32b∗2) · b∗1
b∗1 · b∗1
⌉b1
= bµ31 − bµ32eµ21eb1Jadi, untuk menghitung b∗3 dan b′3, dapat dilakukan secara rekursif sebagai berikut.(a) untuk i = 2, hitung µ32, kemudian
b∗3 = b3 − µ32b∗2dan
b′3 = b3 − v22
= b3 − bµ32eb2(b) untuk i = 1, hitung µ31, kemudian
b∗3 = b3 − µ31b∗1dan
b′3 = b′3 − v21
= b′3 − bµ31 − bµ32e (µ21)eb14. Untuk j = 4, perhatikan bahwa p3 = µ41b
∗1 + µ42b
∗2 + µ43b
∗3, berdasarkan algoritme
16
3.2, nyatakan v3 = v33 + v32 + v31 sehingga
v33 =
⌊p3 · b∗3b∗3 · b∗3
⌉b3
=
⌊(µ43b
∗3) · b∗3
b∗3 · b∗3
⌉b3
= bµ43eb3
v32 =
⌊(p− ( bµ43eb3 + µ′43b
∗3)) · b∗2
b∗2 · b∗2
⌉b2
= bµ42 − bµ43e (µ32)eb2
v31 =
⌊(p− ( bµ43eb3 + µ′43b
∗3)− (bµ42eb2 + µ′42b
∗2) · b∗1
b∗1 · b∗1
⌉b1
= bµ41 − bµ43eµ31 − bµ42eµ21eb1Jadi, untuk menghitung b∗4 dan b′4, dapat dilakukan secara rekursif sebagai berikut(a) untuk i = 3, hitung µ43, kemudian
b∗4 = b4 − µ43b∗3dan
b′4 = b4 − bµ43eb3(b) untuk i = 2, hitung µ42, kemudian
b∗4 = b∗4 − µ42b∗2dan
b′4 = b′4 − bµ42 − bµ43eµ32eb3(c) untuk i = 1, hitung µ41, kemudian
b∗4 = b∗4 − µ41b∗1dan
b′4 = b′4 − bµ41 − bµ43eµ31 − bµ42eµ21eb3
Berdasarkan pola dari 4 langkah di atas,berikut ini diberikan algoritme reduksiukuran yang sifatnya rekursif.
Algoritme 3.4 (Reduksi Ukuran LLL)Input: B = [b1, b2, . . . ,bn] basis untukL(B)Output: B∗ = [b∗1, b
∗2, . . . ,b
∗n] adalah hasil
proses ortogonalisasi Gram-Schmidt dariB dan B′ = [b′1, b
′2, . . . ,b
′n] adalah hasil
reduksi ukuran dari B.1. b∗1 := b12. b′1 := b13. µ21 :=
b2·b∗1b∗1 ·b∗1
4. b∗2 := b2 − µ21b∗15. b′2 := b2 − bµ21eb16. Untuk j = 3, 4, . . . , n, lakukan:
(a) b∗j := bj(b) bj := bj
(c) µj,j−1 :=bj ·b∗j−1b∗j−1·b∗j−1
(d) b∗j := b∗j − µj,j−1b∗j−1(e) b′j := b′j − µj,j−1bj−1(f) Untuk i = j − 2, j − 3, . . . , 1,
lakukan:i. µji :=
bj ·b∗ib∗i ·b∗i
ii. b∗j := b∗j − µjib∗iiii. c := µjiiv. Untuk k = i, i + 1, . . . , j − 2,
lakukan:A. c := c−
⌊µj,k+1
⌉µk+1,i
v. b′j := b′j − bcebi7. return([b∗1, b
∗2, . . . ,b
∗n]
dan [b′1, b′2, . . . ,b
′n])
Berikut ini merupakan langkah-langkahilustratif penyusunan algoritme reduksiukuran LLL dengan menggunakan rumusrekursif yang lebih sederhana
17
1. Untuk j = 1, definisikan langsung
b∗1 = b1 dan b′1 = b1
2. Untuk j = 2, perhatikan bahwa p1 = µ21b∗1, berdasarkan algoritme 3.2, maka
v1 =
⌊p1 · b∗1b∗1 · b∗1
⌉b∗1
= bµ21eb1Jadi, untuk menghitung b∗2 dan b′2 cukup menghitung dahulu µ21, kemudian
b∗2 = b2 − p1
= b2 − µ21b∗1dan
b′2 = b2 − v1
= b2 − bµ21eb13. Untuk j = 3, dari uraian sebelumnya,
b′3 = (b3 − bµ32eb2)− bµ31 − bµ32eµ21eb1
= (b3 − bµ32eb2)−⌊
(b3 − bµ32eb2) · b∗1b∗1 · b∗1
⌉b1
= x− y
x = b3 − bµ32e (b′2 + bµ21eb1)= b3 − bµ32eb′2 − bµ32e bµ21eb1
y =
⌊(b3 − bµ32e (b′2 − bµ21eb1)) · b∗1
b∗1 · b∗1
⌉b1
=
⌊(b3 − bµ32eb′2 − bµ32e bµ21eb1) · b∗1
b∗1 · b∗1
⌉b1
=
⌊(b3 − bµ32eb′2) · b∗1
b∗1 · b∗1− bµ32e bµ21e
⌉b1
=
⌊(b3 − bµ32eb′2) · b∗1
b∗1 · b∗1
⌉b1 − bµ32e bµ21eb1
Dengan demikian, diperoleh
b′3 = (b3 − bµ32eb′2)−⌊
(b3 − bµ32eb′2) · b∗1b∗1 · b∗1
⌉b1
Jadi,untuk menghitung b∗3 dan b′3, dapat dilakukan secara rekursif sebagai berikut(a) untuk i = 2, hitung µ32, kemudian
b∗3 = b3 − µ32b∗2dan
b′3 = b3 − bµ32eb′2(b) untuk i = 1, hitung µ31, kemudian
b∗3 = b3 − µ31b∗1dan
b′3 = b′3 −⌊
b′3 · b∗1b∗1 · b∗1
⌉b1
18
Berdasarkan pola dari 3 langkah di atas,berikut ini diberikan algoritme reduksiukuran yang sifatnya rekursif
Algoritme 3.5 (Reduksi Ukuran LLL)Input: B = [b1,b2, . . . ,bn] basis untukL(B)Output: B∗ = [b∗1,b
∗2, . . . ,b
∗n] adalah
hasil proses ortogonalisasi Gram-Schmidtdari B dan B′ = [b′1,b
′2, . . . ,b
′n] adalah
hasil reduksi ukuran dari B.1. b∗1 := b12. b′1 := b13. Untuk j = 2, 3, . . . , n, lakukan:
(a) Untuk i = j − 1, j − 2, . . . , 1,lakukan:i. µji :=
bj ·b∗ib∗i ·b∗i
ii. b∗j := b∗j − µjib∗iiii. µ′ji :=
b′j ·b∗i
b∗i ·b∗iiv. b′j := b′j −
⌊µ′ji⌉
bi4. return([b∗1,b
∗2, . . . ,b
∗n]
dan [b′1,b′2, . . . ,b
′n])
3.4.3 Algoritme LLL dan AnalisisnyaDari pembahasan sebelumnya, dapat
disimpulkan bahwa algoritme LLL adalahalgoritme yang mentransformasikan basisB menjadi basis B′ dengan menerapkanalgoritme reduksi ukuran. Kemudian,ketika kondisi Lovasz tidak memenuhi,algoritme LLL akan melakukan penukaranpada vektor pasangan vektor (bj ,bj+1) danreduksi ukuran kembali dilakukan. Jikaada beberapa pasang vektor (bj ,bj+1)yang tidak memenuhi kondisi Lovasz,tidak ada masalah pasangan vektor yangharus ditukar terlebih dahulu. Bahkanpasangan vektor tersebut dapat ditukarsecara bersamaan, yang mengarah padavarian algoritme LLL paralel. Algoritmeyang asli akan melakukan penukaran padapasangan vektor dengan nilai j terkecil.Berikut merupakan garis besar deskripsialgoritme LLL.
1. (Langkah Reduksi Ukuran)Terapkan algoritme reduksi ukuran padaB.
2. (Langkah Penukaran) Jika ada j ∈{2, 3, . . . , n} yang memenuhi(
δ − (µj,j−1)2) ∥∥b∗j−1∥∥2 > ∥∥b∗j∥∥2
maka tukar b∗j−1 dan b∗j , kemudiankembali ke langkah 1.
3. Jika tidak, algoritme selesai.
Sedangkan bentuk praktis algoritmeLLL diberikan sebagai berikut.
Algoritme 3.6 (Algoritme LLL)Input: B = [b1,b2, . . . ,bn] basis untukL(B) dan 1
4 < δ < 1.Output: B = [b1,b2, . . . ,bn] adalahbasis terreduksi LLL untuk L(B) danB∗ = [b∗1,b
∗2, . . . ,b
∗n] adalah hasil proses
ortogonalisasi Gram-Schmidt dari B.1. Inisialisasi b∗1 := b1.2. j := 2.3. Reduksi Ukuran. Sementara j ≤ n,hitung:(a) b∗j := bj .(b) Untuk i = j − 1 s.d. i = 1, hitung:
i. µji :=bj ·b∗ib∗i ·b∗i
ii. b∗j := b∗j − µjib∗i .iii. bj := bj −
⌊µji⌉
bi.(c) Penukaran.
Jika(δ − (µj,j−1)
2) ∥∥b∗j−1∥∥2 >∥∥b∗j∥∥2, maka
i. jika j = 2,A. tukar b1 dan b2B. b∗1 := b2
ii. jika j > 2,A. tukar bj−1 dan bjB. j := j − 1
Selainnya, j := j + 14. return([b1,b2, . . . ,bn]dan [b∗1,b
∗2, . . . ,b
∗n])
Algoritme LLL merupakan algoritmeyang mampu menghitung menghitungvektor terpendek dalam suatu latis L(B).Namun ketika n cukup besar dan basisB cukup jauh dari ortogonal, makaalgoritme LLL sulit untuk menghasilkanvektor terpendek. Hal ini disebabkankarena prinsip algoritme LLL yangmentransformasikan B ke suatu basis yang"hampir ortogonal". Sehingga jika basis Bjauh dari ortogonal, maka kerja algoritmeLLL semakin berat.Karena basis B memengaruhi kinerja
dari algoritme LLL, maka suatu basis dapatdiklasifikasikan berdasarkan jauh dekatnyabasis tersebut dari ortogonal.
Definisi 3.14 Basis latis B dikatakan bagusjika B mendekati ortogonal. Sedangkanbasis latis B dikatakan buruk jika basistersebut jauh dari ortogonal.
19
Suatu nilai yang dapat menjadiindikator sebuah basis baik atau burukdidefinisikan sebagai berikut.
Definisi 3.15 Rasio Hadamard dari suatubasis latis B = {b1, b2, . . . , bn}, dinotasikandengan H(B), didefinisikan sebagai
H(B) =
det(Λ)n∏j=1
‖bj‖
1n
Karena nilai 0 < H(B) ≤ 1 danmemenuhi sifat "semakin dekat nilai H(B)ke 1, semakin dekat B ke ortogonal". Makabasis B dikatakan bagus jika nilai H(B)dekat ke 1 dan basis B dikatakan buruk jikanilai H(B) dekat ke 0.Selanjutnya akan dilakukan analisis
terhadap algoritme LLL dengan caramembatasi banyaknya iterasi dan danmembatasi besarnya bilangan yangdilibatkan.
Membatasi banyaknya iterasiDiasumsikan bahwa basis latis yang
digunakan dalah intejer, artinya B ⊂ Zn.Terlihat bahwa algoritme LLL cepatselesai ketika langkah penukaran (swap)yang dilakukan tidak terlalu banyak.Oleh karena itu, hal pertama yangperlu diperhatikan dalam menganalisisalgoritme LLL adalah seberapa besarjumlah maksimum terjadinya penukaran.Dengan demikian, akan didefinisikan suatuintejer positif yang terkait dengan basis Bberikut ini.Ingat kembali definisi determinan suatu
latis berikut.
det(L([b1,b2, . . . ,bj ])) =
j∏i=1
‖b∗i ‖
⇔ det(L(Bj)) =√
det(BTj Bj)
dimana matriks
Bj =(
b1 b2 · · · bj)
Dari asumsiBj adalah matriks intejer, jelasbahwa
(det(L(Bj)))2 ∈ Z
Dengan demikian, dapat didefinisikanintejer positif D yang terkait dengan
matriks, yaitu
D =n∏j=1
det(L(Bj))2
dan kemudian berlaku sifat dalam proposisiberikut ini.
Proposisi 3.8 Langkah reduksi ukurantidak mengubah nilai D, tetapi setiapterjadi penukaran mengakibatkan nilai Dmenurun dengan faktor δ.
Bukti:Berdasarkan teorema 3.3, perhatikan
bahwa langkah reduksi ukuran tidak akanmengubah nilai D. Dengan demikian,selanjutnya tinggal ditunjukkan bahwasetiap terjadi penukaran, nilai D menurundengan faktor δ. Misalkan terjadipenukaran bj dan bj+1, misalkan pulaintejer positif D terkait dengan B sebelumterjadinya penukaran, dan D′ terkaitdengan B′ setelah bj dan bj+1 ditukar.Sekarang perhatikan bahwa, jika i < j,maka basis [b1,b2, . . . ,bi] tidak berubaholeh terjadinya penukaran sehingga jelasbahwa
det(L(Bi))2 = (det(L(B′i))
2
Ketika i > j, maka pada basis[b1,b2, . . . ,bi] vektor bj dan bj+1 ditukar(menukar sepasang vektor kolom pada Bi)sehingga
L(Bi) = L(B′i)
⇒ (det(L(Bi))2
= (det(L(B′i))2
Di lain pihak, untuk i = j, makabasis Bj = [b1,b2, . . . ,bj−1,bj ] berubahmenjadi B′j = [b1,b2, . . . ,bj−1,bj+1]sehingga
(det(L(Bj))2
=
j∏i=1
‖b∗i ‖2
=
(j−1∏i=1
‖b∗i ‖2
)∥∥b∗j∥∥2Karena syarat pertukaran (δ −(µj+1,j)
2)∥∥b∗j∥∥ > ∥∥b∗j+1∥∥, maka berlaku
20
(det(L(Bj))2
>
(j−1∏i=1
‖b∗i ‖2
)(
1
(δ − (µj+1,j)2)
∥∥b∗j+1∥∥2)>
1
(δ − (µj+1,j)2)(
j−1∏i=1
‖b∗i ‖2
)∥∥b∗j+1∥∥2>
1
δ
(det(L(B′j))
)2⇔(det(L(B′j))
)2(det(L(Bj)))
2 < δ
Akhirnya,
D′D =
n∏j=1
(det(L(B′j)
)2n∏j=1
(det(L(Bj)))2
=
(det(L(B′j))
)2(det(L(Bj)))
2
< δ
⇔ D′ < δD⇔ D >
1
δD
⇔ D ≥1
δD′
�
Berdasarkan proposisi di atas, sekarangakan dimisalkan k banyaknya iterasi dalamalgoritme LLL dan D(j) menyatakan nilaiD pada iterasi ke-j, maka
D ≥ δ−1D(1)
≥ δ−2D(2)...
≥ δ−kD(k)
Karena untuk setiap j nilai D(j) adalahintejer positif, maka
D(k) ≥ 1
⇒ D ≥ δ−k
⇔ D ≥(
1
δ
)k⇔ k ≤ log 1
δ(D)
Hasil ini menunjukkan bahwa banyaknyaiterasi terbatas ke atas pada fungsi yangnilainya bergantung pada nilai awal D,karena menghitung
D =n∏j=1
j∏j=1
‖b∗i ‖2
≤
j∏j=1
n∏j=1
‖b∗i ‖2
membutuhkan waktu polinomial, makadapat disimpulkan bahwa banayknya iterasidalam algoritme LLL juga terbatas secarapolinomial.
Membatasi besarnya bilangan yangterlibatSebelumnya telah ditunjukkan bahwa
banyaknya iterasi dalam algoritme LLLterbatas secara polinomial dalam ukuraninput. Namun demikian, hal inibelum cukup untuk menyimpulkan bahwaalgoritme LLL memunyai waktu runningpolinomial. Perlu dipastikan bahwaukuran bilangan yang dilibatkan dalamkeseluruhan komputasi juga terbatas secarapolinomial. Algoritme LLL menggunakanaritmetik bilangan rasional, sehingga perludibatasi presisinya maupun besarannya.Perhatikan bahwa langkah ke-j dari
proses Gram-Schmidt dapat dirumuskanulang sebagai
b∗j = bj +
j−1∑i=1
vjibi untuk suatu vji ∈ R
(3.6)Karena b∗j ortogonal ke bt untuk setiapt < j, maka diperoleh
(bt · b∗j ) = (bt · bj) + bt ·j−1∑i=1
vjibi
⇔ 0 = (bt · bj) + bt ·j−1∑i=1
vjibi
⇔ bt ·j−1∑i=1
vjibi = −(bt · bj) (3.7)
Untuk i = 1, 2, . . . , j − 1, Persamaan
21
tersebut bisa ditulis dalam bentuk matriksb1 ·
∑j−1
i=1vjibi
b2 ·∑j−1
i=1vjibi
...
bj−1 ·∑j−1
i=1vjibi
= −
b1 · bjb2 · bj...
bj−1 · bj
Jika didefinisikan matriks
Bj−1 =(
b1 b2 · · · bj−1)
dan matriks
uj =
vj1vj2...
vj,j−1
maka persamaan (3.7) dapat ditulis sebagai
b1 · (Bj−1uj)b2 · (Bj−1uj)
...bj−1 · (Bj−1uj)
= −
b1 · bjb2 · bj...
bj−1 · bj
⇔ BT
j−1(Bj−1uj) = −BTj−1bj
⇔ (BTj−1Bj−1)uj = −BT
j−1bj
Persamaan terakhir tersebut merupakanSPL dengan matriks koefisien BT
j−1Bj−1dan vektor −BT
j−1bj adalah intejer.Dengan demikian, untuk s = 1, 2, . . . , j−1,berdasarkan aturan Cramer diperoleh
vjs ∈Z
det(BTj−1Bj−1)
=Z
det(L(Bj−1))2
Hasil ini akan digunakan untuk memberibatas pada koefisien µji. Perhatikan lagidefinisi D sebagai
D =n∏j=1
(det(L(Bj)))2
=n∏j=1
det(BTj−1Bj−1)
⇔ D =n∏j=1
Dj dengan Dj = det(BTj−1Bj−1)
Kemudian, hitung Dj = det(BTj−1Bj−1)
dan dikalikan nilainya kedua ruas daripersamaan (3.6), maka diperoleh
Dj−1b∗j = Dj−1bj +
j−1∑i=1
(Dj−1vji)bi
dan karena Dj−1vji ∈ Z, maka diperoleh
Dj−1b∗j ∈ Zn. Ini berarti semua penyebutdari bilangan dalam vektor b∗j adalahfaktor dari Dj−1. Sekarang dihitung
µji =bj · b∗ib∗i · b∗i
=Di−1(bj · b∗i )Di−1(b∗i · b∗i )
=bj · (Di−1b∗i )(i−1∏s=1
‖b∗s‖2
)‖b∗i ‖
2
∈ ZDi
Hasil ini menunjukkan bahwa penyebut dariµji adalah Di. Oleh karena itu, bilanganrasional yang ada di dalam vektor
b∗j = bj −j−1∑i=1
µjib∗i
dan µji dapat dituliskan dengan penyebutD (D merupakan kelipatan setiap Di).Karena
∣∣µji∣∣ ≤ 12 , maka ukuran bit yang
digunakan terbatas pada lgD. Kemudiandari
Dj =
j∏s=1
‖b∗s‖2
diperoleh∥∥b∗j∥∥2 =DjDj−1
≤ Dj ≤ D
Akhirnya,
‖bj‖2 =∥∥b∗j∥∥2 +
j−1∑i=1
µ2ji ‖b∗i ‖2
≤ D + (j − 1)(n
4
)D
≤ nD
Dengan demikian, semua pembilang danpenyebut dari bilangan rasional yangterjadi di dalam eksekusi algoritme LLLmemunyai ukuran bit yang terbatas secarapolinomial dalam lgD.
3.5 Sistemkripto Knapsack Merkle-HellmanSistemkripto Knapsack Merkle-Hellman
merupakan sistemkripto yang berlandaskankerumitan komputasi NP-complete.Sistemkripto ini diperkenalkan oleh Merkledan Hellman pada akhir 1970-an. Tumpuankeamanan utamanya adalah problemklasik matematika yang terkenal dengannama problem jumlah subhimpunan(subset-sum problem). Namun belakangan
22
keamanan sistem ini menjadi melemahsecara signifikan ketika tumpuan keamanantersebut bisa dibawa ke masalah latis.
Definisi 3.16 (Masalah jumlahsubhimpunan) Diberikan list yang terdiridari n bilangan intejer positif
a = {a1, a2, . . . an}
dan suatu intejer positif lain s yangditetapkan. Masalah jumlah subhimpunanadalah mencari subhimpunan dari a yangjumlahnya sama dengan s (diasumsikan adasedikitnya satu sub-himpunan).
Deskripsi yang lain dari definisi di atasbisa dinyatakan adalah sebagai berikut.Diketahui vektor intejer a ∈ Zn adalahbentuk vektor dari list intejer positifa = {a1, a2, . . . an} dan intejer s ∈ Z+.Tentukan vektor biner x = (x1, x2, . . . , xn)dengan xi ∈ Z2 sehingga
a · x = s
⇔n∑i=1
aixi = s
Pelacakan brute force untukmenyelesaikan problem ini adalah 2n.Untuk n yang cukup besar, sulitmenentukan x pada masalah jumlahsubhimpunan (a,s). Namun sebagaimanalayaknya paradigma kriptosistem, masalahini dapat digunakan sebagai tumpuankeamanan kalau dapat didefinisikainformasi ekstra (trapdoor) pada a.Sehingga dengan informasi ekstra tersebutmasalah jumlah subhimpunan (a,s) dapatdiselesaikan dengan mudah. Untuk itu,akan didefinisikan suatu barisan dengansifat khusus sebagai berikut.
Definisi 3.17 Suatu barisan supernaik(superincreasing sequence) adalah suatubarisan r = {r1, r2, . . . , r2} dengan sifat
ri+1 ≥ 2ri, i = 1, 2, . . . , n− 1
Lemma berikut ini akan digunakanuntuk membuktikan suatu proposisi yangberkaitan dengan barisan supernaik.
Lemma 3.3 Misalkan r = {r1, r2, . . . , r2}adalah barisan supernaik, maka berlaku
sifat
rj >k−1∑i=1
ri, j = 2, 3, . . . , n
Bukti:Bukti akan dilakukan secara induktif.
Sebagai basis induksi, untuk k = 2,berdasrkan definisi jelas benar bahwa r2 ≥2r1 > r1. Kemudian diasumsikan benaruntuk k = j, yaitu rj >
∑j−1i=1 dan
selanjutnya akan dibuktikan juga benaruntuk k = j + 1. Berdasarkan definisiberlaku
rj+1 ≥ 2rj
= rj + rj
> rj +
j−1∑i=1
ri
=
j∑i=1
ri
�Proposisi 3.10 Misalkan (a, s) adalahmasalah jumlah subhimpunan dengana = {a1, a2, . . . , an} adalah barisansupernaik. Jika diasumsikan masalahtersebut memiliki suatu solusi, yaitu x ={x1, x2, . . . , xn}. Maka nilai x dapatditentukan dengan
xn = 1 ⇔ s ≥ an
xi = 1 ⇔ s−n∑
j=i+1
xjaj ≥ ai
dimana i = n− 1, n− 2, . . . , 1.
Bukti:Misalkan a = {a1, a2, . . . , an} adalah
barisan supernaik. Dari definisi jumlahsubhimpunan diperoleh
s =n∑i=1
xiai
Lalu misalkan s ≥ an, maka didapatkan
s ≥ an
⇔n∑i=1
xiai ≥ an
⇔ xnan +n−1∑i=1
xiai ≥ an
23
Jika nilai xn = 0, maka
n−1∑i=1
xiai ≥ an
Hal ini kontradiksi dengan definisi barisansupernaik
an >n−1∑i=1
ai
≥n−1∑i=1
xiai
Sehingga haruslah xn = 1.Kemudianmisalkan didefinisikan sebuah masalahsubhimpunan yang baru, yaitu (bi, si)dimana
bi = {a1, a2, . . . , ai}
si = s−n∑
j=i+1
xjaj
dengan i = n − 1, n − 2, . . . , 1. Dengancara yang serupa didapatkan si ≥ ai jhjxi = 1. �
Berikut ini langkah-langkah ilustratifdari proposisi 3.10. Tanpa mengurangikeumuman, diambil nilai n = 31. Untuk i = 3, didefinisikan sebuahmasalah subhimpunan yang baru, yaitu(b2, s2)
b2 = {a1, a2}s2 = s− x3a3
dari proposisi didapatkan jika s ≥ a3,maka x3 = 1 sehingga
s2 = s− x3a3= s− a3
Jika s < a3, maka x3 = 0 sehingga
s2 = s− x3a3= s
2. Untuk i = 2, didefinisikan sebuahmasalah subhimpunan yang baru, yaitu(b1, s1)
b1 = {a1}s1 = s2 − x2a2
dari proposisi didapatkan jika s2 ≥ a2,maka x2 = 1 sehingga
s1 = s2 − x2a2= s2 − a2
Jika s < a3, maka x3 = 0 sehingga
s1 = s2 − x2a2= s2
3. Untuk i = 1, dari proposisi didapatkanjika s1 ≥ a1, maka x2 = 1 dan jikas1 < a1, maka x2 = 0.
Berdasarkan pola dari 3 langkahtersebut, berikut merupakan algoritmeuntuk menyelesaikan masalah jumlahsubhimpunan.
Algoritme 3.7Input: Barisan supernaik yang terdiridari n bilangan intejer positif a ={a1, a2, . . . , an} dan intejer positif s.Output: x = {x1, x2, . . . , xn} yangmerupakan solusi dari masalah jumlahsubhimpunan (a, s).1. Untuk i = n, n− 1, . . . , 1, lakukan:
(a) Jika s ≥ ai, maka lakukan:i. xi := 1ii. s := s− ai
(b) Selainnya, xi := 02. return(x = {x1, x2, . . . , xn})
Berikut merupakan deskripsisistemkripto knapsack Merkle-Hellman.
Algoritme 3.8 (Pembangkitan Kunci)Ringkasan: Entitas A membuatkunci publik dan kunci privat denganlangka-langkah sebagai berikut,1. Pilih barisan supernaik r ={r1, r2, . . . , rn}
2. Pilih intejer positif p dan q dengansyarat q ≥ 2rn dan gcd(p, q) = 1
3. Hitung barisan a = {a1, a2, . . . , an}dengan ai = pri mod q
4. Kunci publik: a; Kunci privat: (r, p, q)
Algoritme 3.9 (Enkripsi)Ringkasan: Entitas B mengenkripsi pesanbermakna m dengan kunci publik amenjadi pesan tersandi c untuk dikirim keentitas A.B melakukan langkah-langkah berikut1. Bentuk pesan bermakna m dalambentuk n-bitm1m2 . . .mn, dimanami ∈{0, 1}
2. Gunakan kunci publik a untukmenghitung intejer c dimana
c =n∑i=1
aimi
3. Kirim c ke entitas A
Algoritme 3.10 (Dekripsi)Ringkasan: Entitas A menerima pesantersandi c dari B dan mendekripsi cmenjadipesan bermakna m dengan kunci pribadi(r, p, q)A melakukan langkah-langkah berikut1. Gunakan kunci p untuk menghitungintejer s dengan s = p−1cmod q
2. Gunakan kunci r dan terapkan algoritmedengan input r dan s untuk menghitungb = {b1, b2, . . . , bn}
3. Pesan bermakna yang didapatkanadalah b1b2 . . . bn
3.6 Pembongkaran SistemkriptoKnapsack Merkle-HellmanSekarang akan dibahas bagaimana
aplikasi algoritme LLL dalam pembongkaransistemkripto knapsack Merkle-Hellman.Kembali pada definisi masalah jumlahsubhimpunan
a1x1 + a2x2 + · · ·+ anxn = s.
Dengan mengasumsikan bahwa masalahjumlah subhimpunan di atas memilikiminimal satu penyelesaian. Makapenyelesaian yang didapat adalah sebuahvektor biner m = (m1,m2, . . . ,mn).Maka dengan demikian dapat didefinisikan
sebuah matriks intejer
B =
2 0 · · · 0 10 2 · · · 0 1...
.... . .
......
0 0 · · · 2 1a1 a2 · · · an s
Misalkan B = {b1,b2, . . . ,bn, s} adalahbasis latis dengan bj adalah kolom ke-jdari matriks B untuk j = 1, 2, . . . , n dans adalah kolom ke-(n+ 1) matriks B, makadalam latis tersebut jelas terdapat sebuahvektor
w = (m1b1+m1b1+· · ·+mnbn−s) ∈ L(B)
Kemudian perhatikan bahwa
w =
w1w2...wnwn+1
=
2m1 − 12m2 − 1
...2mn − 1
0
dan karena mj ∈ Z2, maka wj ∈ {−1, 1}untuk j = 1, 2, . . . , n, sehingga didapatkan‖w‖ =
√n. Hal ini mengakibatkan
bahwa w adalah vektor terpendek dalamlatis L(B) dan algoritme LLL dapatdiaplikasikan untuk mencari vektor w.
IV SIMPULAN DAN SARAN
4.1 SimpulanAlgoritme LLL merupakan algoritme
untuk mencari hampiran dari vektorterpendek dalam suatu latis. Walaupundemikian, algoritme LLL seringkali mampumencari solusi eksak dalam mencarivektor terpendek. Hal ini membuatalgoritme LLL dapat digunakan sebagaialat untuk membongkar sistemkriptoknapsack Merkle-Hellman. Sehinggasistemkripto Merkle-Hellman sudah
mengalami keruntuhan.
4.2 SaranAlgoritme LLL terbukti dapat
digunakan dalam berbagai masalah.Bagi yang berminat, dapat dicariterapan-terapan lain dari algoritme LLL.Kemudian dilakukan modifikasi-modifikasisehingga algoritme LLL dapat mencarisolusi eksak dalam mencari vektorterpendek secara lebih sempurna.
DAFTAR PUSTAKA
Anton H. 2000. Elementary Linear Algebra.Canada: Wiley.
Bartle RG. 1964. The Elements of RealAnalysis. Canada: Wiley.
Bremner MR. 2012. Lattice BasisReduction. London: CRC Press.
Guritman S. 2012. Latis dan Aplikasinya.Bogor: Departemen MatematikaFMIPA IPB.
Nguyen PQ, Vallee B. 2009. The LLLAlgorithm. New York: Springer-Verlag.
Stark HM 1970. An Introduction to NumberTheory. Cambridge: MIT Press.
28
Lampiran 2. Sintaks Mathematica Pembangkitkan kunci
Lampiran 3: Sintaks Mathematica Enkripsi
Lampiran 4: Sintaks Mathematica menentukan solusi masalah jumlah subhimpunan