Rabu, 12 Desember 2018

Beaufort Cipher KSK


Keamanan Sistem Komputer Kelompok 9
A. Algoritma Beaufort Cipher
Hubungan Keamanan Sistem Komputer Dengan Algoritma Beaufort Cipher
Kriptografi secara garis besar didefinisikan sebagai suatu  ilmu  yang mempelajari cara menjaga suatu pesan data tetap aman terkirim sehingga pihak ketiga tidak akan mengetahui isi  dari pesan tersebut.
Ada banyak definisi kriptografi didefinisikan oleh beberapa  ahli. Salah satunya Bruce Sch einer dalam bukunya “Applied Cryptography”,
menuliskan kriptografi adalah ilmu pengetahuan dan seni menjaga message tetap aman (secure).
Kemudiania juga menuliskan, secara umum kriptografi itu sendiri adalah ilmu dan seni untuk menjaga kerahasiaan suatu berita. Ia juga menuliskan ada pengertian lain, yaitu pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi, sebagai contoh, keabsahan data, integritas data, serta autentikasi data  (definisi oleh A. Menezes, P. van Oorshot, dan S. Vanstone. Dituliskan juga tidak semua aspek keamanan suatu jaringan  komputer ditangani oleh kriptografi.


Mengapa Kriptografi digunakan untuk aspek keamanan suatu jaringan komputer?
Ada beberapa alasan kriptografi digunakan untuk mengamankan suatu data dalam jaringan, yaitu 
     1.  Rahasia
Semua sandi dari suatu kriptografi dapat menjagaisi informasi dari siapapun kecuali orang yang memiliki sandi tersebut untuk melihat informasi yang telah dikunci tersebut
 
     2. Integritas Data
kriptografi berhubungan dengan penjagaan daripada  perubahan data secara tidak sah oleh orang ketiga. Untuk menjaga integritas data, sistem harus bisa mendeteksi manipulasi dataoleh orang pihak ketiga, seperti penysipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

3. Autentikasi
Berhubungan dengan identifikasi atau pengenalan Dua pihak yang saling berkomunikasi harus saling memerkenalkan diri Hal ini untuk mengecek keaslian, isi datanya, waktu pengiriman, dll.



4. Non-repudasi
Usaha mencegah terjadinya penyangkalan terhadap terciptanya suatu informasi.

 
 Pengertian Beaufort Cipher
Bukan hanya viginère cipher, berikut ini juga merupakan cipher berasal dari negara Prancis. Karena berasal dari negara yang sama tentunya teknik enkripsi yang digunakan tidak terlalu jauh berbeda. Beaufort Cipher secara umum yaitu merupakan teknik enkripsi subtitusi yang berfungsi untuk menyamarkan suatu pesan tertentu dengan menggunakan tabel abjad dan keyword yang telah ditetapkan. Sama seperti viginère cipher, ini menggunakan tabel yang terdiri dari abjad a-z pada baris dan kolomnya yang sering disebut dengan tabula recta. Tabel ini juga memerlukan suatu keyword atau kata kunci dalam mengenkripsi atau decipher pesan yang tersembunyi tersebut.
Sejarah Beaufort Cipher 
Cipher Beaufort, yang dibuat oleh Sir Francis Beaufort, adalah cipher substitusi yang mirip dengan Vigenère cipher, dengan mekanisme pengkodean dan table yang dimodifikasi sedikit.  Aplikasi yang paling terkenal adalah di mesin cipher rotor berbasis, Hagelin M-209. Cipher Beaufort didasarkan pada persegi Beaufort yang pada dasarnya sama dengan persegi Vigenère tetapi dalam urutan terbalik dimulai dengan huruf "Z" di baris pertama, di mana baris pertama dan kolom terakhir melayani tujuan yang sama.
Cara Kerja Beaufort Cipher

       Untuk mengenkripsi pesan plaintext menggunakan Vigenère Cipher, salah satu menempatkan baris dengan huruf pertama yang akan dienkripsi, dan kolom dengan huruf pertama dari kata kunci.
    Huruf ciphertext terletak di persimpangan dari baris dan kolom. Hal ini berlanjut untuk        seluruh panjang pesan. Menjalankan grafik kode kunci

       Sebuah cipher Beaufort menggunakan tabel alfabet yang sama dengan cipher Vigenère, tetapi dengan algoritma yang berbeda. Untuk menyandikan surat Anda menemukan huruf di baris atas. Kemudian melacak ke bawah sampai Anda menemukan keyletter tersebut. Kemudian melacak ke kolom paling kiri untuk menemukan huruf dienkripsi.

   Untuk menguraikan surat, Anda menemukan surat di kolom kiri, melacak ke keyletter dan  kemudian melacak untuk menemukan huruf diuraikan.

       Beberapa orang menemukan ini lebih mudah dilakukan daripada menemukan persimpangan   dari baris dan kolom

       Namun, pada saat ini algoritma beaufort tidak hanya bisa mengenkripsi dan dekripsi huruf saja tetapi angka maupun simbol-simbol yang terdapat pada tabel ASCII bisa di enkripsi dan dekripsi. Dalam perkembangan sistem komputasi modern, karakter atau simbol biasanya direpresentasikan dalam bentuk ASCII. Setiap karakter atau simbol yang muncul di layar komputer memiliki kode ASCII yang berbeda dan panjang masing-masing kode ASCII dalam biner adalah 8 bit (Budiman and Rachmawati, 2017).

 


 
menunjukkan list karakter yang akan digunakan. Adapun list karakter yang digunakan sebanyak 100 karakter. Proses enkripsi dan dekripsi algoritma Beaufort Cipher dirumuskan sebagai berikut:
       Ci ≡ Ki−Pi  (mod n) ------------------ (1)
       i ≡ Ki−Ci
 dimana 𝑃i merupakan plaintext, Ki adalah key, 𝐶i adalah ciphertext yang diperoleh dan 𝑛 adalah jumlah karakter yang digunakan (Mollin, 2007).
 (mod n) ------------------(2)

Berikut adalah contoh proses enkripsi dan dekripsi :
 Plaintext : TIA RAHMADIANTI
 Kunci : Fasilkom-TI USU

Proses Enkripsi



Proses Deskripsi




 Studi Kasus
REPUBLIKA.CO.ID, SINGAPURA -- Serangan siber besar terhadap data kesehatan Singapura menyebabkan kebocoran data pribadi sekitar 1,5 juta orang, termasuk Perdana Menteri Lee Hsien Loong.
Pemerintah menyebut insiden itu sebagai kebocoran data pribadi terparah yang pernah dialami Singapura. Kebocoran terjadi saat pemerintah menempatkan keamanan siber sebagai prioritas utama bagi kawasan Asia Tenggara.
Pada tahun ini, Singapura mengepalai Perhimpungan Bangsa Asia Tenggara (ASEAN), yang beranggotakan 10 negara. "Penyelidikan Badan Keamanan Siber Singapura (CSA) bersama Sistem Penerangan Kesehatan Terpadu (IHiS) menunjukkan itu adalah serangan siber sangat terencana. Itu tidak dilakukan oleh peretas kacangan atau geng kriminal," kata pernyataan resmi pemerintah, Jumat (20/7).
Sekitar 1,5 juta data dari pasien yang mengunjungi klinik antara Mei 2015 sampai 4 Juli tahun ini telah disalin secara ilegal. "Para pelaku secara khusus berulang kali berusaha mencuri data dan informasi obat-obatan yang digunakan Perdana Menteri Lee Hsien Loong," kata mereka.
Kementerian Komunikasi dalam pernyataan terpisah mengatakan sebuah komite penyelidikan akan dibentuk dan kebijakan akan segera diputuskan untuk memperkuat sistem pemerintahan dalam menghadapi serangan siber. Kedua kementerian tidak merinci siapa yang diduga menjadi dalang serangan.
PM Lee, dalam sebuah postingan Facebook usai terjadinya serangan, mengaku tidak tahu informasi apa yang tengah dicari pelaku serangan siber. "Data medis saya bukan merupakan suatu yang bisa saya ceritakan begitu saja pada orang lain, tapi tidak ada yang berbahaya di dalamnya," kata dia.

Penerapan Algoritma Beaufort cipher ini pada bagian penyimpanan data pasien, contoh pasien yang berobat dibuatkan file untuk menyimpan informasi-informasi penyakit yang dialami beserta obat yang digunakan. File pasien tersebut akan dienkripsi agar hanya pihak rumah sakit dan pasien sendiri yang tau isi dari file tersebut
 
  Sintaks Algoritma Beaufort Cipher Dengan Menggunakan Bahasa C# Visual Studio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BeufortCipher
{
    class BeaufortCipher
    {
        static void Main(string[] args);
        public static void Run()
        {
            Console.WriteLine("BeaufortCipher");
            Console.WriteLine();
           
            string clearText = "rendii";    ///ini merupakan Plaintext

            Console.readLine("Plain Text: ");

            List<char> alphabet =
                Enumerable.Range('a', 'z' - 'a' + 1)
                .Select(x => (char)x).ToList();

            char[][] tabulaRecta = new char['z' - 'a' + 1][];
            for (int i = 0; i < tabulaRecta.Length; i++)
            {
                tabulaRecta[i] = alphabet.ToArray();
                var first = alphabet.First();
                alphabet.Remove(first);
                alphabet.Insert(alphabet.Count, first);
            }
            string keyword = "landri";                ///ini merupakan Key
            Console.WriteLine("Key : " + keyword);

            Console.WriteLine();

            string cipherText = Cipher(clearText, tabulaRecta, keyword);
            Console.WriteLine("Ciphered Text: {0}", cipherText);

            string decipherText = Decipher(cipherText, tabulaRecta, keyword);
            Console.WriteLine("Deciphered Text: {0}", decipherText);

            Console.ReadKey();
        }

        private static string GrowToTextSize(int length, string keyword)
        {
            string result = keyword;

            int idx = 0;
            while (result.Length < length)
            {
                result += keyword[idx++];

                if (idx >= keyword.Length)
                {
                    idx = 0;
                }
            }

            return result;
        }

        private static int IndexOf(char[] array, char toFind)
        {
            int result = -1;

            for (int i = 0; i < array.Length; i++)
            {
                if (array[i] == toFind)
                {
                    result = i;
                    break;
                }
            }

            return result;
        }

        private static string Cipher(string clearText, char[][] tabulaRecta, string keyword)
        {
            string result = string.Empty;

            keyword = GrowToTextSize(clearText.Length, keyword);

            for (int i = 0; i < clearText.Length; i++)
            {
                int row = keyword[i] - 'a';
                char charToCipher = clearText[i];

                int idx = IndexOf(tabulaRecta[row], charToCipher);

                if (idx == 0)
                {
                    idx = tabulaRecta[row].Length;
                }

                idx = tabulaRecta[row].Length - idx;

                result += tabulaRecta[0][idx];
            }

            return result;
        }

        private static string Decipher(string cipherText, char[][] tabulaRecta, string keyword)
        {
            string result = string.Empty;

            result = Cipher(cipherText, tabulaRecta, keyword);

            return result;
        }
    }

}

untuk source code nya bisa didownload disini
 Referensi


Link Blog Anggota Kelompok 9



B. Analisa Algoritma
Hubungan KSK Terhadap Algoritma Lain (Vigenere Cipher) 
Ada beberapa alasan kriptografi digunakan untuk mengamankan suatu data dalam jaringan, yaitu 
     1.  Rahasia
Semua sandi dari suatu kriptografi dapat menjagaisi informasi dari siapapun kecuali orang yang memiliki sandi tersebut untuk melihat informasi yang telah dikunci tersebut
 
     2. Integritas Data
kriptografi berhubungan dengan penjagaan daripada  perubahan data secara tidak sah oleh orang ketiga. Untuk menjaga integritas data, sistem harus bisa mendeteksi manipulasi dataoleh orang pihak ketiga, seperti penysipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

3. Autentikasi
Berhubungan dengan identifikasi atau pengenalan Dua pihak yang saling berkomunikasi harus saling memerkenalkan diri Hal ini untuk mengecek keaslian, isi datanya, waktu pengiriman, dll.

4. Non-repudasi
Usaha mencegah terjadinya penyangkalan terhadap terciptanya suatu informasi.
 Sejarah Algoritma Vigenere Cipher 
Vigenere chiper merupakan salah satu algoritma kriptografi klasik untuk menyandikan suatu plaintext dengan menggunakan teknik substitusi.Vigenere cipher pada dasarnya cukup rumit untuk dipecahkan.
Cipher ini adalah termasuk cipher simetris, yaitu cipher klasik abjad majemuk. Karena setiap huruf dienkripsikan dengan fungsi yang berbeda. Vigenère Cipher merupakan bentuk  pengembangan dari Caesar Cipher. Kelebihan sandi ini dibanding Caesar Cipher dan cipher monoalfabetik lainnya adalah cipher ini tidak begitu rentan terhadap metode pemecahan cipher yang disebut analisis frekuensi.
Vigènere Cipher menggunakan Bujursangkar Vigènere untuk melakukan enkripsi dan dekripsi. Jika pada Caesar Cipher setiap huruf digeser dengan besar geseran yang sama, maka  pada Vigènere Cipher setiap huruf digeser dengan besar yang berbeda sesuai dengan kuncinya.
Enskripsi Vigenere Cipher
 
       Secaramatematis, enkripsi Vigènere Cipher dengan jumlah karakter sebanyak 26 dapat ditulis dalam bentuk
Ci = (Pi+Kj) mod 26 atau
Ci = (Pi+Kj) mod n (Untuk Vinegere Cipher dengan jumlah karakter n)
Ket :
       •i = 1,2,3,...,(panjang kunci)
       •j = ((i-1) mod 25) +1)
Deskripsi vigenere Cipher
Pi = Ci-Ki (mod100)
 

Perbedaan Enkripsi Beaufort Cipher dan Vigenere Cipher
Enkripsi Nama
Plain Text : Rendi Kurniawan
Key : JoeWinz* Sagaru
Proses Enkripsi Beaufort Cipher



Proses Enkripsi Vigenere Cipher



Enkripsi NIM
Plain Text: 201731344
Key : RenDi&75#
Proses Enkripsi Beaufort Cipher



Proses Enkripsi Vigenere Cipher

 
Perbedaan Deskripsi Beaufort Cipher dan Vigenere Cipher
Deskripsi Nama
Cipher Text : |J{}A/paT;|G:RH
key : JoeWinz* Sagaru
Proses Deskripsi Beaufort Cipher




Deskripsi Nama
Cipher Text : a('z&B9SF586,'[
key : JoeWinz* Sagaru

Proses Deskripsi Vigenere Cipher



Deskripsi NIM
Cipher Text :  !:\s;PEAJ
Key : RenDi&75#

Proses Deskripsi Beaufort Cipher



Cipher Text : (>| _ VONV
Key : RenDi&75#