Enkripsi simetris kriptografi. Perlindungan informasi kriptografi oleh Alexander Prokhorov. Sedikit kehidupan nyata

13 Juni 2017 pukul 13:37

Enkripsi simetris dan asimetris. Analisis algoritma untuk transmisi data terenkripsi antar server

  • algoritma,
  • Keamanan informasi,
  • Kriptografi

Mari kita sepakat bahwa mesin yang mengirimkan data terenkripsi selalu merupakan mesin A, dan mesin yang menerimanya adalah mesin A simbol B.

Perpustakaan memecahkan dua kemungkinan kasus (jika perlu, saya akan menambahkan fungsionalitas):


2) Kasus ketika ada mesin dan perlu mentransfer data terenkripsi ke mesin lain (B). Dalam hal ini, pemrakarsa transfer adalah mesin pertama (A).

Perpustakaan mengimplementasikan kedua opsi, yang masing-masing memiliki demo:

Untuk kasus pertama di folder server_b_1 ada naskah tesGetDataFromA.php
Untuk kasus kedua di folder server_a_1 ada naskah tesPushDataToB.php

Perpustakaan untuk kedua kasus adalah Encode.php yang sama, tetapi untuk kasus pertama diperlukan beberapa skrip tambahan, untuk kasus kedua yang lain, jadi untuk menghindari kebingungan, saya membaginya secara fungsional ke dalam folder server_a_1 dan server_b_1 (mungkin versi selanjutnya dari perpustakaan akan memiliki struktur yang berbeda). Jadi, jika kedua mesin perlu mengimplementasikan transfer case pertama dan kedua, masing-masing mesin tersebut akan memiliki kedua folder tersebut.

Sekarang mari kita bahas bagaimana kedua solusi tersebut diterapkan:

Inti dari kedua kasus tersebut adalah mesin menukar kunci simetris untuk mengirimkan teks tersandi. Untuk pertukaran ini digunakan enkripsi asimetris, yaitu salah satu mesin (X) menghasilkan sepasang kunci (publik dan pribadi) dan mengirimkan kunci publik ke mesin kedua. Mesin kedua menghasilkan kunci simetris dengan kunci publik ini dan mengembalikannya ke mesin pertama, yang mendekripsinya dengan kunci privatnya. Perbedaannya terletak pada siapa yang memulai transmisi - jika teks terenkripsi perlu menerima satu urutan tindakan, jika dikirim - yang lain. Perpustakaan yang dipertimbangkan juga melakukan pemeriksaan tambahan, yang bermuara pada fakta bahwa bersama dengan kunci simetris yang dienkripsi menggunakan kunci publik, data dikirimkan yang hanya diketahui oleh kedua mesin dan yang dapat diubah setahun sekali (atau bahkan dikirimkan dalam setiap transaksi jika seseorang ingin bermain dengan kode).

Sebelum mulai menganalisis implementasinya, saya hanya akan menunjukkan bahwa kunci simetris dienkripsi menggunakan fungsi enkripsi Mcrypt PHP sesuai dengan skema berikut:

$encrypted_data = urlencode(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $sinc_key, $notice_text, MCRYPT_MODE_ECB))); $test_decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256,$sinc_key, base64_decode(urldecode($encrypted_data)),MCRYPT_MODE_ECB));
Enkripsi asimetris ditangani menggunakan php OpenSSL

Jadi:

Pertama-tama saya akan mempertimbangkan diagram sederhana dari kedua kasus transmisi yang ditunjukkan di awal, dan kemudian secara lebih rinci.

1) Kasus ketika ada mesin (B) yang membutuhkan data dari mesin A (misalnya perlu mendapatkan token klien) dan data tersebut harus diterima dengan aman. Itu. Pemrakarsa transfer adalah mesin B.

Mesin B menghasilkan sepasang kunci (pribadi dan publik) dan membuat permintaan ke mesin A, mengirimkan kunci publik (menjaga kunci pribadi). Mesin A menghasilkan kunci simetris dan mengenkripsi informasi rahasia N yang diperlukan untuk transmisi. Setelah itu, mesin A mengembalikan kunci simetris yang dienkripsi dengan kunci publik, serta informasi rahasia N yang dienkripsi dengan kunci simetris kunci pribadinya. Dalam data yang didekripsi, dia menerima kunci simetris dan data dienkripsi olehnya. Menggunakan kunci simetris, ia mendekripsi data rahasia.

Tidak ada jaminan bahwa mobil A adalah mobil kami, dan bukan agen FSB Anatoly. Oleh karena itu, implementasi algoritma ini oleh perpustakaan sedikit dimodifikasi dengan pemeriksaan tambahan:

(Demo skrip - server_b_1/testGetDataFromA.php)

Di kedua mesin, kunci rahasia SIGNATURE_KEY terdaftar, yang berpartisipasi verifikasi tambahan. Mesin B menghasilkan sepasang kunci (pribadi dan publik), kunci koneksi saat ini dan membuat permintaan (http://.../server_a_1/getDataToB.php) ke mesin A, mengirimkan kunci koneksi saat ini dan kunci publik ( menjaga yang pribadi). Mesin A menghasilkan kunci simetris dan mengenkripsi informasi rahasia N yang diperlukan untuk transmisi. Data tambahan M juga dihasilkan, yaitu md5 dari baris yang berisi SIGNATURE_KEY dan kunci koneksi saat ini. Setelah ini, mesin A mengembalikan string yang dienkripsi dengan kunci publik dari kunci simetris dan data tambahan M, serta informasi rahasia N yang dienkripsi dengan kunci simetris. Mesin B mendekripsi data dengan kunci simetris dengan kunci privatnya, menghasilkan a string yang diberikan oleh M (karena dapat dengan mudah menghitung md5 dari string yang berisi SIGNATURE_KEY dan kunci koneksi saat ini). Jika data tambahan cocok (yang merupakan pemeriksaan tambahan untuk setiap transaksi yang diketahui oleh mesin A SIGNATURE_KEY, dan oleh karena itu mesin kami), mesin B mengekstrak kunci simetris yang digunakan untuk mendekripsi informasi rahasia N.

2) Kasus ketika ada mesin dan perlu mentransfer data terenkripsi ke mesin lain (B). Dalam hal ini, pemrakarsa transfer adalah mesin pertama (A).

Algoritma yang disederhanakan untuk transfer tersebut adalah sebagai berikut:

Sebelum mentransfer ke mesin B, mesin A memerlukan kunci publik mesin B untuk mentransfer informasi. Untuk melakukan ini, mesin (mesin A) pertama-tama membuat permintaan untuk mendapatkan kunci publik ke mesin B. Setelah menerimanya, mesin A menghasilkan kunci simetris, mengenkripsi informasi yang diperlukan dengannya, dan mengenkripsi semua ini dengan kunci publik yang diterima. Data dikirim ke mesin B, yang mendekripsi paket dengan kunci privatnya dan mendekripsi data dengan kunci simetris.

Tidak ada jaminan bahwa kami menerima kunci publik dari mesin B, dan bukan dari agen FSB Petrov. Oleh karena itu, implementasi algoritma ini oleh perpustakaan sedikit dimodifikasi dengan pemeriksaan tambahan:

(Demo skrip - server_a_1/testPushDataToB.php)

Kunci rahasia SIGNATURE_KEY terdaftar di kedua mesin, yang terlibat dalam verifikasi tambahan. Mesin A, setelah menghasilkan md5 dari kunci koneksi saat ini dan SIGNATURE_KEY mengirimkan data ini (bersama dengan kunci koneksi saat ini yang tidak terenkripsi) ke mesin B (http://.../server_b_1/get_public_key.php), yang menghasilkan kunci publik hanya jika mendapat md5 yang sama dari SIGNATURE_KEY dan kunci yang diterima dari koneksi saat ini. Ini tidak menyelesaikan masalah bahwa kunci publik akan diterima secara khusus dari mesin A, dan bukan dari mesin agen FSB Vasily, tetapi menjamin mesin B menghasilkan kunci publik khusus untuk mesin A (walaupun menghasilkan kunci publik umumnya merupakan masalah yang sewenang-wenang, tetapi bahkan di sini lebih baik aman). Bersama dengan kunci publik, md5 dihasilkan dari SIGNATURE_KEY dan kunci kedua dari koneksi saat ini. Kunci kedua dari koneksi saat ini adalah hash arbitrer. Data kunci publik, kunci kedua dari koneksi arbitrer, dan md5 yang ditentukan dikembalikan ke mesin A. Setelah menerima kunci kedua dari koneksi arbitrer, mesin A, mengetahui SIGNATURE_KEY, menghasilkan md5 verifikasi dan jika cocok dengan apa yang mesin diterima, kunci publik dianggap berasal dari mesin B, dan bukan dari Vasily.

Selanjutnya, mesin A (di sini skemanya mirip dengan kasus transfer data pertama) menghasilkan kunci simetris dan pemeriksaan tambahan, yaitu md5 dari SIGNATURE_KEY dan kunci koneksi saat ini. Data ini dienkripsi dengan kunci publik dari mesin B. Selanjutnya, data, bersama dengan kunci koneksi saat ini, dikirim ke mesin B (http://.../server_b_1/pushDataFromA.php), yang menghasilkan koneksi saat ini key dan SIGNATURE_KEY md5 berdasarkan data yang diperoleh dari data ini, mengeceknya dengan apa yang diterima, yang menjamin bahwa data tersebut bukan dari agen FSB Nikolai. Jika semuanya beres dan pemeriksaan berhasil, kunci simetris diekstraksi menggunakan kunci pribadi, yang sudah mendekripsi pesan.

Saya akan senang jika informasi ini bermanfaat bagi seseorang.

Di era komputer kita, umat manusia semakin menolak untuk menyimpan informasi dalam bentuk tulisan tangan atau cetakan, dan lebih memilih dokumen. Dan jika sebelumnya mereka hanya mencuri kertas atau perkamen, sekarang mereka melakukan peretasan informasi elektronik. Algoritma enkripsi data sendiri sudah dikenal sejak dahulu kala. Banyak peradaban lebih suka mengenkripsi pengetahuan unik mereka sehingga hanya orang berpengetahuan yang bisa mendapatkannya. Tapi mari kita lihat bagaimana semua ini tercermin di dunia kita.

Apa itu sistem enkripsi data?

Pertama, Anda perlu memutuskan apa itu sistem kriptografi secara umum. Secara kasar, ini adalah algoritma khusus untuk mencatat informasi yang hanya dapat dimengerti oleh kalangan tertentu.

Dalam pengertian ini, bagi orang luar, segala sesuatu yang dilihatnya seharusnya (dan pada prinsipnya memang demikian) tampak seperti serangkaian simbol yang tidak berarti. Hanya seseorang yang mengetahui aturan pengaturannya yang dapat membaca urutan seperti itu. Sebagai yang paling banyak contoh sederhana Anda dapat mendefinisikan algoritma enkripsi dengan kata-kata yang ditulis, katakanlah, terbalik. Tentu saja, ini adalah hal paling primitif yang bisa Anda pikirkan. Dapat dipahami bahwa jika Anda mengetahui aturan perekaman, memulihkan teks asli tidak akan sulit.

Mengapa hal ini perlu?

Mengapa semua ini diciptakan mungkin tidak layak untuk dijelaskan. Lihat, berapa banyak pengetahuan yang tersisa dari peradaban kuno saat ini dalam bentuk terenkripsi. Entah orang dahulu tidak ingin kita mengetahui hal ini, atau semua ini dilakukan agar seseorang hanya dapat menggunakannya ketika dia mencapai tingkat yang dibutuhkan perkembangan - untuk saat ini kita hanya bisa menebaknya.

Namun, jika kita berbicara tentang dunia saat ini, keamanan informasi menjadi salah satu hal yang paling penting masalah besar. Nilailah sendiri, karena ada begitu banyak dokumen dalam arsip yang sama yang tidak ingin dibicarakan oleh pemerintah beberapa negara, berapa banyak perkembangan rahasia, berapa banyak teknologi baru. Tapi semua ini, pada umumnya, adalah tujuan utama dari apa yang disebut hacker dalam pengertian klasiknya.

Hanya satu ungkapan yang terlintas dalam pikiran, yang telah menjadi prinsip klasik Nathan Rothschild: “Siapa yang memiliki informasi, dialah yang memiliki dunia.” Dan itulah mengapa informasi harus dilindungi mata yang mengintip, agar orang lain tidak menggunakannya untuk kepentingan egoisnya sendiri.

Kriptografi: titik awal

Sekarang, sebelum mempertimbangkan struktur yang dimiliki algoritma enkripsi apa pun, mari kita menyelami sedikit sejarah, ke masa-masa ketika ilmu pengetahuan ini masih dalam tahap awal.

Seni menyembunyikan data diyakini mulai aktif berkembang beberapa ribu tahun yang lalu SM. Keutamaan dikaitkan dengan bangsa Sumeria kuno, Raja Sulaiman dan para pendeta Mesir. Baru kemudian tanda dan simbol rahasia yang serupa muncul. Namun yang menarik adalah: terkadang algoritme untuk mengenkripsi teks (dan pada saat itu teks tersebut dienkripsi) sedemikian rupa sehingga dalam satu simbol dapat berarti tidak hanya satu huruf, tetapi juga keseluruhan kata, konsep, atau bahkan kalimat. Oleh karena itu, penguraian teks semacam itu, bahkan dengan sistem kriptografi modern yang memungkinkan pengembalian bentuk asli teks apa pun, menjadi sangat mustahil. Jika kita berbicara bahasa modern, ini adalah algoritma enkripsi simetris yang cukup canggih, seperti yang mereka katakan sekarang. Mari kita lihat secara terpisah.

Dunia modern: jenis algoritma enkripsi

Mengenai perlindungan data rahasia di dunia modern, ada baiknya mengingat masa-masa ketika komputer belum dikenal umat manusia. Belum lagi berapa banyak makalah yang diterjemahkan oleh para alkemis atau Templar yang sama, mencoba menyembunyikan teks sebenarnya tentang pengetahuan yang mereka ketahui, perlu diingat bahwa sejak munculnya hubungan tersebut, masalahnya semakin memburuk.

Dan di sini, mungkin, perangkat yang paling terkenal adalah mesin enkripsi Jerman dari Perang Dunia II yang disebut "Enigma", yang berarti "teka-teki" dalam bahasa Inggris. Sekali lagi, ini adalah contoh bagaimana algoritma enkripsi simetris digunakan, yang intinya adalah enkripsi dan pengurai mengetahui kunci (algoritma) yang awalnya digunakan untuk menyembunyikan data.

Saat ini, sistem kriptografi seperti itu digunakan di mana-mana. Contoh yang paling mencolok adalah, katakanlah, suatu algoritma yang merupakan standar internasional. Dari sudut pandang terminologi komputer, ini memungkinkan penggunaan kunci 256-bit. Secara umum, algoritma enkripsi modern cukup beragam, dan secara kasar dapat dibagi menjadi dua: kelas besar: simetris dan asimetris. Mereka, tergantung pada daerah tujuannya, digunakan secara luas saat ini. Dan pilihan algoritma enkripsi secara langsung bergantung pada tugas yang diberikan dan metode pemulihan informasi bentuk aslinya. Tapi apa perbedaan di antara keduanya?

Algoritma enkripsi simetris dan asimetris: apa bedanya

Sekarang mari kita lihat apa perbedaan mendasar antara sistem tersebut, dan prinsip apa yang mendasari penerapannya dalam praktik. Seperti yang sudah jelas, algoritma enkripsi berhubungan dengan konsep geometris simetri dan asimetri. Apa artinya ini sekarang akan diklarifikasi.

Algoritme enkripsi DES simetris, yang dikembangkan pada tahun 1977, melibatkan satu kunci yang mungkin diketahui oleh kedua belah pihak. Mengetahui kunci seperti itu, tidak sulit untuk menerapkannya dalam praktik membaca kumpulan karakter yang tidak berarti, menjadikannya, bisa dikatakan, ke dalam bentuk yang dapat dibaca.

Apa itu algoritma enkripsi asimetris? Di sini, dua kunci digunakan, yaitu, satu digunakan untuk menyandikan informasi asli, dan yang lain digunakan untuk mendekripsi konten, dan sama sekali tidak perlu keduanya bertepatan atau dipegang secara bersamaan oleh sisi penyandian dan penguraian kode. Satu sudah cukup untuk masing-masingnya. Hal ini memastikan bahwa kedua kunci tidak terlalu banyak jatuh ke tangan pihak ketiga. Namun, berdasarkan situasi saat ini, bagi banyak penjahat, pencurian jenis ini tidak terlalu menjadi masalah. Hal lainnya adalah mencari kunci yang tepat (secara kasar, kata sandi) yang cocok untuk mendekripsi data. Dan di sini ada begitu banyak pilihan bahkan yang paling banyak komputer modern akan memprosesnya selama beberapa dekade. Seperti yang telah dinyatakan, tidak ada satu pun sistem komputer di dunia yang dapat meretas aksesnya dan memperoleh apa yang disebut “penyadapan” dan hal ini tidak akan dapat dilakukan dalam beberapa dekade mendatang.

Algoritma enkripsi yang paling terkenal dan sering digunakan

Tapi mari kita kembali ke dunia komputer. Apa yang ditawarkan algoritma enkripsi utama saat ini, yang dirancang untuk melindungi informasi pada tahap perkembangan teknologi komputer dan seluler saat ini?

Di sebagian besar negara, standar de facto adalah sistem kriptografi AES berdasarkan kunci 128-bit. Namun, bersamaan dengan itu, suatu algoritma kadang-kadang digunakan yang, meskipun berkaitan dengan enkripsi menggunakan kunci terbuka (publik), namun merupakan salah satu yang paling dapat diandalkan. Hal ini telah dibuktikan oleh semua pakar terkemuka, karena sistem itu sendiri tidak hanya ditentukan oleh tingkat enkripsi data, tetapi juga oleh menjaga integritas informasi. Adapun perkembangan awal, termasuk algoritma enkripsi DES, sudah ketinggalan zaman, dan upaya untuk menggantikannya dimulai pada tahun 1997. Saat itulah, berdasarkan itu, standar enkripsi AES canggih baru muncul (pertama dengan kunci 128-bit, kemudian dengan kunci 256-bit).

Enkripsi RSA

Sekarang mari kita fokus pada teknologi RSA, yang mengacu pada sistem enkripsi asimetris. Misalkan satu pelanggan mengirimkan informasi yang dienkripsi menggunakan algoritma ini ke pelanggan lain.

Untuk enkripsi, diambil dua bilangan X dan Y yang cukup besar, setelah itu hasil kali Z, yang disebut modulus, dihitung. Selanjutnya, beberapa bilangan asing A dipilih yang memenuhi syarat: 1< A < (X - 1) * (Y - 1). Оно обязательно должно быть простым, то есть не иметь общих делителей с произведением (X - 1) * (Y - 1), равным Z. Затем происходит вычисление числа B, но только так, что (A * B - 1) делится на (X - 1) * (Y - 1). В данном примере A - открытый показатель, B - секретный показатель, (Z; A) - открытый ключ, (Z; B) - секретный ключ.

Apa yang terjadi selama pengiriman? Pengirim membuat ciphertext, dilambangkan F, dengan pesan awal M, diikuti oleh A dan dikalikan dengan mod Z: F = M**A*(mod Z). Penerima tinggal menghitung contoh sederhana: M = F**B*(mod Z). Secara kasar, semua tindakan ini hanya bermuara pada eksponensial. Pilihan untuk membuat tanda tangan digital, namun persamaan di sini agak lebih rumit. Agar tidak merepotkan pengguna dengan aljabar, materi seperti itu tidak akan disajikan.

Sedangkan untuk peretasan, algoritma enkripsi RSA memberikan tugas yang hampir mustahil bagi penyerang: menghitung kunci B. Hal ini secara teoritis dapat dilakukan dengan menggunakan dana yang tersedia memfaktorkan (dengan memfaktorkan bilangan asli X dan Y), namun, saat ini tidak ada cara seperti itu, sehingga tugas itu sendiri menjadi tidak hanya sulit - tetapi juga sama sekali tidak mungkin.

Enkripsi DES

Di hadapan kita ada algoritma enkripsi lain yang dulu cukup efektif dengan panjang blok maksimum 64 bit (karakter), dan hanya 56 yang signifikan. Seperti disebutkan di atas, teknik ini sudah ketinggalan zaman, meskipun sudah bertahan cukup lama sebagai standar untuk sistem kripto yang digunakan di AS bahkan untuk industri pertahanan.

Inti dari enkripsi simetrisnya adalah urutan 48 bit tertentu digunakan untuk ini. Dalam hal ini, 16 siklus dari sampel kunci 48-bit digunakan untuk operasi. Tetapi! Oleh karena itu, semua siklus serupa dalam prinsip operasinya saat ini Tidak sulit untuk menghitung kunci yang dibutuhkan. Misalnya, salah satu yang paling banyak komputer yang kuat di AS, dengan biaya lebih dari satu juta dolar, “merusak” enkripsi dalam waktu sekitar tiga setengah jam. Untuk mesin dengan peringkat lebih rendah, dibutuhkan waktu tidak lebih dari 20 jam untuk menghitung urutan genap dalam perwujudan maksimalnya.

Enkripsi AES

Terakhir, kita memiliki sistem yang paling luas dan, hingga saat ini, kebal - algoritma enkripsi AES. Hari ini disajikan dalam tiga modifikasi - AES128, AES192 dan AES256. Opsi pertama lebih banyak digunakan untuk memastikan keamanan informasi perangkat seluler, yang kedua terlibat di tingkat yang lebih tinggi. Sebagai standar, sistem ini resmi diperkenalkan pada tahun 2002, dan dukungannya segera diumumkan oleh Intel Corporation yang memproduksi chip prosesor.

Esensinya, tidak seperti sistem enkripsi simetris lainnya, adalah perhitungan berdasarkan representasi polinomial kode dan operasi perhitungan dengan array dua dimensi. Menurut pemerintah Amerika Serikat, memecahkan kunci 128-bit, bahkan yang paling modern sekalipun, akan memakan waktu sekitar 149 triliun tahun. Kami mohon berbeda pendapat dengan sumber yang kompeten. Selama seratus tahun terakhir, teknologi komputer telah membuat lompatan yang sepadan sehingga tidak perlu terlalu menipu diri sendiri, terutama karena saat ini, ternyata, ada sistem enkripsi yang bahkan lebih baik daripada sistem yang dinyatakan sepenuhnya tahan oleh Amerika Serikat. untuk meretas.

Masalah dengan virus dan dekripsi

Tentu saja yang sedang kita bicarakan tentang virus. DI DALAM akhir-akhir ini Telah muncul virus ransomware yang cukup spesifik yang mengenkripsi semua konten perangkat keras dan partisi logis pada komputer yang terinfeksi, setelah itu korban menerima surat yang memberitahukan bahwa semua file dienkripsi, dan hanya sumber tertentu yang dapat mendekripsinya setelah membayar sejumlah uang.

Pada saat yang sama, yang paling penting, ditunjukkan bahwa sistem AES1024 digunakan untuk mengenkripsi data, yaitu, panjang kunci empat kali lebih besar dari AES256 saat ini, dan jumlah opsi saat mencari dekripsi yang sesuai meningkat secara signifikan. luar biasa.

Dan berdasarkan pernyataan pemerintah AS tentang waktu yang diperlukan untuk mendekripsi kunci 128-bit, bagaimana dengan waktu yang diperlukan untuk menemukan solusi untuk kasus kunci 1024-bit dan variannya? Di sinilah kesalahan Amerika Serikat. Mereka percaya bahwa sistem kriptografi komputer mereka sempurna. Sayangnya, ada beberapa spesialis (tampaknya di era pasca-Soviet) yang melampaui postulat Amerika yang “tidak dapat diubah” dalam segala hal.

Dengan semua ini, bahkan pengembang perangkat lunak anti-virus terkemuka, termasuk Kaspersky Lab, spesialis yang menciptakan Doctor Web, ESET Corporation, dan banyak pemimpin dunia lainnya hanya mengangkat bahu, mengatakan bahwa tidak ada uang untuk menguraikan algoritma semacam itu. , sambil tetap diam tentang hal itu, tidak ada cukup waktu. Tentu saja, saat menghubungi dukungan, Anda diminta untuk mengirimkan file terenkripsi dan, jika tersedia, sebaiknya yang asli - dalam bentuk sebelum enkripsi dimulai. Sayangnya, analisis komparatif pun belum membuahkan hasil nyata.

Dunia yang tidak kita kenal

Apa yang bisa kita katakan jika kita mengejar masa depan tanpa mampu menguraikan masa lalu. Jika Anda melihat dunia milenium kita, Anda akan melihat bahwa kaisar Romawi yang sama, Gaius Julius Caesar, menggunakan algoritma enkripsi simetris dalam beberapa pesannya. Nah, jika Anda melihat Leonardo da Vinci, Anda biasanya merasa tidak nyaman hanya karena menyadari bahwa di bidang kriptografi, pria yang hidupnya diselimuti selubung misteri ini telah melampaui zamannya selama berabad-abad.

Hingga saat ini, banyak yang dihantui oleh apa yang disebut dengan “senyum Gioconda”, yang di dalamnya terdapat sesuatu yang begitu menarik sehingga manusia modern tidak bisa mengerti. Ngomong-ngomong, baru-baru ini simbol-simbol tertentu ditemukan dalam lukisan itu (di mata, di gaun, dll.), yang dengan jelas menunjukkan bahwa semua ini berisi semacam informasi yang dienkripsi oleh seorang jenius yang hebat, yang saat ini, sayangnya, kita dapat ekstrak tidak bisa. Tapi kami bahkan belum menyebutkannya berbagai jenis struktur berskala besar yang mampu merevolusi pemahaman fisika pada saat itu.

Tentu saja, beberapa pikiran cenderung secara eksklusif pada fakta bahwa dalam banyak kasus apa yang disebut "rasio emas" digunakan, namun, hal itu tidak memberikan kunci ke seluruh gudang pengetahuan yang sangat besar, yang diyakini tidak dapat dipahami oleh orang lain. kita atau hilang selamanya. Rupanya, para kriptografer masih memiliki banyak pekerjaan yang harus dilakukan untuk memahami bahwa algoritma enkripsi modern terkadang tidak dapat dibandingkan dengan perkembangan peradaban kuno. Selain itu, jika saat ini terdapat prinsip-prinsip keamanan informasi yang diterima secara umum, sayangnya prinsip-prinsip yang digunakan pada zaman kuno sama sekali tidak dapat diakses dan dipahami oleh kita.

Dan satu hal lagi. Ada kepercayaan tak terucapkan bahwa sebagian besar teks kuno tidak dapat diterjemahkan hanya karena kunci untuk menguraikannya dijaga ketat oleh perkumpulan rahasia seperti Freemason, Illuminati, dll. Bahkan para Templar pun meninggalkan jejak mereka di sini. Apa yang bisa kita katakan tentang fakta bahwa Perpustakaan Vatikan masih belum bisa diakses sama sekali? Bukankah disitulah letak kunci utama pemahaman jaman dahulu? Banyak ahli yang condong ke arah versi ini, percaya bahwa Vatikan sengaja menyembunyikan informasi ini dari masyarakat. Apakah ini benar atau tidak, belum ada yang tahu. Namun satu hal yang dapat dikatakan dengan pasti - sistem kriptografi kuno sama sekali tidak kalah (dan mungkin bahkan lebih unggul) dibandingkan sistem yang digunakan di dunia komputer modern.

Alih-alih kata penutup

Terakhir, perlu dikatakan bahwa tidak semua aspek yang berkaitan dengan sistem kriptografi saat ini dan teknik yang digunakannya dipertimbangkan di sini. Faktanya adalah bahwa dalam banyak kasus perlu diberikan yang kompleks rumus matematika dan menyajikan perhitungan yang akan membuat kepala sebagian besar pengguna pusing. Lihat saja contoh yang menjelaskan algoritma RSA untuk menyadari bahwa segala sesuatunya akan terlihat jauh lebih rumit.

Hal utama di sini adalah memahami dan mempelajari esensi masalah. Nah, jika kita berbicara tentang apa yang mereka wakili sistem modern menawarkan untuk disimpan informasi rahasia sehingga tersedia untuk sejumlah pengguna terbatas, tidak ada banyak pilihan di sini. Meskipun terdapat banyak sistem kriptografi, tetap saja sama Algoritma RSA dan DES jelas lebih rendah daripada AES secara spesifik. Namun mayoritas aplikasi modern, dirancang untuk benar-benar berbeda sistem operasi, mereka menggunakan AES (tentu saja, tergantung aplikasi dan perangkatnya). Namun evolusi “tidak sah” dari sistem kriptografi ini, secara sederhana, mengejutkan banyak orang, terutama penciptanya. Namun secara umum, berdasarkan apa yang tersedia saat ini, tidak akan sulit bagi banyak pengguna untuk memahami apa itu sistem enkripsi data kriptografi, mengapa dibutuhkan, dan cara kerjanya.

Departemen Teknologi Informasi dan Komunikasi

KRIPTOSISTEM SIMMETRIS DAN ASSIMETRIS MODERN

Pedoman untuk pekerjaan laboratorium pada tingkat tersebut

Moskow 2009


PERKENALAN

Pertukaran dokumen di bentuk elektronik hanya mungkin jika kerahasiaannya terjamin, perlindungan yang andal terhadap pemalsuan atau modifikasi yang tidak sah, pengiriman ke penerima dijamin, dan perselisihan terkait pemalsuan pesan dan penolakan kepengarangan dapat diselesaikan.

Sistem kriptografi berkembang pesat selama Perang Dunia Pertama dan Kedua. Dari periode pasca perang hingga saat ini, kemajuan komputasi telah mempercepat pengembangan dan peningkatan metode kriptografi.

Dalam perangkat lunak modern, algoritma kriptografi banyak digunakan tidak hanya untuk tugas enkripsi data, tetapi juga untuk otentikasi dan pemeriksaan integritas. Saat ini, terdapat algoritma kriptografi yang terkenal dan teruji (baik dengan kunci simetris maupun asimetris), yang kekuatan kriptografinya telah dibuktikan secara matematis atau didasarkan pada kebutuhan untuk menyelesaikannya secara matematis. tugas yang sulit(faktorisasi, logaritma diskrit, dll).

Tujuan pekerjaan

Deskripsi dan implementasi perangkat lunak dari salah satu algoritma yang diusulkan.

Informasi teoretis

Metode dan sarana perlindungan informasi

Pada tahap pertama pengembangan konsep memastikan keamanan informasi, preferensi diberikan kepada perangkat lunak perlindungan. Ketika praktik menunjukkan bahwa ini tidak cukup untuk menjamin keamanan informasi, semua jenis perangkat dan sistem dikembangkan secara intensif. RoctsttsHHo, ketika pendekatan sistematis terhadap masalah keamanan informasi sedang dibentuk, muncul kebutuhan akan penerapan metode perlindungan yang terintegrasi dan sarana serta mekanisme perlindungan yang dibuat berdasarkan metode tersebut.

Beras. 1. Klasifikasi metode dan sarana keamanan informasi

Mari kita lihat secara singkat metode utama keamanan informasi. Manajemen adalah dampak terarah pada sumber daya sistem dalam siklus teknologi pemrosesan dan transmisi data yang ada, di mana sarana teknis, OS, program, database, elemen data, dll. dianggap sebagai sumber daya.

Hambatan secara fisik memblokir jalur penyerang ke data yang dilindungi.

Masking adalah metode melindungi data dengan menyegelnya secara kriptografis.

Regulasi sebagai metode perlindungan terdiri dari pengembangan dan penerapan serangkaian tindakan selama pengoperasian IVS yang menciptakan kondisi untuk siklus teknologi pemrosesan data yang meminimalkan risiko akses tidak sah ke data. Peraturan ini mencakup keduanya konstruksi struktural IVS, serta teknologi pemrosesan data, organisasi kerja untuk pengguna dan personel jaringan.

Motivasinya adalah untuk menciptakan lingkungan dan kondisi di mana aturan penanganan data yang dilindungi diatur oleh standar moral dan etika.

Pemaksaan mencakup ancaman tanggung jawab materiil, administratif, dan pidana atas pelanggaran aturan penanganan data yang dilindungi. Berdasarkan metode di atas, alat perlindungan data dibuat. Semua sarana perlindungan data dapat dibagi menjadi formal dan informal.

Solusi formal

Sarana perlindungan formal adalah sarana yang menjalankan fungsinya sesuai dengan prosedur yang telah ditetapkan sebelumnya tanpa campur tangan manusia. Sarana perlindungan formal mencakup perangkat keras dan perangkat lunak.

Sarana teknis (perlindungan) mencakup semua perangkat yang dirancang untuk melindungi keamanan. Sarana perlindungan fisik adalah yang menimbulkan hambatan fisik terhadap data yang dilindungi dan bukan merupakan bagian dari peralatan IVS, dan sarana perlindungan data perangkat keras yang termasuk langsung dalam peralatan. peralatan IVS.

Perangkat lunak adalah alat perlindungan data yang beroperasi sebagai bagian dari perangkat lunak IVS.

Kelompok sarana formal yang terpisah terdiri dari sarana kriptografi, yang diimplementasikan dalam bentuk alat perlindungan perangkat lunak, perangkat keras, dan firmware.

Sarana tidak resmi perlindungan

Sarana perlindungan informal adalah sarana yang dilaksanakan sebagai akibat dari kegiatan masyarakat atau mengatur kegiatan tersebut. Sarana informal mencakup tindakan dan sarana organisasi, legislatif dan moral dan etika.

Sarana perlindungan organisasi dipahami sebagai tindakan organisasi, teknis dan organisasional dan hukum yang dilakukan dalam proses pembuatan dan pengoperasian IVS untuk memastikan keamanan data.

Standar perlindungan moral dan etika mencakup semua jenis norma yang secara tradisional telah berkembang atau berkembang seiring dengan berkembangnya informatisasi masyarakat. Norma-norma tersebut tidak wajib, tetapi kegagalan untuk mematuhinya biasanya mengakibatkan hilangnya wibawa dan prestise seseorang, sekelompok orang, atau keseluruhan organisasi. Kode Etik diyakini akan memberikan dampak positif bagi staf dan pengguna. Standar moral dan etika dapat bersifat tidak tertulis (misalnya, norma kejujuran, patriotisme, dll.) yang diterima secara umum dan diformalkan sebagai seperangkat aturan dan regulasi (kode).


1. KONSEP DASAR DAN DEFINISI

Sebagian besar alat keamanan informasi didasarkan pada penggunaan sandi kriptografi dan prosedur enkripsi-dekripsi. Sesuai dengan standar GOST 28147-89, sandi dipahami sebagai sekumpulan transformasi reversibel dari sekumpulan data terbuka menjadi kumpulan data terenkripsi, yang ditentukan oleh kunci dan algoritma transformasi kriptografi.

Kunci adalah keadaan rahasia tertentu dari beberapa parameter algoritma transformasi data kriptografi, memastikan pilihan hanya satu opsi dari semua kemungkinan untuk algoritma tertentu.

Karakteristik utama dari sebuah sandi adalah kekuatan kriptografi, yang menentukan ketahanannya terhadap deteksi dengan metode kriptanalisis. Biasanya karakteristik ini ditentukan oleh interval waktu yang diperlukan untuk memecahkan sandi.

Ada sejumlah persyaratan untuk sandi yang digunakan untuk perlindungan informasi kriptografi:

· kekuatan kriptografi yang memadai (keandalan penutupan data);

· kesederhanaan prosedur enkripsi dan dekripsi;

· sedikit redundansi informasi karena enkripsi;

· ketidakpekaan terhadap kesalahan enkripsi kecil, dll.

Pada tingkat tertentu, persyaratan ini dipenuhi oleh:

sandi permutasi:

· penggantian sandi;

· kode permainan;

· sandi berdasarkan transformasi analitis data terenkripsi.

Enkripsi permutasi berarti bahwa karakter teks terenkripsi disusun ulang menurut aturan tertentu dalam blok tertentu dari teks ini. Dengan panjang blok yang cukup, dan dalam batasan di mana permutasi dilakukan, dan urutan permutasi kompleks yang tidak berulang, adalah mungkin untuk mencapai kekuatan sandi yang dapat diterima untuk aplikasi praktis sederhana.

Enkripsi penggantian (substitusi) melibatkan penggantian karakter teks terenkripsi dengan karakter alfabet yang sama atau berbeda sesuai dengan skema penggantian yang telah ditentukan.

Enkripsi dengan gamma berarti bahwa simbol-simbol teks terenkripsi ditambahkan ke simbol-simbol dari beberapa urutan acak, yang disebut gamma dari cipher. Kekuatan enkripsi ditentukan terutama oleh panjang (periode) bagian rentang sandi yang tidak berulang. Karena dengan bantuan komputer dimungkinkan untuk menghasilkan rangkaian sandi yang hampir tak ada habisnya, metode ini adalah salah satu metode utama untuk mengenkripsi informasi dalam sistem otomatis.

Enkripsi transformasi analitik berarti bahwa teks terenkripsi diubah menurut beberapa aturan analitis (rumus).

Misalnya, Anda dapat menggunakan aturan perkalian vektor-matriks, di mana matriks yang dikalikan adalah kunci enkripsi (sehingga ukuran dan isinya harus dirahasiakan), dan simbol dari vektor yang dikalikan secara berurutan adalah simbol dari teks terenkripsi. Contoh lainnya adalah penggunaan fungsi satu arah untuk membangun sistem kriptografi kunci publik.

Proses enkripsi dan dekripsi dilakukan dalam kerangka beberapa kriptosistem.


1.1 Kriptosistem simetris tradisional.

Prinsip perlindungan informasi kriptografi

Kriptografi adalah serangkaian teknik transformasi data yang bertujuan membuat data tidak berguna bagi musuh. Transformasi tersebut menyelesaikan dua masalah utama perlindungan data: masalah kerahasiaan (dengan menghilangkan kemampuan musuh untuk mengekstrak informasi dari saluran komunikasi) dan masalah integritas (dengan menghilangkan kemampuan musuh untuk mengubah pesan sehingga maknanya berubah, atau untuk memasukkan informasi palsu ke dalam saluran komunikasi). Masalah kerahasiaan dan integritas informasi berkaitan erat, sehingga metode untuk menyelesaikan salah satu masalah sering kali dapat diterapkan untuk menyelesaikan masalah lainnya. Skema umum sistem kriptografi , menyediakan enkripsi informasi yang ditransmisikan , ditunjukkan pada Gambar 1. Pengirim menghasilkan teks biasa

pesan asli , yang harus dikirimkan ke penerima yang sah melalui saluran yang tidak aman. Saluran tersebut dipantau oleh pencegat dengan tujuan mencegat dan mengungkapkan pesan yang dikirimkan

. Untuk mencegah penyadap mempelajari isi pesan, pengirim mengenkripsinya menggunakan transformasi reversibel dan menerima ciphertext (atau kriptogram), yang dikirimkan ke penerima. Seluruh rangkaian algoritma dibagi menjadi dua kelompok besar: memblokir Dan sejalan

Dengan enkripsi aliran, setiap karakter teks sumber dapat direpresentasikan dalam bentuk bit, yaitu dalam bentuk biner. Selanjutnya, setiap bit dari urutan yang dihasilkan dapat dikonversi menurut aturan tertentu. Sebagai aturan konversi, penambahan teks sumber secara bitwise dengan beberapa urutan bit rahasia sering digunakan. Urutan bit rahasia memainkan peran kunci enkripsi dalam cipher aliran simetris. Operasi penambahan bitwise itu sendiri, juga disebut operasi penambahan dua modulo, operasi “OR eksklusif”, atau hanya XOR, sangat sederhana. Saat menambahkan, setiap bit diganti sesuai aturan:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0

Untuk mendekripsi, Anda perlu melakukan prosedur sebaliknya. Ubah kriptogram menjadi bentuk biner dan tambahkan sedikit demi sedikit dengan urutan rahasia yang sama yang digunakan untuk enkripsi.

Dasar dari sebagian besar stream cipher adalah semacam generator urutan pseudo-acak. Tujuan dari generator tersebut adalah untuk menghasilkan urutan bit-bit, yang kadang-kadang juga disebut skala kunci dari cipher. Gamma ini digunakan dalam operasi penambahan bitwise dengan teks sumber. Kunci enkripsi sebenarnya dalam hal ini adalah keadaan awal (dan, mungkin, struktur generator). Jelasnya, siapa pun yang mengetahui algoritme pembuatan urutan dan data masukan awal untuk algoritme tersebut akan mampu menghasilkan keseluruhan keseluruhan. Karakteristik utama dari stream cipher tersebut adalah kekuatan kriptografi dari generator urutan pseudo-acak. Generator harus menyediakan properti penting berikut:

- menghasilkan urutan bit yang mendekati urutan acak dalam karakteristik statistiknya;

- memastikan produksi urutan yang cukup panjang dan tidak berulang;

- memiliki kecepatan yang cukup untuk bekerja secara real time.

Properti pertama diperlukan untuk mencegah penyerang menebak keseluruhan kunci sandi. Properti kedua memastikan bahwa metode enkripsi tahan terhadap berbagai serangan. Properti terakhir memungkinkan penggunaan praktis dari stream cipher di modus nyata waktu.

Operasi pengganti (transmutasi), yang kadang juga disebut operasi pergantian pemain , terdiri dari penggantian beberapa karakter dalam teks sumber dengan karakter lain. Karakter teks sumber dan karakter penggantinya mungkin berasal dari alfabet yang sama (misalnya, bahasa Rusia), atau mungkin berbeda.

Operasi permutasi terdiri dari penataan ulang karakter teks sumber menurut aturan tertentu.

Sandi substitusi dan permutasi adalah salah satu metode enkripsi tertua yang diketahui. Cara serupa telah dikenal sejak zaman dahulu. Seiring berjalannya waktu, aturan penataan ulang dan penggantian menjadi lebih rumit. Landasan teori untuk membangun sandi yang kuat dikembangkan pada pertengahan abad terakhir oleh ilmuwan terkenal Amerika Claude Elwood Shannon (1916-2001), yang juga terkenal dengan karya fundamentalnya di bidang teori informasi. Dengan munculnya karyanya “The Theory of Communication in Secret Systems,” kriptografi berubah menjadi disiplin ilmu yang ketat. Peralatan matematika untuk membangun sandi yang kuat telah diusulkan, dan prinsip-prinsip dasar dirumuskan penyebaran Dan pengadukan.


Difusi – meratakan pengaruh sifat statistik teks biasa pada kriptogram. Penyebaran menyebarkan pengaruh satu karakter teks biasa ke seluruh jumlah besar karakter kriptogram. Hamburan biasanya dicapai dengan menggunakan teknik permutasi.

Percampuran – mempersulit pemulihan hubungan antara properti statistik teks biasa dan kriptogram, serta antara kunci dan kriptogram. Pencampuran berhubungan dengan penggunaan metode penggantian [Alf2001].

Dengan menggunakan prinsip-prinsip ini, sebuah arsitektur untuk membangun cipher blok simetris diusulkan pada paruh kedua abad yang lalu. Arsitektur itu diberi nama Jaringan Feisthal(Jaringan Feistal), dinamai Horst Feistal, seorang karyawan IBM. Arsitektur ini sejak lama menentukan arah utama pengembangan standar di bidang enkripsi data.

Di jaringan Feistal, blok data asli diubah. Output dari jaringan adalah blok data yang dikonversi. Blok aslinya dibagi menjadi dua bagian X1 dan X2. Blok data keluaran juga terdiri dari dua bagian Y1 dan Y2. Bagian Y1 adalah nilai langsung dari X2. Nilai Y2 merupakan hasil penjumlahan bagian X1 dan hasilnya fungsi enkripsi F. Fungsi enkripsi di sini mengacu pada fungsi dari dua argumen: blok masukan data dan kunci rahasia. Fungsi itu sendiri mewakili beberapa transformasi yang tidak ditentukan pada data. Dalam jaringan Feistal, argumen fungsi enkripsi F adalah blok data masukan X2 dan kunci enkripsi rahasia K.

Rumus analisis transformasi yang dijelaskan adalah sebagai berikut:

Y1 = X2

Y2 = X1  F(X2, K)

Properti penting dari jaringan Feistal adalah bahwa transformasi yang dilakukan dengan bantuannya bersifat reversibel. Transformasinya dapat dibalik meskipun fungsi enkripsi F tidak dapat dibalik. Artinya, selalu mungkin untuk memperoleh blok data asli X dari blok data Y

X1 = Y2  F(Y1, K)

X2 = Y1

Modern standar terbuka Enkripsi data adalah cipher blok simetris yang menggunakan transformasi gabungan (substitusi, permutasi, dan lain-lain) untuk mengenkripsi data. Standar-standar tersebut direkomendasikan untuk perlindungan informasi komersial dan non-rahasia. Rekomendasi penggunaan standar untuk melindungi informasi komersial dan tidak rahasia berarti tidak boleh digunakan untuk mengenkripsi informasi yang merupakan rahasia negara atau memerlukan izin khusus. Namun, ini tidak berarti bahwa algoritma tersebut tidak stabil atau belum teruji. Dalam sebagian besar kasus, kekuatan algoritme cukup untuk mencegah pesaing atau pihak yang berkeinginan buruk meretasnya dalam waktu yang dapat diterima. Peretasan dalam hal ini berarti dekripsi kriptogram, mis. mengungkapkan teks asli pesan tanpa mengetahui kunci rahasianya. Kemungkinan peretasan semacam itu sangat bergantung pada sumber daya penyerang (keuangan, komputasi, intelektual, dan lain-lain). Dari sudut pandang ini, negara-negara terkemuka memiliki total sumber daya yang jauh melebihi potensi perusahaan komersial terbesar. Oleh karena itu, untuk menjaga rahasia negara, disarankan menggunakan algoritma yang lebih persisten dan tidak dipublikasikan. Selain itu, algoritma yang lebih kuat biasanya membutuhkan lebih banyak sumber daya dan bekerja lebih lambat. Pada saat yang sama, dalam sistem sipil dan komersial, kecepatan operasi seringkali menjadi salah satu yang terpenting kriteria penting. Terakhir, penggunaan algoritme ultra-kuat mungkin menjadi tidak efektif dalam hal mengenkripsi informasi dengan biaya yang sangat tinggi waktu singkat kehidupan. Tidak ada alasan untuk menggunakan sandi yang membutuhkan waktu bertahun-tahun untuk dipecahkan, atau untuk melindungi pesan yang tidak berguna dalam beberapa hari atau jam. Untuk alasan yang disebutkan di atas, resmi diterbitkan standar negara enkripsi memiliki kompromi tertentu antara sejumlah kriteria, seperti: kekuatan, kecepatan, kemudahan implementasi, biaya dan lain-lain.

DES- standar enkripsi federal AS yang lama;

Gost 28147-89- standar enkripsi data domestik;

AES- standar enkripsi federal AS yang baru.

Penyajiannya diberikan dalam urutan kronologis kemunculan standar-standar tersebut. Pengoperasian algoritma kriptografi simetris dapat dianggap sebagai berfungsinya “kotak hitam”. Inputnya adalah teks asli dan kunci enkripsi ukuran tetap. Outputnya adalah kriptogram. Struktur internal algoritma tersebut menarik bagi pengembang dan cryptanalyst. Pengguna terutama tertarik pada karakteristik komparatif algoritma, hasil analisis resistensi dan ruang lingkup penerapannya.

Standar Enkripsi Digital (DES) telah menjadi standar enkripsi federal di Amerika Serikat selama lebih dari 20 tahun. Algoritmanya adalah Algoritma yang mendasari standar ini dikembangkan pada tahun 1974 di IBM. Pada tahun 1977, standar ini diterbitkan oleh National Bureau of Standards (NBS) AS. Ini kemudian disetujui oleh Institut Standar dan Teknologi Nasional AS (NIST) pada tahun 1980 untuk melindungi informasi komersial dan tidak rahasia. Sejak tahun 1986, telah menjadi standar internasional yang diadopsi oleh ISO dengan nama DEA-1.

Algoritma yang mendasari DES termasuk dalam kelompok cipher blok simetris. Panjang kuncinya adalah 64 bit. Dimana setiap bit kedelapan digunakan untuk pengecekan paritas. Oleh karena itu, kunci tersebut hanya berisi 56 bit rahasia. Blok data masukan juga 64 bit.

Algoritma ini didasarkan pada arsitektur jaringan Feistal. Esensinya adalah melakukan transformasi pada jaringan ini beberapa kali berturut-turut. Blok data keluaran setelah satu transformasi merupakan blok masukan untuk transformasi berikutnya. Setiap transformasi tersebut disebut putaran enkripsi. Terkadang DES dan algoritma serupa lainnya juga disebut cipher blok berulang, dimana satu iterasi berarti melakukan transformasi di jaringan Feistal. DES memiliki total enam belas putaran enkripsi.

Jumlah putaran enkripsi merupakan karakteristik penting dari sandi berulang tersebut. Kekuatan sandi bergantung pada nilai ini. metode modern kriptanalisis seperti kriptanalisis diferensial dan linier. Sebagaimana dicatat dalam [Var98], penggunaan metode ini memberikan hasil yang baik hasil terbaik di bidang analisis sistem block cipher. Kehadiran enam belas putaran enkripsi adalah persyaratan minimum untuk memastikan bahwa metode kriptanalisis di atas tidak lebih mudah daripada pencarian menyeluruh atas semua kemungkinan kunci. Harus dikatakan bahwa metode kriptanalisis diferensial dan linier diterbitkan dalam literatur terbuka relatif baru. Pada saat yang sama, DES dikembangkan dan dianalisis pada tahun 70-an abad lalu. Hal ini menunjukkan bahwa kemampuan metode pemecahan sandi tersebut telah diketahui layanan khusus untuk beberapa waktu sekarang.

Setiap putaran enkripsi di jaringan Feistal menggunakan kunci enkripsi untuk meneruskannya ke input fungsi enkripsi. Kunci seperti itu disebut kunci bulat. Secara total, enam belas kunci bulat berbeda digunakan. Setiap kunci bulat tersebut diperoleh dari kunci asli. Metode untuk menghasilkan kunci tersebut dipublikasikan dalam deskripsi DES.

Fungsi enkripsinya sendiri tidak rumit. Hal ini didasarkan pada aturan untuk mengubah blok data masukan. Transformasi ini terdiri dari penambahan blok data masukan dengan kunci bulat dan kemudian mengubah hasilnya menjadi apa yang disebut S-box. S-box pada DES merupakan matriks yang terdiri dari 4 baris dan 16 kolom. Setiap sel matriks berisi angka dari 0 hingga 15. Sebanyak 8 matriks tersebut diterbitkan dan digunakan dalam standar.

Sejak awal, DES telah menjadi algoritma enkripsi yang sangat umum, diimplementasikan di banyak sistem dan aplikasi. Namun, saat ini algoritma tersebut sudah ketinggalan zaman dan tidak mampu memberikan daya tahan yang dibutuhkan. Hal ini terutama disebabkan oleh kurangnya panjang kunci enkripsi 56-bit yang diadopsi dalam standar. Pada akhir tahun 90an abad lalu, perusahaan Keamanan RSA mengadakan serangkaian kompetisi terbuka untuk meretasnya. Tugas kompetisi ini adalah menguraikan kriptogram yang dipublikasikan di situs web perusahaan. Semua opsi diselesaikan dengan menggunakan serangan brute force, yaitu dengan berhasil mencari semuanya secara mendalam pilihan yang memungkinkan kunci. Di bawah ini adalah tabel timeline peretasan DES dalam kompetisi terbuka yang dilakukan oleh RSA Security:

Tanggal

Waktu peretasan

Kekuatan

18.06.1997

96 hari

7 miliar kunci/detik.

23.02.1998

39 hari

34 miliar kunci/detik.

17.07.1998

3 hari

88 miliar kunci/detik.

19.01.1999

22 jam 15 menit

245 miliar kunci/detik.

Seperti terlihat pada tabel di bawah, pada kompetisi terakhir, DES berhasil dipecahkan dalam waktu kurang dari satu hari. Setelah itu, RSA Security berhenti mengadakan kompetisi peretasan DES. Peretasan terbaru adalah upaya bersama antara dua organisasi nirlaba: Electronic Frontier Foundation (www.eff.org) dan Distributed Computing Technologies, Inc. (www.distributed.net) Pemilihan opsi kunci yang memungkinkan dilakukan dengan menggunakan komputer khusus yang disebut Deep Cracker, dengan biaya $250.000. Selain itu, dalam proses pemrosesan kunci, kekuatan komputer yang terhubung ke Internet digunakan.

Hasil yang dicapai dengan jelas menunjukkan perlunya mengadopsi standar baru di bidang enkripsi data dan meringankan pembatasan ekspor produk kriptografi yang ada pada waktu itu di Amerika Serikat. Standar baru ini diadopsi pada tahun 2001 dan disebut Advanced Encryption Standard (AES). Standar ini dan algoritma yang mendasarinya dibahas di bawah. Sejak akhir tahun 90-an abad yang lalu, sebagai penguatan standar yang ada, modifikasi yang disebut “Triple-DES” (Triple-DES) telah digunakan.

Algoritme GOST 28147-89 adalah cipher blok simetris dan didasarkan pada arsitektur jaringan Feistal. Panjang kuncinya adalah 256 bit. Blok data masukan adalah 64 bit. Algoritma ini menggunakan 32 putaran enkripsi. Setiap putaran enkripsi menggunakan kunci putaran, yang nilainya diturunkan dari kunci enkripsi rahasia asli.

Fungsi enkripsi algoritma GOST 28147-89, yang digunakan dalam setiap putaran enkripsi, memiliki struktur sederhana dan terdiri dari operasi penggantian sederhana dan pergeseran siklik. Penggantian dilakukan pada blok S dalam matriks khusus. Untuk algoritma Gost 28147-89, jenis matriks pengganti tertentu tidak ditentukan. Setiap pengembang dan produsen dapat membuat matriksnya sendiri atau mengajukan permintaan ke layanan khusus yang dapat membantu dalam menyiapkan matriks kriptografi. Jika diinginkan, Anda dapat mengubah matriks pengganti seiring waktu. Karena matriksnya tidak ditentukan, kadang-kadang disebut juga elemen kunci yang dapat diganti. Matriks ini memiliki delapan baris, enam belas kolom, dan setiap sel menyimpan empat bit informasi. Ukuran matriksnya adalah 512 bit. Jika kita menambahkan ukuran kunci enkripsi, ukuran total informasi rahasia akan menjadi 768 bit. Ini memberikan 2.768 kemungkinan opsi untuk mencoba semua nilai informasi rahasia. Pencarian sejumlah opsi tersebut bahkan jauh melampaui kapasitas yang diperkirakan teknologi komputer dan benar-benar di luar jangkauan di masa mendatang. Namun, secara adil, harus dikatakan bahwa hanya kunci enkripsi 256-bit yang benar-benar merupakan informasi rahasia. Struktur matriks bahkan yang tidak dipublikasikan secara teoritis dapat ditentukan dengan menganalisis pengoperasian perangkat lunak atau perangkat keras. Upaya akses tidak sah ke dokumentasi teknis tentang penerapan algoritma Gost 28147-89 juga dimungkinkan. Namun bahkan dalam kasus ini, untuk menghitung sepenuhnya semua kunci yang mungkin, perlu dilakukan 2.256 upaya. Jumlah opsi ini masih sangat besar dan memastikan bahwa algoritme benar-benar tahan terhadap serangan brute force.

Dalam publikasi terbuka, belum ada satu pun metode peretasan standar enkripsi data domestik yang berhasil yang dipertimbangkan. Namun, makalah [Mol02] mendukung penggantian standar yang ada dengan algoritma baru. Menurut penulis, standar yang ada, karena arsitekturnya, tidak dapat memenuhi persyaratan modern untuk kecepatan konversi data (lebih dari 2 Gbit/s). Selain itu, tercatat bahwa dalam sejumlah karya selama beberapa tahun terakhir, berbagai potensi serangan yang terkait dengan algoritma GOST 28147-89 telah dijelaskan.

Untuk standar Gost 28147-89, empat mode operasi berikut ditentukan:

Penggantian mudah. Ini adalah mode operasi algoritma yang utama dan paling sederhana. Digunakan untuk mengenkripsi informasi kunci.

permen karet . Dalam mode ini, dimungkinkan untuk menghasilkan gamma pseudo-acak dengan sifat statistik yang sangat baik. Faktanya, menggunakan mode ini memungkinkan Anda mendapatkan stream cipher dari block cipher. Digunakan untuk enkripsi data.

Permainan dengan umpan balik . Mode ini berbeda dari mode sebelumnya dalam cara menghasilkan gamma. Elemen selanjutnya gamma dihasilkan sebagai hasil transformasi blok data terenkripsi sebelumnya. Mode ini terkadang juga disebut mode gamma dengan blok yang saling bertautan [Dom2000]. Setiap blok kriptogram bergantung pada semua blok teks biasa sebelumnya. Mode gamma dapat memproses blok data masukan yang lebih kecil dari 8 byte. Properti ini digunakan untuk mengenkripsi array data dengan ukuran sewenang-wenang.

Mode penyisipan simulasi . Penyisipan yang disimulasikan adalah nilai yang dihitung menggunakan data asli dan kunci rahasia. Dengan menggunakan simulasi penyisipan, Anda dapat menentukan apakah ada perubahan pada informasi selama transmisinya. Mode ini digunakan untuk mendeteksi distorsi dalam susunan data terenkripsi dengan probabilitas tertentu.

Advanced Encryption Standard (AES) dipilih melalui kompetisi internasional terbuka yang diadakan oleh US NIST. Awal kompetisi diumumkan pada 2 Januari 1997. Sebagai hasil seleksi awal pada bulan Agustus 1998, lima belas kandidat algoritma terpilih. Kemudian setahun kemudian, pada bulan Agustus 1999, lima algoritma diidentifikasi sebagai finalis kompetisi tersebut. Kompetisi berakhir pada Oktober 2000. Pemenangnya adalah algoritma Belgia RIJNDAEL yang dikembangkan oleh Vincent Rijmen dan Joan Daemen. Algoritma ini dipilih sebagai standar AES. Versi final dari standar ini diterbitkan pada bulan November 2001. Algoritma ini telah disetujui sebagai standar enkripsi federal baru di Amerika Serikat berdasarkan kode FIPS-197 dan dimaksudkan untuk memproses informasi komersial dan informasi yang tidak mengandung rahasia negara. Standar ini mulai berlaku pada tanggal 26 Mei 2002 [Zen2002].

Standar AES didasarkan pada arsitektur yang berbeda dari jaringan Feisthal. Penulis algoritme menyebut arsitektur baru ini “Persegi”. Esensinya terletak pada kenyataan bahwa blok data asli ditulis byte demi byte ke dalam matriks. Proses enkripsi itu sendiri terdiri dari berulang kali melakukan berbagai transformasi dengan elemen-elemen matriks tersebut, serta dengan baris dan kolomnya. Arsitektur yang diusulkan memiliki sifat hamburan dan pencampuran Shannon yang baik.

Standar AES menyediakan tiga mode operasi tergantung pada panjang kunci yang digunakan. Panjang kunci yang mungkin adalah 128, 192 dan 256 bit. Jumlah putaran enkripsi tergantung pada panjang kunci yang digunakan; masing-masing adalah 10, 12 atau 14 putaran. Ukuran blok data sumber masukan dan blok teks sandi keluaran sama dan selalu 128 bit.

Selama analisis algoritma sebagai bagian dari kompetisi yang sedang berlangsung, tidak ditemukan kelemahan di dalamnya. Agar adil, harus dikatakan bahwa ini berlaku untuk semua algoritma yang menjadi finalis kompetisi. Semuanya adalah algoritma yang kuat. Namun, berdasarkan gabungan karakteristik kinerja, kemudahan implementasi, intensitas sumber daya dan lain-lain, RIJNDAEL ternyata menjadi yang paling disukai sebagai standar enkripsi universal.

Manfaat standar AES meliputi:

- efisiensi implementasi yang tinggi pada platform apa pun;

- daya tahan tinggi;

- persyaratan memori rendah;

- kemungkinan implementasi pada kartu pintar;

- prosedur pembuatan kunci yang cepat;

- kemungkinan paralelisme operasi.


Di bawah ini diberikan tabel pivot dengan karakteristik standar enkripsi data yang dipertimbangkan [Vin2001].

DES

Gost 28147-89

AES

Ukuran blok data (bit)

Ukuran kunci
(sedikit)

128, 192, 256

Arsitektur

Jaringan Feistal

Jaringan Feistal

"Persegi"

Jumlah putaran

10, 12, 14

Struktur bulat

Sederhana

Sederhana

Sulit

Operasi yang digunakan

Operasi aditif, penggantian, permutasi, shift

Operasi aditif, penggantian, shift

Operasi pada bidang terbatas

Untuk menghitung semua kemungkinan kunci untuk algoritma DES, Anda perlu menjalankan sekitar 7.2x1016 opsi. Ukuran minimal Kunci pada algoritma AES adalah 128 bit. Untuk menghitung semua kemungkinan kunci dalam kasus ini, Anda harus memeriksa sekitar opsi 3.4x1038. Jumlah ini kira-kira 1.021 kali lebih banyak dibandingkan kasus DES. Untuk menghitung semua kunci sepanjang 256 bit, Anda perlu memeriksa sejumlah besar opsi - sekitar 1,1x1077 kunci. Kekuatan standar enkripsi AES baru terhadap serangan brute force kini setara dengan standar domestik GOST 28147-89.

Algoritme GOST 28147-89 membuatnya sangat mudah untuk menghasilkan kunci enkripsi bulat. Mereka diambil sebagai komponen kunci enkripsi rahasia awal. Pada saat yang sama, DES dan AES menggunakan algoritma yang jauh lebih kompleks untuk menghitung kunci bulat.

Dibandingkan dengan DES, algoritma GOST 28147-89 lebih cepat. Misalnya, pada prosesor Intel x86, penerapan GOST 28147-89 dua kali lebih cepat dibandingkan penerapan DES. Pada prosesor Pention Pro-200 MHz, batas kinerja algoritma Gost 28147-89 adalah 8 MB/detik. Tabel di bawah ini menunjukkan angka perbandingan standar kinerja GOST 28147-89 dan AES

Gost 28147-89

AES

Pentium 166MHz

2,04 MB/dtk

2,46 MB/dtk

Pentium III 433Mhz

8,30 MB/dtk

9,36 MB/dtk

Algoritme GOST 28147-89 lebih nyaman untuk implementasi perangkat keras dan perangkat lunak dibandingkan DES, tetapi kurang nyaman dibandingkan AES. Standar GOST 28147-89 dan AES memiliki nilai yang sebanding dalam karakteristik utama.

Untuk algoritma enkripsi blok simetris (AS), beberapa mode utama penggunaannya ditentukan. Mode-mode ini awalnya khusus untuk penggunaan algoritma DES, namun pada kenyataannya dapat diterapkan pada algoritma blok apa pun. Misalnya, beberapa mode ini merupakan analog dari mode operasi yang ditentukan untuk algoritma Gost 28147-89. Mode yang dipilih menentukan cakupan penerapan algoritma enkripsi blok. Setiap mode operasi memiliki kelebihan dan kekurangannya masing-masing.

Mode buku kode elektronik .

Buku Kode Elektronik (ECB)

Teks sumber dibagi menjadi beberapa blok. Dalam mode ini, setiap blok dimasukkan ke algoritma enkripsi dan dikonversi secara independen satu sama lain. Setiap blok juga didekripsi secara independen.

Keuntungan:

- kemudahan implementasi;

- kemampuan untuk mengenkripsi banyak pesan dengan satu kunci tanpa mengurangi keamanan;

- kemungkinan paralel.

Kekurangan:

- korespondensi satu-ke-satu antara blok teks biasa dan kriptogram;

- kemampuan untuk mengulang blok dan mengganti blok dalam paket informasi;

- propagasi kesalahan ciphertext.


Lingkup aplikasi:

- enkripsi kunci lain dan informasi acak secara umum;

- enkripsi penyimpanan data akses acak.

Mode rangkaian blok ciphertext .

Rantai Blok Sandi (CBC)

Teks sumber dibagi menjadi beberapa blok. Yang disebut vektor inisialisasi– rangkaian bit yang tidak rahasia dan acak, panjangnya sama dengan satu blok data yang masuk. Blok pertama dari data awal ditambahkan ke vektor inisialisasi. Hasil penambahan tersebut merupakan masukan pada algoritma enkripsi. Kriptogram yang dihasilkan ditambahkan ke blok teks sumber berikutnya. Hasil penjumlahan diumpankan ke masukan algoritma enkripsi, dan seterusnya.


Keuntungan:

- sulitnya memanipulasi teks biasa (substitusi dan penggantian);

- Anda dapat mengenkripsi beberapa pesan dengan satu kunci;

- dekripsi dapat dilakukan secara paralel.

Kekurangan:

- teks tersandi satu blok lebih panjang dari teks biasa;

- kesalahan sinkronisasi berakibat fatal;

- propagasi kesalahan ciphertext;

- enkripsi tidak dapat dilakukan secara paralel.

Lingkup aplikasi:

- enkripsi file dan pesan.


Mode masukan oleh teks tersandi.

Umpan Balik Sandi (CFB)

Pada awalnya, vektor inisialisasi langsung diumpankan ke masukan algoritma enkripsi. Teks sumber terdiri dari blok k bit, dan k N, Di mana N- panjang blok data masukan. Setiap blok teks sumber ditambahkan ke bagian dari urutan panjangnya k bit yang diperoleh sebagai keluaran dari algoritma enkripsi. Hasil penjumlahannya adalah blok ciphertext. Nilai urutan yang diperoleh pada keluaran algoritma enkripsi digeser k bit ke kiri. Paling benar k bit-bit dari urutan tersebut ditempati oleh bit-bit kriptogram. Urutan data masukan yang baru dibentuk diumpankan ke algoritma enkripsi, dan seterusnya.


Keuntungan:

- Ukuran blok data mungkin berbeda dari ukuran standar;

- sulit untuk memanipulasi teks biasa;

- kemampuan untuk mengenkripsi banyak pesan dengan satu kunci.

Kekurangan:

- keunikan wajib (tetapi bukan kerahasiaan) dari vektor inisialisasi;

- penyebaran kesalahan ciphertext yang cepat.

Lingkup aplikasi:

- enkripsi karakter demi karakter dari aliran data (transfer data antara server dan klien selama proses otentikasi).


Mode umpan balik keluaran .

Umpan Balik Keluaran (OFB)

Mode ini berbeda dari yang sebelumnya di bagian urutan input yang baru dihasilkan terisi k bit bukan kriptogram, tetapi urutan keluaran yang diperoleh pada langkah sebelumnya. Perbedaan ini memungkinkan Anda untuk merumuskan rentang sandi secara lengkap terlebih dahulu. Gamma ini kemudian dapat digunakan untuk mengenkripsi teks biasa, misalnya seperti yang terjadi pada stream cipher.


Keuntungan:

- kesalahan ciphertext tidak disebarkan;

- kemungkinan persiapan awal skala;

- Ukuran blok data mungkin berbeda dari ukuran standar.

Kekurangan:

- kesalahan sinkronisasi berakibat fatal;

- mudah untuk memanipulasi teks biasa;

- keunikan wajib (tetapi bukan kerahasiaan) dari vektor inisialisasi.

Lingkup aplikasi:

- sistem sinkron berkecepatan tinggi (komunikasi satelit);

- secara umum, dalam sistem yang beroperasi di lingkungan dengan kemungkinan kesalahan yang tinggi selama transmisi informasi.


Mode enkripsi tambahan

Ada juga sejumlah mode enkripsi tambahan:

· Mode Rantai Blok Propagasi (PCBC).

· Mode penggabungan blok ciphertext dengan checksum(CBCC).

· Keluaran mode umpan balik nonlinier (OFBNLF).

· Rantai Blok Plaintext (PBC).

· Mode Umpan Balik Teks Biasa (PFB).

· Merangkai Blok Teks dengan Perbedaan Plaintext (CBCPD).

Kriptosistem simetris

Kriptosistem simetris (juga enkripsi simetris, sandi simetris) adalah metode enkripsi yang menggunakan kunci kriptografi yang sama untuk enkripsi dan dekripsi. Sebelum penemuan skema enkripsi asimetris, satu-satunya metode yang ada adalah enkripsi simetris. Kunci algoritma harus dirahasiakan oleh kedua belah pihak. Kunci algoritma dipilih oleh para pihak sebelum pertukaran pesan dimulai.

Saat ini, sandi simetris adalah:

1. Blokir sandi - memproses informasi dalam blok dengan panjang tertentu (biasanya 64, 128 bit), menerapkan kunci ke blok dalam urutan yang ditentukan, biasanya melalui beberapa siklus pencampuran dan substitusi, yang disebut putaran. Hasil dari putaran berulang adalah efek longsoran - peningkatan hilangnya korespondensi bit antara blok data terbuka dan terenkripsi.

2. Sandi aliran - dimana enkripsi dilakukan pada setiap bit atau byte teks asli (biasa) menggunakan gamma. Sandi aliran dapat dengan mudah dibuat berdasarkan sandi blok (misalnya, GOST 28147-89 dalam mode gamma), diluncurkan dalam mode khusus.

Sistem kriptografi kunci publik

Sistem kriptografi kunci publik (atau Enkripsi asimetris, Sandi asimetris) adalah sistem enkripsi informasi di mana kunci yang digunakan untuk mengenkripsi pesan dan pesan terenkripsi itu sendiri ditransmisikan melalui saluran terbuka (yaitu, tidak terlindungi, dapat diamati). Penerima menggunakan kunci pribadi untuk menghasilkan kunci publik dan membaca pesan terenkripsi. Sistem kriptografi kunci publik saat ini banyak digunakan di berbagai bidang protokol jaringan, khususnya di protokol SSL dan protokol berdasarkan itu tingkat aplikasi HTTPS, SSH, dll.

Beras. 7.

1. Penerima membuat kunci. Kuncinya dibagi menjadi bagian terbuka dan tertutup. Dalam hal ini, kunci publik tidak boleh dikirimkan melalui saluran terbuka. Atau keasliannya harus dijamin oleh otoritas sertifikasi.

2. Pengirim mengenkripsi pesan menggunakan kunci publik.

3. Penerima mendekripsi pesan menggunakan kunci pribadi.

Kerugian dari metode ini: Meskipun pesan dienkripsi dengan aman, penerima dan pengirim terekspos oleh fakta pengiriman pesan terenkripsi.

Ide umum dari sistem kriptografi kunci publik adalah dengan menggunakan, ketika mengenkripsi pesan, fungsi dari kunci publik dan pesan (fungsi sandi), yang secara algoritmik sangat sulit untuk dibalik, yaitu menghitung argumennya dari nilai fungsinya, bahkan mengetahui nilai kuncinya.

Fitur Sistem

Keuntungan Keuntungan dari sandi asimetris dibandingkan sandi simetris adalah tidak perlu mengirimkan kunci rahasia. Pihak yang ingin menerima ciphertext, sesuai dengan algoritma yang digunakan, menghasilkan pasangan “kunci publik - kunci pribadi" Nilai-nilai kuncinya saling terkait, tetapi menghitung satu nilai dari nilai lainnya seharusnya tidak dapat dilakukan poin praktis penglihatan. Kunci publik diterbitkan dalam direktori terbuka dan digunakan untuk mengenkripsi informasi oleh pihak lawan. Kunci pribadi dirahasiakan dan digunakan untuk mendekripsi pesan yang dikirim ke pemilik pasangan kunci. Sandi asimetris dirintis pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman, New Directions in Modern Cryptography. Mereka mengusulkan sistem pertukaran kunci rahasia bersama berdasarkan masalah logaritma diskrit. Secara umum, dasar dari kriptosistem asimetris yang diketahui adalah salah satu masalah matematika yang kompleks, yang memungkinkan konstruksi fungsi satu arah dan fungsi jebakan. Misalnya, sistem kriptografi Rivest-Shamir-Adelman menggunakan masalah faktorisasi bilangan besar, dan sistem kriptografi Merkle-Hellman dan Hoare-Rivest mengandalkan apa yang disebut masalah knapsack.

Kekurangan- kriptosistem asimetris memerlukan sumber daya komputasi yang jauh lebih besar. Selain itu, perlu dipastikan keaslian (authenticity) dari produk tersebut kunci publik, yang biasanya digunakan sertifikat.

Kriptosistem hibrid (atau gabungan) adalah sistem enkripsi yang memiliki semua keunggulan sistem kriptografi kunci publik, tetapi tanpa kelemahan utamanya - kecepatan enkripsi yang rendah.

Prinsip: Sistem kriptografi memanfaatkan dua kriptosistem utama: kriptografi simetris dan asimetris. Program seperti PGP dan GnuPG dibangun berdasarkan prinsip ini.

Kerugian utama kriptografi asimetris berkecepatan rendah karena perhitungan yang rumit dibutuhkan oleh algoritmanya, sementara kriptografi simetris secara tradisional menunjukkan kinerja yang cemerlang. Namun, kriptosistem simetris memiliki satu kelemahan signifikan - penggunaannya memerlukan saluran aman untuk mentransmisikan kunci. Untuk mengatasi kelemahan ini, mereka menggunakan kriptosistem asimetris yang menggunakan sepasang kunci: publik dan privat.

Enkripsi: Sebagian besar sistem enkripsi bekerja sebagai berikut. Untuk algoritma simetris (3DES, IDEA, AES atau lainnya), kunci acak dihasilkan. Kunci seperti itu biasanya berukuran 128 hingga 512 bit (tergantung algoritmanya). Algoritma simetris kemudian digunakan untuk mengenkripsi pesan. Dalam kasus cipher blok, perlu menggunakan mode enkripsi (misalnya, CBC), yang memungkinkan pesan dienkripsi dengan panjang lebih besar dari panjang blok. Sedangkan untuk random key sendiri harus dienkripsi dengan kunci publik penerima pesan, dan pada tahap inilah diterapkan kriptosistem kunci publik (RSA atau Algoritma Diffie-Hellman). Karena kunci acaknya pendek, enkripsi memerlukan sedikit waktu. Mengenkripsi sekumpulan pesan menggunakan algoritma asimetris adalah tugas komputasi yang lebih kompleks, sehingga lebih baik menggunakan enkripsi simetris. Kemudian kirimkan saja pesan terenkripsi algoritma simetris, serta kunci terkait dalam bentuk terenkripsi. Penerima pertama-tama mendekripsi kunci tersebut menggunakan kunci pribadinya, dan kemudian menggunakan kunci yang dihasilkan untuk menerima seluruh pesan.

Tanda tangan digital menyediakan:

* Identifikasi sumber dokumen. Tergantung pada rincian definisi dokumen, bidang seperti "penulis", "perubahan yang dilakukan", "cap waktu", dll. dapat ditandatangani.

* Perlindungan terhadap perubahan dokumen. Setiap perubahan yang disengaja atau tidak disengaja pada dokumen (atau tanda tangan) akan mengubah sandi, oleh karena itu, tanda tangan menjadi tidak sah.

Ancaman tanda tangan digital berikut mungkin terjadi:

*Penyerang mungkin mencoba memalsukan tanda tangan untuk dokumen pilihannya.

*Penyerang mungkin mencoba mencocokkan dokumen dengan tanda tangan tertentu sehingga tanda tangan tersebut cocok.

Saat menggunakan fungsi sandi yang kuat, secara komputasi sulit untuk membuat dokumen palsu dengan sandi yang sama dengan dokumen asli. Namun, ancaman ini dapat terjadi karena kelemahan pada algoritma caching tertentu, tanda tangan, atau kesalahan dalam implementasinya. Namun, ancaman berikut terhadap sistem tanda tangan digital juga mungkin terjadi:

*Penyerang yang mencuri kunci pribadi dapat menandatangani dokumen apa pun atas nama pemilik kunci.

*Penyerang dapat mengelabui pemilik agar menandatangani dokumen, misalnya menggunakan protokol tanda tangan buta.

*Seorang penyerang dapat mengganti kunci publik pemilik dengan miliknya sendiri, dengan meniru identitasnya.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat