algoritme lll dan aplikasinya dalam … · shortest vector in a lattice. size reduction algorithm...

38
ALGORITME LLL DAN APLIKASINYA DALAM PEMBONGKARAN SISTEMKRIPTO KNAPSACK MERKLE-HELLMAN ARI AGUSTIANSA DEPARTEMENMATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2012

Upload: dinhnhan

Post on 19-Mar-2019

214 views

Category:

Documents


0 download

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.

LAMPIRAN

27

Lampiran 1: Sintaks Mathematica Algoritme LLL

28

Lampiran 2. Sintaks Mathematica Pembangkitkan kunci

Lampiran 3: Sintaks Mathematica Enkripsi

Lampiran 4: Sintaks Mathematica menentukan solusi masalah jumlah subhimpunan

29

Lampiran 5: Sintaks Mathematica Dekripsi