Pemanfaatan Nonnegative Matrix Factorization pada Kriptografi untuk Mengamankan Data Gambar

dokumen-dokumen yang mirip
Hill Cipher & Vigenere Cipher

BAB 2 TINJAUAN PUSTAKA

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

Studi dan Analisis Mengenai Aplikasi Matriks dalam Kriptografi Hill Cipher

Aplikasi Perkalian dan Invers Matriks dalam Kriptografi Hill Cipher

Aplikasi Aljabar Lanjar untuk Penyelesaian Persoalan Kriptografi dengan Hill Cipher

IMPLEMENTASI HILL CIPHER PADA CITRA MENGGUNAKAN KOEFISIEN BINOMIAL SEBAGAI MATRIKS KUNCI

STUDI DAN PERBANDINGAN PERFORMANSI ALGORITMA SIMETRI VIGENERE CHIPPER BINNER DAN HILL CHIPPER BINNER Ivan Nugraha NIM :

PENGGUNAAN METODE HILL CIPHER UNTUK KRIPTOGRAFI PADA CITRA DIGITAL. Muhammad Rizal 1), Afdal 2)

Transformasi Linier dalam Metode Enkripsi Hill- Cipher

MODIFIKASI KRIPTOGRAFI HILL CIPHER MENGGUNAKAN CONVERT BETWEEN BASE

PENGGUNAAN DETERMINAN POLINOMIAL MATRIKS DALAM MODIFIKASI KRIPTOGRAFI HILL CHIPER

IMPLEMENTASI SANDI HILL UNTUK PENYANDIAN CITRA

BAB I PENDAHULUAN. Pada era teknologi informasi yang semakin berkembang, pengiriman data

SUATU ALGORITMA KRIPTOGRAFI STREAM CIPHER BERDASARKAN FUNGSI CHAOS

Penggunaan Transformasi Matriks dalam Enkripsi dan Dekripsi

AFFINE-HILL-LU CIPHER WITH MATLAB IMPLEMENTATION

Pertemuan 8 Aljabar Linear & Matriks

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB I PENDAHULUAN. Di era globalisasi saat ini, mendapatkan informasi sangatlah mudah. Setiap

TEKNIK ENKRIPSI DAN DEKRIPSI HILL CIPHER (Rivalri Kristianto Hondro, M.Kom.) NIDN:

Implementasi dan Perbandingan Algoritma Kriptografi Kunci Publik

BAB I PENDAHULUAN. 1.1 Latar Belakang

1. Pendahuluan. 2. Tinjauan Pustaka

STUDI PERBANDINGAN ALGORITMA SIMETRI BLOWFISH DAN ADVANCED ENCRYPTION STANDARD

Kriptografi Simetris Dengan Kombinasi Hill cipher Dan Affine Cipher Di Dalam Matriks Cipher Transposisi Dengan Menerapkan Pola Alur Bajak Sawah

Tanda Tangan Digital Dengan Menggunakan SHA-256 Dan Algoritma Knapsack Kunci-Publik

PERANCANGAN ALGORITMA KRIPTOGRAFI KUNCI SIMETRI DENGAN MENGGUNAKAN JARINGAN SARAF TIRUAN

ISSN: X 151 PENERAPAN MATRIKS PERSEGI PANJANG SEBAGAI KUNCI PUBLIK DAN KUNCI PRIVAT PADA MODIFIKASI CIPHER HILL

Teknik Konversi Berbagai Jenis Arsip ke Dalam bentuk Teks Terenkripsi

General Discussion. Bab 4

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

UJI KINERJA FACE RECOGNITION MENGGUNAKAN EIGENFACES

APLIKASI MATRIKS INVERS TERGENERALISASI PADA DIFFIE-HELLMAN (DH) TUGAS AKHIR MIA FADILLA

BAB III ANALISIS DAN DESAIN SISTEM

Penerapan Operasi Matriks dalam Kriptografi

Studi dan Implementasi Algoritma kunci publik McEliece

Algoritma MAC Berbasis Jaringan Syaraf Tiruan

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

Protokol Perjanjian Kunci Berdasarkan Masalah Konjugasi Pada Matriks Atas Lapangan Hingga

PEMBANGKIT KUNCI LINEAR FEEDBACK SHIFT REGISTER PADA ALGORITMA HILL CIPHER YANG DIMODIFIKASI MENGGUNAKAN CONVERT BETWEEN BASE

BAB III METODOLOGI PENELITIAN. ditemukan oleh Rivest, Shamir dan Adleman (RSA) pada tahun

BAB II TINJAUAN PUSTAKA

Penggabungan Algoritma Kriptografi Simetris dan Kriptografi Asimetris untuk Pengamanan Pesan

BAB III ANALISIS DAN PERANCANGAN

PENGGUNAAN METODE MODIFIKASI HILL CIPHER PADA KRIPTOGRAFI

Suatu Algoritma Kriptografi Simetris Berdasarkan Jaringan Substitusi-Permutasi Dan Fungsi Affine Atas Ring Komutatif Z n

RUANG FAKTOR. Oleh : Muhammad Kukuh

Matematika Teknik I: Matriks, Inverse, dan Determinan. Oleh: Dadang Amir Hamzah STT DR. KHEZ MUTTAQIEN 2015

METODE ENKRIPSI DAN DEKRIPSI DENGAN MENGGUNAKAN ALGORITMA ELGAMAL

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

Departemen Teknik Informatika Institut Teknologi Bandung 2004

BAB 2 LANDASAN TEORI

Cryptography. Lisa Anisah. Abstrak. Pendahuluan. ::

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

BAB II LANDASAN TEORI. bilangan bulat dan mengandung berbagai masalah terbuka yang dapat dimengerti

Proses enkripsi disetiap putarannya menggunakan fungsi linear yang memiliki bentuk umum seperti berikut : ( ) ( ) (3) ( ) ( ) ( )

BAB I PENDAHULUAN. dan rahasia telah menjadi suatu hal yang sangat berharga. Data atau informasi

Tanda Tangan Digital Majemuk dengan Kunci Publik Tunggal dengan Algoritma RSA dan El Gamal

IMPLEMENTASI ALGORITMA HILL CIPHER DALAM PENYANDIAN DATA

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

SISTEM PERSAMAAN LINEAR

Latar Belakang Masalah Landasan Teori

BAB III ANALISIS DAN DESAIN SISTEM

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Bab 2: Kriptografi. Landasan Matematika. Fungsi

Tomy Satria Alasi Facebook/tomy.satria.alasi Ilmutomy.blogspot.com Ilmutomy.wordpress.com

Perhitungan dan Implementasi Algoritma RSA pada PHP

A 10 Diagonalisasi Matriks Atas Ring Komutatif

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Analisis Penggunaan Algoritma RSA untuk Enkripsi Gambar dalam Aplikasi Social Messaging

BAB I PENDAHULUAN. untuk mencegah informasi tersebut sampai pada pihak-pihak lain yang tidak

Enkripsi dan Dekripsi Teks menggunakan Algoritma Hill Cipher dengan Kunci Matriks Persegi Panjang

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

RANCANGAN,IMPLEMENTASI DAN PENGUJIAN ZENARC SUPER CIPHER SEBAGAI IMPLEMENTASI ALGORITMA KUNCI SIMETRI

KRIPTOGRAFI KLASIK DENGAN METODE MODIFIKASI AFFINE CIPHER YANG DIPERKUATDENGANVIGENERE CIPHER

Penggunaan Fungsi Rasional, Logaritma Kuadrat, dan Polinomial Orde-5 dalam Modifikasi Kriptografi Caesar Cipher

APLIKASI KRIPTOGRAFI KOMPOSISI ONE TIME PAD CIPHER DAN AFFINE CIPHER

BAB I PENDAHULUAN. Universitas Sumatera Utara

BAB 3 KRIPTOGRAFI RSA

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN

ANALISIS PERBANDINGAN KINERJA ALGORITMA TWOFISH DAN TEA (TINY ENCRYPTION ALGORITHM) PADA DATA SUARA

Teknik Kriptografi Hill Cipher Menggunakan Matriks

Invers Tergeneralisasi Matriks atas Z p

BAB I PENDAHULUAN 1.1 Latar Belakang

Aljabar Linier & Matriks. Tatap Muka 2

internal atau upa-kunci. Kunci internal dibangkitkan dari kunci eksternal yang panjangnya 64 bit. Berikut ini adalah skema global algoritma DES.

Matriks - 1: Beberapa Definisi Dasar Latihan Aljabar Matriks

BAB I PENDAHULUAN. keamanan, kerahasiaan, dan keotentikan data. Oleh karena itu diperlukan suatu

BAB I PENDAHULUAN. format digital dan merniliki beragam bentuk dalam hal ini data atau informasi di

Algoritma RSA dan ElGamal

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

Pembagi Bersama Terbesar Matriks Polinomial

Penerapan Matriks dalam Kriptografi

STUDI PERBANDINGAN ENKRIPSI MENGGUNAKAN ALGORITMA IDEA DAN MMB

Konstruksi Matriks NonNegatif Simetri dengan Spektrum Bilangan Real

BAB III ANALISIS DAN PERANCANGAN. yang ada pada sistem dimana aplikasi dibangun, meliputi perangkat

Aplikasi Pembelajaran Kriptografi Klasik dengan Visual Basic.NET

Transkripsi:

Prosiding SNM 2014 Topik penelitian, hal. xx-xx. Pemanfaatan Nonnegative Matrix Factorization pada Kriptografi untuk Mengamankan Data Gambar INDRA BAYU MUKTYAS 1 1Program Studi Pendidikan Matematika, STKIP Surya, Tangerang, Banten, recobayu@gmail.com Abstrak. Di dunia yang serba canggih sekarang ini, terutama di perkotaan, keamanan data sangatlah penting. Hal ini bisa dilakukan dengan kriptografi. Ada berbagai macam teknik dalam kriptografi, salah satunya adalah Hill cipher. Dalam makalah ini diajukan sebuah cara pengenkripsian data berupa gambar dengan memodifikasi Hill cipher. Ada dua cara pemilihan kunci, yaitu dengan kunci acak dan dengan autokey menggunakan Nonnegative Matrix Factorization (NMF). Pengenkripsian tersebut akan diimplementasikan pada data 100 foto mahasiswa STKIP Surya yang dipilih secara acak. Kata kunci : Kriptografi, Hill cipher, Autokey Nonnegative Matrix Factorization. 1. Pendahuluan Pengiriman data dari satu tempat ke tempat lain sudah tidak perlu lagi dengan biaya mahal dan waktu yang lama. Ini karena adanya internet. Akan tetapi keamanan data menjadi kebutuhan yang pokok di zaman yang serba canggih sekarang ini. Salah satu cara mengamankan data adalah dengan kriptografi. Data tersebut dienkripsi dengan sebuah kunci rahasia. Kemudian data enkripsi tersebut dikirimkan kepada pihak penerima (misalkan melalui email). Pihak penerima baru akan bisa membaca data tersebut jika sudah mendapatkan kunci dekripsi data dari pihak pengirim. Dalam makalah ini akan dikaji mengenai kriptografi klasik Hill cipher yang selanjutnya dikembangkan untuk data gambar. Ada dua cara pemilihan kunci yang digunakan. Pertama dengan kunci acak dan yang ke dua dengan kunci otomatis yang diperoleh dari Nonnegative Matrix Factorization (NMF). 1

2 Indra Bayu Muktyas 2. Metode A. Hill cipher Salah satu kriptografi simetris yang sudah tidak asing lagi adalah Hill cipher. Seorang asisten profesor matematika di Hunter College bernama Lester Hill menemukan cara untuk mengenkripsi plainteks berupa huruf. Ia membagi pesan plainteks menjadi blok-blok. Kemudian setiap blok tersebut dienkripsi dengan menggunakan sistem persamaan linier dengan variabel. Karena plainteksnya berupa huruf, maka disyaratkan perulangan modulo 26. Untuk dibentuk persamaan ( ) ( ) dengan ( ) [1]. Contoh: ( ) ( ) Plainteksnya DI BAWAH POT. Maka dipecah menjadi blok dua-dua, yaitu DI BA WA HP OT. Jika didefinisikan A=0 maka DI menjadi 3 8. Ilustrasi proses enkripsi dalam bentuk matriks adalah seperti ini. ( ) ( ) ( ) Jika dikembalikan ke bentuk semula diperoleh cipherteks TBBBWWLAAT. B. Modifikasi Hill cipher Dalam makalah ini Hill cipher dimodifikasi untuk data gambar. Setiap piksel gambar mempunyai nilai warna RGB antara 0 sampai 255. Sehingga modulo yang dipakai bukan 26, akan tetapi 256. Diperlukan sebuah kunci berupa matriks persegi. Agar bisa didekripsi kembali, matriks kunci ini dipilih dengan syarat determinannya tidak nol dan relatif prima terhadap 256. Dipunyai matriks plainteks. Dipilih kunci dengan habis membagi. Diperoleh Matriks cipherteks. Untuk membalikkannya lagi cukup mudah, yaitu dengan mengalikan invers kuncinya dengan matriks cipherteks, dengan adalah invers modulo 256 dari. Algoritma 1. Enkripsi data gambar dengan modifikasi Hill cipher. 1. Baca tiap gambar menjadi kolom dari matriks Plainteks. 2. Definisikan sebuah kunci dengan. syarat: ( ) dan ( ( ) ). 3. Ubah ukuran plainteks menjadi.. 4. Cipherteks diperoleh dengan mengalikan matriks kunci dengan plainteks yang sudah diubah ukurannya..

Pemanfaatan NMF pada Kriptografi untuk Mengamankan Data Gambar 3 5. Ubah ukuran Cipherteks menjadi seperti semula.. 6. Simpan tiap kolom matriks menjadi fotocipher. Ilustrasinya seperti ini. Gambar 2.1. Ilustrasi Proses Enkripsi gambar Sedangkan untuk proses dekripsinya, diperlukan matriks invers dari Kunci. Ini dapat diperoleh dengan menggunakan algoritma 4. Algoritma dekripsi secara lengkap sebagai berikut. Algoritma 2. Proses dekripsi data gambar dengan modifikasi Hill cipher. 1. Untuk i=1:maxfotocipher 2. Ubah fotocipher(i) menjadi matriks kolom. 3. Cipherteks(:,i)=fotocipher(i). 4. Selesai. 5. Baca matriks invers kunci sebagai 6. Ubah ukuran Cipherteks menjadi. 7. Decipher = invkunci*cipherteks_ubah 8. Plainteks = Reshape matriks Decipher menjadi. 9. Simpan tiap kolom dari matriks Plainteks menjadi foto plainteks.

4 Indra Bayu Muktyas C. Nonnegative Matrix Factorization Salah satu pemfaktoran matriks yang sedang berkembang saat ini adalah Nonnegative Matrix Factorization (NMF). NMF sangat cocok digunakan pada gambar karena NMF memfaktorkan matriks taknegatif menjadi matriks-matriks taknegatif juga. Warna tiap piksel matriks juga taknegatif, berkisar dari 0 sampai 255. Matriks difaktorkan menjadi dengan.. Biasanya dipilih kurang dari dan. [2] Ada banyak algoritma dalam NMF, salah satunya adalah Multiplicative Update Rule. Berikut ini algoritma yang dimaksud. [2] Algoritma 3. Multiplicative Update Rule NMF 1. W = rand(m,r), dengan 2. H = rand(r,n), dengan 3. Untuk i = 1:MaksIter lakukan 4. H = H.* (V T V)./ (W T WH) 5. W = W.* (VH T )./ (WHH T ) 6. Selesai. Matriks berisi basis dari matriks sedangkan H sebagai matriks bobotnya.[2] Karena adalah basis, maka setiap kolom saling bebas linier dengan kolom lainnya. Matriks ini yang akan diproses menjadi kunci enkripsi. Setiap kali algoritma tersebut dijalankan akan dihasilkan pemfaktoran matriks dan yang berbeda, tergantung nilai acak awal dari dan. Ini merupakan salah satu kekuatan rahasia dari kunci autokey NMF. D. Pemilihan Kunci Ada dua cara pemilihan kunci pada makalah ini, yaitu kunci acak dan autokey NMF. 1. Kunci Acak Pertama-tama dipilih sebuah kunci acak berupa matriks persegi yang ukurannya bisa membagi ukuran matriks plainteks. Pemilihan matriks acak ini tidak sembarang. Determinan matriks kunci ini selain tidak nol, juga harus relatif prima terhadap 256. Ini agar bisa diperoleh invers matriksnya. Teorema 2.1. Dipunyai yang elemen-elemennya di. mempunyai invers modulo jika dan hanya jika ( ) mempunyai invers di. Lebih jauh lagi, invers modulo adalah dengan adalah invers dari atas. [3] ( ( ) ) ( ( ) )

Pemanfaatan NMF pada Kriptografi untuk Mengamankan Data Gambar 5 Bukti: Ambil sembarang matriks. Dipunyai. Jelas ( ) Ini berarti Sehingga det(a) invertibel di. Jelas ( ) ( ) Diperoleh ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Algoritma 4. Pemilihan kunci acak dan menentukan invers modulo 256 1. Lakukan 2. Definisikan matriks acak 3. Hitung ( ) 4. Sampai ( ). //Jika relatif prima terhadap 256, maka matriks mempunyai //invers,lanjutkan ke langkah berikutnya. Jika tidak, keluar //program, matriks tidak mempunyai invers. 5. Hitung invers dari modulo 256, tulis sebagai variabel. //bisa dengan brute force atau extended FPB. 6. Diperoleh. Setelah diperoleh kunci acak dengan algoritma 1., selanjutnya dilakukan proses enkripsi 2. Autokey NMF Berbeda dari sub bab sebelumnya, pada sub bab ini akan dipilih sebuah kunci otomatis dari Plainteks gabungan dengan menggunakan NMF. NMF akan memfaktorkan matriks Plainteks tersebut menjadi dan dengan ( ). W adalah basis dari Plainteks. Karena W adalah basis, maka setiap

6 Indra Bayu Muktyas kolomnya bebas linier. Definisikan kuncinya. Teorema 6.4.3. pada Anton Rorres menunjukkan bahwa K invertible, artinya ( ).[6] Jika det(k) tidak relatif prima terhadap 256, maka dilakukan operasi baris elementer pada matriks K dengan mengalikan salah satu baris matriks K dengan invers dari FPB(det(K), 256). Tentunya perkalian ini dalam modulo 256. Berikut ini adalah algoritma autokey NMF. Algoritma 5. Autokey NMF 1. Faktorkan matriks Plainteks menjadi dengan algoritma 3. // pilih sedemikian hingga. 2. 3. Lakukan sampai ( ( ) ) 4. Ubah elemen diagonalnya dengan sembarang bilangan modulo 256 5. selesai 6. Diperoleh matriks K baru yang invertibel = W H = K W T W Gambar 2.2. Proses enkripsi Autokey NMF Setelah diperoleh kunci K, kemudian dilakukan proses enkripsi dengan algoritma 1.

Pemanfaatan NMF pada Kriptografi untuk Mengamankan Data Gambar 7 3. Hasil Hasil Utama 1. Dataset Dataset yang digunakan adalah kumpulan 100 foto closeup mahasiswa STKIP Surya. Setiap foto berukuran 110 x 140 piksel. Gambar 3.1. Dataset 100 foto mahasiswa 2. Software Software yang digunakan adalah Scilab 5.4.1 dengan tambahan plugin Atoms: IPD_8.3.1-1.bin.windows.zip dan SIVP_0.5.3.1-2.bin.windows.zip. 3. Hardware Spesifikasi hardware yang digunakan pada percobaan ini adalah Laptop Asus A42F, Processor Intel(R) Pentium(R) Dual-core P6200 @ 2.13 GHz 2.13 GHz, RAM 2 GB, dan OS Windows 8 Pro. 4. Preprosesing Setiap foto mahasiswa STKIP Surya diubah menjadi matriks keabuabuan. Setiap elemen matriks tersebut bernilai antara 0 sampai 255, ini merepresentasikan tingkat warna tiap piksel. Kemudian matriksmatriks ini diubah menjadi matriks kolom. Matriks inilah yang menjadi plainteks. 5. Implementasi 5.1. Kunci Acak Enkripsi Kunci Plainteks Cipherteks

8 Indra Bayu Muktyas Dekripsi Invers Kunci Cipherteks Plainteks 5.2. Autokey NMF Menentukan kunci Plainteks W=Basis Kunci Enkripsi Dekripsi Kunci Plainteks Cipherteks Invers Kunci Cipherteks Plainteks Kunci dipilih dengan. Ini berkaitan dengan keterbatasan

Pemanfaatan NMF pada Kriptografi untuk Mengamankan Data Gambar 9 memori yang Scilab sediakan untuk dijalankan. Ketika dicoba dengan nilai yang agak besar, perhitungan terhenti oleh karena memori yang kurang. Untuk kunci acak, proses pemilihannya lebih mudah, sedangkan untuk autokey NMF, awalnya diperoleh kunci yang determinannya belum relatif prima dengan 256. Untuk itu pada elemen diagonalnya diganti dengan bilangan acak sehingga terpenuhi. Terlihat untuk autokey NMF, kunci dan invers kuncinya berupa matriks simetri. Cipherteks untuk kedua metode di atas secara kasat mata tidak bisa dibaca. Secara analisis pun cipherteks ini sangat powerful jika kuncinya tidak diketahui. Untuk autokey NMF pun bisa terjaga kerahasiaannya karena setiap kali program dijalankan, pemfaktoran matriks dengan NMF akan menghasilkan matriks yang berbeda, tergantung dari pemberian nilai awal W dan H pada algoritma multiplication update rule. Sedangkan nilai awal kedua matriks tersebut adalah acak. Sehingga kalaupun ada orang yang ingin mencoba memfaktorkan cipherteks tersebut akan sangat sulit untuk dipecahkan. 4. Kesimpulan Modifikasi Hill cipher dan autokey NMF menghasilkan gambar cipherteks yang powerful. Sangat sulit untuk mengembalikan ke gambar aslinya jika tidak mengetahui kuncinya. Terlebih lagi sulitnya menentukan nilai yang dipakai oleh penyandi. Seperti halnya kriptografi simetris lainnya, kelemahan dari metode ini adalah jika ada satu saja orang yang mengetahui kuncinya dan menyebarluaskannya maka cipherteks akan terpecahkan dengan sangat mudah. Pernyataan terima kasih. Penulis mengucapkan banyak terima kasih untuk Edy Haryono, Endriyani, Abdul Azis Abdillah, Puguh Wahyu Prasetyo, dan Annisa Dini H atas motivasi dan bimbingannya. Semoga bermanfaat dan dapat dikembangkan lebih lanjut. Referensi [1] Burton, David M., 2009, Elementary Number Theory, Seventh Edition, McGraw-Hill Higher. Education, McGraw-Hill Company, New York. [2] Lee, D. D. dan Seung, H. S., 2001, Algorithms for nonnegatvie matrix factorization. In T. G. Dietterich and V. Tresp, editors, Advances in Neural Information Processing Systems, volume 13. The MIT Press. [3] Grunschlag, Zeph, 2014, Classical Cryptography, www1.cs.columbia.edu/~zeph/4261/lectures/classical-ciphers.pdf, diakses pada 19 Januari 2014.

10 Indra Bayu Muktyas [4] Wikipedia, 2014, Euclidean Algorithm, http://en.wikipedia.org/wiki/euclidean_algorithm, diakses pada 20 Januari 2014. [5] Scott, Emily, 2013, Extended Euclidean Algorithm and Inverse Modulo Tutorial, https://www.youtube.com/watch?v=fz1vxq5ts5i, diakses pada 20 Januari 2014. [6] Anton, H., Rorres, C., 2005, Elementary Linear Algebra with Applications, Ninth Edition, John Wiley & Sons, Inc., New York.