Rumah >Tutorial sistem >LINUX >Algoritma penyulitan sejarah
Pengenalan | Sebagai cara keselamatan, algoritma penyulitan berkait rapat dengan kehidupan kebanyakan kita. Selagi anda pergi dalam talian, anda akan mendapat manfaat daripadanya, kerana semua tapak web yang menggunakan https sudah menggunakan protokol penyulitan TLS/SSL. Oleh itu, kita semua secara pasif menikmati perlindungan privasi dan keselamatan komunikasi yang dibawa oleh algoritma penyulitan. Di samping itu, dari peringkat teknologi keselamatan, lapisan rangkaian hingga ke lapisan fail hos, tidak kira lapisan aplikasi atau protokol penyulitan di belakangnya, ia disokong oleh pelbagai algoritma penyulitan. |
Artikel ini cuba membincangkan pembangunan dan evolusi algoritma penyulitan ini yang berkait rapat dengan kehidupan dalam talian kami dari zaman purba hingga kini, serta algoritma penyulitan utama yang telah muncul dalam keseluruhan proses satu demi satu, dan memimpin semua orang untuk memahami algoritma menarik di belakangnya.
Fungsi utama algoritma penyulitan adalah untuk menukar teks biasa kepada teks sifir untuk mengelakkan kebocoran maklumat. Teks sifir yang disulitkan kelihatan serupa dengan aksara bercelaru, tetapi ia bukan aksara bercelaru. Kebanyakan aksara yang bercelaru disebabkan oleh pengekodan yang tidak konsisten Pengekodan bukan milik algoritma penyulitan, tetapi hanya menukar format paparan. Sebagai contoh, base64 hanyalah pengekodan dan tidak dapat menjamin keselamatan teks biasa. Apabila saya mendengar penyulitan base64 disebut pada masa hadapan, ia menunjukkan bahawa ia tidak profesional.
Algoritma penyulitan perlu memastikan tiga perkara berikut:
1. Kerahsiaan: Pastikan walaupun data dicuri, pencuri tidak akan tahu apa itu.
2. Integriti: Pastikan walaupun data dirampas dan diubah suai semasa penghantaran, penerima boleh mendapati maklumat tersebut telah dipintas dan memilih untuk menggantikannya.
3 Ketersediaan: Pastikan overhed dan kerumitan algoritma penyulitan berada dalam julat yang tersedia.
Algoritma penyulitan yang memenuhi keperluan di atas telah melalui tempoh pembangunan sejarah yang panjang daripada kriptografi klasik kepada kriptografi moden.
Bagaimanakah orang purba menyulitkan? 1. Algoritma penyulitan terawal dalam sejarahKaedah alternatif
Algoritma penyulitan terawal digunakan terutamanya dalam tentera Rekod terawal algoritma penyulitan dalam sejarah datang daripada "Yin Fu" dan "Yin Shu" dalam buku tentera Dinasti Zhou "Enam Tao. Long Tao". Ia merekodkan:
Tai Gong berkata: "Tuhan dan jeneral mempunyai azimat Yin, iaitu dari tingkatan lapan. Azimat untuk mengalahkan musuh adalah satu kaki panjang. Azimat untuk mengalahkan tentera dan menangkap jeneral adalah sembilan inci panjang. Azimat kerana menyerahkan kota itu dan memenangi kota itu panjangnya lapan inci musuh adalah lima inci panjang Jimat yang digunakan oleh jeneral yang dikalahkan adalah empat inci panjang Jika sesiapa yang diamanahkan dengan jimat itu dan melaporkannya, dia akan dihukum secara sembunyi-sembunyi, maka dia tidak akan mendedahkan kemahiran kefahaman dalaman dan luaran.”
Raja Wu bertanya kepada Taigong: "... azimat itu tidak dapat difahami; kami jauh dan kata-kata tidak dapat difahami. Apa yang boleh dilakukan Taigong: "Jika anda mempunyai perkara rahsia dan kebimbangan yang serius, anda harus menggunakan buku bukannya azimat Tuhan akan menyerahkan buku itu kepada umum dan bertanyakan soalan dalam buku itu semuanya digabungkan dan dipisahkan lagi, dan ketiga-tiga bahagian itu dibahagikan kepada tiga bahagian. Ini dipanggil Yin Shu Walaupun musuh itu bijak dan bijak, tiada siapa yang dapat memahaminya."
Ringkasnya, simbol Yin menggunakan lapan simbol yang sama panjang untuk menyatakan mesej dan arahan yang berbeza Ia adalah kaedah penggantian dalam kriptografi, ia menukar maklumat kepada simbol yang tidak dapat difahami oleh musuh makna kritikal. Sebagai tambahan kepada Jimat Yin, Yin Shu menggunakan kaedah pemisahan teks untuk terus membelah teks kepada tiga bahagian, dan menghantarnya ke sasaran melalui tiga saluran Musuh hanya boleh memecahkannya jika ia memintas tiga bahagian kandungan di masa yang sama.
Kaedah Shift
Secara kebetulan, algoritma penyulitan juga digunakan secara besar-besaran dalam peperangan di Barat jauh. "Sejarah" Herodotus merekodkan bahawa pada abad kelima SM, negara kota Yunani dan Empayar Parsi sering berperang Negara kota Yunani secara meluas menggunakan kaedah peralihan untuk menyulitkan maklumat komunikasi perang, menyukarkan Empayar Parsi mendapatkan tentera. perisikan dari pihak lain tidak boleh dibuat lebih awal. Setiap perenggan teks yang digunakan oleh negara kota Yunani untuk menghantar maklumat dan perintah ketenteraan mempunyai bilangan perkataan yang tetap, dan orang yang menerima rahsia itu akan mempunyai arahan peralihan teks di tangannya. Selepas penyahsulit memperoleh teks sifir, dia menyahsulitnya mengikut arahan peralihan dan mentafsir perintah atau mesej tentera.
Kata laluan klasik terutamanya menggunakan kaedah pergerakan dan penggantian. Antaranya, kaedah peralihan adalah untuk mengalihkan plaintext ke arah tetap dengan bilangan bit tertentu Contohnya, I love you dialihkan ke kanan sebanyak 4 bit dan menjadi M pszi csy. Selepas pembangunan dan penambahbaikan secara beransur-ansur, yang paling terkenal ialah sifir Caesar. Tetapi huruf Inggeris atau Latin kelihatan tidak konsisten. Ambil abjad Inggeris sebagai contoh: huruf e muncul lebih kerap daripada huruf lain. Selepas mendapat sampel teks sifir yang mencukupi, peraturan anjakan boleh didapati dengan tepat melalui pengiraan kekerapan untuk memecahkan teks sifir. Oleh itu, kebanyakan sifir Caesar menggunakan kaedah penggantian untuk mentakrifkan jadual pemetaan teks sifir biasa:
Kaedah ini boleh menyelesaikan masalah kekunci lengkap pada tahap tertentu, tetapi ia masih tidak berdaya melawan serangan frekuensi dengan jumlah data yang besar. Kemudian, mod ini dibangunkan untuk bergantung pada memperkenalkan beberapa parameter khusus untuk mengganggu kekerapan dan meningkatkan kesukaran penyahsulitan.
Dalam tempoh akhir kriptografi klasik, satu siri jenis kriptografi seperti sifir Vigenère, ROT5/13/18/47 dan kod Morse telah dibangunkan. Walau bagaimanapun, kesemuanya adalah berdasarkan kaedah penggantian dan kaedah anjakan, dan keselamatan terutamanya dijamin oleh ketakdedahan algoritma.
Algoritma penyulitan yang lebih saintifik untuk orang modenAlgoritma penyulitan klasik pada asasnya ialah perubahan dalam corak linguistik. Hanya pada pertengahan abad ke-20 Shannon menerbitkan artikel "Teori Komunikasi Sistem Rahsia", yang menandakan peralihan fokus algoritma penyulitan kepada matematik gunaan. Akibatnya, tiga jenis algoritma penyulitan yang penting hari ini telah muncul secara beransur-ansur: penyulitan asimetri, penyulitan simetri dan algoritma cincang. Ketiga-tiga jenis algoritma ini sering digunakan dalam kombinasi untuk mencapai hasil yang terbaik.
1. Algoritma penyulitan simetriAlgoritma penyulitan simetri ialah salah satu daripada algoritma penyulitan yang paling banyak digunakan. Algoritma yang biasa digunakan termasuk algoritma DES, algoritma AES, algoritma 3DES, algoritma TDEA, algoritma Blowfish, algoritma RC5, algoritma IDEA, dsb. Cirinya ialah kedua-dua pihak penyulitan dan penyahsulitan menggunakan kunci yang sama untuk penyulitan dan penyahsulitan. Mengikut prinsip yang berbeza, penyulitan simetri boleh dibahagikan secara kasar kepada dua jenis: penyulitan aliran dan penyulitan blok.
Penyulitan Strim
Penyulitan strim ialah sejenis algoritma kriptografi simetri yang menyulitkan aksara plaintext mengikut aksara dan yang sepadan. Teks sifir boleh diperolehi dengan melakukan operasi yang dipersetujui pada teks biasa dan kekunci sedikit demi sedikit. Antara algoritma penyulitan strim, RC4 dan GSM adalah yang paling terkenal Model paling mudah ialah contoh penyulitan strim XOR, seperti:
Prinsip penyulitan strim adalah mudah, tetapi struktur algoritmanya mempunyai kelemahan Selagi teks biasa separa bocor, penyerang boleh mengira kunci dengan mudah. Di samping itu, kerana ia disulitkan pada asas bit demi bit, walaupun penyerang mengganggu data, struktur data asal tidak akan dimusnahkan, menjadikannya sukar bagi penerima untuk mengesan perubahan. Walaupun penyulitan strim adalah pantas dan cekap, ia kurang selamat dan tidak disyorkan untuk menyulitkan maklumat kritikal.
Penyulitan Sekat
Pelaksanaan dalaman penyulitan blok adalah lebih rumit. Setiap blok penyulitan akan melalui sekurang-kurangnya 16 pusingan operasi algoritma termasuk DES dan AES. Pada masa ini disyorkan untuk menggunakan AES, DES tidak lagi selamat.
DES
DES ialah piawaian penyulitan simetri yang lebih awal. Teras dibahagikan kepada tiga langkah: pilih atur awal, fungsi bulat dan pilih atur songsang Ia digunakan secara meluas pada masa itu. Memandangkan prestasi komputer terus bertambah baik, pemecahan kekerasan DES menjadi semakin mudah. Oleh itu, DES tidak lagi selamat dan telah digantikan secara beransur-ansur oleh 3DES dan AES dalam dekad yang lalu.
AES
AES telah dianalisis dan ditunjukkan oleh banyak pihak dan digunakan secara meluas di seluruh dunia Ia kini merupakan salah satu algoritma penyulitan simetri yang paling selamat. Dalam dekad yang lalu, AES telah menjadi salah satu algoritma paling popular untuk penyulitan kunci simetri. Tidak seperti DES, AES menggunakan rangkaian pilih ganti gantian dan bukannya seni bina Feistel.
Kebanyakan pengiraan AES diselesaikan dalam domain terhingga khas Proses penyulitan beroperasi pada matriks 4×4 bait ini juga dipanggil "keadaan", dan nilai awalnya ialah blok teks biasa. Apabila menyulitkan, setiap kitaran penyulitan AES (kecuali pusingan terakhir) terdiri daripada 4 langkah:
AddRoundKey - Setiap bait dalam matriks di-XOR dengan kekunci bulat; setiap sub-kunci dijana oleh skema penjanaan kunci.
SubBytes - Gantikan setiap bait dengan bait yang sepadan menggunakan jadual carian melalui fungsi penggantian bukan linear.
ShiftRows - menganjakkan setiap lajur matriks secara bulat.
MixColumns - Operasi yang mencampurkan sepenuhnya baris individu dalam matriks, menggunakan penjelmaan linear untuk mencampurkan empat bait setiap lajur. Langkah MixColumns diabaikan daripada gelung penyulitan terakhir dan digantikan dengan ddRoundKey yang lain.
Mod penyulitan
AES dan DES kedua-duanya menyokong mod penyulitan yang berbeza secara dalaman, dan keselamatan serta kecekapan setiap mod adalah sangat berbeza. Antara dua mod yang paling biasa, ECB dan CBC, mod ECB mempunyai kecekapan penyulitan yang tinggi tetapi mod keselamatan yang rendah adalah seperti yang ditunjukkan di bawah:
Kunci menyulitkan blok individu setiap kali, yang boleh dipecahkan dengan mudah oleh pihak lain. Walau bagaimanapun, oleh kerana tiada korelasi antara setiap modul, ia boleh dikendalikan secara serentak, meningkatkan kecekapan penyulitan. Biasanya, ECB adalah 5-6 kali lebih cekap penyulitan daripada CBC. Tetapi CBC lebih tinggi dan lebih selamat daripada ECB. Coraknya seperti di bawah:
Setiap blok penyulitan memperkenalkan IV yang berbeza, yang memerlukan lelaran pada blok sebelumnya untuk akhirnya melengkapkan keseluruhan proses penyulitan. Memandangkan IV setiap blok berkaitan dengan blok sifirteks, mod serentak tidak boleh digunakan dan keseluruhan proses mesti bersiri. Jika ia bukan disebabkan oleh keperluan prestasi yang sangat tinggi, adalah disyorkan untuk menggunakan mod CBC yang lebih selamat dan boleh dipercayai.
2. Algoritma penyulitan asimetriPerbezaan terbesar antara algoritma penyulitan asimetri dan algoritma penyulitan simetri ialah kunci penyulitan dan kunci penyahsulitan bukan lagi satu. Kaedah ini terutamanya untuk menangani model "penyulit berbilang, satu penyahsulit". Jadi sistem kunci awam muncul dalam hubungan banyak-dengan-satu ini. Kunci awam sepadan dengan kunci peribadi. Kunci awam adalah awam, dan mana-mana pengirim data menggunakan kunci awam untuk menyulitkan data, tetapi kandungan yang disulitkan oleh kunci awam hanya boleh dinyahsulit oleh kunci persendirian. Matematik di belakangnya terdiri daripada penguraian nombor besar kepada masalah logaritma diskret pada lengkung elips kompleks, yang sangat kompleks. Algoritma penyulitan asimetri biasa termasuk algoritma DSA, algoritma RSA, algoritma Elgamal, algoritma beg galas, algoritma Rabin, algoritma D-H, algoritma ECC, dsb. Kecekapan pelaksanaan algoritma penyulitan asimetri menyekat aplikasi sebenar algoritma, jadi kebanyakannya digunakan dalam pengesahan identiti dan tidak akan digunakan dalam komunikasi.
3. Algoritma cincangAlgoritma cincang juga merupakan salah satu algoritma penyulitan yang sangat biasa. Ia tidak digunakan untuk penghantaran data, tetapi untuk mengesahkan sama ada data telah diganggu untuk mengelakkan penjenayah daripada mengganggu data. Cirinya ialah tidak kira berapa lama teks asal, ia akan menjadi rentetan panjang tetap, yang hanya boleh disulitkan tetapi tidak dinyahsulit (hanya operasi sehala). Algoritma pencincangan biasa termasuk MD5, SHA-1, SHA 224/256/512, dsb. Dua yang pertama telah terbukti tidak lagi selamat, dan disyorkan untuk menggunakan algoritma yang sangat selamat seperti SHA 256/512.
Algoritma penyulitan di atas telah digunakan secara meluas dalam pelbagai bidang.
Algoritma penyulitan pangkalan dataDengan perkembangan pesat awan dan data besar, pangkalan data secara beransur-ansur berhijrah daripada persekitaran LAN selamat kepada awan peribadi dan juga awan awam. Apabila pangkalan data dipindahkan ke awan, mereka menghadapi cabaran keselamatan yang lebih teruk. Data utama disimpan dalam pangkalan data, dan terdapat banyak risiko keselamatan tersembunyi dalam hos awan Oleh itu, penyulitan pangkalan data awan telah menjadi ubat yang baik untuk menyelesaikan risiko keselamatan.
Algoritma penyulitan simetriBerbeza daripada penyulitan fail dan penyulitan komunikasi, penyulitan pangkalan data memerlukan perhatian khusus terhadap pengembangan algoritma penyulitan dan mempunyai keperluan ketat terhadap prestasi algoritma penyulitan. Pada tahun 2009, apabila Anhua Jinhe sedang membangunkan produk penyulitan pangkalan data, beliau mula-mula mengecualikan algoritma penyulitan strim antara algoritma simetri Alasannya ialah walaupun algoritma ini mempunyai kelebihan semula jadi dalam kecekapan operasi dan menyelesaikan pengembangan data, ia mempunyai kelemahan dalam keadaan tertentu.
Untuk mengejar kecekapan penyulitan, sesetengah pengeluar keselamatan domestik masih menggunakan kaedah ini, tetapi keperluan keselamatan paling asas diabaikan. Pendekatan yang lebih selamat ialah menggunakan penyulitan blok (AES) dalam penyulitan simetri untuk pemprosesan penyulitan yang berkaitan. Penyulitan blok mempunyai keselamatan yang tinggi dan agak selamat, tetapi ia perlu menyelesaikan masalah pengembangan yang disebabkan oleh sekatan saiz blok data. Ini memerlukan mereka bentuk pelan penggunaan yang cukup canggih berdasarkan situasi atau medan tertentu untuk menyelesaikan masalah pengembangan untuk medan atau jenis yang berbeza, dan akhirnya membentuk penyelesaian penyulitan pangkalan data yang sempurna.
Algoritma kata laluan domestikAlgoritma kriptografi ialah teknologi teras untuk memastikan keselamatan maklumat Ia memainkan peranan penting dalam melindungi rahsia negara dan data teras dalam pelbagai industri Menggunakan sistem algoritma kriptografi yang diterima di peringkat antarabangsa dan piawaian berkaitan seperti 3DES, SHA-1, RSA, dll., terdapat banyak masalah bahaya keselamatan. Oleh itu, dari perspektif keselamatan negara dan strategi jangka panjang, agensi negeri dan agensi kawal selia yang berkaitan telah mengemukakan keperluan untuk menggalakkan penggunaan dan pelaksanaan algoritma rahsia negara dan mengukuhkan keselamatan dan kebolehkawalan industri. Pada masa ini, apabila produk penyulitan pangkalan data domestik berhadapan dengan pemilihan dan penilaian pengguna, sebilangan besar daripadanya adalah berdasarkan algoritma rahsia negara yang menyokong Ini sangat penting untuk pengguna dalam industri berkaitan seperti kerajaan, industri ketenteraan, dan maklumat kerahsiaan keselamatan mesti dijamin Untuk menghilangkan terlalu bergantung pada teknologi dan produk asing, algoritma penyulitan, sebagai teknologi keselamatan utama, harus dihasilkan di dalam negara.
Secara khusus, algoritma kriptografi domestik merujuk kepada algoritma kriptografi komersial domestik yang diiktiraf oleh Biro Kriptografi Negeri Contohnya, dalam bidang kewangan, tiga algoritma awam SM2, SM3 dan SM4 digunakan terutamanya. Ambil algoritma SM4 sebagai contoh: Algoritma sifir blok SM4 ialah algoritma sifir simetri blok yang direka secara bebas di negara saya Ia digunakan untuk melaksanakan operasi penyulitan/penyahsulitan data untuk memastikan kerahsiaan data dan maklumat. Syarat asas untuk memastikan keselamatan algoritma kriptografi simetri ialah ia mempunyai panjang kunci yang mencukupi Algoritma SM4 mempunyai panjang blok panjang kunci yang sama dengan algoritma AES, 128 bit, jadi ia lebih selamat daripada algoritma 3DES.
Atas ialah kandungan terperinci Algoritma penyulitan sejarah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!