KRIPTOSISTEM RSA - USD
Transcript of KRIPTOSISTEM RSA - USD
KRIPTOSISTEM RSA
Skripsi
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Sains
Program Studi Matematika
Oleh:
Teodora Kumala Anggi Anggraini
NIM: 043114010
PROGRAM STUDI MATEMATIKA JURUSAN MATEMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
ii
RSA CRYPTOSYSTEM
Thesis
Presented as Partial Fulfillment of the Requirements
To Obtain the SARJANA SAINS Degree
In Mathematics
By:
Teodora Kumala Anggi Anggraini
Student Number: 043114010
MATHEMATICS STUDY PROGRAM MATHEMATICS DEPARTMENT
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2008
v
������������������������������� �
��������������� ��
� ������ ���������������������������������
�� �������������������������
����������������� ������������������������ ��
������������������ �� ���� � ������������������ �� ���� � ������������������ �� ���� � ������������������ �� ���� � ����
�� ��� ���� ��� �������������� ��� ��� ���� ��� �������������� ��� ��� ���� ��� �������������� ��� ��� ���� ��� �������������� �����
� � � �� � � �� � � �� � � ������ � � � � � ���� � ���� � ���� � �������
��� ���� � ������������ ��� � � ��� �� ���� ���� � ������������ ��� � � ��� �� ���� ���� � ������������ ��� � � ��� �� ���� ���� � ������������ ��� � � ��� �� �����
vii
ABSTRAK
Kriptosistem RSA adalah kriptosistem kunci publik yang berdasar pada Teorema Sisa
Cina. Untuk mengerjakan kriptosistem ini, bilangan-bilangan prima dibutuhkan untuk
mendapatkan kunci publik. Untuk menguji keprimaan suatu bilangan, algoritma yang
dapat digunakan adalah algoritma Solovay-Strassen dan algoritma Miller-Rabin.
Algoritma-algoritma yang dapat digunakan untuk memfaktorkan kunci publik, yaitu
algoritma Pollard 1,p − algoritma Pollard rho dan algoritma kuadrat acak Dixon.
viii
ABSTRACT
RSA cryptosystem is a public key cryptosystem based on the Chinese Remainder
Theorem. To perform the cryptosystem, prime numbers are needed to obtain public
keys. Algorithms that can be used to test the primeness of a number are the Solovay-
Strassen algorithm and Miller-Rabin algorithm. The algorithms that can be used to
factor the public key are Pollard 1p − algorithm, Pollard rho algorithm, and Dixon’s
random squares algorithm.
x
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yang Maha Esa yang telah memberikan berkat
dan rahmat-Nya sehingga penulis dapat menyelesaikan skripsi ini.
Berkat dukungan dan bantuan dari banyak pihak, akhirnya skripsi ini dapat
terselesaikan. Oleh karena itu, penulis mengucapkan terima kasih kepada:
1. Romo Prof. Dr. Frans Susilo, S.J. selaku dosen pembimbing yang telah
memberikan pengarahan dan bimbingan selama penyusunan skripsi ini.
2. Romo Ir. Gregorius Heliarko, S.J., S.S., B.S.T., M.Sc., M.A. selaku Dekan
Fakultas Sains dan Teknologi dan Bapak Yosef Agung Cahyanta, S.T., M.T.
selaku Wakil Dekan I Fakultas Sains dan Teknologi yang telah mendukung
penulis selama penyusunan skripsi ini.
3. Ibu Lusia Krismiyati Budiasih, S.Si, M.Si selaku Kaprodi Matematika dan
Dosen Pembimbing Akademik angkatan 2004 yang telah memberikan nasehat,
saran dan dukungan kepada penulis.
4. Bapak dan Ibu dosen yang telah memberikan bekal ilmu kepada penulis.
5. Bapak Herry Pribawanto Suryawan, S.Si., M.Si. dan Ibu Maria Vianney Any
Herawati, S.Si., M.Si. yang telah membantu penulis selama penyusunan skripsi
ini.
6. Bapak Tukijo dan Ibu Linda yang telah memberikan pelayanan administrasi
kepada penulis selama masa perkuliahan.
xi
7. Perpustakaan Universitas Sanata Dharma dan staf yang telah menyediakan
fasilitas dan memberikan kemudahan kepada penulis selama masa perkuliahan.
8. Kedua orang tuaku tercinta: Bapak Edi Sutarman dan Ibu Rosalia Tri Susilowati
yang dengan penuh cinta kasih telah memberikan nasehat, semangat, saran dan
dukungan kepada penulis dalam segala hal.
9. Adikku, Danang R. Naafianto, dan semua keluarga besar yang telah
memberikan doa dan dukungan kepada penulis.
10. Teman-teman angkatan 2004: Ratna, Siska, Eni, Retno, Dwi, Nancy, Lili, Lina
dan Yo, serta Mas Teddy, Mbak Retno dan Mbak Priska yang telah memberikan
saran dan nasehat kepada penulis.
Penulis juga mengucapkan terima kasih kepada semua pihak yang telah
membantu penulis dalam penyusunan skripsi ini yang tidak dapat saya sebutkan satu-
persatu di sini.
Yogyakarta, November 2008
Penulis
xii
DAFTAR ISI
HALAMAN JUDUL ..................................................................................... i
HALAMAN JUDUL DALAM BAHASA INGGRIS ................................... ii
HALAMAN PERSETUJUAN PEMBIMBING ............................................ iii
HALAMAN PENGESAHAN ....................................................................... iv
HALAMAN PERSEMBAHAN .................................................................... v
HALAMAN PERNYATAAN KEASLIAN KARYA ................................... vi
HALAMAN ABSTRAK ............................................................................... vii
HALAMAN ABSTRACT ............................................................................. viii
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH
UNTUK KEPENTINGAN AKADEMIS ...................................................... ix
KATA PENGANTAR ................................................................................... x
DAFTAR ISI .................................................................................................. xii
BAB I PENDAHULUAN .......................................................................... 1
A. Latar Belakang Masalah ......................................................... 1
B. Rumusan masalah ................................................................... 4
C. Batasan Masalah ..................................................................... 4
D. Tujuan Penulisan .................................................................... 4
E. Metode Penulisan ................................................................... 5
F. Manfaat Penulisan .................................................................. 5
G. Sistematika Penulisan ............................................................. 5
xiii
BAB II TEORI BILANGAN ....................................................................... 7
A. Pembagi Persekutuan Terbesar .............................................. 7
B. Algoritma Euclides ................................................................. 17
C. Kongruensi Linear .................................................................. 27
D. Teorema Sisa Cina ................................................................. 37
E. Teorema-Teorema Lain .......................................................... 42
BAB III KRIPTOSISTEM RSA ................................................................... 56
A. Kriptosistem RSA .................................................................. 56
B. Uji Bilangan Prima ................................................................. 60
C. Algoritma Pemfaktoran .......................................................... 87
BAB IV SERANGAN, KEAMANAN DAN APLIKASI KRIPTOSISTEM
RSA ................................................................................................. 95
A. Serangan pada RSA ................................................................ 95
B. Keamanan dari RSA ............................................................... 96
C. Aplikasi Kriptosistem RSA .................................................... 98
BAB V PENUTUP ....................................................................................... 103
A. Kesimpulan ............................................................................. 103
B. Saran ....................................................................................... 104
DAFTAR PUSTAKA ..................................................................................... 105
BAB I
PENDAHULUAN
A. Latar Belakang Masalah
Kemajuan di bidang telekomunikasi dan komputer telah memungkinkan seseorang
untuk melakukan transaksi bisnis secara tidak langsung. Selain itu, dia juga dapat
mengirimkan informasi kepada temannya secara on-line. Kegiatan-kegiatan tersebut
dapat menimbulkan resiko jika informasi yang dikirim dapat diakses oleh orang lain
yang tidak berhak. Misalnya, informasi mengenai nomor kartu kredit. Jika informasi
ini diketahui oleh orang lain, maka pemilik kartu kredit harus bersiap-siap terhadap
melonjaknya tagihan kartu kredit. Untuk mengatasi masalah ini, ada suatu sistem
keamanan yang dapat digunakan untuk menjaga kerahasiaan suatu informasi, yaitu
kriptosistem (cryptosystem).
Pada tahun 1976, Diffie dan Hellman telah mengemukakan ide tentang kriptosistem
kunci-publik. Dalam kriptosistem kunci-publik, setiap pengguna memberikan aturan
enkripsi Ke yang dapat digunakan untuk mengirim pesan yang telah dienkripsi
(ciphertext) kepada orang yang dituju. Selain aturan enkripsi ,Ke pengguna juga
mempunyai aturan dekripsi Kd yang dapat digunakan untuk mendekripsi ciphertext
kembali ke pesan semula (plaintext). Aturan enkripsi Ke disebut sebagai kunci-publik
(public-key), sedangkan aturan dekripsi Kd disebut sebagai kunci-rahasia (private-
key).
2
Pada tahun 1977, Rivest, Shamir dan Adleman menciptakan kriptosistem yang
dikenal sebagai kriptosistem RSA. Keamanan kriptosistem RSA didasarkan pada
perhitungan yang sangat sulit untuk memfaktorkan suatu bilangan yang merupakan
hasil perkalian dua bilangan prima yang sangat besar atau n pq= di mana p dan q
adalah bilangan-bilangan prima yang sangat besar.
Teori-teori penting dari teori bilangan yang dibutuhkan untuk membantu pengerjaan
kriptosistem RSA adalah Algoritma Euclides (Euclidean Algoritm) dan Teorema Sisa
Cina (Chinese Remainder Theorem). Kita dapat menggunakan Algoritma Euclides
untuk menghitung pembagi persekutuan terbesar (greatest common divisors) dari
0r a= dan 1r b= atau ppt( , ).a b Algoritma untuk menghitung ppt( , )a b adalah
sebagai berikut:
0 1 1 2 2 1
1 2 2 3 3 2
2 3 3 4 4 3
2 1 1 1
1
, 0
, 0
, 0
, 0
.
m m m m m m
m m m
r q r r r r
r q r r r r
r q r r r r
r q r r r r
r q r
− − − −
−
= + < <
= + < <
= + < <
= + < <
=
�
Jadi, 0 1ppt( , ) mr r r= di mana mr adalah sisa bilangan terakhir yang nilainya tidak
sama dengan nol. Jika bilangan bulat positif nb < mempunyai invers modulo n
terhadap operasi perkalian, maka dengan menggunakan Algoritma Euclides Diperluas
(Extended Euclidean Algorithm) dapat dihitung nilai . mod 1 nb−
3
Teorema Sisa Cina adalah suatu metode yang dapat digunakan untuk memecahkan
sistem-sistem kongruensi tertentu. Anggap jmmm ,,, 21 � adalah bilangan bulat yang
relatif prima (yaitu ppt( , ) 1 di mana dan )i j i jm m m m i j= ≠ ≠ dan jaaa ,,, 21 �
adalah bilangan bulat. Perhatikan sistem kongruensi berikut ini:
1 1 (mod )x a m≡
2 2 (mod )x a m≡
�
(mod ).r rx a m≡
Sistem kongruensi ini mempunyai penyelesaian tunggal
1
(mod )r
i i ii
x a M y M=
≡�
dengan 1 2 ,rM m m m= � i iM M m= dan 1(mod ).i i iy M m−=
Dalam membuat kriptosistem RSA diperlukan bilangan-bilangan prima yang sangat
besar yang dipilih secara acak. Untuk menguji apakah bilangan itu prima dapat
digunakan algoritma Monte-Carlo seperti algoritma Solovay-Strassen atau algoritma
Miller Rabin.
Cara yang paling jelas untuk menyerang kriptosistem RSA adalah dengan
memfaktorkan kunci publik .n Arti kata menyerang adalah usaha untuk membuka
suatu kriptosistem oleh orang yang tidak dituju atau orang yang tidak berhak.
Algoritma-algoritma pemfaktoran yang dapat digunakan adalah algoritma Pollard
1−p (Pollard 1−p algorithm), algoritma Pollard rho (Pollard Rho algorithm) dan
4
algoritma kuadrat acak Dixon (Dixon’s Random Squares Algorithm). Cara-cara lain
yang dapat digunakan untuk menyerang kriptosistem RSA adalah dengan menghitung
( ),nφ di mana ( ) ( 1)( 1).n p qφ = − −
B. Rumusan Masalah
Berdasar atas uraian yang telah dikemukakan dalam latar belakang, pokok
permasalahan dalam skripsi ini dapat dirumuskan sebagai berikut:
1. Apa yang dimaksud dengan kriptosistem RSA?
2. Bagaimana cara untuk menguji keprimaan suatu bilangan?
3. Bagaimana cara untuk menyerang kriptosistem RSA?
4. Bagaimana keamanan dari kriptosistem RSA?
C. Batasan Masalah
1. Himpunan yang dibicarakan dalam skripsi ini adalah .n�
2. Dalam penulisan skripsi ini hanya dibahas mengenai teorinya saja.
D. Tujuan Penulisan
Penyusunan skripsi ini bertujuan untuk mempelajari salah satu teknik kriptosistem
yang dapat digunakan untuk mengamankan kerahasiaan suatu informasi.
5
E. Metode Penulisan
Metode yang digunakan dalam penulisan skripsi ini adalah dengan menggunakan
metode studi pustaka.
F. Manfaat Penulisan
Manfaat penulisan skripsi ini adalah mengetahui suatu sistem yang dapat digunakan
untuk menjaga kerahasiaan suatu informasi.
G. Sistematika Penulisan
BAB I PENDAHULUAN
A. Latar Belakang Masalah
B. Rumusan Masalah
C. Batasan Masalah
D. Tujuan Penulisan
E. Metode Penulisan
F. Manfaat Penulisan
G. Sistematika Penulisan
BAB II TEORI BILANGAN
A. Pembagi Persekutuan Terbesar
B. Algoritma Euclides
C. Kongruensi Linear
6
D. Teorema Sisa Cina
E. Teorema-Teorema Lain
BAB III KRIPTOSISTEM RSA
A. Kriptosistem RSA
B. Uji Bilangan Prima
C. Algoritma Pemfaktoran
BAB IV SERANGAN PADA RSA, KEAMANAN DARI RSA DAN APLIKASI
KRIPTOSISTEM RSA
A. Serangan pada RSA
B. Keamanan dari RSA
C. Aplikasi Kriptosistem RSA
BAB V PENUTUP
A. Kesimpulan
B. Saran
BAB II
TEORI BILANGAN
A. Pembagi Persekutuan Terbesar
Sebelum kita membahas pembagi persekutuan terbesar, terlebih dahulu akan dibahas
tentang definisi-definisi dan teorema-teorema yang akan membantu kita dalam
membuktikan teorema-teorema yang berhubungan dengan pembagi persekutuan
terbesar.
Definisi 2.1
Relasi ≤ pada himpunan S disebut relasi urutan parsial jika memenuhi sifat-sifat
berikut:
1. Refleksif: ,a a≤ .a S∀ ∈
2. Transitif: Jika a b≤ dan ,b c≤ maka ,a c≤ , , .a b c S∀ ∈
3. Anti-simetrik: Jika a b≤ dan ,b a≤ maka ,a b= , .a b S∀ ∈
Himpunan S yang dilengkapi dengan suatu relasi urutan parsial disebut himpunan
terurut parsial.
8
Definisi 2.2
Himpunan S dikatakan terurut total jika himpunan itu terurut parsial dengan relasi
urutan parsial ≤ dan untuk setiap pasangan elemen ,x y S∈ berlaku x y≤ atau
.y x≤
Definisi 2.3
Suatu himpunan dikatakan tertata baik jika himpunan itu adalah himpunan terurut
total yang setiap subhimpunan takkosong S di dalamnya memuat elemen terkecil,
yaitu ada a S∈ sedemikian sehingga a b≤ untuk semua .b S∈
Contoh 2.1
Setiap subhimpunan takkosong dalam himpunan semua bilangan bulat taknegatif
selalu mempunyai elemen terkecil. Jadi, himpunan semua bilangan bulat taknegatif
tertata baik.
Teorema 2.1 Algoritma Pembagian
Diberikan bilangan bulat a dan ,b dengan 0.b > Maka ada tunggal bilangan bulat q
dan r yang memenuhi
9
,a qb r= +
dengan 0 .r b≤ < Bilangan bulat q disebut hasil bagi dan bilangan bulat r disebut
sisa pembagian dari a oleh .b
Bukti:
Kita mulai dengan membuktikan bahwa himpunan
{ : adalah bilangan bulat dan 0}S a xb x a xb= − − ≥
bukan himpunan kosong. Cukup memperlihatkan bahwa ada bilangan x yang
membuat xba − taknegatif. Karena bilangan bulat 1,b ≥ maka | |a b ≥ | |a dan
( | |) | | | |a a b a a b a a− − = + ≥ + 0.≥
Dengan demikian, untuk | |,x a= − .a xb S− ∈ Karena himpunan semua bilangan
bulat taknegatif tertata baik, maka ada bilangan bulat terkecil ,r S∈ dan dari definisi
S ada bilangan bulat q yang memenuhi
,r a qb= −
dengan 0.r ≥ Akan kita tunjukkan bahwa br < dengan menggunakan bukti
kontradiksi. Andaikan ,r b≥ maka
( 1) 0.a q b a qb b r b− + = − − = − ≥
Hal ini berakibat ( 1) ,a q b S− + ∈ tetapi ( 1) .a q b a qb b r b r− + = − − = − < Ini berarti
bahwa ada elemen lain di S yang lebih kecil dari r . Dengan demikian, .r b<
Selanjutnya akan kita tunjukkan ketunggalan dari q dan .r Misalkan a mempunyai
dua bentuk representasi, yaitu
10
dan ,a qb r a q b r′ ′= + = +
dengan 0 , 0 .r b r b′≤ < ≤ < Maka ( ) ( ) ( ),r r a q b a qb qb q b b q q′ ′ ′ ′− = − − − = − = −
sehingga
| |r r′ − | |b q q′= − .
Karena 0 ,r b≤ < maka 0.b r− < − ≤ Dari dua pertidaksamaan 0≤−<− rb dan
0 ,r b′≤ < kita dapatkan brrb <−′<− atau | |r r′ − < ,b maka | |b q q′− .b< Jadi,
| |q q′− 1< sehingga 0 ≤ | |q q′− 1.< Karena || qq ′− adalah bilangan bulat takne-
gatif, maka satu-satunya kemungkinan adalah | |q q′− 0.= Ini terjadi jika qq ′= .
Oleh karena itu, | |r r′ − | |b q q′= − 0 0.b= ⋅ = Jadi, kita dapatkan rr ′= . ��
Jika a dan b adalah bilangan bulat taknol, maka himpunan pembagi persekutuan a
dan b adalah himpunan bilangan bulat berhingga yang memuat bilangan bulat +1 dan
1.− �
Definisi 2.4
Jika a dan b adalah bilangan-bilangan bulat dengan 0,a ≠ maka dikatakan bahwa
a membagi habis b jika ada bilangan bulat m sedemikian sehingga .b ma= Jika a
membagi habis ,b maka dikatakan juga bahwa a adalah pembagi atau faktor dari b
dan b adalah kelipatan .a Jika a membagi habis ,b maka kita tulis | .a b Jika a
tidak membagi habis ,b maka kita tulis � �� �/
11
Definisi 2.5
Bilangan bulat terbesar dari bilangan real ,x ditulis [ ],x adalah bilangan bulat
terbesar yang kurang dari atau sama dengan ,x yaitu [ ]x adalah bilangan bulat yang
memenuhi
[ ] [ ] 1.x x x≤ < +
Teorema 2.2
Diberikan bilangan-bilangan bulat cba dan , , dengan 0.a ≠ Maka
(1) | 0,a 1| ,a | .a a
(2) 1|a jika dan hanya jika 1.a = ±
(3) Jika ba | dan | ,c d maka | .ac bd
(4) Jika | dan | ,a b b c maka | .a c
(5) abba |dan | jika dan hanya jika .a b= ±
(6) Jika ba | dan 0,b ≠ maka | |a ≤ | | .b
(7) Jika caba |dan | , maka | ( )a bx cy+ untuk sebarang bilangan-bilangan bulat
x dan y .
Bukti:
12
(1) 0|a sebab ada bilangan bulat 0m = sedemikian sehingga 0 .ma=
a|1 sebab ada bilangan bulat m a= sedemikian sehingga 1.a m= ⋅
aa | sebab ada bilangan bulat 1m = sedemikian sehingga .a ma=
(2) Jika |1,a maka ada bilangan bulat m sedemikian sehingga 1 .ma= Karena
m dan a adalah bilangan bulat dan 1,ma = maka nilai m dan a yang
mungkin adalah 1 dan 1.− Jika kita ambil 1,m = maka 1 1 .ma a a= = ⋅ = Jika
kita ambil 1,m = − maka 1 ( 1)ma a a= = − ⋅ = − atau 1.a = − Jadi, 1.a = ±
Sebaliknya, jika diketahui 1,a = ± maka untuk 1=a benar bahwa |1a sebab
1 1 1,= ⋅ dan untuk 1−=a benar bahwa |1a karena 1 ( 1) ( 1).= − ⋅ −
(3) Karena | dan | ,a b c d maka ada bilangan bulat m dan n sedemikian se-
hingga mab = dan .d nc= Jadi, ( )( ) ( )( ).bd ma nc mn ac= = Karena mn
adalah bilangan bulat, maka terbukti bahwa | .ac bd
(4) Karena | dan | ,a b b c maka ada bilangan bulat e dan f sedemikian sehingga
dan .b ea c fb= = Jadi, ( ) ( ) .c fb f ea fe a= = = Karena fe adalah bilangan
bulat, maka dapat disimpulkan bahwa | .a c
(5) Karena | dan | ,a b b a maka ada bilangan bulat e dan f sedemikian sehingga
dan .b ea a fb= = Jadi, ( ) ( ) .a fb f ea fe a= = = Karena ( ) ,a fe a= maka
1.fe = Karena e dan f adalah bilangan bulat, maka nilai e dan f yang
mungkin adalah 1 dan 1.− Jika kita ambil 1,f = maka 1 .a fb b b= = ⋅ = Jika
13
kita ambil 1,f = − maka ( 1) .a fb b b= = − ⋅ = − Jadi, .a b= ± Sebaliknya,
jika ,a b= ± maka ba | karena 1 ,b a= ± ⋅ dan ab | karena 1 .a b= ± ⋅
(6) Jika | ,a b maka ada bilangan bulat k sedemikian sehingga .b ka= Jika 0,b ≠
maka 0≠k sehingga | |b = | |ka = | || | .k a Karena 0,k ≠ maka | |k 1≥
sehingga | |b = | || |k a 1 | |a≥ ⋅ = | | .a Jadi, | |a ≤ | | .b
(7) Jika | dan | ,a b a c maka ada bilangan bulat m dan n sedemikian sehingga
mab = dan .c na= Kemudian,
( ) ( ) ( )bx cy ma x na y amx any a mx ny+ = + = + = +
untuk sebarang bilangan-bilangan bulat x dan .y Karena nymx + adalah
bilangan bulat, maka | ( ).a bx cy+ ��
Definisi 2.6
Diberikan a dan b adalah bilangan bulat taknol. Pembagi persekutuan terbesar a
dan ,b ditulis ppt( , ),a b adalah bilangan asli d yang memenuhi:
1. | dan | .d a d b
2. Jika | dan | ,c a c b maka .c d≤
Teorema 2.3
Jika diberikan bilangan bulat a dan b yang keduanya taknol, maka ada bilangan
bulat x dan y sedemikian sehingga ppt( , ) .a b ax by= +
14
Bukti:
Kita definisikan S sebagai himpunan semua kombinasi linear dari a dan :b
S = { : 0;au bv au bv+ + > ,u v adalah bilangan-bilangan bulat}.
Pertama akan kita tunjukkan bahwa S bukan himpunan kosong. Karena 0,a ≠ maka
| |a 0au b S= + ⋅ ∈ dengan 1atau 1 −== uu . Karena S tertata baik, maka S pasti
mempunyai elemen terkecil, misalkan .d Jadi, dari definisi ,S ada bilangan bulat x
dan y sedemikian sehingga .d ax by= + Menurut Algoritma Pembagian, terdapat
bilangan-bilangan bulat q dan r sedemikian sehingga ,a qd r= + dengan 0 .r d≤ <
Maka
( ) (1 ) ( ).r a qd a q ax by a qax qby a qx b qy= − = − + = − − = − + −
Jika 0,r > maka .r S∈ Terjadi kontradiksi dengan kenyataan bahwa d adalah
elemen terkecil di .S Oleh karena itu, 0=r dan qda = atau | .d a Dengan cara
yang sama, kita dapatkan | .d b Akibatnya d adalah pembagi persekutuan dari a dan
.b Sekarang, jika c adalah sebarang pembagi persekutuan dari a dan ,b maka
menurut Teorema 2.2 (7), | ( ),c ax by+ yaitu | .c d Maka c = | |c ≤ | |d .d= Jadi, d
adalah pembagi persekutuan terbesar dari a dan ,b yaitu ppt( , ).d a b= �
Definisi 2.7
Bilangan bulat a dan b dikatakan relatif prima jika ppt( , ) 1.a b =
15
Teorema 2.4
Diberikan bilangan bulat taknol a dan .b Maka ppt( , ) 1a b = jika dan hanya jika ada
bilangan bulat x dan y sedemikian sehingga 1 .ax by= +
Bukti:
Jika ppt( , ) 1,a b = maka menurut Teorema 2.3, ada bilangan bulat x dan y yang
memenuhi 1 .ax by= + Sebaliknya, misalkan 1 ax by= + untuk suatu bilangan bulat x
dan y dan ppt( , ).d a b= Karena ad | dan | ,d b maka menurut Teorema 2.2 (7),
| ( ) 1.d ax by+ = Jadi, menurut Teorema 2.2 (2), 1.d = �
Teorema 2.5
Diberikan a dan b adalah bilangan-bilangan bulat dengan ppt( , ) ,a b d= maka
ppt( , ) 1.a d b d =
Bukti:
Misal a dan b adalah bilangan-bilangan bulat dengan ppt( , ) .a b d= Akan ditunjuk-
kan bahwa da dan db tidak mempunyai pembagi persekutuan positif selain 1.
Andaikan e adalah bilangan bulat positif sedemikian sehingga ( )e a d dan ( ).e b d
Maka ada bilangan bulat k dan l sedemikian sehingga keda = dan .b d le= Jadi,
deka = dan .b del= Dengan demikian, de adalah pembagi persekutuan a dan b .
16
Karena d adalah pembagi persekutuan terbesar a dan ,b maka .de d≤ Jadi, 1.e =
Akibatnya, ppt( , ) 1.a d b d = �
Teorema 2.6
Jika ca | dan | ,b c dengan ppt( , ) 1,a b = maka | .ab c
Bukti:
Jika diketahui ca | dan | ,b c maka ada bilangan bulat r dan s sedemikian sehingga
arc = dan .c bs= Karena ppt( , ) 1,a b = maka menurut Teorema 2.3, ada bilangan
bulat x dan y sedemikian sehingga byax +=1 . Kita dapatkan
1 ( ) ( ) ( ) ( ).c c c ax by acx bcy a bs x b ar y ab sx ry= ⋅ = + = + = + = +
Jadi, terbukti | .ab c �
Teorema 2.7 (Lemma Euclides)
Jika | ,a bc dengan ppt( , ) 1,a b = maka | .a c
Bukti:
Karena ppt( , ) 1,a b = maka ada bilangan bulat x dan y sedemikian sehingga
1 .ax by= + Kita dapatkan
1 ( ) .c c c ax by acx bcy= ⋅ = + = +
Karena | dan | ,a ac a bc maka | ( ) .a acx bcy c+ = Jadi, | .a c �
Teorema 2.8
17
Diberikan bilangan-bilangan bulat taknol a dan .b Untuk suatu bilangan bulat ,d
ppt( , )d a b= jika dan hanya jika
1. | dan | ,d a d b
2. Jika | dan | ,c a c b maka | .c d
Bukti:
Jika diketahui ppt( , ),d a b= maka | dan | .d a d b Karena ppt( , ),d a b= maka
byaxd += untuk suatu bilangan bulat x dan .y Jadi, jika | dan | ,c a c b maka
| ( )c ax by+ atau | .c d Sebaliknya, misalkan d adalah bilangan bulat yang
memenuhi (1) dan (2). Jika c adalah pembagi persekutuan dari a dan ,b maka dari
(2) didapatkan | .c d Dengan Teorema 2.2 (6), diperoleh | |c ≤ | | .d Kuadratkan kedua
ruas, sehingga diperoleh
2 2c d≤
2 2 0c d− ≤
( )( ) 0.c d c d− + ≤
Maka .d c d− ≤ ≤ Menurut Definisi 2.6, d adalah pembagi persekutuan terbesar dari
a dan .b ��
B. Algoritma Euclides
Teorema berikut ini sering digunakan untuk membuktikan sifat-sifat bilangan-
bilangan bulat.
18
Teorema 2.9 (Prinsip Induksi Matematis)
Jika S adalah himpunan bilangan bulat positif dengan sifat:
(i) 1 ,S∈ dan
(ii) Jika ,k S∈ maka 1k S+ ∈
maka S adalah himpunan semua bilangan bulat positif.
Bukti:
Misalkan T adalah himpunan semua bilangan bulat positif yang tidak berada di S
dan andaikan T bukan himpunan kosong. Karena T tertata baik, maka T
mempunyai elemen terkecil, sebut .a Karena 1 ,S∈ maka 1>a dan 0 1 .a a< − <
Karena a bilangan bulat terkecil di ,T maka 1 ,a T− ∉ jadi 1 .a S− ∈ Dengan
hipotesa induksi, ( 1) 1 ,a a S− + = ∈ sehingga ,a T∉ yang kontradiksi dengan
kenyataan bahwa .a T∈ Kita simpulkan bahwa T adalah himpunan kosong dan S
terdiri dari semua bilangan bulat positif. �
Teorema 2.10 (Prinsip Kedua Induksi Matematis)
Jika S adalah himpunan bilangan bulat positif yang mempunyai sifat:
(i) 1 ,S∈ dan
(ii) Untuk setiap bilangan bulat positif ,n jika 1,2, , ,n S∈� maka 1n S+ ∈
19
maka S adalah himpunan semua bilangan bulat positif.
Bukti:
Misalkan S adalah himpunan bilangan-bilangan bulat yang memuat 1 dan untuk
setiap bilangan bulat positif ,n jika himpunan itu memuat 1,2, , ,n S∈� maka
1 .n S+ ∈ Misalkan T adalah himpunan semua bilangan bulat positif n sedemikian
sehingga semua bilangan-bilangan bulat positif yang kurang dari atau sama dengan n
berada di .S Maka 1 T∈ karena bilangan bulat positif yang kurang dari atau sama
dengan 1, yaitu 1 .S∈ Jika ,n T∈ maka semua bilangan bulat positif yang kurang
dari atau sama dengan n berada di .S Jadi menurut sifat himpunan ,S 1 .n S+ ∈ Jadi,
1 .n T+ ∈ Dengan demikian, menurut Teorema 2.9, T adalah himpunan semua
bilangan bulat positif. Ambil sebarang .x T∈ Maka semua bilangan bulat positif
yang kurang dari atau sama dengan x berada di .S Jadi, ,x S∈ sehingga T
subhimpunan .S Berdasar definisi ,S S memuat bilangan 1. Karena 1 ,S∈ maka
2 .S∈ Karena 1,2 ,S∈ maka 3 ,S∈ dan seterusnya. Jadi, jika diambil sebarang
,x S∈ maka x adalah bilangan bulat positif. Padahal T adalah himpunan semua
bilangan bulat positif. Jadi, .x T∈ Akibatnya S subhimpunan .T Jadi, karena T
subhimpunan S dan S subhimpunan ,T maka ,S T= sehingga S adalah himpunan
semua bilangan bulat positif. �
Lemma 2.1
20
Jika ,a qb r= + maka ppt( , ) ppt( , ).a b b r=
Bukti:
Jika ppt( , ),d a b= maka ad | dan | .d b Akibatnya | ( )d a qb− atau | .d r Jadi, d
adalah pembagi persekutuan terbesar dari b dan .r Jika c adalah pembagi
persekutuan dari b dan ,r maka | ( )c qb r+ atau | .c a Ini membuat c sebagai
pembagi persekutuan a dan b , sehingga .c d≤ Jadi, ppt( , ).d b r= �
Teorema 2.11 (Algoritma Euclides)
Diberikan bilangan-bilangan bulat ar =0 dan br =1 sedemikian sehingga 0.a b≥ >
Jika algoritma pembagian dijalankan secara berturutan untuk mendapatkan
211 +++ += jjjj rqrr dengan 120 ++ << jj rr untuk 2 , 2, 1, ,0 −= nj � dan 01 =+nr ,
maka ppt( , ) na b r= di mana nr adalah bilangan sisa terakhir yang nilainya tidak sama
dengan nol.
Bukti:
Misal ar =0 dan br =1 adalah bilangan-bilangan bulat dengan ba ≥ . Dengan men-
jalankan algoritma pembagian secara berurutan, kita dapatkan
0 1 1 2 2 1, 0r q r r r r= + < <
1 2 2 3 3 2, 0r q r r r r= + < <
2 3 3 4 4 3, 0r q r r r r= + < <
�
21
2 1 1 1, 0− − − −= + < <n n n n n nr q r r r r
1 .− =n n nr q r
nr adalah bilangan sisa terakhir yang tidak sama dengan nol. Dengan menggunakan
Lemma 2.1, kita dapatkan
0 1 1 2 1ppt( , ) ppt( , ) ppt( , ) ppt( , )n n na b r r r r r r r−= = = = =� .
Jadi, ppt( , ) .na b r= �
Algoritma Euclides dapat digunakan untuk menyatakan pembagi persekutuan terbesar
dari dua bilangan bulat sebagai kombinasi linear dari bilangan-bilangan bulat itu.
Untuk melihat bahwa ppt( , )d a b= dapat dinyatakan sebagai kombinasi linear dari a
dan ,b kita lihat barisan persamaan yang dihasilkan dari Algoritma Euclides. Kita
dapatkan bahwa
112 −−− −= nnnn rqrr .
Ini menyatakan ppt( , )nr a b= sebagai kombinasi linear dari 2−nr dan 1−nr . Dengan
menyatakan 1 3 2 2n n n nr r q r− − − −= − , kita dapatkan
2 1 1n n n nr r q r− − −= −
2 1 3 2 2 ( )n n n n nr q r q r− − − − −= − −
1 2 2 1 3 (1 )n n n n nq q r q r− − − − −= + −
22
yang menyatakan ppt( , )nr a b= sebagai kombinasi linear dari 3−nr dan 2.nr − Kita
terus bekerja mundur dengan menggunakan langkah-langkah Algoritma Euclides
untuk menyatakan ppt( , )a b sebagai kombinasi linear dari pasangan-pasangan sisa
sebelumnya, sampai kita dapatkan ppt( , )a b sebagai kombinasi linear dari ar =0 dan
br =1 . Secara umum, jika kita telah mendapatkan kombinasi linear
1ppt( , ) j ja b sr tr −= + ,
maka, karena
112 −−− −= jjjj rqrr ,
kita dapatkan
1ppt ( , ) j ja b sr tr −= +
2 1 1 1 ( )j j j js r q r tr− − − −= − +
1 1 2 ( ) .j j jt sq r sr− − −= − +
Ini menunjukkan bagaimana kita harus bekerja dari belakang melalui persamaan-
persamaan yang diperoleh dari Algoritma Euclides sedemikian sehingga pada setiap
langkah ppt( , )a b dapat dinyatakan sebagai kombinasi linear dari a dan .b Ada
metode lain yang dapat digunakan untuk menentukan kombinasi linear dari a dan ,b
yaitu Algoritma Euclides Diperluas.
Teorema 2.12 (Algoritma Euclides Diperluas)
Jika diberikan bilangan-bilangan bulat a dan b , maka
23
ppt( , ) n na b s a t b= + ,
untuk suatu 0, 1, 2, n = � di mana ns dan nt adalah bentuk ke- n dari barisan yang
ditentukan secara rekursif dengan
0 01, 0s t= =
1 10, 1s t= =
� �
2 1 1 2 1 1,j j j j j j j js s q s t t q t− − − − − −= − = −
untuk 2, 3, , ,j n= � di mana jq adalah hasil bagi dalam pembagian Algoritma
Euclides untuk mendapatkan ppt( , ).a b
Bukti:
Dengan menggunakan Prinsip Kedua Induksi Matematis, kita akan membuktikan
bahwa
btasr jjj +=
untuk nj , 2, 1, ,0 �= . Untuk 0,j = kita mempunyai 0 0 01 0 .r a a b s a t b= = ⋅ + ⋅ = +
Dengan demikian, benar untuk 0.j = Demikian juga, untuk 1,j = kita dapatkan
1 1 10 1 ,r b a b s a t b= = ⋅ + ⋅ = + sehingga benar untuk 1=j .
Asumsikan bahwa
btasr jjj +=
untuk 0, 1, 2, , 1.j k= −� Maka dari Algoritma Euclides langkah ke- ,k didapatkan
24
2 1 1.k k k kr r q r− − −= −
Jadi,
2 1 1k k k kr r q r− − −= −
2 2 1 1 1 ( ) ( )k k k k ks a t b q s a t b− − − − −= + − +
2 2 1 1 1 1 − − − − − −= + − −k k k k k ks a t b q s a q t b
2 1 1 2 1 1 ( ) ( )− − − − − −= − + −k k k k k ks q s a t q t b
.= +k ks a t b ��
Contoh 2.2
Tentukan ppt(198,252) dan nyatakan sebagai kombinasi linear dari 198 dan 252.
Jawab:
252 1 198 54= ⋅ +
198 3 54 36= ⋅ +
54 1 36 18= ⋅ +
36 2 18= ⋅
Dengan menggunakan Algoritma Euclides, kita dapatkan ppt(198,252) 18.=
Sekarang, kita akan mencari kombinasi linear dari 198 dan 252 dengan menggunakan
Algoritma Euclides Diperluas.
25
j jr 1jr + 1jq + 2jr + js jt
0 252 198 1 54 1 0
1 198 54 3 36 0 1
2 54 36 1 18 1 1−
3 36 18 2 0 3− 4
4 4 5−
Nilai-nilai js dan jt dengan 0, 1, 2, 3, 4,j = dihitung dengan cara berikut:
0 01, 0,s t= =
1 10, 1,s t= =
2 0 1 1 2 0 1 11 0 1 1, 0 1 1 1,s s s q t t t q= − = − ⋅ = = − = − ⋅ = −
3 1 2 2 3 1 2 20 1 3 3, 1 ( 1) 3 4,s s s q t t t q= − = − ⋅ = − = − = − − ⋅ =
4 2 3 3 4 2 3 31 ( 3) 1 4, 1 4 1 5.s s s q t t t q= − = − − ⋅ = = − = − − ⋅ = −
Karena 4 18 ppt(198, 252)r = = dan 4 4 4 ,r s a t b= + didapatkan
( ) ( )18 ppt 198, 252 4 252 5 198.= = ⋅ + − ⋅
Teorema 2.13
Jika 0,k > maka ppt( , ) ppt( , ).ka kb k a b=
Bukti:
26
Misal ar =0 dan br =1 adalah bilangan-bilangan bulat dengan ba ≥ . Jika setiap
persamaan dalam Algoritma Euclides, kita kalikan dengan k , maka kita dapatkan
0 1 1 2 2 1 ( ) , 0kr q kr kr kr kr= + < <
1 2 2 3 3 2 ( ) , 0kr q kr kr kr kr= + < <
2 3 3 4 4 3( ) , 0kr q kr kr kr kr= + < <
�
2 1 1 1( ) , 0n n n n n nkr q kr kr kr kr− − − −= + < <
1 ( ) 0.n n nkr q kr− = +
Dari persamaan di atas terlihat bahwa Algoritma Euclides dikerjakan untuk bilangan
bulat kakr =0 dan 1 ,kr kb= sehingga pembagi persekutuan terbesar yang kita
dapatkan adalah .nkr Jadi, ppt( , ) ppt( , ).nka kb kr k a b= = ��
Teorema 2.14
Untuk setiap bilangan bulat 0,k ≠ ppt( , )ka kb = | | ppt( , ).k a b
Bukti:
Cukup dengan memperhatikan kasus 0.k < Jika 0,k < maka k− = | |k > 0. Dari
Teorema 2.13, kita dapatkan
ppt( , ) ppt( , ) ppt(| | ,| | )ka kb ka kb k a k b= − − = = | | ppt( , ).k a b ��
27
C. Kongruensi Linear
Persamaan Diophantus adalah persamaan yang membatasi penyelesaiannya pada
himpunan bilangan bulat.
Teorema 2.15
Persamaan Diophantus linear cbyax =+ mempunyai penyelesaian jika dan hanya
jika | ,d c di mana ppt( , ).d a b= Jika 00 , yx adalah suatu penyelesaian khusus dari
persamaan ,ax by c+ = maka penyelesaian umumnya adalah 0 ( )x x b d t= + dan
0 ( )y y a d t= − di mana t adalah bilangan bulat.
Bukti:
Misalkan x dan y adalah bilangan-bilangan bulat sedemikian sehingga .ax by c+ =
Karena |d a dan | ,d b dengan Teorema 2.2 (7), didapatkan | .d c Sebaliknya,
misalkan | .d c Karena ppt( , ),d a b= maka dengan menggunakan Teorema 2.3, ada
bilangan bulat s dan t sedemikian sehingga
.d as bt= +
Karena | ,d c maka ada bilangan bulat e sedemikian sehingga
( ) ( ) ( ).c de as bt e a se b te= = + = +
Dengan demikian, salah satu penyelesaian dari persamaan cbyax =+ tersebut adalah
0x se= dan 0 .y te= Untuk membuktikan pernyataan kedua dari Teorema di atas,
28
misalkan 00 , yx adalah penyelesaian dari persamaan .ax by c+ = Jika yx ′′ , adalah
penyelesaian lain, maka
0 0 ,ax by c ax by′ ′+ = = + sehingga ybxabyax ′+′=+ 00
yang ekivalen dengan
0 0 ax ax by by′ ′− = −
0 0( ) ( ).a x x b y y′ ′− = −
Kita bagi kedua ruas dari persamaan terakhir dengan ,d kita dapatkan
0 0( )( ) ( )( ).a d x x b d y y′ ′− = −
Menurut Teorema 2.5, ppt( , ) 1a d b d = . Dengan menggunakan Teorema 2.7, karena
0( ) | ( )( )a d b d y y′− , maka 0( ) | ( ).a d y y′− Dengan demikian, ada bilangan bulat t
sehingga 0 ( )y y a d t′− = atau 0 ( ) .y y a d t′ = − Dengan menyubstitusikan nilai y′ ke
dalam persamaan 0 0( ) ( ),a x x b y y′ ′− = − diperoleh
0 0 0( ) ( ( ( ) ))a x x b y y a d t′ − = − −
0 0 0( ) ( ( ) )a x x b y y a d t′ − = − + �
0( ) ( )a x x b a d t′ − = �
0 ( ) .x x b d t′ = + �
Jadi, terbukti bahwa penyelesaian umum persamaan Diophantus linear cbyax =+
adalah 0 ( )x x b d t= + dan 0 ( )y y a d t= − di mana t adalah bilangan bulat. �
29
Definisi 2.8
Diberikan bilangan bulat positif .n Bilangan bulat a dikatakan kongruen modulo n
dengan bilangan bulat ,b ditulis (mod ),a b n≡ jika | ( ).n a b−
Teorema 2.16
Jika a dan b adalah bilangan-bilangan bulat, maka (mod )a b n≡ jika dan hanya jika
ada bilangan bulat k sedemikian sehingga knba += .
Bukti:
Jika diketahui (mod ),a b n≡ maka | ( ).n a b− Ini berarti bahwa ada bilangan bulat k
sedemikian sehingga knba =− atau knba += . Sebaliknya, jika ada bilangan bulat
k dengan ,a b kn= + maka knba =− . Dengan demikian, | ( ),n a b− yaitu
(mod ).a b n≡ ��
Teorema 2.17
Jika ncba dan , , adalah bilangan-bilangan bulat, dengan 0,n > sedemikian sehingga
(mod ),a b n≡ maka
(i) (mod ),a c b c n+ ≡ +
(ii) (mod ),a c b c n− ≡ −
(iii) (mod ).ac bc n≡
Bukti:
30
Karena (mod ),a b n≡ maka | ( ).n a b− Karena ( ) ( ),a b a c b c− = + − + maka
| (( ) ( )).n a c b c+ − + Jadi, (mod ).a c b c n+ ≡ + Karena ( ) ( ),a b a c b c− = − − − maka
| (( ) ( )).n a c b c− − − Jadi, (mod ).a c b c n− ≡ − Karena | ( ),n a b− maka | ( ) ,n a b c−
yaitu | ( ).n ac bc− Dengan demikian, (mod ).ac bc n≡ �
Teorema 2.18
Jika ncba dan , , adalah bilangan-bilangan bulat sedemikian sehingga 0,n >
ppt( , )d n c= dan (mod ),ac bc n≡ maka (mod ).a b n d≡
Bukti:
Jika (mod ),ac bc n≡ maka | ( ) ( ).n ac bc c a b− = − Dengan demikian, ada bilangan
bulat k sedemikian sehingga ( ) .c a b kn− = Dengan membagi kedua ruas dengan ,d
kita dapatkan ( )( ) ( ),c d a b k n d− = yaitu ( ) | ( )( ).n d c d a b− Karena ppt( ,n d
) 1,c d = maka dengan menggunakan Teorema 2.7 diperoleh ( ) | ( ),n d a b− yaitu
(mod ).a b n d≡ ��
Definisi 2.9
Diberikan bilangan bulat a dan bilangan bulat positif .m Dengan menggunakan
algoritma pembagian diperoleh
a bm r= +
31
dengan 0,1,2, , 1.r m= −� Bilangan bulat positif r disebut sisa taknegatif terkecil
dari a modulo .m
Perhatikan bahwa dari persamaan ,a bm r= + kita dapatkan (mod ).a r m≡ Dengan
demikian, setiap bilangan bulat kongruen modulo m dengan salah satu bilangan bulat
dari himpunan 0,1, , 1m −� yang adalah sisa jika bilangan bulat itu dibagi dengan .m
Karena tidak ada dua bilangan bulat dari 0,1, , 1m −� yang kongruen modulo ,m
maka kita mempunyai m bilangan bulat sedemikian sehingga setiap bilangan bulat
kongruen dengan tepat satu dari m bilangan bulat ini.
Definisi 2.10
Sistem lengkap dari sisa modulo m adalah himpunan bilangan-bilangan bulat
sedemikian sehingga setiap bilangan bulat kongruen modulo m dengan tepat satu
bilangan bulat dari himpunan itu.
Contoh 2.3
Algoritma pembagian menunjukkan bahwa himpunan dari bilangan-bilangan bulat
0,1, , 1m −� adalah sistem lengkap dari sisa modulo .m Himpunan {0,1, , 1}m −�
disebut himpunan sisa taknegatif terkecil modulo ,m dan ditulis .m�
32
Lemma 2.2
Himpunan m bilangan bulat yang tidak saling kongruen modulo m membentuk
sistem lengkap dari sisa modulo .m
Bukti:
Andaikan suatu himpunan m bilangan bulat yang tidak saling kongruen modulo m
tidak membentuk sistem lengkap dari sisa modulo .m Maka ada bilangan bulat a
yang tidak kongruen modulo m dengan semua bilangan bulat dalam himpunan itu.
Dengan demikian, tidak ada bilangan bulat dalam himpunan itu yang merupakan sisa
dari a jika a dibagi dengan .m Karena himpunan itu tidak membentuk sistem
lengkap dari sisa modulo ,m maka paling banyak akan ada 1m − sisa bilangan bulat
berbeda ketika bilangan-bilangan bulat tersebut dibagi dengan .m Menurut prinsip
pigeonhole (yang mengatakan bahwa jika lebih dari n benda didistribusikan ke
dalam n kotak, maka paling sedikit dua benda berada dalam kotak yang sama),
paling sedikit dua bilangan bulat dalam himpunan itu memiliki sisa modulo m yang
sama. Ini tidak mungkin, karena bilangan-bilangan bulat dalam himpunan itu tidak
saling kongruen modulo .m Dengan demikian, himpunan bilangan bulat m yang
tidak saling kongruen modulo m sama dengan .m� �
Teorema 2.19
Jika 1 2{ , , , }mr r r� adalah sistem lengkap dari sisa modulo m dan a adalah bilangan
bulat positif dengan ppt( , ) 1,a m = maka
33
1 2{ , , , }mar b ar b ar b+ + +�
adalah sistem lengkap dari sisa modulo m untuk setiap bilangan bulat b .
Bukti:
Pertama, kita tunjukkan bahwa tidak ada dua bilangan bulat dari
1 2{ , , , }mar b ar b ar b+ + +�
yang saling kongruen modulo m . Andaikan
(mod ),j kar b ar b m+ ≡ +
dengan .j k≠ Maka dari Teorema 2.17 (ii) didapatkan
(mod ),j kar b b ar b b m+ − ≡ + −
(mod ).j kar ar m≡
Karena ppt( , ) 1,a m = maka menurut Teorema 2.18
(mod ).j kr r m≡
Kontradiksi, karena diketahui bahwa (mod )j kr r m≡/ jika .j k≠ Jadi, kita simpulkan
bahwa tidak ada dua bilangan bulat dari 1 2{ , , , }mar b ar b ar b+ + +� yang saling
kongruen modulo m jika .j k≠
Menurut Lemma 2.2, karena bilangan-bilangan bulat 1 2{ , , , }mar b ar b ar b+ + +�
terdiri dari m bilangan bulat yang tidak saling kongruen modulo ,m maka himpunan
ini membentuk sistem lengkap modulo .m �
34
Teorema 2.20
Diberikan bilangan-bilangan bulat nba dan , dengan 0>n dan ppt( , ) .a n d= Jika
� �� �/ maka (mod )ax b n≡ tidak mempunyai penyelesaian. Jika | ,d b maka
(mod )ax b n≡ mempunyai d buah penyelesaian yang tidak saling kongruen modulo
.n
Bukti:
Dari Teorema 2.16, (mod )ax b n≡ ekivalen dengan nybax += yang ekivalen
dengan .ax ny b− = Bilangan bulat x adalah penyelesaian dari (mod )ax b n≡ jika
dan hanya jika ada bilangan bulat y sedemikian sehingga .ax ny b− = Dengan
Teorema 2.15, jika � �� �/ maka persamaan tersebut tidak mempunyai penyelesaian.
Jika | ,d b maka bnyax =− mempunyai banyak penyelesaian dengan
0 ( )x x n d t= + dan 0 ( )y y a d t= +
di mana 0xx = dan 0yy = adalah penyelesaian khusus dari persamaan tersebut.
Untuk menentukan banyaknya penyelesaian yang tidak saling kongruen, misalkan
dua penyelesaian 1 0 1( )x x n d t= + dan 2 0 2( )x x n d t= + kongruen modulo n . Maka
0 1 0 2( ) ( ) (mod )x n d t x n d t n+ ≡ +
1 2 ( ) ( ) (mod )n d t n d t n≡
Karena ( ) | ,n d n maka ppt( , ) ,n n d n d= sehingga dengan menggunakan Teorema
2.18 kita dapatkan
1 2 (mod ).t t d≡
35
Ini menunjukkan bahwa himpunan penyelesaian yang tidak kongruen terdiri dari d
buah penyelesaian 0 ( ) ,tx x n d t= + dengan 1 , 2, 1, ,0 −= dt � . �
Contoh 2.4
Carilah penyelesaian 18 30(mod 42).x ≡
Jawab:
Untuk mendapatkan penyelesaian khusus, kita perhatikan persamaan Diophantus
linear 304218 =− yx . Dengan Algoritma Euclides diperoleh
42 2 18 6= ⋅ +
18 3 6= ⋅
sehingga 182426 ⋅−= . Dengan demikian, kita dapatkan
6 42 2 18= − ⋅
5 6 5 42 5 2 18⋅ = ⋅ − ⋅ ⋅
30 10 18 ( 5) ( 42)= − ⋅ + − ⋅ −
dan penyelesaian khusus dari 304218 =− yx adalah 100 −=x dan 50 −=y . Dari
bukti Teorema 2.18, kita dapatkan 6 buah penyelesaian yang tidak saling kongruen
modulo 42, yaitu
0 10,x = −
421 0 6( ) 1 10 7 1 10 7 3,x x= + ⋅ = − + ⋅ = − + = −
422 0 6( ) 2 10 7 2 10 14 4,x x= + ⋅ = − + ⋅ = − + =
36
423 0 6( ) 3 10 7 3 10 21 11,x x= + ⋅ = − + ⋅ = − + =
424 0 6( ) 4 10 7 4 10 28 18,x x= + ⋅ = − + ⋅ = − + = dan
425 0 6( ) 5 10 7 5 10 35 25.x x= + ⋅ = − + ⋅ = − + =
Definisi 2.11
Diberikan bilangan bulat a dan ppt( , ) 1.a n = Penyelesaian dari kongruensi linear
1(mod )ax n≡ disebut invers dari a modulo n .
Contoh 2.5
Karena penyelesaian dari 7 1(mod 31)x ≡ adalah 9,x = maka 9 dan semua bilangan
yang kongruen modulo 31 dengan 9 adalah invers dari 7 modulo 31.
Teorema 2.21
Jika p adalah bilangan prima dan | ,p ab maka |p a atau | .p b
Bukti:
Jika | ,p a maka bukti selesai. Jadi asumsikan bahwa | ./p a Karena pembagi positif
dari p adalah 1 dan ,p maka ppt( , ) 1.p a = Dengan demikian, menurut Lemma
Euclides, maka | .p b �
37
Teorema 2.22
Misalkan p adalah bilangan prima. Bilangan bulat positif a adalah invers modulo
p terhadap dirinya sendiri jika dan hanya jika 1(mod )a p≡ atau 1(mod ).a p≡ −
Bukti:
Jika 1(mod )a p≡ atau 1(mod ),a p≡ − maka | ( 1)p a − atau | ( 1),p a + sehingga
| ( 1)( 1)p a a− + yaitu 2 1(mod ),a p≡ sehingga 1(mod ).a a p⋅ ≡ Sebaliknya, jika
1(mod ),a a p⋅ ≡ maka 2| ( 1).p a − Karena 2 1 ( 1)( 1),a a a− = − + maka
| ( 1)( 1),p a a+ − sehingga | ( 1)p a − atau | ( 1).p a + Oleh karena itu, 1(mod )a p≡
atau 1(mod ).a p≡ − �
D. Teorema Sisa Cina
Sebelum membahas tentang Teorema Sisa Cina, terlebih dahulu akan dibahas
teorema-teorema yang diperlukan untuk membuktikan Teorema Sisa Cina tersebut.
Teorema 2.23
Jika ppt( , ) 1a b = dan ppt( , ) 1,a c = maka ppt( , ) 1.a bc =
Bukti:
Jika ppt( , ) 1,a b = maka ada bilangan bulat x dan y sedemikian sehingga
byax +=1 . Jika ppt( , ) 1,a c = maka ada bilangan bulat u dan v sedemikian
sehingga cvau +=1 . Dengan demikian, kita dapatkan
38
1 1 1= ⋅
( )( )ax by au cv= + +
2a ux acvx abuy bcvy= + + +
( ) ( )a aux cvx buy bc vy= + + +
( )ae bc f= +
dengan buycvxauxe ++= dan vyf = . Jadi, menurut Teorema 2.4 diperoleh
ppt( , ) 1.a bc = �
Teorema 2.24
Jika 1 2, , , ,na a a b� adalah bilangan-bilangan bulat sedemikian sehingga 1ppt( , )a b =
2ppt( , ) ppt( , ) 1na b a b= = =� , maka 1 2ppt( , ) 1na a a b =� untuk setiap bilangan asli
.n
Bukti:
Dengan menggunakan Prinsip Induksi Matematika, kita akan memperlihatkan bahwa
1 2ppt( , ) 1na a a b =� untuk semua bilangan asli .n Untuk 1n = benar bahwa jika
1ppt( , ) 1,a b = maka 1ppt( , ) 1.a b =
Asumsikan teorema benar untuk ,n k= yaitu jika 1 2ppt( , ) ppt( , )a b a b= = =�
ppt( , ) 1,ka b = maka 1 2ppt( , ) 1.ka a a b =� Akan dibuktikan bahwa Teorema benar
untuk 1.n k= + Misalkan 1 2 1ppt( , ) ppt( , ) ppt( , ) ppt( , ) 1,k ka b a b a b a b+= = = = =� dan
39
1 2 .km a a a= � Maka ppt( , ) 1,m b = sehingga ada bilangan bulat x dan y sedemikian
sehingga bymx +=1 . Karena 1ppt( , ) 1,ka b+ = maka ada bilangan bulat u dan v
sedemikian sehingga bvuak += +11 . Dengan demikian, kita dapatkan
1 1 1= ⋅
1( )( )kmx by a u bv+= + +
21 1k kma ux mbvx a buy b vy+ += + + +
1 1( ) ( )k kma ux b mvx a uy bvy+ += + + +
1kma e bf+= +
1 2 1( )k ka a a a e bf+= +�
dengan uxe = dan bvyuyamvxf k ++= +1 . Jadi, 1 2 1ppt( , ) 1.ka a a b+ =� Jadi, benar
bahwa jika 1 2, , , ,na a a b� adalah bilangan-bilangan bulat sedemikian sehingga
1ppt( , )a b = 2ppt( , ) ppt( , ) 1,na b a b= = =� maka 1 2ppt( , ) 1na a a b =� untuk setiap
bilangan asli .n �
Teorema Sisa Cina berikut ini adalah suatu metode yang dapat digunakan untuk
memecahkan sistem-sistem kongruensi tertentu.
40
Teorema 2.25 (Teorema Sisa Cina)
Jika rmmm , , , 21 � adalah bilangan-bilangan bulat positif yang relatif prima
(yaitu ppt( , ) 1 untuk ),i jm m i j= ≠ maka sistem kongruensi linear
1 1 (mod )x a m≡
2 2 (mod )x a m≡
�
(mod )r rx a m≡
mempunyai penyelesaian tunggal modulo 1 2 .rM m m m= �
Bukti:
Untuk setiap rk , 2, 1, �= , misalkan rkkkk mmmmmmMM �� 1121 +−== . Karena
ppt( , ) 1j km m = untuk ,j k≠ maka menurut Teorema 2.24 ppt( , ) 1.k kM m = Dengan
menggunakan Teorema 2.20, kita dapatkan invers ky dari kM modulo ,km sehingga
1(mod ).k k kM y m≡ Tujuan kita adalah untuk membuktikan bahwa bilangan bulat
0 1 1 1 2 2 2 r r rx a M y a M y a M y= + + +�
merupakan penyelesaian dari sistem yang diberikan.
Untuk memperlihatkan ini, kita harus menunjukkan bahwa 0 (mod )k kx a m≡ untuk
1, 2, , .k r= � Karena jk Mm | untuk kj ≠ , maka 0(mod )j kM m≡ . Karena itu,
0 1 1 1 2 2 2 1 1 1 1 1 1k k k k k k k k k r r rx a M y a M y a M y a M y a M y a M y− − − + + += + + + + + + +� �
0 0 0 0 0 ( mod )k k k ka M y m≡ + + + + + + +� �
41
( mod )k k k ka M y m≡
( mod ).k ka m≡
Ini menunjukkan bahwa sistem kongruensi tersebut mempunyai penyelesaian.
Sekarang kita tunjukkan bahwa setiap dua penyelesaian adalah kongruen modulo .M
Misal 1x adalah bilangan bulat lain yang memenuhi sistem kongruensi, maka untuk
semua ,k 0 1 ( mod )k kx x a m≡ ≡ sehingga 0 1| ( ).km x x− Karena ppt( , ) 1,j km m =
maka menurut Teorema 2.6, 0 1| ( ),M x x− yaitu 0 1(mod ).x x M≡ Ini menunjukkan
bahwa sistem kongruensi mempunyai penyelesaian tunggal modulo .M �
Contoh 2.6
Cari nilai x yang memenuhi
2 (mod 3)x ≡
3 (mod 5)x ≡
2 (mod 7)x ≡
Jawab:
1 2 3 3 5 7 105.M m m m= = ⋅ ⋅ =
1 1 105 3 35.M M m= = =
2 2 105 5 21.M M m= = =
3 3 105 7 15.M M m= = =
42
Dari 135 1(mod3)y ≡ didapatkan 1 2(mod 3).y ≡ Dari 221 1(mod 5)y ≡ diperoleh
2 1(mod 5).y ≡ Dari 315 1(mod 7)y ≡ diperoleh 3 1(mod 7).y ≡ Dengan demikian,
penyelesaian tunggal sistem persamaan kongruensi tersebut adalah
2 35 2 3 21 1 2 15 1 (mod105)x ≡ ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅
140 63 30 (mod105)≡ + +
233 (mod105)≡
23 (mod105).≡
E. Teorema-Teorema Lain
Ada beberapa teorema lain yang diperlukan dalam membahas kriptosistem RSA
selain teorema-teorema yang telah dipaparkan di atas.
Definisi 2.12 (Grup)
Grup ( , )G � adalah himpunan G dengan operasi � yang memenuhi sifat-sifat
berikut:
1. ( , ) a b G a b G∀ ∈ ∈�
2. ( , , ) ( ) ( )a b c G a b c a b c∀ ∈ =� � � �
3. ( )( ) .e G a G a e e a a∃ ∈ ∀ ∈ = =� � Elemen e itu disebut elemen identitas.
4. 1 1 1( )( ) a G a G a a a a e− − −∀ ∈ ∃ ∈ = =� � .
43
Grup G dikatakan berhingga jika G himpunan berhingga. Grup G dikatakan
takhingga jika G himpunan takhingga. G disebut grup Abel jika ( , ) a b G a b∀ ∈ =�
.b a�
Contoh 2.7
Untuk semua 1n ≥ , himpunan bilangan-bilangan bulat modulo n , ditulis n� ,
membentuk grup dengan operasi + dan memuat n elemen. Elemen identitasnya
adalah 0 dan untuk semua elemen ,na ∈� 1a n a− = − .
Teorema 2.26
Misalkan G adalah grup.
(a) Jika , ,a b c G∈ dan ,ab ac= maka b c= (Hukum Kanselasi Kiri).
(b) Jika , ,a b c G∈ dan ,ba ca= maka b c= (Hukum Kanselasi Kanan).
Bukti:
(a) Jika ,ab ac= maka 1a ab− = 1 ,a ac− sehingga 1 1( ) ( ) ,a a b a a c− −= yaitu .eb ec=
Jadi .b c=
(b) Jika ,ba ca= maka 1baa− = 1,caa− sehingga 1 1( ) ( ),b aa c aa− −= yaitu .be ce=
Jadi .b c= �
44
Definisi 2.13 (Subgrup)
Subgrup dari grup G adalah subhimpunan takkosong H dari G yang juga
merupakan grup dengan operasi yang sama pada .G Kita tulis H G⊆ untuk
menunjukkan bahwa H adalah subgrup dari G dan H G⊂ untuk menunjukkan H
adalah subgrup sejati dari G dengan H G≠ .
Definisi 2.14 (Orde dari Grup)
Orde G adalah banyaknya elemen dalam grup berhingga G dan dinotasikan dengan
# .G
Definisi 2.15
Relasi ∼ pada himpunan takkosong S disebut relasi ekivalensi pada S jika
memenuhi sifat-sifat berikut:
1. Refleksif: ( )a S∀ ∈ a ∼ .a
2. Simetrik: ( , )a b S∀ ∈ jika a ∼ ,b maka b ∼ .a
3. Transitif: ( , , )a b c S∀ ∈ jika a ∼b dan b ∼ ,c maka a ∼ .c
Definisi 2.16
Himpunan P dari subhimpunan-subhimpunan takkosong dari himpunan takkosong
S membentuk partisi dari S jika
(i) S adalah gabungan dari himpunan-himpunan di P
45
(ii) Jika A dan B berada di P dan ,A B≠ maka .A B∩ = ∅
Definisi 2.17
Misalkan ∼ adalah relasi ekivalensi pada himpunan ,S dan .a S∈ Subhimpunan
[ ] { :a x S a= ∈ ∼ }x dari S disebut kelas ekivalensi yang memuat .a
Teorema 2.27
Jika ∼ adalah relasi ekivalensi pada himpunan ,S maka himpunan semua kelas
ekivalensi membentuk partisi dari .S Sebaliknya, misalkan P adalah partisi dari ,S
dan didefinisikan relasi ∼ pada S dengan a ∼b jika ada himpunan di P yang
memuat a dan ,b maka ∼ adalah relasi ekivalensi pada .S
Bukti:
Misalkan ∼ adalah relasi ekivalensi pada .S Jika ,a S∈ maka [ ]a a∈ sebab a ∼ ,a
sehingga S adalah gabungan dari kelas-kelas ekivalensi. Akan dibuktikan bahwa jika
dua kelas ekivalensi beririsan maka keduanya sama. Andaikan bahwa [ ] [ ] ,a b∩ ≠ ∅
dan misalkan [ ] [ ].c a b∈ ∩ Ambil sebarang [ ].x a∈ Maka a ∼ .x Jadi c ∼ a dan
a ∼ ,x sehingga c ∼ .x Karena [ ],b b∈ maka b ∼ .c Dengan demikian, dapat
disimpulkan bahwa b ∼ .x Jadi, [ ].x b∈ Ini menunjukkan bahwa [ ] [ ].a b⊆ Dengan
cara yang sama, dapat diperlihatkan bahwa [ ] [ ].a b⊇ Oleh karena itu, [ ] [ ].a b=
46
Sekarang andaikan relasi ∼ didefinisikan pada S seperti di atas. Jika ,a S∈ maka
a ∼ a karena ada suatu himpunan dalam partisi P yang memuat .a Jika ada
himpunan yang memuat a dan ,b maka himpunan itu memuat b dan ,a sehingga ∼
adalah simetrik. Akhirnya, misalkan a ∼b dan b ∼ .c Maka ada himpunan di P yang
memuat a dan ,b yaitu ,A dan ada himpunan di P yang memuat b dan ,c yaitu .B
Karena ,b A B∈ ∩ maka .A B∩ ≠ ∅ Jadi, A B= karena P adalah sebuah partisi.
Karena a dan ,c A B∈ = maka a ∼ ,c sehingga ∼ adalah transitif. Jadi, terbukti
bahwa ∼ adalah relasi ekivalensi. �
Teorema 2.28
Misalkan H adalah subgrup dari grup ,G dan didefinisikan relasi ∼ pada G sebagai
berikut:
a ∼b jika dan hanya jika 1 .ab H− ∈
Maka ∼ adalah relasi ekivalensi pada .G
Bukti:
Refleksif: Jika ,a G∈ maka a ∼ a karena 1 .aa e H− = ∈
Simetrik: Jika a ∼ ,b maka 1 ,ab H− ∈ sehingga 1 1( ) ,ab H− − ∈ yaitu 1 .ba H− ∈ Jadi,
b ∼ .a
47
Transitif: Jika a ∼b dan b ∼ ,c maka 1ab H− ∈ dan 1 ,bc H− ∈ sehingga
1 1 1 1 1( )( ) ( ) .ab bc a b b c ac H− − − − −= = ∈ Jadi, a ∼ .c �
Definisi 2.18 (Koset)
G adalah grup dan .H G⊆ Untuk ,a G∈ himpunan { : }aH ah h H= ∈ disebut koset
kiri H dan himpunan { : }Ha ha h H= ∈ disebut koset kanan .H
Definisi 2.19
Fungsi : S Tα → dikatakan onto jika ( )( )y T x S∀ ∈ ∃ ∈ ( ) .x yα =
Fungsi : S Tα → dikatakan satu-satu jika 1 2( , )x x S∀ ∈ 1 2 1 2( ) ( ) .x x x xα α= � =
Fungsi yang onto dan satu-satu disebut korespondensi satu-satu.
Lemma 2.3
Jika H adalah subgrup berhingga dari grup ,G dan ,a G∈ maka # # .H Ha=
Bukti:
Didefinisikan : H Haα → dengan ( )h haα = untuk setiap .h H∈ Ini adalah fungsi
karena ha secara tunggal ditentukan oleh h dan .a Fungsi ini onto karena Ha
terdiri dari elemen-elemen yang mempunyai bentuk ha dengan .h H∈ Untuk
menunjukkan bahwa α satu-satu, ambil sebarang 1 2,h h H∈ dengan 1 2( ) ( ).h hα α=
48
Maka 1 2 .h a h a= Dengan menggunakan kanselasi kanan diperoleh 1 2.h h= Jadi α
adalah satu- satu. Terbukti α adalah korespondensi satu-satu. Jadi # # .H Ha= ��
Teorema 2.29 (Lagrange)
Jika H adalah subgrup dari grup berhingga ,G maka # H membagi habis # .G
Bukti:
Jika ∼ adalah relasi ekivalensi dalam Teorema 2.28, maka kelas ekivalensi
[ ] { :a x G a= ∈ ∼ }x
{ :x G x= ∈ ∼ }a
1{ : }x G xa H−= ∈ ∈
1{ : , }x G xa h h H−= ∈ = ∈
{ : , }x G x ha h H= ∈ = ∈
{ : }.ha h H= ∈
Jadi, koset-koset kanan H adalah kelas-kelas ekivalensi, sehingga membentuk partisi
dari .G Jadi dua koset kanan dari H adalah sama atau saling asing. Karena G
berhingga, maka banyaknya koset juga berhingga, misalnya 1 2, , , .kHa Ha Ha� Maka
1 2 .kG Ha Ha Ha= ∪ ∪ ∪�
Menurut Lemma 2.3, setiap koset iHa terdiri dari # H elemen, sehingga
# (# ),G k H= yaitu # H habis membagi # .G �
49
Definisi 2.20 (Fungsi Euler)
Fungsi φ disebut fungsi Euler jika untuk ,n ∈� ( )nφ adalah banyaknya bilangan
bulat positif k n≤ yang relatif prima dengan .n
Teorema 2.30
Jika p adalah bilangan prima dan a bilangan bulat positif, maka 1( )a a ap p pφ −= − .
Bukti:
Jika p adalah bilangan prima dan | ,/p n maka ppt( , ) 1.an p = Ada 1ap − bilangan
bulat di antara 1 dan ap yang habis dibagi ,p yaitu
1, 2 ,3 , , ( ) .ap p p p p−�
Jadi, himpunan {1,2, , }ap� terdiri dari 1a ap p −− bilangan bulat yang relatif prima
dengan .ap Menurut Definisi 2.20, 1( ) .a a ap p pφ −= − �
Teorema 2.31 (Fungsi Euler)
Jika φ adalah fungsi Euler, maka
1. (1) 1φ = .
2. Jika adalah bilangan prima, maka ( ) 1p p pφ = − .
3. Jika ppt( , ) 1m n = , maka ( ) ( ) ( )mn m nφ φ φ= .
4. Jika 1 21 2
kee ekn p p p= � adalah faktorisasi prima dari n , maka
1 2( ) (1 1 )(1 1 ) (1 1 )kn n p p pφ = − − −� .
50
Bukti:
1. Menurut Definisi 2.20, (1) 1φ = .
2. Jika p adalah bilangan prima, maka setiap bilangan positif yang tidak lebih
besar dari p relatif prima dengan p . Karena ada 1p − buah bilangan bulat
semacam itu, maka ( ) 1p pφ = − .
3. Kita perlihatkan bilangan-bilangan bulat positif yang tidak lebih besar dari mn
dengan cara berikut:
1 1 2 1 ( 1) 12 2 2 2 ( 1) 23 3 2 3 ( 1) 3
2 ( 1)
2 3
m m n m
m m n m
m m n m
r m r m r n m r
m m m mn
+ + − ++ + − ++ + − +
+ + − +
�
�
�
� � � �
�
� � � �
�
Sekarang, misalkan r adalah bilangan bulat positif yang kurang dari m dan
ppt( , ) dengan 1.m r d d= > Karena setiap elemen pada baris ke- r mempunyai
bentuk km r+ dengan 1 1k n≤ ≤ − dan | ( )d km r+ , maka tidak ada bilangan
pada baris ke- r yang relatif prima dengan .mn
Akibatnya, untuk menentukan bilangan bulat yang relatif prima dengan mn , kita
harus melihat baris ke- r jika ppt( , ) 1m r = . Jika ppt( , ) 1m r = dengan 1 r m≤ ≤ ,
kita harus menentukan berapa banyak bilangan bulat pada baris ini yang relatif
prima dengan mn . Elemen pada baris ini adalah , , 2 , , ( 1)r m r m r n m r+ + − +� .
Karena ppt( , ) 1m r = , setiap elemen bilangan bulat pada baris itu relatif prima
51
dengan .m Dari Teorema 2.19, bilangan-bilangan bulat pada baris ke- r
membentuk sistem lengkap sisa modulo .n Dengan demikian, untuk setiap baris
ada ( )nφ elemen yang relatif prima dengan .n Karena bilangan-bilangan bulat
( )nφ ini juga relatif prima dengan ,m maka bilangan-bilangan bulat itu relatif
prima dengan .mn Karena ada ( )mφ baris yang memuat ( )nφ bilangan-bilangan
bulat yang relatif prima dengan ,mn maka dapat disimpulkan bahwa
( ) ( ) ( ).mn m nφ φ φ=
4. Dari Teorema 2.31 (3), maka
1 21 2( ) ( ) ( ) ( ).kaa a
kn p p pφ φ φ φ= �
Dari Teorema 2.30, didapatkan
1( ) (1 1 )j j j ja a a aj j j j jp p p p pφ −= − = −
untuk 1, 2, , .j k= � Dengan demikian,
1 21 1 2 2( ) (1 1 ) (1 1 ) (1 1 )kaa a
k kn p p p p p pφ = − − −�
1 21 2 1 2(1 1 ) (1 1 ) (1 1 )kaa a
k kp p p p p p= − − −� �
1 2(1 1 ) (1 1 ) (1 1 ).kn p p p= − − −� �
Teorema 2.32 (Teorema Kecil Fermat)
Jika p adalah bilangan prima dan a adalah bilangan bulat positif dengan | ,/p a
maka 1 1(mod )pa p− ≡ .
Bukti:
52
Perhatikan bilangan-bilangan bulat , 2 , , ( 1) .a a p a−� Tidak ada bilangan bulat yang
dapat dibagi oleh .p Jika | ,p ja maka dengan Teorema 2.7, kita dapatkan | .p j Ini
tidak mungkin, karena 1 1.j p≤ ≤ − Selanjutnya, tidak ada dua bilangan di antara
bilangan-bilangan bulat , 2 , , ( 1)a a p a−� yang saling kongruen modulo .p Untuk
melihat ini, andaikan (mod ), dengan 1 1.ja ka p j k p≡ ≤ < ≤ − Maka dengan meng-
gunakan Teorema 2.18, kita dapatkan (mod )j k p≡ karena ppt( , ) 1a p = . Ini tidak
mungkin, karena dan j k adalah bilangan bulat positif yang kurang dari 1.p −
Karena bilangan-bilangan bulat , 2 , , ( 1)a a p a−� adalah himpunan semua bilangan-
bilangan bulat 1p − yang tidak saling kongruen dengan 0 dan tidak ada dua bilangan
yang saling kongruen modulo ,p kita tahu bahwa sisa positif terkecil dari
, 2 , , ( 1)a a p a−� adalah 1,2, , 1.p −� Akibatnya, perkalian dari bilangan-bilangan
bulat , 2 , , ( 1)a a p a−� saling kongruen modulo p dengan perkalian bilangan-
bilangan bulat positif 1p − yang pertama. Dengan demikian,
2 ( 1) 1 2 ( 1)(mod ).a a p a p p⋅ − ≡ ⋅ −� �
Oleh karena itu,
1( 1)! ( 1)!(mod ).pa p p p− − ≡ −
Karena ppt(( 1)!, ) 1p p− = , maka dengan menggunakan Teorema 2.18, kita dapatkan
1 1(mod ).pa p− ≡ �
53
Teorema 2.33
Jika p adalah bilangan prima dan a adalah bilangan bulat positif, maka
(mod )pa a p≡ .
Bukti:
Jika | ,/p a maka dengan menggunakan Teorema Kecil Fermat, diperoleh
1 1(mod ).pa p− ≡ Kalikan kedua ruas dengan a , kita dapatkan (mod )pa a p≡ . Jika
|p a , maka | pp a sehingga 0(mod )pa a p≡ ≡ . �
Definisi 2.21
Sistem sisa modulo n tereduksi adalah himpunan ( )nφ bilangan-bilangan bulat
sedemikian sehingga setiap elemen dari himpunan itu relatif prima dengan ,n dan
tidak ada dua elemen dari himpunan itu yang saling kongruen modulo .n
Teorema 2.34
Jika 1 2 ( ), , , nr r rφ� adalah sistem sisa modulo n tereduksi dan jika a adalah bilangan
bulat positif dengan ppt( , ) 1,a n = maka himpunan 1 2 ( ), , , nar ar arφ� juga sistem sisa
modulo n tereduksi.
Bukti:
Untuk memperlihatkan bahwa setiap bilangan bulat jar relatif prima dengan ,n
misalkan ppt( , ) 1.jar n > Maka ada pembagi prima p dari ppt( , ).jar n Dengan
54
demikian, |p a atau | .jp r Jadi, didapatkan |p a dan | ,p n atau | jp r dan | .p n
Karena jr adalah anggota dari sistem sisa modulo n tereduksi, maka tidak mungkin
| jp r dan | .p n Oleh karena itu, |p a dan | .p n Karena ppt( , ) 1,a n = maka nilai
1.p = Dengan demikian, dapat disimpulkan bahwa jar dan n relatif prima untuk
1, 2, , ( ).j nφ= �
Untuk memperlihatkan bahwa tidak ada dua jar yang saling kongruen modulo ,n
andaikan (mod ),j kar ar n≡ dengan j dan k adalah bilangan-bilangan bulat positif
berbeda dengan 1 ( )j nφ≤ ≤ dan 1 ( ).k nφ≤ ≤ Karena ppt( , ) 1,a n = maka dengan
menggunakan Teorema 2.18 diperoleh (mod ).j kr r n≡ Terjadi kontradiksi, karena jr
dan kr adalah anggota dari sistem sisa modulo n tereduksi, sedemikian sehingga
(mod ).j kr r n≡/ Jadi, (mod ).j kar ar n≡/ �
Teorema 2.35 (Euler)
Jika ppt( , ) 1a n = , maka ( ) 1(mod ).na nφ ≡
Bukti:
Misalkan 1 2 ( ), , , nr r rφ� sistem sisa tereduksi yang terdiri dari bilangan-bilangan bulat
positif tidak lebih besar dari n yang relatif prima dengan .n Dengan menggunakan
Teorema 2.34, karena ppt( , ) 1,a n = maka himpunan 1 2 ( ), , , nar ar arφ� juga sistem sisa
modulo n tereduksi. Dengan demikian, sisa-sisa positif terkecil dari 1 2 ( ), , , nar ar arφ�
55
pasti bilangan-bilangan bulat 1 2 ( ), , , .nr r rφ� Akibatnya, jika kita kalikan semua
elemen dari sistem sisa tereduksi ini, kita dapatkan
1 2 ( ) 1 2 ( ) (mod ).n nar ar ar r r r nφ φ≡� �
Jadi,
( )1 2 ( ) 1 2 ( ) (mod ).n
n na r r r r r r nφφ φ≡� �
Karena 1 2 ( )ppt( , ) 1,nr r r nφ =� maka dengan menggunakan Teorema 2.18 disimpulkan
bahwa ( ) 1(mod ).na nφ ≡ �
Definisi 2.22
Anggota n∗� adalah semua anggota n� yang relatif prima dengan .n
BAB III
KRIPTOSISTEM RSA
A. Kriptosistem RSA
Kriptosistem RSA adalah kriptosistem kunci publik yang diciptakan oleh Ronald
Rivest, Adi Shamir dan Leonard Adleman. Kriptosistem ini menggunakan
penghitungan di ,n� di mana n adalah perkalian dua bilangan prima ganjil berbeda
p dan .q Berikut ini adalah langkah-langkah pembuatan kriptosistem RSA:
1. Pilih dua bilangan prima p dan q ;
2. Hitung n pq= ;
3. Hitung ( ) ( 1)( 1)n p qφ = − − ;
4. Pilih sebarang bilangan bulat ( )b nφ< sedemikian sehingga ppt( , ( )) 1b nφ =
dan hitung bilangan bulat a sedemikian sehingga 1(mod ( ))ab nφ≡ ;
(Karena ppt( , ( )) 1b nφ = , maka kongruensi ini mempunyai penyelesaian
untuk a yang dapat ditentukan dengan menggunakan Algoritma Euclides
Diperluas.)
5. Publikasikan n dan b sebagai kunci-publik dan simpan , dan p q a sebagai
kunci-rahasia.
Jika Rio ingin mengirim pesan rahasia nx ∗∈� kepada Anggi, maka Rio membuat
teks sandi sebagai berikut:
57
( ) (mod ).bKe x y x n= =
Jika Anggi ingin membaca pesan rahasia tersebut, maka ia harus mendekripsi teks
sandi y sebagai berikut:
( ) (mod ).aKd y y n=
Prosedur dekripsi akan mengembalikan teks sandi ke teks biasa.
Karena 1(mod ( )),ab nφ≡ maka dengan Teorema 2.16 kita dapatkan
1 ( )ab k nφ= +
untuk suatu bilangan bulat k . Oleh karena itu, bilangan yang dikembalikan dari
prosedur dekripsi adalah
(mod ) ( ) (mod )a b ay n x n≡
(mod )abx n≡
1 ( ) (mod )k nx nφ+≡
( )( )(mod )k nx x nφ≡
( )( ) (mod ).n kx x nφ≡
Dengan menggunakan Teorema 2.35, kita dapatkan
( )( ) (mod ) (1) (mod )n k kx x n x nφ ≡
(mod ).x n≡
Jadi, dari prosedur dekripsi, kita dapatkan bahwa (mod ) (mod ).ay n x n≡
58
Contoh 3.1
Jika Rio memilih dua bilangan prima 7p = dan 13q = , maka 7 13 91n = × = dan
( ) 6 12 72.nφ = × = Rio akan menentukan bilangan bulat b sedemikian sehingga
ppt( , ( )) 1b nφ = dan menghitung bilangan bulat .a Jika Rio memilih sebarang
bilangan bulat 7,b = maka ia akan menghitung ppt(7,72) dengan menggunakan
Algoritma Euclides.
72 10 7 2
7 3 2 1
= ⋅ +
= ⋅ +
Karena ppt(7,72) 1,= maka Rio boleh memilih bilangan itu. Sekarang, Rio akan
menentukan bilangan bulat a dengan menggunakan Algoritma Euclides Diperluas.
j jr 1jr + 1jq + 2jr + js jt
0 72 7 10 2 1 0
1 7 2 3 1 0 1
2 2 1 2 0 1 10−
3 3− 31
Nilai-nilai js dan jt dengan 0, 1, 2, 3,j = dihitung dengan cara berikut:
0 01, 0,s t= =
1 10, 1,s t= =
2 0 1 1 2 0 1 11 0 10 1, 0 1 10 10,s s s q t t t q= − = − ⋅ = = − = − ⋅ = −
3 1 2 2 3 1 2 20 1 3 3, 1 ( 10) 3 31,s s s q t t t q= − = − ⋅ = − = − = − − ⋅ =
59
Karena 3 1 ppt(7,72)r = = dan 3 3 3 ,r s a t b= + didapatkan
( )1 ppt 7,72 ( 3) 72 31 7.= = − ⋅ + ⋅
Dengan demikian, kunci-rahasia Rio adalah 31.a =
Rio mempublikasikan 91n = dan 7b = . Sekarang, jika Anggi ingin mengenkripsi
teks biasa 5x = untuk dikirim ke Rio, maka Anggi akan menghitung
75 (mod 91) 78125(mod 91)
47(mod91)
≡
≡
dan mengirim teks sandi 47y = kepada Rio. Ketika Rio menerima teks sandi
47y = , ia menggunakan kunci-rahasianya untuk menghitung
31 5 6 147 (mod91) 47 (mod 91)⋅ +=
5 6 (47 ) 47(mod91)=
6 (229345007) 47(mod 91)=
6 (73) 47(mod 91)=
(151334226289)47(mod91)=
(64)47(mod91)=
3008(mod91)=
5(mod91).=
60
Definisi 3.1 (Fungsi Satu Arah)
Fungsi f dari X ke Y disebut fungsi satu arah jika ( )f x mudah dihitung untuk
setiap ,x X∈ tetapi untuk y Y∈ sulit untuk menentukan x X∈ sedemikian sehingga
( ) .f x y=
Keamanan kriptosistem RSA didasarkan pada sifat fungsi enkripsi ( ) (mod )bKe x x n=
yang merupakan fungsi satu-arah, sehingga sulit sekali bagi lawan untuk mendekripsi
teks sandi. Kekuatan kriptosistem ini adalah sulitnya memfaktorkan nilai .n Karena
Rio tahu faktor dari ,n maka Rio dapat menghitung ( ).nφ Selain itu, Rio juga dapat
menghitung bilangan bulat a dan .b
B. Uji Bilangan Prima
Pada pembuatan kriptosistem RSA, kita perlu menghasilkan bilangan prima acak
yang sangat besar. Dalam praktek, cara ini dikerjakan dengan menghasilkan bilangan
prima acak yang sangat besar dan kemudian menguji keprimaan bilangan itu dengan
menggunakan algoritma Monte Carlo seperti algoritma Solovay-Strassen atau
algoritma Miller-Rabin. Sebelum membahas algoritma-algoritma tersebut, kita mulai
dengan membahas dasar-dasar dari teori bilangan.
61
Definisi 3.2
Jika p adalah bilangan bulat prima ganjil, maka a adalah sisa kuadratik modulo p
jika 0(mod )a p≡/ dan 2 (mod )y a p≡ mempunyai penyelesaian untuk suatu .py ∈�
Jika 2 (mod )y a p≡ tidak mempunyai penyelesaian, maka a disebut bukan sisa
kuadratik modulo .p
Contoh 3.2
Pada 11,� kita dapatkan bahwa 21 1,= 22 4,= 23 9,= 24 16 5(mod11),= ≡ 25 25= ≡
3(mod11), 26 36 3(mod11),= ≡ 27 49 5(mod11),= ≡ 28 64 9(mod11),= ≡ 29 81= ≡
4(mod11) dan 210 100 1(mod11).= ≡ Sisa kuadratik modulo 11 adalah 1, 3, 4, 5 dan
9, sedangkan 2, 6, 7, 8 dan 10 adalah bukan sisa kuadratik modulo 11.
Lemma 3.1
Misalkan p adalah bilangan prima ganjil dan a adalah bilangan bulat yang tidak
habis dibagi oleh .p Maka
2 (mod )y a p≡
tidak mempunyai dua penyelesaian yang saling kongruen modulo .p
Bukti:
Jika 2 (mod )y a p≡ mempunyai penyelesaian, misalnya 0 ,y y= maka 0y y= − juga
penyelesaian yang tidak kongruen dengan 0 ,y karena 2 20 0( ) (mod ),y y a p− = ≡ dan
62
jika 0 0 (mod ),y y p≡ − maka didapatkan 02 0(mod ),y p≡ yang tidak mungkin karena
p adalah bilangan ganjil dan 0|/p y (karena 20 (mod )y a p≡ dan | )./p a
Untuk memperlihatkan bahwa tidak ada lebih dari dua penyelesaian yang tidak saling
kongruen, misalkan 0y y= dan 1y y= adalah penyelesaian 2 (mod ).y a p≡ Maka
2 20 1 (mod ),y y a p≡ ≡ sehingga 2 2
0 1 0 1 0 1( )( ) 0y y y y y y− = + − ≡ (mod ).p Dengan
demikian, 0 1| ( )p y y+ atau 0 1| ( ),p y y− sehingga 1 0 (mod )y y p≡ − atau 1 0y y≡
(mod ).p Oleh karena itu, disimpulkan bahwa 2 (mod )y a p≡ mempunyai dua
penyelesaian di mana kedua penyelesaian tersebut tidak saling kongruen. ��
Definisi 3.3 (Simbol Legendre)
Misalkan p adalah bilangan prima ganjil. Untuk setiap bilangan bulat ,a simbol
Legendre ( )a p didefinisikan sebagai berikut:
0 jika 0(mod )
( ) 1 jika adalah sisa kuadratik modulo 1 jika adalah bukan sisa kuadratik modulo
a p
a p a p
a p
≡��= ��−�
Teorema 3.1 (Teorema Wilson)
Jika p adalah bilangan prima, maka ( 1)! 1(mod ).p p− ≡ −
Bukti:
63
Jika 2,p = maka (2 1)! 1 1(mod 2).− = ≡ − Dengan demikian, teorema ini benar untuk
2.p = Sekarang, misalkan p adalah bilangan prima yang lebih besar dari 2. Dengan
menggunakan Teorema 2.20, untuk setiap bilangan bulat a dengan 1 1,a p≤ ≤ − ada
invers ,a yaitu a′ di mana 1 1a p′≤ ≤ − dan 1(mod ).aa p′ ≡ Dengan menggunakan
Teorema 2.22, jika p adalah bilangan prima, maka 1 dan 1p − masing-masing
adalah invers dirinya sendiri. Oleh karena itu, kita dapat mengelompokkan bilangan-
bilangan bulat dari 2 sampai 2p − menjadi ( 3) 2p − pasangan, di mana perkalian
dari setiap pasangan kongruen dengan 1 modulo .p Dengan demikian,
2 3 ( 3) ( 2) 1(mod ).p p p⋅ ⋅ ⋅ − ⋅ − ≡�
Kalikan kedua ruas dengan 1 dan 1,p − didapatkan
( 1)! 1 2 3 ( 3) ( 2) ( 1) 1 1 ( 1) 1(mod ).p p p p p p− = ⋅ ⋅ ⋅ ⋅ − ⋅ − ⋅ − ≡ ⋅ ⋅ − ≡ −� �
Teorema 3.2
Misalkan p adalah bilangan prima ganjil dan a adalah bilangan bulat positif yang
tidak habis dibagi .p Maka
( 1) 2( ) (mod ).pa p a p−≡
Bukti:
Jika ( ) 1,a p = maka 2 (mod )y a p≡ mempunyai penyelesaian, katakan 0.y y=
Dengan menggunakan Teorema Kecil Fermat,
( 1) 2 2 ( 1) 2 10 0( ) 1(mod ).p p pa y y p− − −= = ≡
64
Dengan demikian, jika ( ) 1,a p = maka ( 1) 2( ) (mod ).pa p a p−≡
Sekarang, jika ( ) 1,a p = − maka 2 (mod )y a p≡ tidak mempunyai penyelesaian,
sehingga dengan menggunakan Teorema 2.20, untuk setiap bilangan bulat i dengan
(mod ),ij a p≡ haruslah .i j≠ Jadi, kita dapat mengelompokkan bilangan-bilangan
bulat 1, 2, , 1p −� menjadi ( 1) 2p − pasangan, masing-masing dengan hasil kali .a
Kalikan bilangan-bilangan bulat itu, didapatkan
( 1) 2( 1)! (mod ).pp a p−− ≡
Dari Teorema 3.1, didapatkan
( 1) 21 (mod ).pa p−− ≡
Dengan demikian, jika ( ) 1,a p = − maka ( 1) 2( ) (mod ).pa p a p−≡ �
Teorema 3.3
Misalkan p adalah bilangan prima ganjil dan a dan b adalah bilangan bulat yang
tidak habis dibagi oleh .p Maka
(i) Jika (mod ),a b p≡ maka ( ) ( ).a p b p=
(ii) ( )( ) ( ).a p b p ab p=
(iii) 2( ) 1.a p =
Bukti:
65
(i) Jika (mod ),a b p≡ maka 2 (mod )y a p≡ mempunyai penyelesaian jika dan
hanya jika 2 (mod ).y b p≡ Dengan demikian, ( ) ( ).a p b p=
(ii) Dengan Teorema 3.2, diketahui bahwa
( 1) 2( ) (mod ),pa p a p−≡ ( 1) 2( ) (mod ),pb p b p−≡
dan
( 1) 2( ) ( ) (mod ).pab p ab p−≡
Dengan demikian,
( 1) 2 ( 1) 2 ( 1) 2( )( ) ( ) ( )(mod ).p p pa p b p a b ab ab p p− − −≡ = ≡
Karena nilai yang mungkin dari simbol Legendre adalah 1,± maka disimpulkan
bahwa
( )( ) ( ).a p b p ab p=
(iii) Karena ( ) 1,a p = ± maka dari (ii) didapatkan
2( ) ( )( ) 1.a p a p a p= = �
Teorema 3.4
Jika p adalah bilangan prima ganjil, maka
1 jika 1(mod 4) ( 1 )
1 jika 3(mod 4). p
pp
≡�− = �− ≡�
Bukti:
Dari Teorema 3.2,
66
( 1) 2( 1 ) ( 1) (mod ).pp p−− ≡ −
Jika 1(mod 4),p ≡ maka 4 1p k= + untuk suatu bilangan bulat .k Jadi,
( 1) 2 (4 1 1) 2 4 2 2( 1) ( 1) ( 1) ( 1) 1,p k k k− + −− = − = − = − =
sehingga ( 1 ) 1.p− = Jika 3(mod 4),p ≡ maka 4 3p k= + untuk suatu bilangan bulat
.k Jadi,
( 1) 2 (4 3 1) 2 (4 2) 2 2 1( 1) ( 1) ( 1) ( 1) 1,p k k k− + − + +− = − = − = − = −
sehingga ( 1 ) 1.p− = − �
Lemma 3.2 (Lemma Gauss)
Misalkan p adalah bilangan prima ganjil dan a adalah bilangan bulat dengan
ppt( , ) 1.a p = Jika s adalah banyaknya sisa positif terkecil yang lebih besar daripada
2p dari bilangan-bilangan bulat , 2 , 3 , , (( 1) 2)a a a p a−� jika dibagi dengan ,p
maka ( ) ( 1) .sa p = −
Bukti:
Perhatikan bilangan-bilangan bulat , 2 , 3 , , (( 1) 2) .a a a p a−� Misalkan
1 2, , , su u u� adalah sisa-sisa positif terkecil yang lebih besar dari 2,p dan
1 2, , , tv v v� adalah sisa-sisa positif terkecil yang kurang dari 2p jika bilangan-
bilangan itu dibagi .p Karena ppt( , ) 1ja p = untuk semua 1, 2, , ( 1) 2,j p= −� maka
sisa-sisa positif terkecil berada dalam himpunan {1, 2, , 1}.p −�
67
Akan ditunjukkan bahwa himpunan 1 2 1 2{ , , , , , , , }s tp u p u p u v v v− − −� � adalah
himpunan bilangan-bilangan bulat {1, 2, , ( 1) 2},p… − dengan urutan yang sama.
Untuk itu, kita hanya perlu menunjukkan bahwa tidak ada dua bilangan-bilangan
bulat itu yang saling kongruen modulo ,p karena ada ( 1) 2p − bilangan pada
himpunan itu, dan semuanya bilangan bulat positif yang tidak lebih besar dari
( 1) 2.p −
Jelas bahwa tidak ada dua bilangan iu yang saling kongruen modulo p dan tidak ada
dua jv yang saling kongruen modulo .p Jika kongruensi ini dipenuhi, didapatkan
(mod ),ma na p≡ di mana m dan n adalah bilangan-bilangan bulat positif yang
tidak lebih besar dari ( 1) 2.p − Karena | ,/p a maka (mod ),m n p≡ yang tidak
mungkin.
Selanjutnya, bilangan bulat ip u− tidak mungkin saling kongruen modulo .jv Jika
kongruensi ini dipenuhi, maka (mod ),ma p na p≡ − sehingga (mod ).ma na p≡ −
Karena | ,/p a maka (mod ).m n p≡ − Ini tidak mungkin terjadi karena m dan n berada
di himpunan {1, 2, , ( 1) 2}.p… −
Sekarang kita tahu bahwa 1 2 1 2, , , , , , ,s tp u p u p u v v v− − −� � adalah bilangan-
bilangan bulat 1, 2, , ( -1) 2,p� dengan urutan yang sama. Maka kita simpulkan
bahwa
1 2 1 2( )( ) ( ) (( 1) 2)!(mod ),s tp u p u p u v v v p p− − − ≡ −� �
68
sehingga
1 2 1 2 ( )( ) ( ) (( 1) 2)!(mod )s tu u u v v v p p− − − ≡ −� �
1 2 1 2 ( 1) (( 1) 2)!(mod ).ss tu u u v v v p p− ≡ −� � (1)
Karena 1 2 1 2, , , , , , ,s tu u u v v v� � adalah sisa-sisa positif terkecil dari
, 2 , , (( 1) 2) ,a a p a−� maka
1 2 1 2 2 (( 1) 2)s tu u u v v v a a p a≡ ⋅ ⋅ ⋅ −� � �
( 1) 2 (( 1) 2)!(mod ).pa p p−≡ − (2)
Dengan demikian, dari (1) dan (2), didapatkan
( 1) 2( 1) (( 1) 2)! (( 1) 2)!(mod ).s pa p p p−− − ≡ −
Karena ppt( , (( 1) 2)!) 1,p p − = maka menurut Teorema 2.18 didapatkan
( 1) 2( 1) 1(mod ).s pa p−− ≡
Dengan mengalikan kedua ruas dengan ( 1) ,s− didapatkan
( 1) 2( 1) ( 1) ( 1) 1(mod )s s p sa p−− − ≡ − ⋅
( 1) 2 ( 1) (mod ).p sa p− ≡ −
Dari Teorema 3.2, karena ( 1) 2( ) (mod ),pa p a p−≡ maka
( ) ( 1) (mod ).sa p p≡ − �
69
Contoh 3.3
Misalkan 5a = dan 11.p = Untuk menentukan (5 11) dengan Lemma Gauss, hitung
sisa-sisa positif terkecil dari 5, 2 5, 3 5, 4 5, dan 5 5⋅ ⋅ ⋅ ⋅ jika dibagi 11, yaitu 5, 10, 4,
9 dan 3. Karena hanya ada dua bilangan yang lebih besar daripada 11 2, yaitu 9 dan
10, maka 2(5 11) ( 1) ( 1) 1.s= − = − =
Teorema 3.5
Jika p adalah bilangan prima ganjil, maka
2( 1) 8(2 ) ( 1) .pp −= −
Dengan demikian, 2 adalah sisa kuadratik dari semua bilangan-bilangan prima
1(mod8)p ≡ ± dan bukan sisa kuadratik dari semua bilangan-bilangan prima
3(mod8).p ≡ ±
Bukti:
Dengan Lemma Gauss, diketahui bahwa jika s adalah banyaknya sisa-sisa positif
terkecil yang lebih besar dari 2p dari bilangan-bilangan bulat
1 2, 2 2, 3 2, , (( 1) 2) 2p⋅ ⋅ ⋅ − ⋅�
jika dibagi ,p maka (2 ) ( 1) .sp = − Karena semua bilangan-bilangan bulat ini kurang
dari ,p kita hanya perlu menghitung bilangan yang lebih besar daripada 2p untuk
menentukan berapa banyak sisa-sisa positif terkecil yang lebih besar daripada 2.p
70
Bilangan bulat 2 ,j di mana 1, 2, , ( 1) 2,j p= −� lebih kecil daripada 2p saat
4.j p≤ Dengan demikian, ada bilangan bulat [ 4]p pada himpunan yang lebih
kecil daripada 2.p Akibatnya, ada ( 1) 2 [ 4]s p p= − − yang lebih besar daripada
2.p Oleh karena itu, dengan menggunakan Lemma Gauss, didapatkan
( 1) 2 [ 4](2 ) ( 1) ( 1) .s p pp − −= − = −
Untuk membuktikan teorema ini, harus ditunjukkan bahwa
2( 1) 2 [ 4] ( 1) 8(mod 2).p p p− − ≡ −
Untuk menyelesaikan ini, perlu diperhatikan kongruensi dari p modulo 8.
Perhatikan 2( 1) 8.p − Jika 1(mod8),p ≡ ± maka 8 1p k= ± di mana k adalah
bilangan bulat, sehingga
2 2 2 2( 1) 8 ((8 1) 1) 8 (64 16 ) 8 8 2 0(mod 2).p k k k k k− = ± − = ± = ± ≡
Jika 3(mod8),p ≡ ± maka 8 3p k= ± di mana k adalah bilangan bulat, sehingga
2 2 2 2( 1) 8 ((8 3) 1) 8 (64 48 8) 8 8 6 1 1(mod 2).p k k k k k− = ± − = ± + = ± + ≡
Sekarang perhatikan ( 1) 2 [ 4].p p− − Jika 1(mod8),p ≡ maka 8 1p k= + untuk
suatu bilangan bulat ,k dan
( 1) 2 [ 4] ((8 1) 1) 2 [(8 1) 4] 4 [2 1 4] 2 0(mod 2).p p k k k k k− − = + − − + = − + = ≡
Jika 3(mod8),p ≡ maka 8 3p k= + untuk suatu bilangan bulat ,k dan
( 1) 2 [ 4] ((8 3) 1) 2 [(8 3) 4]p p k k− − = + − − +
4 1 [2 3 4] 2 1 1(mod 2).k k k= + − + = + ≡
71
Jika 5(mod8),p ≡ maka 8 5p k= + untuk suatu bilangan bulat ,k dan
( 1) 2 [ 4] ((8 5) 1) 2 [(8 5) 4]p p k k− − = + − − +
4 2 [2 5 4] 2 1 1(mod 2).k k k= + − + = + ≡
Jika 7(mod8),p ≡ maka 8 7p k= + untuk suatu bilangan bulat ,k dan
( 1) 2 [ 4] ((8 7) 1) 2 [(8 7) 4] p p k k− − = + − − +
4 3 [2 7 4] 2 2 0(mod 2).k k k= + − + = + ≡
Dengan membandingkan kongruensi modulo 2 antara ( 1) 2 [ 4]p p− − dan
2( 1) 8p − , maka kita dapatkan
2( 1) 2 [ 4] ( 1) 8(mod 2).p p p− − ≡ −
Jadi,
2( 1) 8(2 ) ( 1) (mod 2).pp −= −
untuk setiap bilangan prima .p �
Definisi 3.4 (Simbol Jacoby)
Misalkan n adalah bilangan bulat positif ganjil dengan faktorisasi prima
1 21 2
mtt tmn p p p= � . Misalkan a adalah bilangan bulat yang relatif prima dengan .n
Maka simbol Jacoby ( )a n didefinisikan sebagai berikut:
1 2 1 21 2 1 2( ) ( ) ( ) ( ) ( ) ,m mt tt t t t
m ma n a p p p a p a p a p= =� �
di mana simbol di ruas kanan adalah simbol Legendre.
72
Contoh 3.4
Dari definisi simbol Jacoby, didapatkan
2 2 2(2 45) (2 3 5) (2 3) (2 5) ( 1) ( 1) 1.= ⋅ = = − − = −
dan
(109 385) (109 5 7 11) = ⋅ ⋅
(109 5)(109 7)(109 11)=
(4 5)(4 7)(10 11) =
2 2 (2 5) (2 7) ( 1 11) = −
2 2 ( 1) (1) ( 1) = − −
1. = −
Misalkan p adalah bilangan prima ganjil dan b adalah bilangan bulat yang tidak
habis dibagi oleh .p Dengan Teorema 3.2, didapatkan
( 1) 2 ( )(mod ).pb b p p− ≡
Dengan demikian, untuk menguji keprimaan bilangan bulat positif ,n ambil bilangan
bulat ,b dengan ppt( , ) 1,b n = dan tentukan
( 1) 2 ( )(mod ),nb b n n− ≡
73
di mana simbol di ruas kanan adalah simbol Jacoby. Jika kongruensi ini gagal, maka
n adalah bilangan komposit.
Definisi 3.5
Sebuah bilangan bulat positif ganjil komposit n yang memenuhi kongruensi
( 1) 2 ( )(mod ),nb b n n− ≡
di mana b adalah bilangan bulat positif, disebut prima semu Euler terhadap basis .b
Sekarang, kita akan membahas tentang algoritma Solovay-Strassen. Misalkan n
adalah bilangan bulat positif. Pilih bilangan bulat acak ja sedemikian sehingga
1 1,ja n≤ ≤ − dengan 1, 2, , .j k= � Untuk setiap bilangan bulat ini, tentukan apakah
( 1) 2( ) (mod ).nj ja n a n−≡
Jika kongruensi ini tidak dipenuhi, maka n adalah bilangan komposit. Jika n adalah
bilangan prima, maka kongruensi ini dipenuhi. Jika n adalah bilangan komposit,
maka probabilitas bahwa kongruensi dipenuhi untuk semua k kurang dari 1 2 .k Jika
k cukup besar, maka probabilitasnya sangat kecil. Oleh karena itu, jika kongruensi
ini dipenuhi untuk k yang sangat besar, maka n pasti bilangan prima.
Untuk menghitung simbol Jacoby, pertama kali kita harus memfaktorkan ,n karena
simbol Jacoby ( )a n didefinisikan dengan menggunakan faktorisasi .n Untuk
74
menghitung simbol Jacoby tanpa memfaktorkan ,n kita dapat menggunakan
beberapa hasil dari Teori Bilangan, yaitu Teorema Timbal Balik Kuadratik.
Teorema 3.6
Misalkan n adalah bilangan bulat positif ganjil dengan faktorisasi prima
1 21 2
mtt tmn p p p= � dan misalkan a dan b bilangan bulat yang relatif prima dengan .n
Maka
(i) Jika (mod ),a b n≡ maka ( ) ( ).a n b n=
(ii) ( ) ( )( ).ab n a n b n=
Bukti:
(i) Jika p adalah bilangan prima yang membagi habis ,n maka (mod ).a b p≡
Dengan demikian, dari Teorema 3.3 (i), ( ) ( ).a p b p= Akibatnya,
1 2 1 21 2 1 2( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ).m mt tt t t t
m ma n a p a p a p b p b p b p b n= = =� �
(ii) Dari Teorema 3.3 (ii), ( ) ( )( ).i i iab p a p b p= Dengan demikian,
1 21 2( ) ( ) ( ) ( ) mtt t
mab n ab p ab p ab p= �
1 1 2 21 1 2 2 ( ) ( ) ( ) ( ) ( ) ( ) m mt tt t t t
m ma p b p a p b p a p b p= �
1 2 1 21 2 1 2 ( ) ( ) ( ) ( ) ( ) ( )m mt tt t t t
m ma p a p a p b p b p b p= � �
( )( ).a n b n= �
75
Teorema 3.7
Jika n adalah bilangan bulat positif ganjil, maka
2( 1) 8(2 ) ( 1) .nn −= −
Bukti:
Jika p adalah bilangan prima, maka 2( 1) 8(2 ) ( 1) .pp −= − Dengan demikian,
1 21 2(2 ) (2 ) mtt t
mn p p p= �
1 21 2 (2 ) (2 ) (2 ) mtt t
mp p p= �
22 21 1 2 2 ( 1) 8( 1) 8 ( 1) 8 ( 1) ( 1) ( 1) m mt pt p t p −− −= − − −�
2 2 21 1 2 2( 1) 8 ( 1) 8 ( 1) 8 ( 1) .m mt p t p t p− + − + + −= − �
Perhatikan bahwa
1 22 21 2( )mtt t
mn p p p= �
1 22 2 21 2 ( ) ( ) ( ) mtt t
mp p p= �
1 22 2 21 2 (1 ( 1)) (1 ( 1)) (1 ( 1)) .mtt t
mp p p= + − + − + −�
Jika 1(mod8),p ≡ ± maka 2 1 0(mod8).p − ≡ Jika 3(mod8),p ≡ ± maka 2 9p ≡
(mod8) atau 2 1 0(mod8).p − ≡ Karena 1(mod8)jp ≡ ± untuk 1, 2, , ,j m= � maka
2 2(1 ( 1)) 1 ( 1)(mod 64)iti i ip t p+ − ≡ + −
dan
2 2 2 2(1 ( 1))(1 ( 1)) 1 ( 1) ( 1)(mod 64).i i j j i i j jt p t p t p t p+ − + − ≡ + − + −
Dengan demikian,
76
2 2 2 21 1 2 21 ( 1) ( 1) ( 1)(mod 64),m mn t p t p t p≡ + − + − + + −�
sehingga
2 2 2 21 1 2 2( 1) 8 ( 1) 8 ( 1) 8 ( 1) 8(mod8).m mn t p t p t p− ≡ − + − + + −�
Jadi, terbukti bahwa 2 2 2 2
1 1 2 2( 1) 8 ( 1) 8 ( 1) 8 ( 1) 8(2 ) ( 1) ( 1) .m mt p t p t p nn − + − + + − −= − = −� �
Teorema 3.8
Jika n adalah bilangan bulat positif ganjil, maka
1 jika 1(mod8) atau 7(mod8)(2 )
1 jika 3(mod8) atau 5(mod8)n n
nn n
≡ ≡�= �− ≡ ≡�
Bukti:
Jika 1(mod8),n ≡ maka 8 1n k= + untuk suatu bilangan bulat .k Jadi,
2( 1) 8(2 ) ( 1) nn −= −
2((8 1) 1) 8 ( 1) k + −= −
2((64 16 1) 1) 8 ( 1) k k+ + −= −
2(64 16 ) 8 ( 1) k k+= −
28 2 ( 1) k k+= −
22(4 ) ( 1) k k+= −
1. =
Jika 7(mod8),n ≡ maka 8 7n k= + untuk suatu bilangan bulat .k Jadi,
77
2( 1) 8(2 ) ( 1) nn −= −
2((8 7) 1) 8 ( 1) k + −= −
2((64 112 49) 1) 8 ( 1) k k+ + −= −
2(64 112 48) 8 ( 1) k k+ += −
28 14 6 ( 1) k k+ += −
22(4 7 3) ( 1) k k+ += −
1. =
Jika 3(mod8),n ≡ maka 8 3n k= + untuk suatu bilangan bulat .k Jadi,
2( 1) 8(2 ) ( 1) nn −= −
2((8 3) 1) 8 ( 1) k + −= −
2((64 48 9) 1) 8 ( 1) k k+ + −= −
2(64 48 8) 8 ( 1) k k+ += −
28 6 1 ( 1) k k+ += −
22(4 3 ) 1 ( 1) k k+ += −
1. = −
Jika 5(mod8),n ≡ maka 8 5n k= + untuk suatu bilangan bulat .k Jadi,
2( 1) 8(2 ) ( 1) nn −= −
2((8 5) 1) 8 ( 1) k + −= −
78
2((64 80 25) 1) 8 ( 1) k k+ + −= −
2(64 80 24) 8 ( 1) k k+ += −
28 10 3 ( 1) k k+ += −
22(4 5 1) 1 ( 1) k k+ + += −
1. = − ��
Teorema 3.9
Jika p adalah bilangan prima ganjil dan a adalah bilangan bulat ganjil yang tidak
habis dibagi ,p maka
( , )( ) ( 1) ,T a pa p = −
di mana
( 1) 2
1
( , ) [ ].p
j
T a p ja p−
== �
Bukti:
Perhatikan sisa-sisa positif terkecil bilangan-bilangan bulat , 2 , , (( 1) 2) .a a p a−�
Misalkan 1 2, , , su u u� adalah sisa-sisa tersebut yang lebih besar daripada 2p dan
1 2, , , tv v v� adalah sisa-sisa tersebut yang kurang dari 2.p Dengan menggunakan
Algoritma Pembagian didapatkan
[ ] sisa,ja p ja p= +
79
di mana sisa adalah salah satu bilangan dari ju atau .jv Dengan menjumlahkan
( 1) 2p − persamaan-persamaan tersebut, didapatkan
( 1) 2 ( 1) 2
1 1 1 1
[ ] .p p s t
j jj j j j
ja p ja p u v− −
= = = == + +� � � � (1)
Seperti yang telah ditunjukkan pada pembuktian Lemma Gauss, bilangan-bilangan
bulat 1 2 1 2, , , , , , ,s tp u p u p u v v v− − −� � adalah bilangan-bilangan bulat 1, 2, ,�
( 1) 2,p − pada urutan yang sama. Dengan demikian, didapatkan
( 1) 2
1 1 1 1 1
( ) .p s t s t
j j j jj j j j j
j p u v ps u v−
= = = = == − + = − +� � � � � (2)
Kurangkan (1) dengan (2), didapatkan
( 1) 2 ( 1) 2 ( 1) 2
1 1 1 1 1 1 1
[ ]p p p s t s t
j j j jj j j j j j j
ja j p ja p u v ps u v− − −
= = = = = = =− = + + − + −� � � � � � �
( 1) 2
1 1
[ ] 2 p s
jj j
p ja p ps u−
= == − +� �
( 1) 2
1 1
[ ] 2 . p s
jj j
p ja p ps u−
= == − +� �
Jika ( 1) 2
1
( , ) [ ],p
j
T a p ja p−
== � maka
( 1) 2
1 1
( 1) ( , ) 2 .p s
jj j
a j pT a p ps u−
= =− = − +� �
Karena a dan p adalah bilangan ganjil, maka
80
( 1) 2
1 1
( 1) (mod 2) ( , ) 2 (mod 2)p s
jj j
a j pT a p ps u−
= =− = − +� �
0 ( , ) (mod 2) pT a p ps≡ −
0 ( ( , ) )(mod 2) p T a p s≡ −
0 ( , ) (mod 2). T a p s≡ −
Dengan demikian,
( , ) (mod 2).T a p s≡
Dengan menggunakan Lemma Gauss,
( ) ( 1) .sa p = −
Akibatnya, karena ( , )( 1) ( 1) ,s T a p− = − maka
( , )( ) ( 1) .T a pa p = − �
Teorema 3.10 (Hukum Timbal Balik Kuadratik)
Jika p dan q adalah bilangan prima ganjil berbeda, maka
( 1) 2 ( 1) 2( )( ) ( 1) .p qp q q p − ⋅ −= −
Bukti:
Perhatikan pasangan bilangan-bilangan bulat ( , )x y dengan 1 ( 1) 2x p≤ ≤ − dan
1 ( 1) 2.y q≤ ≤ − Ada ( 1) 2 ( 1) 2p q− ⋅ − pasangan. Pasangan-pasangan ini dibagi
menjadi dua kelompok, berdasar pada ukuran relatif dari qx dan .py Pertama,
perhatikan bahwa qx py≠ untuk semua pasangan-pasangan ini. Jika ,qx py= maka
81
| ,q py yang berakibat bahwa |q p atau | .q y Karena p dan q adalah bilangan
prima berbeda, maka | ,/q p dan karena 1 ( 1) 2,y q≤ ≤ − maka | ./q y
Untuk menghitung pasangan bilangan-bilangan bulat ( , )x y dengan 1 ( 1) 2,x p≤ ≤ −
1 ( 1) 2y q≤ ≤ − dan ,qx py> perhatikan bahwa pasangan-pasangan ini persisnya
adalah pasangan bilangan-bilangan bulat di mana 1 ( 1) 2x p≤ ≤ − dan 1 .y qx p≤ <
Untuk setiap bilangan bulat ,x dengan 1 ( 1) 2,x p≤ ≤ − ada [ ]qx p bilangan-
bilangan bulat yang memenuhi 1 .y qx p≤ < Akibatnya, jumlah pasangan bilangan-
bilangan bulat ( , )x y dengan 1 ( 1) 2,x p≤ ≤ − 1 ( 1) 2y q≤ ≤ − dan qx py> adalah
( 1) 2
1
[ ].p
j
qj p−
=�
Sekarang perhatikan pasangan bilangan-bilangan bulat ( , )x y dengan
1 ( 1) 2,x p≤ ≤ − 1 ( 1) 2y q≤ ≤ − dan .qx py< Pasangan-pasangan ini persisnya
adalah pasangan bilangan-bilangan bulat di mana 1 ( 1) 2y q≤ ≤ − dan 1 .x py q≤ <
Dengan demikian, untuk setiap bilangan bulat ,y dengan 1 ( 1) 2,y q≤ ≤ − ada
[ ]py q bilangan-bilangan bulat yang memenuhi 1 .x py q≤ < Akibatnya, jumlah
pasangan bilangan-bilangan bulat ( , )x y dengan 1 ( 1) 2,x p≤ ≤ − 1 ( 1) 2y q≤ ≤ −
dan qx py< adalah ( 1) 2
1
[ ].q
j
pj q−
=�
82
Dengan menambahkan jumlah pasangan bilangan-bilangan bulat di setiap kelompok
dan mengingat bahwa jumlah total pasangan bilangan-bilangan bulat adalah
( 1) 2 ( 1) 2,p q− ⋅ − maka didapatkan
( 1) 2 ( 1) 2
1 1
[ ] [ ] ( 1) 2 ( 1) 2.p q
j j
qj p pj q p q− −
= =+ = − ⋅ −� �
Dengan menggunakan notasi Teorema 3.9,
( , ) ( , ) ( 1) 2 ( 1) 2.T q p T p q p q+ = − ⋅ −
Dengan demikian,
( , ) ( , ) ( , ) ( , ) ( 1) 2 ( 1) 2( 1) ( 1) ( 1) ( 1) .T q p T p q T q p T p q p q+ − ⋅ −− = − − = −
Dengan menggunakan Lemma 3.2, maka ( , )( 1) ( )T q p q p− = dan ( , )( 1) ( ).T p q p q− =
Dengan demikian,
( 1) 2 ( 1) 2( )( ) ( 1) .p qp q q p − ⋅ −= − �
Teorema 3.11
Jika p dan q adalah bilangan prima ganjil berbeda, maka
1 jika 3(mod 4) ( )( )
1 jika 1(mod 4) atau 1(mod 4).p q
p q q pp q
− ≡ ≡�= � ≡ ≡�
Bukti:
Jika 3(mod 4),p q≡ ≡ maka 4 3p k= + dan 4 3q j= + untuk suatu bilangan bulat k
dan .j Jadi,
( 1) 2 ( 1) 2( )( ) ( 1) p qp q q p − ⋅ −= −
83
(4 3 1) 2 (4 3 1) 2 ( 1) k j+ − ⋅ + −= −
(4 2) 2 (4 2) 2 ( 1) k j+ ⋅ += −
(2 1) (2 1) ( 1) k j+ ⋅ += −
4 2 2 1 ( 1) kj k j+ + += −
2(2 ) 1 ( 1) kj k j+ + += −
1. = −
Jika 1(mod 4),p ≡ maka 4 1p k= + untuk suatu bilangan bulat .k Jadi,
( 1) 2 ( 1) 2( )( ) ( 1) p qp q q p − ⋅ −= −
(4 1 1) 2 ( 1) 2 ( 1) k q+ − ⋅ −= −
4 2 ( 1) 2 ( 1) k q⋅ −= −
2 ( 1) 2 ( 1) k q⋅ −= −
( 1) 2 (1) k q⋅ −=
1. =
Jika 1(mod 4),q ≡ maka 4 1q k= + untuk suatu bilangan bulat .k Jadi,
( 1) 2 ( 1) 2( )( ) ( 1) p qp q q p − ⋅ −= −
( 1) 2 (4 1 1) 2 ( 1) p k− ⋅ + −= −
( 1) 2 (4 2) ( 1) p k− ⋅= −
( 1) 2 (2 ) ( 1) p k− ⋅= −
2 ( 1) 2 ( 1) k p⋅ −= −
84
( 1) 2 (1) k p⋅ −=
1.= �
Teorema 3.12
Misalkan p dan q adalah bilangan prima ganjil, maka
( ) jika 3(mod 4) ( )
( ) jika 1(mod 4) atau 1(mod 4).q p p q
p qq p p q
− ≡ ≡�= � ≡ ≡�
Bukti:
Dari Teorema 3.11, nilai yang mungkin dari ( )p q dan ( )q p adalah 1.± Jika
( ) 1,p q = maka
( )( ) 1p q q p =
1( ) 1q p =
( ) 1.q p =
Jadi, ( ) ( ).p q q p= Jika ( ) 1,p q = − maka
( )( ) 1p q q p =
1( ) 1q p− =
( ) 1.q p = −
Jadi, ( ) ( ).p q q p= Jika ( ) 1,p q = maka
( )( ) 1p q q p = −
1( ) 1q p = −
85
( ) 1.q p = −
Jadi, ( ) 1 ( )q p p q= − = − atau ( ) ( ).p q q p= − Jika ( ) 1,p q = − maka
( )( ) 1p q q p = −
1( ) 1q p− = −
( ) 1.q p =
Jadi, ( ) 1 ( )p q q p= − = − atau ( ) ( ).p q q p= − �
Contoh 3.5
Sebagai gambaran dari aplikasi sifat-sifat hukum timbal balik kuadratik, kita akan
menghitung (7411 9283). Karena 9283 3(mod 4),≡ maka dengan menggunakan
Teorema 3.12 didapatkan
(7411 9283) (9283 7411).= −
Karena 9283 1872(mod 7411),≡ maka dengan menggunakan Teorema 3.6 (i)
didapatkan
(9283 7411) (1872 7411).− = −
Faktor dari 41872 2 117.= ⋅ Jadi, menurut Teorema 3.6 (ii)
4(1872 7411) (2 7411) (117 7411).− = −
Karena 7411 3(mod8),≡ maka menurut Teorema 3.8, (2 7411) 1.= − Jadi,
4 4(2 7411) (117 7411) ( 1) (117 7411) (117 7411).− = − − = −
Dengan menggunakan Teorema 3.12, karena 117 1(mod 4),≡ maka
86
(117 7411) (7411 117).− = −
Karena 7411 40(mod117),≡ maka menurut Teorema 3.6 (i)
(7411 117) (40 117).− = −
Faktor dari 340 2 5.= ⋅ Dengan menggunakan Teorema 3.6 (ii)
3(40 117) (2 117) (5 117).− = −
Menurut Teorema 3.8, karena 117 3(mod8),≡ − maka (2 117) 1.= − Jadi,
3 3(2 117) (5 117) ( 1) (5 117) (5 117).− = − − =
Karena 117 1(mod 4)≡ dan 5 1(mod 4),≡ maka menurut Teorema 3.12 didapatkan
(5 117) (117 5).=
Menurut Teorema 3.6 (i), karena 117 2(mod 5),≡ maka
(117 5) (2 5).=
Jadi, dengan menggunakan Teorema 3.8, diperoleh
(2 5) 1.= −
Setelah kita membahas algoritma Solovay-Strassen, kita akan membahas algoritma
Miller-Rabin. Misalkan n adalah bilangan bulat positif dengan 1 2 ,kn m− = dimana
k adalah bilangan bulat taknegatif dan m adalah bilangan bulat positif ganjil. Pilih
bilangan bulat acak a dengan 1 1.a n≤ ≤ − Jika 1(mod ),ma n≡ ± maka n adalah
bilangan prima. Jika 0 (mod )ma b n≡ dan 0 1,b ≠ ± maka 21(mod )i ib b n+≡ untuk
0,1, , 1.i k= −� Hitungan ini dilakukan sampai kita mendapatkan 1 1.ib + = − Jika
87
1 1,ib + ≠ − maka n bukan bilangan prima. Jika 1 1,ib + = − maka n adalah bilangan
prima.
Contoh 3.6
Misalkan 353.n = Hitung 51 352 2 11.n − = = ⋅ Pilih sebarang a dengan 1 352.a≤ ≤
Misalkan kita pilih 116.a = Dengan menggunakan algoritma Miller-Rabin
diperoleh
11116 283(mod 353).≡ Karena 11116 1(mod 353),≡ ±/ maka hitung 2283 311(mod≡
353), 2311 1(mod353).≡ − Karena kita telah mendapatkan hasil 1,− maka n adalah
bilangan prima.
C. Algoritma Pemfaktoran
Cara yang paling jelas untuk menyerang kriptosistem RSA adalah dengan mencoba
untuk memfaktorkan kunci publik .n Ada beberapa algoritma yang dapat digunakan
untuk memfaktorkan suatu bilangan. Algoritma-algoritma yang akan dibahas pada
skripsi ini adalah algoritma Pollard 1,p − algoritma Pollard rho dan algoritma
kuadrat acak Dixon.
1. Algoritma Pollard 1p −
Algoritma Pollard 1p − adalah algoritma pemfaktoran yang berdasar pada Teorema
Kecil Fermat. Algoritma ini diciptakan oleh J.M. Pollard pada tahun 1974. Untuk
melihat bagaimana algoritma ini bekerja, misalkan kita ingin menentukan faktor dari
88
bilangan bulat positif .n Selanjutnya, misalkan n mempunyai faktor prima p
sedemikian sehingga 1p − membagi habis !,k di mana k adalah bilangan bulat
positif. Karena 1p − membagi habis !,k maka Teorema Kecil Fermat dapat
digunakan. Dari Teorema Kecil Fermat diketahui bahwa 12 1(mod ).p p− ≡ Karena
1p − membagi habis !,k maka ! ( 1)k p q= − untuk suatu bilangan bulat .q Dengan
demikian,
! ( 1) ( 1)2 2 (2 ) 1 1(mod ),k p q p q q p− −= = ≡ =
yang mengakibatkan p membagi habis !2 1.k − Karena p juga membagi habis ,n
maka |p d dengan !ppt(2 1, ).kd n= −
Untuk menggunakan algoritma ini, kita harus menghitung !2 ,k dengan k adalah
bilangan bulat positif. Untuk menentukan sisa positif terkecil dari !2k modulo ,n kita
tetapkan 1 2,r = 22 1 (mod ),r r n= 3
3 2 1(mod ), , (mod ).kk kr r n r r n−= =� Kita ilustrasikan
algoritma ini dengan contoh berikut.
Contoh 3.7
Untuk memfaktorkan 5157437 menggunakan algoritma Pollard 1,p − kita harus
menentukan ,kr sisa positif terkecil dari !2k modulo 5157437, untuk 1,2,3, .k = �
2 22 1 2 4(mod 5157437)r r≡ = ≡
3 33 2 4 64(mod5157437)r r≡ = ≡
89
4 44 3 64 16777216 1304905(mod5157437)r r≡ = = ≡
5 55 4 1304905 404913(mod5157437)r r≡ = ≡
6 66 5 404913 2157880(mod5157437)r r≡ = ≡
7 77 6 2157880 4879227(mod 5157437)r r≡ = ≡
8 88 7 4879227 4379778(mod 5157437)r r≡ = ≡
9 99 8 4379778 4381440(mod5157437).r r≡ = ≡
Jika kita hitung ppt( 1,5157437) 1kr − = untuk 1,2,3,4,5,6,7,8,k = tetapi untuk
9,k =
9ppt( 1,5157437) ppt(4381440 1,5157437)r − = −
ppt(4381439,5157437) =
2269, =
maka 2269 adalah pembagi dari 5157437.
2. Algoritma Pollard Rho
Bagian ini akan mendeskripsi algoritma pemfaktoran berdasarkan kongruensi yang
dikembangkan oleh J.M. Pollard pada tahun 1974. Pollard menyebut algoritma ini
sebagai algoritma Monte Carlo. Namun, sekarang algoritma ini lebih dikenal sebagai
algoritma Pollard rho.
Misalkan n adalah bilangan bulat komposit yang sangat besar dan p adalah pembagi
prima terkecilnya. Tujuannya adalah memilih bilangan-bilangan bulat 0 1, , , sx x x�
90
sedemikian sehingga bilangan-bilangan bulat ini memiliki sisa-sisa bilangan bulat
taknegatif terkecil modulo n yang berbeda, tetapi sisa-sisa bilangan-bilangan bulat
taknegatif terkecil modulo p tidak semuanya berbeda.
Setelah mendapatkan bilangan bulat ix dan ,jx 0 ,i j s≤ < ≤ sedemikian sehingga
(mod )i jx x p≡ tetapi (mod ),i jx x n≡/ maka ppt( , )i jx x n− adalah pembagi taktrivial
dari ,n karena | ( ),i jp x x− sedangkan | ( ).−/ i jn x x Untuk menghitung pembagi
persekutuan terbesar, kita dapat menggunakan Algorithma Euclides. Walau demikian,
diperlukan waktu yang cukup lama untuk mendapatkan ppt( , )i jx x n− untuk setiap
pasangan ( , )i j dengan 0 .i j s≤ < ≤ Kita akan menunjukkan suatu metode yang
dapat mereduksi sejumlah waktu saat menggunakan algorithma Euclides.
Definisi 3.6 (Rekursif)
Fungsi f dikatakan ditentukan secara rekursif jika (1)f ditentukan dan untuk setiap
bilangan bulat positif ,n sebuah aturan diberikan untuk menentukan ( 1)f n + dari
( ).f n
Untuk mendapatkan bilangan bulat ix dan ,jx gunakan prosedur berikut: Dimulai
dengan nilai 0x yang dipilih secara acak dan fungsi polinomial f dengan koefisien-
koefisien bilangan bulat dari derajat yang lebih besar dari 1. Hitung ,kx 1,2,3, ,k = �
dengan menggunakan definisi rekursif
91
1 ( )(mod ),k kx f x n+ ≡
dengan 10 .kx n+≤ <
Contoh 3.8
Misalkan 8051,n = 0 2x = dan 2( ) 1.f x x= + Kita dapatkan bahwa 1 5,x = 2 26,x =
3 677,x = 4 7474,x = 5 2839,x = dan seterusnya.
Sekarang, perhatikan bahwa dengan definisi rekursif dari ,kx jika
(mod ),i jx x d≡
dengan d adalah bilangan bulat positif, maka
1 1( ) ( ) (mod ).i i j jx f x f x x d+ +≡ ≡ ≡
Kemudian jika (mod ),i jx x d≡ maka barisan kx menjadi periodik modulo d dengan
periode .j i− Yaitu, (mod )q rx x d≡ untuk setiap (mod ),q r j i≡ − dengan q i≥ dan
.r i≥ Kemudian jika s adalah kelipatan terkecil dari j i− yang paling sedikit sama
besar dengan ,i maka 2 (mod ).s sx x d≡
Kemudian cari faktor dari ,n kita dapatkan pembagi persekutuan terbesar dari
2k kx x− dan n untuk 1,2,3, .k = � Kita telah mendapatkan faktor dari n ketika kita
mendapatkan nilai k dengan 21 .k kx x n< − <
92
Contoh 3.9
Kita gunakan algoritma Pollard rho dengan 0 2x = dan polinomial 2( ) 1f x x= +
untuk mendapatkan faktor taktrivial dari 8051.n = Kita dapatkan 1 5,x = 2 26,x =
3 677,x = 4 7474,x = 5 2839,x = 6 871.x = Dengan menggunakan algorithma
Euclides, maka 2 1ppt( ,8051) ppt(26 5,8051) ppt(21,8051) 1x x− = − = = dan
4 2ppt( ,8051) ppt(7474 26,8051) ppt(7448,8051) 1.x x− = − = = Kita dapatkan faktor
taktrivial dari 8051 pada langkah selanjutnya, seperti 6 3ppt( ,8051)x x− =
ppt(871 677,8051) ppt(194,8051) 97.− = = Jadi, faktor dari 8051 adalah 97.
Untuk melihat mengapa algoritma ini disebut algoritma Pollard rho, lihat Gambar 3.1.
Gambar ini menunjukkan periodik barisan ,ix dengan 0 2x = dan
21 1(mod97)i ix x+ = + dan 1.i ≥
2 26x =
3 677 95(mod97)x = ≡
1 5x = 4 7474 5(mod97)x = ≡
0 2x =
Gambar 3.1. Algoritma Pollard rho dengan 0 2x = dan ).97(mod121 +=+ ii xx
93
3. Algoritma Kuadrat Acak Dixon
Misalkan dapat ditemukan )(mod nyx ±≡ sedemikian sehingga ).(mod22 nyx ≡
Maka
))((| yxyxn +−
tetapi yx − atau yx + dibagi habis oleh .n Jadi, ),(ppt nyx + adalah faktor
taktrivial dari n (dan ),(ppt nyx − juga faktor tak trivial dari ).n
Contoh 3.10
Sangat mudah untuk menentukan bahwa ).77(mod3210 22 ≡ Dengan menghitung
ppt(10 32,77) 7,+ = kita dapatkan 7 adalah faktor dari 77.
Algoritma kuadrat acak menggunakan basis faktor, yaitu untuk suatu bilangan bulat
positif ,b himpunan B terdiri dari b bilangan-bilangan prima terkecil pertama.
Pertama kita harus mendapatkan bilangan-bilangan bulat 2 modz n yang berada di
dalam basis faktor .B Setelah kita mendapatkan kongruensi-kongruensi tersebut,
kemudian kita akan mendapatkan bentuk 2 2 (mod ),x y n≡ yang akan membantu kita
memfaktorkan bilangan .n
94
Contoh 3.11
Misalkan 11577070844=n dan ,6=b maka }.13,11,7,5,3,2{=B Perhatikan tiga
kongruensi berikut:
)(mod7383409341562 n×≡
)(mod137241204494294 2 n××≡
).(mod133227737000112 n××≡
Jika ketiga kongruensi ini dikalikan, maka diperoleh
)(mod)13732()2773700011412044942948340934156( 22 n×××≡××
)(mod546924554790430404757912786627561 22 n≡
).(mod5469503435785 22 n≡
Dengan menggunakan Algoritma Euclides diperoleh
.115759)11577070844,5469503435785(ppt =−
Jadi, faktor dari 15770708441 adalah 115759.
BAB IV
SERANGAN PADA RSA, KEAMANAN DARI RSA DAN APLIKASI
KRIPTOSISTEM RSA
A. Serangan pada RSA
Cara lain yang dapat digunakan untuk menyerang kriptosistem RSA adalah dengan
menghitung ( ).nφ Menghitung ( )nφ tidak lebih mudah daripada memfaktorkan .n
Karena, jika n dan ( )nφ diketahui, dan n adalah perkalian dua bilangan prima p
dan ,q maka n dapat difaktorkan dengan mudah, dengan menyelesaikan dua
persamaan
n pq=
( ) ( 1)( 1)n p qφ = − −
untuk p dan q yang tidak diketahui. Dengan mudah persamaan ini dapat
diselesaikan dengan mengganti ,q n p= diperoleh
( ) ( 1)( 1)n p n pφ = − −
( ) 1.n n n p pφ = − − +
Kalikan kedua ruas dengan ,p diperoleh
2( )n p np n p pφ = − − +
2 ( ( ) 1) 0.p n n p nφ− − + + =
96
Dua akar dari persamaan tersebut akan menjadi p dan .q Dengan demikian, jika
nilai ( )nφ dapat dihitung, maka n dapat difaktorkan dan kriptosistem dapat
dipecahkan dengan menghitung a sebagai invers perkalian b modulo ( ).nφ Dengan
kata lain, menghitung ( )nφ tidak lebih mudah daripada memfaktorkan .n
B. Keamanan dari RSA
Untuk memahami kriptosistem RSA, pertama perhatikan bahwa kita dapat
menemukan dua bilangan prima yang sangat besar p dan .q Bilangan-bilangan
prima ini dapat ditemukan dengan mengambil sebarang bilangan-bilangan bulat ganjil
secara acak. Untuk menguji keprimaan bilangan-bilangan ini, kita dapat
menggunakan algoritma Miller-Rabin atau algoritma Solovay-Strassen.
Jika bilangan prima p dan q telah ditemukan dan ,n pq= maka b harus dipilih
sedemikian sehingga ppt( , ( )) 1.b pqφ = Dengan menggunakan Algorithma Euclides
Diperluas, kita dapat memperoleh a dengan menghitung 1(mod ( )).ab nφ≡
Jika seseorang ingin mendapatkan kunci rahasia ,a yaitu invers b modulo ( ),nφ
pertama kita harus menemukan ( ).nφ Perhatikan bahwa menemukan ( )nφ tidak lebih
mudah daripada memfaktorkan bilangan bulat .n Jika bilangan bulat a diketahui,
tetapi ( )nφ tidak diketahui, maka n dapat difaktorkan dengan mudah, karena 1ab −
adalah kelipatan dari ( )nφ dan ada algoritma-algoritma khusus untuk memfaktorkan
97
sebuah bilangan bulat n dengan menggunakan suatu kelipatan dari ( ),nφ tetapi
dalam skripsi ini algoritma-algoritma tersebut tidak dibahas.
Metode yang sering digunakan untuk mendekripsi suatu pesan yaitu dengan
memfaktorkan n dan seperti yang telah kita ketahui, memfaktorkan bilangan bulat
yang sangat besar tampaknya menjadi persoalan yang membutuhkan waktu yang
sangat lama, meskipun kita mengunakan komputer. Jika tidak ditemukan metode
mendekripsi pesan-pesan RSA tanpa memfaktorkan modulus ,n maka keamanan
sistem RSA dapat dipertahankan. Pesan-pesan yang dienkripsikan dengan
menggunakan RSA akan menjadi mudah diserang jika memfaktorkan modulus n
mungkin dikerjakan. Ini berarti bahwa kita harus berhati-hati dalam memilih bilangan
prima dengan menggunakan bilangan-bilangan prima p dan q yang sangat besar
untuk melindungi kerahasiaan pesan selama puluhan atau ratusan tahun.
Seperti yang telah kita ketahui, keamanan kriptosistem RSA bergantung pada
kesulitan memfaktorkan bilangan-bilangan bulat besar. Khususnya, untuk
kriptosistem RSA, jika modulus n telah difaktorkan, maka dengan mudah dapat
diperoleh kunci rahasia yang mengakibatkan teks sandi dapat diubah ke teks biasa
sehingga dapat dibaca oleh orang lain yang tidak berhak. Walau demikian, ada
kemungkinan bahwa dapat ditemukan kunci rahasia dari kunci publik tanpa
memfaktorkan ,n meskipun hal ini tampaknya tidak mungkin saat ini.
98
C. Aplikasi Krisptosistem RSA
Danang dan Dimas ingin membuat suatu permainan di antara mereka. Kemudian
mereka berencana, jika mereka ingin memberitahukan suatu rahasia di antara mereka,
maka mereka akan menggunakan Kriptosistem RSA. Jika Dimas ingin mengirim
pesan rahasia kepada Danang, maka ia memerlukan kunci publik yang dimiliki oleh
Danang. Oleh karena itu, Danang akan membuat kunci publik sekaligus kunci
rahasianya. Pertama, ia akan memilih sebarang bilangan bulat ganjil secara acak,
misalnya 47p = dan 173.q = Sebelum Danang menghitung ,n ia harus yakin bahwa
bilangan-bilangan itu adalah bilangan-bilangan prima. Oleh karena itu, ia akan
menguji keprimaan bilangan-bilangan itu dengan menggunakan salah satu algoritma,
yaitu algoritma Miller-Rabin. Pertama, ia menghitung 1 46 2 23p − = = ⋅ dan
21 172 2 43.q − = = ⋅ Kemudian Danang memilih bilangan j dan k dengan 1 46j≤ ≤
dan 1 172,k≤ ≤ misalnya 27j = dan 83.k = Kemudian, ia menghitung 2327 mod 47
dan 4383 mod173. Karena 2327 1(mod 47)≡ dan 4383 1(mod173),≡ maka 47 dan 173
adalah bilangan prima.
Setelah itu, Danang akan menghitung nilai n dan ( ),nφ 47 173 8131n pq= = ⋅ = dan
( ) ( 1)( 1) 7912.n p qφ = − − = Kemudian Danang akan menentukan bilangan bulat b
sehingga ppt( ,7912) 1b = dan menghitung bilangan bulat a dengan 1(modab ≡
7912). Danang memilih 153b = dan ia akan menghitung ppt(153,7912) dengan
menggunakan Algoritma Euclides.
7912 51 153 109= ⋅ +
99
153 1 109 44= ⋅ +
109 2 44 21= ⋅ +
44 2 21 2= ⋅ +
21 10 2 1.= ⋅ +
Setelah Danang memperoleh nilai 153,b = maka ia akan menghitung a dengan
menggunakan Algoritma Euclides Diperluas.
j jr 1jr + 1jq + 2jr + js jt
0 7912 153 51 109 1 0
1 153 109 1 44 0 1
2 109 44 2 21 1 -51
3 44 21 2 2 -1 52
4 21 2 10 1 3 -155
5 2 1 2 0 -7 362
6 73 -3775
Nilai-nilai js dan jt dengan 0, 1, 2, 3, 4,j = dihitung dengan cara berikut:
0 01, 0,s t= =
1 10, 1,s t= =
2 0 1 1 2 0 1 11 0 51 1, 0 1 51 51,s s s q t t t q= − = − ⋅ = = − = − ⋅ = −
3 1 2 2 3 1 2 20 1 1 1, 1 ( 51) 1 52,s s s q t t t q= − = − ⋅ = − = − = − − ⋅ =
4 2 3 3 4 2 3 31 ( 1) 2 3, 51 52 2 155,s s s q t t t q= − = − − ⋅ = = − = − − ⋅ = −
100
5 3 4 4 5 3 4 41 3 2 7, 52 ( 155) 2 362,s s s q t t t q= − = − − ⋅ = − = − = − − ⋅ =
6 4 5 5 6 4 5 53 ( 7) 10 73, 155 362 10 3775.s s s q t t t q= − = − − ⋅ = = − = − − ⋅ = −
Karena 6 1 ppt(153,7912)r = = dan 6 6 67912 153,r s t= ⋅ + ⋅ diperoleh
( )1 73 7912 3775 153.= ⋅ + − ⋅
Jadi, Danang mempunyai kunci rahasia 3775 4137(mod 7912),a = − ≡ 47p = dan
173q = serta kunci publik 8131n = dan 153.b =
Karena Dimas mengetahui kunci publik Danang, maka ia dapat menggunakan kunci
itu untuk mengubah pesan yang akan ia sampaikan kepada Danang menjadi pesan
rahasia atau teks sandi. Dimas ingin mengirimkan pesan
AKU PERGI KE JAKARTA
kepada Danang. Danang dan Dimas mempunyai kesepakatan untuk mengubah tanda
spasi menjadi 00, huruf A menjadi 01, B menjadi 02, ..., Z menjadi 26, maka akan
dihasilkan teks biasa
0111 2100 1605 1807 0900 1105 0010 0111 0118 2001
yaitu pesan yang akan ia sandikan. Kemudian ia akan menghitung 153111 7485≡
(mod8131), 1532100 769(mod8131),≡ 1531605 285(mod8131),≡ 1531807 1630≡
(mod8131), 153900 3152(mod8131),≡ 1531105 6695(mod8131),≡ 15310 1262(mod≡
8131), 153118 7870(mod8131),≡ dan 1532001 2648(mod8131).≡ Kemudian Danang
menerima pesan dalam bentuk teks sandi
7485 0769 0285 1630 3152 6695 1262 7485 7870 2648
101
yang dengan mudah dapat ia ubah kembali ke bentuk teks biasa dengan menggunakan
kunci rahasia yang ia miliki. Ia akan menghitung 41377485 111(mod8131),≡
4137769 2100(mod8131),≡ 4137285 1605(mod8131),≡ dan seterusnya. Pada akhirnya,
Danang akan mendapatkan pesan yang dikirim Dimas.
Karena Ayu juga mengetahui kunci publik Danang dan ia ingin mengetahui pesan
yang dikirim Dimas kepada Danang, maka ia berusaha untuk memfaktorkan kunci
publik n dengan menggunakan algoritma Pollard 1.p − Pertama, ia akan menhitung
nilai !kr modulo 8131, untuk 1,2,3, .k = �
2 22 1 2 4(mod8131)r r≡ = ≡
3 33 2 4 64(mod8131)r r≡ = ≡
4 44 3 64 16777216 2963(mod8131)r r≡ = = ≡
5 55 4 2963 1865(mod8131)r r≡ = ≡
6 66 5 1865 269(mod8131)r r≡ = ≡
�
23 2323 22 6275 706(mod8131).r r≡ = ≡
Jika kita hitung ppt( 1,5157437) 1kr − = untuk 1,2,3, , 22,k = � tetapi untuk 23,k =
23ppt( 1,8131) ppt(706 1,8131)r − = −
ppt(705,8131)=
47,=
102
maka 47 adalah faktor dari 8131.
Karena Ayu telah memperoleh salah satu faktor dari 8131, maka ia dapat menghitung
faktor lainnya, yaitu 173. Setelah ia mendapatkan nilai p dan ,q maka ia dapat
menghitung ( )nφ dan a sehingga akhirnya ia dapat membaca pesan tersebut.
BAB V
PENUTUP
A. Kesimpulan
Kriptosistem RSA adalah salah satu sistem penyandian yang dapat membantu kita
membuat teks sandi yang tidak dapat dibaca oleh orang lain yang tidak berhak.
Kriptosistem RSA berdasar pada pemilihan bilangan prima p dan .q Semakin besar
bilangan prima p dan ,q semakin sulit orang lain memfaktorkan bilangan n dengan
.n pq=
Setiap orang mempunyai kunci publik dan kunci rahasia. Kunci publik inilah yang
akan digunakan oleh orang lain untuk menyandikan pesan yang telah ia buat.
Kemudian ia akan mengirim teks sandi tersebut kepada orang yang ia tuju. Teks sandi
tersebut hanya dapat dibaca dengan menggunakan kunci rahasia. Dengan begitu, jika
orang yang tidak berhak ingin membaca teks sandi tersebut, maka ia harus
mendapatkan kunci rahasia yang dapat diperoleh dengan memfaktorkan bilangan .n
Orang tersebut mengetahui bilangan n karena n adalah kunci publik di mana semua
orang tahu kunci itu. Orang tersebut dapat memfaktorkan bilangan n dengan
menggunakan algoritma Pollard 1,p − algoritma Pollard rho atau algoritma kuadrat
acak Dixon. Karena bilangan yang digunakan sangat besar, maka diperlukan waktu
yang sangat lama untuk memfaktorkan bilangan tersebut. Oleh karena itu, selama
kunci rahasia belum diperoleh, teks sandi tidak akan dapat dibaca oleh orang lain.
104
B. Saran
Dalam skripsi ini, penulis hanya membahas tentang teori saja. Skripsi ini masih dapat
dikembangkan dengan membuat program yang akan membantu kita dalam menguji
keprimaan suatu bilangan atau memfaktorkan bilangan .n Selain kriptosistem RSA,
ada juga sistem penyandian lain yang dapat digunakan untuk menyandikan pesan
biasa ke pesan rahasia.
DAFTAR PUSTAKA
Burton, David M. (1994). Elementary Number Theory (Third Edition). Dubuque: Wm. C. Brown Communications, Inc.
Durbin, John R. (1985). Modern Algebra (Second Edition). New York: John Wiley &
Sons, Inc. Lipschutz, Seymour. (1964). Set Theory and Related Topics. New York: McGraw-
Hill, Inc. Mao, Wenbo. (2004). Modern Cryptography Theory and Practice. Upper Saddle
River: Prentice-Hall, Inc. Rosen, Kenneth H. (2000). Elementary Number Theory and Its Applications (Fourth
Edition). New York: Addison Wesley Longman, Inc. Schneier, Bruce. (1994). Applied Cryptography. New York: John Wiley & Sons, Inc.
Stinson, Douglas R. (2002). Cryptography Theory and Practice (Second Edition). New York: Chapman & Hall/CRC.