Kriptografi, kriptografi lan kriptanalisis

Ayo mlumpat menyang kawruh teoretis sing dibutuhake nalika nulis proyek pungkasan. Ayo sinau luwih lengkap babagan kriptografi lan bagean konstituen. Lan ing wektu sing padha, kita bakal sinau luwih akeh babagan cipher sing bakal digunakake nalika nulis proyek pungkasan.

1. Kriptologi lan bagean-bagean konstituen

Kriptologi minangka bidang kawruh sing kalebu:

  • Kriptografi (ilmu babagan cipher).

    Kriptografi iku kabeh babagan enkripsi informasi kanggo nglindhungi saka akses sing ora sah. Informasi iki bisa dadi teks, gambar digital, sinyal audio, lsp. Proses enkripsi ngasilake versi informasi (data) sing dienkripsi, sing diarani ciphertext utawa codetext.

  • Cryptanalysis (metode kanggo cracking ciphers iki).

    Cryptanalysis mriksa cara ngrusak ciphers lan carane cara iki bisa Applied. Ing tembung liyane, kriptanalisis nindakake tugas kuwalik, nyinaoni cara kanggo ngowahi informasi sing dienkripsi dadi plaintext.

2. Kunci kriptografi

Kunci minangka pilihan data sing digunakake kanggo ndhelik lan dekripsi informasi. Kemampuan kanggo kasil dekripsi informasi gumantung apa tombol digunakake. Yen kunci ilang amarga sawetara alasan, mula ora bisa dekripsi data kasebut.

Ukuran kunci kriptografi diukur kanthi bit. Lan iki tegese kunci kriptografi nduweni dawa . Kekuwatan enkripsi sing apik diwenehake kanthi dawane 128 bit.

Jinis kunci kriptografi:

  1. Tombol simetris (tombol rahasia). Ora kaget, kunci kasebut digunakake ing apa sing dikenal minangka algoritma kunci simetris. Tujuan utama yaiku nindakake transformasi kriptografi maju utawa mbalikke (enkripsi/dekripsi, verifikasi kode otentikasi pesen).

  2. Tombol asimetris. Iki digunakake ing algoritma enkripsi kunci asimetris (contone, nalika verifikasi tandha digital elektronik).

Amarga kita bakal nggarap algoritma enkripsi kunci simetris, kita ora bakal rinci banget ing kene.

3. Substitusi aksara

Alfabet substitusi minangka set lengkap karakter sing digunakake kanggo ngode karakter input.

4. Pendekatan kanggo kriptanalisis

Ana macem-macem pendekatan lan metode kriptanalisis, yaiku cara kanggo ngrusak cipher.

Kita bakal njlèntrèhaké sing paling gampang:

  1. Brute force (utawa brute force search) nyoba kabeh kunci sing bisa ditindakake nganti kita nemokake sing bener. Kauntungan saka metode iki yaiku kesederhanaan. Kerugian iku ora cocok kanggo ciphers nglibatno nomer akeh tombol bisa.

  2. Cryptanalysis adhedhasar data statistik - ing pendekatan iki, kita ngumpulake statistik babagan kedadeyan karakter sing beda-beda ing ciphertext, banjur kita dekripsi adhedhasar statistik babagan frekuensi kedadeyan karakter sing beda ing plaintext.

    Contone: kita ngerti yen frekuensi huruf P ing teks Inggris yaiku 1,9%. Nalika kita nganalisa ciphertext, kita nggoleki simbol sing kedadeyan kanthi frekuensi sing padha lan banjur nyimpulake yen iku huruf P.

    Kakurangan saka pendekatan iki yaiku gumantung marang basa, pengarang, lan gaya teks tartamtu.

5. Caesar cipher

Iki minangka salah sawijining cara enkripsi sing paling gampang lan paling kondhang. Jeneng kasebut, mesthi, asale saka Kaisar Gayus Julius Caesar, sing nggunakake metode iki kanggo cocog kanthi rahasia karo jenderal.

Cipher Caesar minangka cipher substitusi ing ngendi saben karakter ing plaintext diganti dening karakter sing sawetara posisi tetep ing sisih kiwa utawa tengen ing alfabet.

Ayo kita ngeset shift kanggo 3. Ing kasus iki, A bakal diganti dening D, B bakal E, lan ing.

Iki minangka jumlah minimal teori sing dibutuhake kanggo ngrampungake proyek pungkasan. Ayo pindhah menyang deskripsi tugas!

Tugas akhir modul Java Syntax. Ayo nulis cryptanalyzer

Tugas sampeyan yaiku nulis program sing bisa digunakake karo cipher Caesar.

Ayo alfabet kriptografi sampeyan kalebu kabeh huruf alfabet Inggris uga tandha wacan (. , ”” : - ! ? SPACE). Yen sampeyan nemoni karakter sing dudu bagean saka alfabet substitusi, lewati wae.

Syarat wajib

Program kasebut kudu duwe 2 mode:

  1. Enkripsi / dekripsi. Program kasebut kudu enkripsi lan dekripsi teks nggunakake kunci kriptografi sing diwenehake.

    Program kasebut kudu nampa path menyang file teks sing ngemot teks sumber lan nggawe file sing ngemot ciphertext sing cocog.

  2. Kriptanalisis kanthi serangan brute force

    Ing mode iki, program kudu ngrusak ciphertext sing ana ing file teks input.

    Yen pangguna milih brute force, program kasebut kudu nemtokake kunci sing bisa ditindakake, pilih kunci sing bener, lan dekripsi teks kasebut.

    Coba kritéria apa sing kudu digunakake program kanggo ngenali kunci sing bener. Sampeyan bisa uga kudu nggatekake spasi ing antarane tembung utawa panggunaan tandha wacan sing bener.

Syarat tambahan (opsional).

1. Kriptanalisis kanthi analisis statistik

Pangguna kudu bisa milih salah siji saka rong cara kriptanalisis. Yen pangguna milih mode analisis statistik, banjur pituduh pangguna kanggo mbukak file teks tambahan ing plaintext, luwih apik dening penulis sing padha lan ing gaya sing padha. Adhedhasar isi file kapindho, program kasebut kudu nyusun statistik babagan kedadeyan karakter lan banjur nyoba nggunakake statistik kasebut kanggo nindakake kriptanalisis ciphertext.

2. Antarmuka pangguna

Nggawe kothak dialog kanggo interaksi karo pangguna ing discretion sampeyan. Yen dikarepake, sampeyan bisa nggunakake kerangka grafis Swing lan JavaFX.

Unggah solusi rampung menyang repositori Git umum.

Proyek kasebut bakal dicenthang nalika grup kasebut ngliwati