kajian sistem keamanan bluetooth dengan...
Post on 15-Apr-2018
236 Views
Preview:
TRANSCRIPT
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
129
KAJIAN SISTEM KEAMANAN BLUETOOTH DENGAN ALGORITMA SAFER+
Dodi Budiman M Jurusan Teknik Elektro POLBAN
Abstrak Tulisan ini menjelaskan elemen-elemen yang berhubungan dengan sistem keamanan bluetooth. Diawali dengan arsitektur bluetooth, khususnya yang termasuk pada host controller interface yaitu radio frequency, baseband dan link manager. Ketiganya merupakan bagian sistem bluetooth yang melayani seluruh fungsi yang diperlukan untuk menjaga kelangsungan hubungan komunikasi. Untuk menjamin kenyamanan dalam berkomunikasi, bluetooth melengkapinya dengan keamanan bertingkat berbasis algoritma SAFER+ versi 128 bit. Terdapat empat algoritma berbasis SAFER+ yaitu E1, E21, E22, dan E3. Keempatnya digunakan untuk otentikasi antar perangkat bluetooth dan disebut key generator. Proses enkripsi dan dekripsi dikerjakan oleh algoritma Eo, oleh karena itu disebut encryption engine. Algoritma SAFER+ merupakan algoritma block cipher tetapi khusus dalam aplikasi ini bekerja sebagai stream cipher. Kata kunci : Host Controller,SAFER+,Stream cipher Abstract
This note explain about elements those conected wiyh bluetooth security system, first of all with bluetooth architecture, espescially host controller interface such us Radio Frequency, base band and link manager three of its parts of bluetooth system which serving all function needed tobe maintain for comunication keep online, To establised comportable in comunication , bluetooth equip with security layer base on algorithm SAFER + 128 bit version , There is four algorithm based on SAFER + 128 bit witch is E1,E21,E22 and E3 . Four of its used to autotification among bluetooth equipment that it call Key Generator. Encryption dan decryption process used algorithm E0 because of it called encrytion engine. SAFER + algorithm similar with block cipher espescially for these application used as stream cipher. Keywords : Host Controller, SAFER+,Stream chiper I. Pendahuluan Bluetooth (BT) merupakan suatu teknologi baru untuk komunikasi data dan suara secara nirkabel
(wireless). Bluetooth tidak sekedar teknologi pengganti kabel, tetapi berkemampuan
menghubungkan antar perangkat eletronik
portable baik satu ke satu atau satu ke banyak dalam lingkungan yang kecil seperti di kantor atau
di rumah. Contoh aplikasi BT dalam pertukaran data antara personal computer (PC) dengan
keyboard, printer, headsets dan mouse. Bluetooth juga dapat digunakan dalam mobile phone atau cordless modem untuk melakukan dial-up networking (DUN). Aplikasi lainnya di bidang
e-commerce seperti pembayaran secara elektronik
untuk parkir, karcis kereta api, karcis bioskop, belanja di swalayan dan sejenisnya.
Untuk menjamin keamanan informasi dalam jaringan bluetooth, sistem ini menerapkan keamanan
bertingkat melalui enkripsi dan otentikasi berbasis
algoritma SAFER+1. Perangkat bluetooth
1 SAFER+ ( Secure And Fast Encryption Routine )
adalah rumpun algoritma 64 bit blok ciphers yang dikembangkan oleh Swiss Federal Institute of Technology and Cylink Corp. SAFER+ membangkitkan 128 bit cipher keys dari 128 bit plaintext
TEDC Vol.2 No.3 September 2008: 129-139
130
mempergunakan kombinasi antara personal identification number (PIN) dengan alamat
bluetooth dalam mengidentifikasi perangkat bluetooth lainnya. Teknologi bluetooth
memanfaatkan gelombang radio pada pita frekuensi 2,4 GHz, dengan teknik frequency-hopping spread spectrum (FHSS). Dengan teknologi ini hanya penerima yang telah
disinkronisasi yang dapat mengakses data yang ditransmisikan oleh master[6]. Proses sinkronisasi
dilakukan dengan otentikasi (autentication). Gambar–1 memperlihatkan prinsip dasar proses otentikasi dengan mesin enkripsi bluetooth. Setiap
perangkat bluetooth mempunyai pembangkit bilangan acak, BD_ADDR2, dan user-key. Bilangan acak ini berfungsi untuk membangkitkan kunci otentikasi dan enkripsi. Fungsi lainnya untuk
challenge-response schema. Sebelum melaksanakan komunikasi verifier mengirimkan
bilangan acak (LMP_au_rand) dan claimant akan mendengar/mengambil lalu mengenkripsi bilangan
tersebut dengan kunci rahasia. Selanjutnya mengirimkan kembali bilangan yang telah
terenkripsi (LMP_sres). Verifier akan mengenkripsi bilangan acak dengan kunci rahasia dan
membandingkan hasilnya dengan yang dihasilkan oleh claimant. Jika cocok maka kedua sisi ini telah
memiliki kunci rahasia yang sama. Proses
selengkapnya akan dibahas pada bagian III.
Gambar-1 Prinsip otentikasi menggunakan
mesin enkripsi bluetooth[1]
Tulisan ini membahas arsitektur dan sistem keamanan bluetooth. Lebih khusus lagi pada
bagian II, dijelaskan arsitektur dasar bluetooh yang meliputi : Radio Frequency (RF), Base Band, dan Link Manager Protocol. Dalam bagian III dibahas sistem keamanan bluetooth mulai dari
2 BD_ADDR = bluetooth device address adalah
parameter unique dari masing-masing perangkat bluetooth yang ditentukan oleh pabrik seperti medium access control (MAC) pada Ethernet cards.
kunci-kunci enkripsi, prosedur pelaksanaan komunikasi, dan algoritma SAFER+. Bagian akhir dari
tulisan ini adalah kesimpulan yang melihat kemampuan algoritma SAFER+ dalam mengamankan
informasi pada komunikasi bluetooth.
II. ARSISTEKTUR BLUETOOTH Teknologi bluetooth dibagi menjadi dua spesifikasi
yaitu spesifikasi core dan profile[4]. Spesifikasi core menjelaskan bagaimana teknologi ini bekerja,
sementara itu spesifikasi profile bagaimana
membangun interoperation antar perangkat bluetooth dengan menggunakan teknologi core. Dalam tulisan
ini hanya dijelaskan teknologi core seperti diperlihatkan pada gambar-2 dan difokuskan pada
lapisan bawah sampai pada link manager.
Gambar-2 Arsitektur Bluetooth[4]
Radio Frequency (RF) Unit RF merupakan sebuah transceiver yang memfasilitasi hubungan wireless antar perangkat
bluetooth yang beroperasi pada International Scientific and Medical (ISM) band dengan frekuensi 2,4GHz. ISM band bekerja dengan frequency-hopping, dan pembagiannya dibuat dalam 79 hop
dengan spasi 1 MHz. Teknologi frequency-hopping dimungkinkan berbagai jenis perangkat transmit pada frekuensi yang sama tanpa menimbulkan irterferensi.
Daya yang dianjurkan untuk radio bluetooth ini diklasifikasikan menjadi tiga kelas seperti
diperlihatkan dalam tabel-1.
Tabel-1. Klasisfikasi daya pancar radio bluetooth[5]
Kelas Daya
Daya output maksimum [mW]
Jangkauan /Range [meter]
1 <100 (20dBm) 100
2 1 – 2,5 (4 dBm) 10
3 1 mw (0dBm) 0,1 – 1
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
131
Dalam jaringan bluetooth pelaksanaan komunikasi
pada waktu tertentu diasumsikan hanya beberapa stasion yang berpartisipasi berkomunikasi yaitu
sebuah master dan satu atau lebih slave, kelompok ini disebut piconet. Master mengeset
urutan hopping, dan slave mensinkronkannya dengan master. Slave hanya berkomunikasi
dengan master. Master dalam piconet hanya mampu berkomunikasi dengan tujuh buah slave
aktif dan maksimum sampai 255 slave tidak aktif. Bila lebih dari tujuh stasion yang ingin
berkomunikasi maka dapat membuat jaringan piconet baru, gabungn beberapa piconet disebut
scatternet[3]. Konfigurasi piconet dan scatternet diperlihatkan pada gambar-3.
Bluetooth Baseband Unit baseband atau disebut link control unit, adalah perangkat keras yang memfasilitasi
hubungan RF diantara perangkat bluetooth.
Apabila sudah tersambung, terdapat dua jenis hubungan yang dapat dikerjakan oleh unit ini yaitu
synchronous conection-oriented (SC0) dan asynchronous connectionless (ACL). Sambungan
SCO dapat melakukan circuit-switched, sambungan point-to-point (biasanya untuk data), suara dan streaming. Kecepatan data pada kedua sisi (pengirim, penerima) adalah 433,9 Kbps. ACL
melayani sambungan packet-switched dan point to multipoint biasanya hanya untuk data.
Kecepatan sisi penerima mencapai 723,2 Kbps dan sisi pengirim hanya 57,6 Kbps. Modul baseband ini
terdiri dari flash memory dan sebuah central processing unit yang bertugas mengatur timming, frequency hopping, enkripsi data dan error correction bekerja sama dengan link manager protocol (LMP). LMP merupakan protokol
bluetooth yang bertugas mengontrol dan men-setup hubungan data dan audio diantara
perangkat bluetooth. Seperti terlihat pada gambar-2, radio frequency (RF), baseband dan link manager protocol disebut sebagai Host Control Interface (HCI) yang berfungsi melaksanakan dan
menjaga semua hubungan komunikasi dalam bluetooth.
Gambar-3 Interkoneksi antar master dan slave pada
piconet dan scatternet[7]
III. KEAMANAN BLUETOOTH
Dalam sistem komunikasi bluetooth setiap orang berpotensi mendengarkan. Oleh karena itu issue utama dalam sistem ini adalah menjamin bagaimana informasi itu tidak dapat didengar oleh yang tidak
berhak. Untuk keamanan informasi, sistem bluetooth mempergunakan keamanan bertingkat, meliputi :
baseband, link manager, host control interface (HCI) dan generic acces profile (GAP)[1]. Prinsip keamanan
dalam bluetooth pada dasarnya dilaksanakan dengan dua tahapan. Pertama, otentikasi (authentication) yaitu metoda yang menyatakan bahwa informasi itu betul-betul asli atau perangkat yang mengakses
informasi betul-betul perangkat yang dimaksud[2]. Kedua, enkripsi (encryption) yaitu suatu proses yang dilakukan untuk mengamankan sebuah pesan (yang disebut plaintext) menjadi pesan yang tersembunyi
(disebut ciphertext)[2]. Gambar-4 memperlihatkan diagram blok struktur fungsional otentikasi dan enkripsi pada sistem
bluetooth. Saat inisialisasi nomer PIN khusus perangkat dipakai untuk membangkitkan 128 bit kunci
mempergunakan BD_ADDR dari claimant dan bilangan acak yang dipertukarkan oleh verifier dan
TEDC Vol.2 No.3 September 2008: 129-139
132
claimant. Prosedur otentikasi diperlukan untuk memastikan kedua unit menggunakan 128 bit
kunci yang sama, dan oleh karena itu nomer PIN yang sama dimasukkan pada kedua perangkat
tersebut.
Berdasarkan prosedur di atas selanjutnya algoritma SAFER+ akan membangkitkan beberapa
kunci (keys). Kunci-kunci ini akan digunakan oleh LMP dalam proses negoisasi, encryption engine dan autentication. Beberapa kunci ini akan dibahas pada sub bab berikut.
Master CLK,BD_ADDR, PINChiper Key
Stored Information:
RandomNumber
Generator
SAFER+(Ar/A'r)
Control EncryptionEngine
Authentication
Cipher
Keys
CipherKeys
Unencryted/Encrypted/Bitstream
Encrypted/UnencrytedBitstream
Gambar-4 Diagram blok enkripsi dan
otentikasi[1]
3.1 Algoritma dan kunci-kunci enkripsi Terdapat beberapa kunci (key) berbeda yang
digunakan dalam bluetooth, dan dikelompokkan menjadi tiga jenis, yaitu : link keys, sub-keys, dan kunci-kunci hasil enkripsi. Masing-masing kunci dibangkitkan oleh satu set yang terdiri dari lima
algoritma “E” berbeda, kecuali E0 semua algoritma berbasis algoritma SAFER+. Kelima algoritma itu
adalah:
- E0 =membuat chiper stream atau mesin enkripsi (encryption engine).
- E1 = proses otentikasi
- E21 = membuat unit-keys dan combination keys berdasarakan 48 bit BD-address
- E22 =membuat initialization keys an master keys berdasarkan user-PIN.
- E3 = membuat kunci enkripsi.
3.2. Prosedur Komunikasi Bluetooth
Diasumsikan hanya terdapat dua unit perangkat yang hendak melakukan komunikasi
satu dengan lainnya. Proses komunikasi dilakukan
dengan empat tahapan yaitu : (1) pembangkitan unit key, (2) pembangkitan kunci inisialisasi (initialization key), (3) pembangkitan dan pertukaran link key, (4) proses otentikasi, (5) pembangkitan kunci enkripsi.
3.2.1 Pembangkitan Unit Key
Unit Key dibangkitkan oleh setiap unit BT dan biasanya hanya sekali pada saat di-set di pabrik (saat
pertama di ON-kan). Namun demikian unit key ini dapat di-set setiap saat oleh pemakai. Gambar-5
memperlihatkan bagaimana unit key dibangkitkan
menggunakan algoritma E21. Setiap perangkat akan membangkitkan unit key (missal KA dan KB)
berdasarkan BD_ADDR-nya dan setelah itu disimpan di memori non-volatile masing-masing. Kunci ini juga
dapat dibatalkan dan dibangkitkan kembali oleh pemakai, karena itu setiap terjadi link dengan unit lainnya secara otomatis unit key ini tidak berlaku lagi. Dengan demikian tahapan ini terjadi pada setiap
perangkat lainnya akan berkomunikasi.
RANDA E21
BD_ADDRA
KA
E21
BD_ADDRB
KB
RANDB
A B
Gambar-5 Ilustrasi pembangkitan Unit Key dengan algoritma E21[3]
3.2.2 Pembangkitan kunci inisialisasi Proses kedua yang dilakukan adalah
membangkitkan kunci inisialisasi (init key, Kinit) dengan algoritma E22. Kunci ini diperlukan untuk
pertukaran kunci pada saat pembangkitan link key. Bila kedua unit ini telah menjalankan pertukaran link-key, init key akan dibatalkan. Gambar-6 memperlihatkan proses pembangkitkan init key yaitu verifier (A) mengirimkan bilangan acak ke claimant (B). Selanjutnya kedua unit dapat membangkitkan
init key dimana Kinit = E22 (PIN, PIN_length, IN_RAND).
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
133
E22
IN_RAND
Kinit
PIN
LE22
IN_RAND
K'init
PIN'
L'
IN_RAND
Tahap ini sukses jika PIN' = PINL , L' = panjang PIN
A B
Gambar-6 Ilustrasi pembangkitan Init Key dengan algoritma E22[3]
3.2.3 Pembangkitan link key
Proses ketiga yaitu membangkitkan dan menukarkan link key. Link key digunakan untuk otentikasi antar perangkat bluetooth dan membangkitkan kunci-kunci enkripsi. Terdapat
dua jenis link key dan masing-masing dibangkitkan dengan cara yang berbeda. Kedua jenis link key itu adalah semi-permanent (digunakan untuk
beberapa sesi) dan temporary (hanya digunakan pada sesi saat itu). Gambar-7 dan gambar-8
secara berturut-turut memperlihatkan metoda membangkitkan link key. Pada gambar-7, link key diambil dari unit key A lalu ditransmisikan ke unit B, selanjutnya di EX-OR kan dengan Kinit unit B.
Pada gambar-8, link key merupakan suatu kunci kombinasi (combination key). Prosesnya, setiap unit membangkitkan bilangan acak dan masing unit mentransmisikan bilangan acaknya. Dengan
algoritma E21 masing-masing unit akan menghasilkan sebuah kunci kombinasi (KAB).
KA
KInit
K K
KInit
KA=KAB
K
BA
Gambar-7 Ilustrasi pembangkitan Link Key[3]
LK_RANDA
A
E21
LK_RANDA
KAB
LK_KA
LK_RANDA
E21
LK_RANDB
LK_KB
LK_RANDB
E21
LK_RANDB
KAB
LK_KB
LK_RANDB
E21
LK_RANDA
LK_KA
LK_RANDA
LK_RANDB
B
Gambar-8 Ilustrasi pembangkitan Link Key berdasarakan Unit Key masing-masing, sehingga kunci ini disebut Combination Key[3] 3.2.4 Otentikasi
Proses ketiga yaitu otentikasi, proses ini
menggunakan algoritma E1. Ilustrasinya diperlihatkan dalam gambar-9. Pertama unit A membangkitkan
bilangan acak AU_RAND3 dan mengirimkannya ke unit B.
Selanjutnya masing-masing unit membangkitkan SRES dan SRES’ yaitu hasil perhitungan algoritma
SAFER+ dengan input AU_RAND, BD_ADDR dan Klink. Akhirnya unit B mengirimkan SRES’ ke unit A, dan
unit A membandingkan dengan SRES. Jika SRES=SRES’ maka proses otentikasi telah sukses.
KLink bisa Kinit atau KAB,Sukses pada tahapini bila K'Link=KLink
E1
SRES
KLink
AU_RAND
BD_ADDRB
A B
BD_ADDRB
AU_RAND
SRES'ACO
E1
SRES'
K'Link
AU_RAND
BD_ADDRB
ACO'
Gambar-9 Ilustrasi proses otentikasi[3]
3.2.5 Pembangkitan kunci enkripsi
3 AU_RAND adalah notasi untuk bilangan acak pada proses autentication
TEDC Vol.2 No.3 September 2008: 129-139
134
Setelah proses otentikasi sukses, dapat dilanjutkan dengan enkripsi, dan untuk itu perlu
dibangkitkan kunci enkripsi. Kunci ini dihasilkan dari link key. Kunci ini dapat juga diperpendek sesuai dengan batasan keamanan ekspor nasional. Panjang maksimumnya adalah 128 bit dan
dihasilkan dari algoritma SAFER+, E3. Gambar-10 memperlihatkan ilustrasi pembangkitan kunci
enkripsi.
E3
EN_RANDA
KC
KLink
COF
EN_RAND
Kunci enkripsi KC dibangkitkan oleh link key dan bilangan acak yangdihasilkan oleh A.Jika perlu, panjang kunci KC dapat direduksi.
A
RED
KC'
E3
EN_RANDA
K'C
KLink
COF
B
RED
K'C'
Gambar-10 Ilustrasi pembangkitan kunci enkripsi[3]
3.3 Starting Encryption
Sekali perangkat bluetooth telah menjalankan otentikasi dan sesuai dengan link key, tiga tahapan berikut ini harus dilalui sebelum melakukan pertukaran data terenkripsi. Ketiga
tahapan itu adalah negoisasi mode enkripsi, negoisasi ukuran kunci dan memulai enkripsi.
3.3.1 Negoisasi mode enkripsi
Mode enkripsi dapat dipilih salah satu dari yang berikut ini:
- Tidak diamankan (not secure) - Enkripsi point to pint dan broadcast packets - Hanya mengenkripsi paket point to point 3.3.2 Negoisasi ukuran kunci
Sebelum enkripsi dilakukan, kedua unit harus setuju dengan panjang kunci yang akan
digunakan. Master mulai dengan meminta panjang maksimum kunci yang akan ia gunakan, dan jika
panjang kunci ini sesuai dengan kemampuan pada Salve, akan dikirimkan LMP_accepted, bila tidak akan dikirimkan LMP_not_accepted dan Master harus mencoba lagi dengan kunci yang lebih
pendek. Master selalu mencoba sampai mendapatkan LMP_accepted. 3.3.3 Memulai Enkripsi
Bila mode enkripsi dan ukuran kunci telah dipilih untuk hubungan, enkripsi dapat di buat on atau off. Selanjutnya Master mengirimkan LMP_start_encryption req. Bila telah menerima
LMP_accepted, data yang terenkripsi dapat dipertukarkan melalui ACL link4.
Proses enkripsinya menggunakan algoritma E0, E0
membuat dan menerapkan chipper stream menjadi data bitstream. Proses enkripsi dimulai denga
memuati blok LFSR5 dengan BD_ADDR, master clock bits, dan 128 bit bilangan acak. Output LFSR
dikombinasikan dengan Finite State Machine (FSM) disebut juga “Summation Combiner” yang akan
menghasilkan suatu cipher stream. Selanjutnya di exclusive-or-kan (XOR-kan) dengan data stream yang
ditransmisikan atau yang diterima. Ilustrasi proses enkripsi diperlihatkan dalam gambar-11.
E0
BD_ADDRA
KChiper
clockA
KC'
data
A
KChiper'
dataA-B
dataB-A
KChiper'
E0
BD_ADDRA
KChiper
clockA
KC'
B
KChiper'
dataA-B
dataB-A
KChiper'
Gambar-11 Ilustrasi komunikasi data yang terenkripsi[3]
IV. ALGORITMA SAFER+
4 ACL link (Asynchronous Connection-Less) adalah pelayanan komunikasi packet-switched 5 LFSR (Linear Feedback Shift Register) yaitu bagian perangkat keras dari mesin enkripsi.
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
135
Struktur umum enkripsi dan dekripsi6
algoritma SAFER+ diperlihatkan pada gambar-12. Dalam gambar tersebut masukan enkripsi adalah
blok plaintext 16 byte. Blok plaintext dilewatkan melalui enkripsi r putaran, dimana r ditentukan berdasarkan panjang kunci enkripsi yang dipilih, sebagai berikut :
- jika panjang kunci = 128 bit, maka r = 8
putaran - jika panjang kunci = 192 bit, maka r = 12
putaran - jika panjang kunci = 256 bit, maka r = 16
putaran
Dua round subkey 16-byte digunakan pada setiap putaran enkripsi. Round subkey (K1,K2,….,K2r) ini
ditentukan berdasarkan kunci yang dipilih oleh pemakai sesuai dengan key schedule. Pada
putaran akhir dilakkukan penjumlahan round subkey K2r+1 dengan blok yang dihasilkan oleh enkripsi r putaran. Ketentuannya byte 1, 4, 5, 8, 9, 12, 13, dan 16 sama-sama dijumlahkan bit-per-bit dengan modulo dua (operasi “exlusive-or”), dan
byte 2, 3, 6, 7, 10, 11, 14, dan 15 bersama-sama dijumlahkan dengan modulo 256 (operasi
penjumlahan byte). Penjumlahan pada round subkey K2r+1 merupakan “output transformation” untuk enkripsi SAFER+ yang menghasilkan 16 byte blok chipertext. Seperti terlihat pada gambar-12, masukan untuk dekripsi adalah blok chipertext 16 byte. Dekripsi dimulai dengan “input transformation” yang mengembalikan (meng-undo) output transformation pada proses enkripsi. Pada input transformation, round subkey K2r+1 dikurangkan
dengan blok ciphertext, yaitu subkey byte 1, 4, 5, 8, 9, 12, 13, dan 16 sama-sama dijumlahkan bit-per-bit dalam modulo dua (operasi “exlusive-or”)
dengan byte-byte ciphertext, dan byte 2, 3, 6, 7, 10, 11, 14, dan 15 bersama-sama dikurangkan
dalam modulo 256 (operasi penjumlahan byte) dengan byte-byte ciphertext. Hasil dari operasi ini sama dengan 16 byte blok yang dihasilkan oleh enkripsi sebelum dilakukan output transformation. Selanjutnya blok ini dilewatkan ke dekripsi r putaran, putaran 1 merupakan kebalikan dari
enkripsi putaran r, putaran 2 merupakan kebalikan dari enkripsi putaran r-1, dan putaran r
6 Terminologi yang lebih lengkap tentang enkripsi dan dekripsi dapat dilihat di [2]
merupakan kebalikan dari enkripsi putaran 1 yang
akan menghasilkan blok original plaintext.
Putaran Enkripsi SAFER+ Rincian setiap putaran enkripsi pada algoritma
SAFER+ diperlihatkan pada gambar-13a. Operasi pertama dalam putaran i, untuk 1 ≤ i ≤ r, adalah penjumlahan dari round subkey K2i-1 dengan 16-byte
round input. Ketentuannya, byte 1, 4, 5, 8, 9, 12, 13 dan 16 sama-sama dijumlahkan bit-per-bit dalam
modulo dua, dan byte 2, 3, 6, 7, 10, 11, 14 dan 15 bersama-sama dijumlahkan dalam modulo 256. Enam
belas byte hasil operasi ini selanjutnya diproses oleh nonlinear layer. Untuk byte-byte j = 1, 4, 5, 8, 9, 12, 13 dan 16 maka nilai x dari byte j di konversikan ke 45x mod 257 (dengan konvensi bahwa bila x = 128 maka 45128 mod 257 = 256 direpresentasikan dengan 0), byte lainnya yaitu 2, 3, 6, 7, 10, 11, 14 dan 15,
nilai x dari byte j dikonversikan ke log45(x) (dengan konvensi bahwa bila x = 0 maka hasil log45(0)
direpresentasikan dengan 128). Key putaran K2i dijumlahkan dengan hasil dari nonlinear layer, yaitu byte-byte 2, 3, 6, 7, 10, 11, 14 dan 15 sama-sama dijumlahkan bit-per-bit dalam modulo dua, byte-byte
lainnya 1, 4, 5, 8, 9, 12, 13, dan 16 bersama-sam
dijumlahkan dalam modulo 256. Enam belas byte hasil penjumlahan ini adalah :
x = [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,
x15,x16]
selanjutnya di-postmultiplied dengan matrix M modulo 256 untuk mendapatkan putaran output 16 byte,
yaitu :
y = [y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,
y15,y16]
atau
y = xM
dimana M adalah matrik 16 x 16, sebagai berikut :
TEDC Vol.2 No.3 September 2008: 129-139
136
2 2 11 16 8 12 4 2 24 1 1 441 1 11 8 4 12 2 1 24 1 11 1 44 2 1 24 4 2 816 2 21 1 22 2 1 12 4 2 48 1 14 4 12 4 2 24 16 8 11 1 12 2 12 2 1 24 8 4 11 1 11 1 24 4 2 816 2 1 22 4 41 1 12 4 2 48 2 1 11 2 2
22111144221111
2 1 816 1 1 22 1 1 44 4 2 242 1 48 1 1 11 1 1 22 4 24 2 24 4 4 11 2 2 11 16 82 1 24 2 2 11 1 1 11 8 44 2 22 1 1 44 1 1 24 2 14 2 11 1 1 22 1 1 12 2 1
16 8 11 2 2 11 4 4 12 4 28 4 11 1 1 11 2 2 12 2 1
121212816482424
sebagai contoh operasi ini :
y2 =
2x1+x2+x3+x4+4x5+2x6+x7+x8+x9+x10+2x11+x12+2x13 +2x14+8x15+4x16 (y2 berdasarkan kolom kedua matrik M, operasi
aritmatikanya dalam modulo 256)
Putaran Dekripsi SAFER+ Rincian satu putaran dekripsi SAFER+ diperlihatkan dalam gambar-13b. Operasi putaran
dekripsi pada dasarnya inverse arah kebalikan dari operasi putaran enkripsi. Jadi operasi pertama
putaran dekripsi adalah postmultiply 16-byte putaran masukan
y = [y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,
y15,y16]
dengan matrik M-1, inverse M dalam modulo 256, menghasilkan 16-byte
x = [x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,
x15,x16]
atau
y = xM-1
dan 16x16 matrik M-1, sebagai berikut:
2 -2 -21 1 -1 -84 2 -4 -11 1 -2 -11-4 4 4-2 -2 -2 16-8 -2 4 1-1 -1 21 -2 -11 2 2 -11 1 -1 -21 2 -2-2 4 2-2 -2 -2 1-1 -1 1 2-1 -4 41 -1 -42 1 1 -21 1 -2 -11 4 -8-1 1 4-2 -1 -1 2-1 -2 4 2-2 -8 162 -4 -11 1 -2 -11 2 -2 -84 1 -1-2 4 1-1 -1 2 1-1 -4 4 16-8 -2 2
1-1-8416-8-224-4-214-2
1 -1 -21 1 -1 -42 4 -8 -22 1 -2 -11-1 1 2-1 -1 1 4-2 -8 16 4-4 -2 41 -2 -11 4 -8 -22 1 -1 -21 1 -1-1 2 1-1 -8 16 4-4 -2 2 4-2 4 -14 -8 -22 1 -2 -11 1 -2 -11 2 -4-8 16 4-4 -2 4 22 -1 2 1-1 -2 41 -1 -84 2 -2 -21 1 -1 -42 1 -1-2 2 16-8 -4 4 4-2 -1 1 4-2 -1 1
2-2-424-2-111-1-212-1
contoh operasinya :
x3 = y1-2y2+y3-2y4+2y5-2y6+y7-y8+y9-y10 +y11-y12+2y13-4y14+4y15-8y16 (persamaan diatas berdasarakan pada kolom ketiga
matrik M-1, operasi aritmatiknya menggunakan modulo 256).
Round subkey K2r-2i+2 dikurangkan dengan x, byte-
byte 1, 4, 5, 8, 9, 12, 13 dan 16 dikurangkan dalam modulo 256, dan byte-byte 2, 3, 6, 7, 10, 11, 14 dan
15 dijumlahkan bit-per-bit dalam modulo 2. Enam
belas byte hasil operasi ini selanjutnya diproses secara nonlinear, artinya nilai x dari byte j dikonversikan ke log45(x) untuk byte-byte j = 1, 4, 5, 8, 9, 12, 13 dan 16 (dengan konvensi bahwa bila x =
0 maka hasil log45(0) direpresentasikan dengan 128), sementara nilai x dari byte j dikonversikan ke 45x mod
257 untuk byte-byte j = 2, 3, 6, 7, 10, 11, 14, dan 15 (dengan konvensi bahwa bila x = 128 maka 45128
mod 257 = 256 direpresentasikan dengan 0). Round sub-key K2r-2i+1 dikurangkan dengan 16-byte hasil
opersi round subkey, dimana byte-byte 1, 4, 5, 8, 9, 12, 13 dan 16, dan dijumlahkan bit-per-bit dalam
modulo 2 dan untuk byte-byte 2, 3, 6, 7, 10, 11, 14, dan 15 dikurangkan dalam modulo 256, dan akan
dihasilkan round output 16-byte.
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
137
1 2 43 5 6 87 9 10 1211 13 14 1615
Masukan Blok Plaintext (16 byte)
1 2 43 5 6 87 9 10 1211 13 14 1615
Encrypting Round 1
1 2 43 5 6 87 9 10 1211 13 14 1615
Encrypting Round r
xor
2 43 5 6 87 9 10 1211 13 14 16151
add addxorxoradd xoradd addxor add xor xor add add xor
1 2 43 5 6 87 9 10 1211 13 14 1615Keluaran Blok Ciphertext (16 byte)
K1
K2
K2r-1
K2r
K2r+1
1 2 43 5 6 87 9 10 1211 13 14 1615Masukan Blok Cipherext (16 byte)
1 2 43 5 6 87 9 10 1211 13 14 1615Decrypting Round 1
1 2 43 5 6 87 9 10 1211 13 14 1615Decrypting Round r
xor
2 43 5 6 87 9 10 1211 13 14 16151
add addxorxoradd xoradd addxor add xor xor add add xor
1 2 43 5 6 87 9 10 1211 13 14 1615Keluaran Blok Plaintext (16 byte)
K1
K2
K2r-1
K2r
K2r+1
Gambar-12 Struktur enkripsi dan dekripsi algoritma SAFER+[5]
Keterangan: “xor” = operasi exlusive-or, bit-per-bit pada byte “add” = penjumlahan byte dengan modulo 256
“sub” = operasi pengurangan dengan modulo 256
antar byte masukan dengan byte kunci
1 2 43 5 6 87 9 10 1211 13 14 1615
Masukan Round (16 byte)
1 2 43 5 6 87 9 10 1211 13 14 1615
Operasi matrik M 16x16 dengan modulo 256
xor
2 43 5 6 87 9 10 1211 13 14 16151
add addxorxoradd xoradd addxor add xor xor add add xor
1 2 43 5 6 87 9 10 1211 13 14 1615
Keluaran Round (16 byte)
K2i-1
exp
2 43 5 6 87 9 10 1211 13 14 16151
log logexpexplog explog logexp log exp exp log log exp
xor
2 43 5 6 87 9 10 1211 13 14 16151
add addxorxoradd xoradd addxor add xor xor add add xor K2i
(a
)
1 2 43 5 6 87 9 10 1211 13 14 1615
Masukan Round (16 byte)
1 2 43 5 6 87 9 10 1211 13 14 1615
Operasi matrik M-1 16x16 dengan modulo 256
sub
2 43 5 6 87 9 10 1211 13 14 16151
xor xorsubsubxor subxor xorsub xor sub sub xor xor sub
1 2 43 5 6 87 9 10 1211 13 14 1615
Keluaran Round (16 byte)
K2i-2i+2
exp
2 43 5 6 87 9 10 1211 13 14 16151
loglogexpexplog explog logexp log exp exp log log exp
2 43 5 6 87 9 10 1211 13 14 16151
xorsubsubxor subxor xorsub xor sub sub xor xor sub sub xor K2i-2i+1
(b)
TEDC Vol.2 No.3 September 2008: 129-139
138
Gambar-13 Struktur algoritma SAFER+ [5]
(a) enkripsi putaran i, (b) dekripsi putaran i Keterangan:
“xor” = operasi exlusive-or, bit-per-bit pada byte “add” = penjumlahan byte dengan modulo 256
“exp” = 45x modulo 257, dimana x adalah byte masukan, dengan konvensi bahwa hasil 45128 =
256 dinyatakan dengan 0. “log” = log45(x), dimana x adalah byte masukan,
dengan konvensi log45 (0) = 128.
Key Schedule SAFER+
Dalam enkripsi SAFER+ round subkey 2r+1 16-byte diperlukan untuk putaran r dan untuk transformasi keluaran, kunci ini dihasilkan dari kunci masukan sesuai dengan key schedule dan tergantung pada panjang kunci yang dipilih. Key schedule dari SAFER+ menggunakan 16-byte
bias word untuk menghasilkan round subkey secara acak. Jumlah bias word yang diperlukan sama dengan jumlah round subkey 2r+1, yaitu jumlahnya bisa 17, 25 atau 33, tergantung pada
panjang user-selected-key. Bias word pertama merupakan “dummy” word yang tidak pernah dipergunakan tetapi berguna untuk penetapan pada waktu proses pemrogramannya. Bias word untuk panjang kunci 128 bit dihasilkan dengan
persamaan berikut[5]:
Bi,j = 45 mod 257(4517i+j mod 257)
dimana :
i adalah nomor bias word, dan j adalah nomor byte pada bias word yang ke-i Key schedule untuk kunci masukan 128 bit (atau
16 byte) diperlihatkan pada gambar-14. Pada
enkripsi ini dihasilkan 17 round subkey dalam 8 putaran dan tranformasi keluaran dengan cara-
cara berikut. User-selected-key itu sendiri dipergunakan sebagai round subkey K1 pertama
dan juga diisikan ke posisi 16 byte pertama dari key register 17-byte. Posisi byte terakhir dari
register ini diisi dengan jumlah bit-per-bit dalam modulo dua dari 16 byte user-selected-key. Masing-masing byte dari key register diputar ke arah kiri 3 bit. Round subkey K2 yang kedua
dihitung berdasarkan penjumlahan dalam modulo 256 antara 16 byte bias word B2 dengan byte-byte key register posisi 2, 3, 4, ……….16, dan 17. Selanjutnya setiap byte pada key register diputar kembali arah kiri 3 bit. Round subkey K3 yang ketiga dihitung berdasarkan penjumlahan dalam
modulo 256 antara 16 byte bias word B3 dengan byte-byte key register posisi 3, 4, ……….16, 17, dan 1.
Proses ini dilanjutkan untuk round subkey yang berikutnya sampai pada round key K17.
Contoh SAFER+
Berdasarkan uraian algoritma SAFER+ di atas, maka untuk memberikan gambaran yang lebih nyata berikut
ini diberikan contoh hasil algoritma SAFER+ untuk kunci 128 bit
Masukan blok plaintext :
179 166 60219 35 12 15362 36 94 2813 6 183 22271
Keluaran blok ciphertext :
224 31 10182 12 225 7084 127 13 24989 9 57 220165
Round subkey K1, K2, …., K17 (satu kunci per baris)
41 35 132190 225 108 174214 82 144 24173 241 187 23523395 140 201213 6 109 156133 73 129 8866 55 119
155 204 22534 28 64 49236 74 22 92114 224 214147 134 54176 199 141 21987 38 162 16798 109 138123 29 9255 250 122 218240 65 124 5792 59 4396 204 9315 122 189 243245 244 52 76219 177 21056 190 32201 12 248 109157 168 81 221214 102 10515 26 25046 110 124 222137 74 13 125 134 18
351113522301861271492091638153
185149207 61 224251 179 66 96183 253 60 7837 211 15 922268 215 5694 94 49 23035 120 133 195111 97 6878 156 181190 130 222 1596 38 59 23853 123 180
221 238 211152 241 232 255248 101 167 3637 134 23855 111 66165 105 237 179214 86 233 21414 53 11534 65 22473 185 205 140107 123 117 25455 4 179
212 162 1791 41 175 25156 163 238 24913 50 5451 1 21559 18 174 253202 151 91 89101 167 98
1732031071382432442011652368274180
104148127 111 111186 62 132 23035 184 23 252199 186 75 149227
Kajian Sistem Keamanan Bluetooth dengan Algoritma Safer+ (Dodi Budiman M)
139
1 2 1615
Kunci pilihan pemakai (16 byte) Select bytes1,2,...,14,15,1
K1
Sum bytes bit-by-bit
modulo
1 2 1615 17
Rotate each byte left by 3 bit posistions
1 2 1615 17
Select bytes2,3,...,15,16,1
Σ
B2
K2
Select bytes3,4,...,16,17,1
Σ
B3
K3
Rotate each byte left by 3 bit posistions
1 2 1615 17Select bytes4,5,...,17,1,2
Σ
B4
K4
Rotate each byte left by 3 bit posistions
1 2 1615 17Select bytes
17,1,2,...,14,1Σ
B17
K17
Rotate each byte left by 3 bit posistions
Σ adalah bytewise modulo 256 addition of 128 bit words
Gambar-14 Key Schedule SAFER+ utk 128 bit [5] Algoritma SAFER+ pada Bluetooth
Algoritma SAFER+ pada sistem bluetooth
mempergunakan panjang kunci antara 1 sampai 16 octets atau antara 8 sampai 128 bit. Jika
panjang kunci yang dipilih kurang dari 128 bit maka panjang kunci yang digunakan untuk
enkripsi direduksi dengan modulo operasi. Diagram blok fungsional SAFER+ diperlihatkan
pada gambar-15.
Invertible Linear Transform (ILT) mengerjakan
suatu bentuk Pseudo Hadamard Transformation (PHT), dilanjutkan dengan Armenian Shuffle (AS) sebagai fungsi interleaving secara bit. Kedua operasi itu diselesaikan sebanyak tiga kali pada
akhir tahapan PHT. Fungsi PHT terdiri dari operasi akumulasi perkalian dan pergeseran bit. Sub Key
Generation memproses pembuatan paritas word,
memutar bit dalam setiap octet dan memutar octet. Hasilnya dijumlahkan dalam modulo 256 dengan
precalculated bias word. Tabel log dan tabel eksponen dan bias tabel merupakan fungsi look-up table, untuk operasi ketiga fungsi itu.
Gambar-15 Diagram blok fungsional SAFER+[1]
Kesimpulan Proses keamanan dalam sistem bluetooth dilakukan
melalui dua tahapan yaitu otentikasi dan enkripsi. Otentikasi dilakukan pada link level dengan tujuan untuk memverifikasi pasangan perangkat yang saling
menukarkan kunci rahasia berdasarkan personal indentification number (PIN). Proses verifikasinya
dikerjakan oleh SAFER+ 128 bit. SAFER+ merupakan suatu algoritma yang akan memverifikasi dan
membangkitkan kunci-kunci enkripsi melalui beberapa algoritma yaitu E1, E21, E22 dan E3. Keempat algoritma
ini disebut key generator. Tahapan enkripsi dan dekripsi dikerjakan oleh suatu mesin enkripsi
(gabungan dari LFSRs dan Summation combiner) atau dikenal dengan nama algoritma E0. Algoritma ini
tidak berbasis SAFER+ tetapi bekerja berdasarkan kunci-kunci yang dihasilkan oleh key generator. Tiga
mode enkripsi yang dapat digunakan dalam bluetooth yaitu tanpa enkripsi, enkripsi paket point to point dan broadcst, dan enkripsi hanya paket point to point. Algoritma SAFER+ merupakan suatu cipher yang
berbasis linear-transformation dimana fungsi invertible yang di kontrol oleh round key
dipergunakan pada putaran input dan output
(hasilnya). SAFER+ merupakan cipher berorientasi byte karena proses enkripsi, dekripsi dan eksekusinya
berdasarkan byte ke byte.
TEDC Vol.2 No.3 September 2008: 129-139
140
Daftar Pustaka [1] Brey, Jenifer and Charles F. Storman,
“BULETOOOTH : connect without cables”, Prentice Hall PTR, New Jersy,2001.
[2] Budi Rahardjo, Keamanan Sistem Informasi Berbasis Internet, vesi 5.0, 2002, on-line document.
http://budi.insan.co.id/course/el659
[3] Cockerham, Daniel, Bluetooth Networks Security Features, Proceedings of the 2001 IEEE, Workshop on Information Assyrance
and Security, Ney York 5-6 June 2001. [4] Kardach, James, Bluetooth Architecture
Overview, Intel Technologi journal, Q2.2000. on-line document.
http://www.intel.com/technology/itj/q22000/articles/art_1.htm
[5] L. Massey, GH Khachatria, MK Kuregian, “SAFER+ Candidate Algorithm for AES” on-line document.http://www.nist.gov/aes
[6] General information on Bluetooth. http://www.mobileinfo.com/bluetooth
top related