1 / 14

Datu šifrēšanas algoritmi Cēzara šifrs

Vienošanās Nr. 2008/0001/1DP/1.2.1.2.2./08/IPIA/VIAA/002. Datu šifrēšanas algoritmi Cēzara šifrs. Daugavpils Valsts ģimnāzija Edgars Pudulis. Kriptogrāfija.

chance
Download Presentation

Datu šifrēšanas algoritmi Cēzara šifrs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Vienošanās Nr. 2008/0001/1DP/1.2.1.2.2./08/IPIA/VIAA/002 Datu šifrēšanas algoritmiCēzara šifrs Daugavpils Valsts ģimnāzija Edgars Pudulis

  2. Kriptogrāfija Kriptogrāfija (grieķu: κρυπτός, kryptos - slepens, apslēpts; γράφω, gráphō - rakstīt), arī kriptoloģija, ir informācijas kodēšanas teorijas nozare, kurā izstrādā ziņojumu un metodes, lai aizsargātu tos pret nevēlamu nolasīšanu. Mūsdienās šajā nozarē ir nepieciešamas gan matemātikas, gan informātikas zināšanas, kuras ir cieši saistītas ar informācijas teoriju. Kriptogrāfijas sniegtās iespējas plaši tiek izmantotas arī sadzīvē, piemēram, bankas automātos, elektroniskajā tirdzniecībā un citur.

  3. Seno laiku šifrēšanas metodes Vajadzība šifrēt uzrakstīto (un līdz ar to kriptogrāfija) radās līdzās rakstībai. Senās Indijas, Ēģiptes un Divupes vēsturiskajos dokumentos atrodamas ziņas par šifrēto rakstu sastādīšanas sistēmām un paņēmieniem. Tā seno indiešu manuskriptos ir izklāstīti 64 veidi teksta pārveidošanai, to starpā zīmju rakstīšanas secības jaukšanas noteikumi. Daudzus no šiem veidiem var uzskatīt par kriptogrāfiskiem, tā kā tie nodrošina sarakstes slepenību. Slēptā rakstība tolaik esot skaitījusies par vienu no 64 prasmēm, kuru vajadzētu pārzināt gan vīriešiem, gan sievietēm.

  4. Seno laiku šifrēšanas metodes - Scitals Scitals - taisns cilindrisks priekšmets, uz kura tika uztīta papirusa strēmele, neatstājot starpas starp malām un bez pārlaišanām. Tad uz šī cilindra tika uzrakstīts teksts un strēmele notīta un aizsūtīta. Nolasīt tekstu varēja, uztinot strēmeli uz tāda paša diametra cilindra. Arhimeds kā atšifrēšanas metodi piedāvāja papirusa strēmeli uztīt uz konusa. Pamazām pārvietojot strēmeli uz augšu, vienā vietā teksts kļūs salasāms un kļūst zināms konusa diametrs.

  5. Jūlija Cēzara šifrs Jūlijs Cēzars izmantoja šifru, kurā, pierakstot tekstu, burtus nobīdīja alfabētā par 3 uz priekšu. Ja aizkodētais teksts bija garš, tad, zinot valodā lietojamākos burtus, gan Polībija, gan Cēzara šriftu varēja atkodēt salīdzinoši viegli. Tomēr, ja izveido savu alfabētu, un arī mainīt nobīdes lielumu, atkodēt ziņojumu var tikai tas, kas zina divus parametrus – alfabētu un soli, par cik elementiem ir jānobīda atbilstošais simbols.

  6. Jūlija Cēzara šifra piemērs Latīņu alfabēts ir pasaulē visizplatītākais alfabēts. Tajā ir 23 burti: A, B, C, D, E, F, G, H, I, K, L, M, N, O, P, Q, R, S, T, V, X, Y, Z Kodējot ar soli 3 vārdu LABDIENiegūst ODEGMHQ Atbilstoši veicot pretējo darbību, nobīdot kodētos burtus pa kreisi, var iegūt nokodēto tekstu.

  7. Programma. Mainīgo definēšana Notīrām ekrānu uses crt; var i,nr:integer; alfa,teksts,kods:string; BEGIN clrscr; alfa:='ABCDEFGHIKLMNOPQRSTVXYZ'; readln; END. Izveidojam alfabētu “Gaidām” Enter taustiņu Definējam sekojošus mainīgos: i – cikla operators, nr – kārtas numurs, alfa – alfabēta teksta virkne, teksts – ievadītais teksts, kods – ievadītā teksta kodējums.

  8. Programma. Datu ievads Izvadām uz ekrāna alfabētu for i:=1 to length(alfa) do write(alfa[i],' '); writeln;writeln; Write('Ievadiet tekstu, kuru kodeesim '); readln(teksts); Novirzām kursoru par vienu rindu uz leju Izvadām tekstu uz ekrāna Nolasām ievadītos datus

  9. Iegūtā programma uses crt; var i,nr:integer; alfa,teksts,kods:string; BEGIN clrscr; alfa:='ABCDEFGHIKLMNOPQRSTVXYZ'; for i:=1 to length(alfa) do write(alfa[i],' '); writeln;writeln; Write('Ievadiet tekstu, kuru kodeesim '); readln(teksts); readln; END.

  10. Algoritma realizācijas īpatnības Latīņu alfabētā ir 23 simboli. Lai nokodētu pēdējo burtu Z, alfabēts jāsāk no sākuma, t.i. Z atbilst burts C. Tātad programmā kritiskā robeža ir 20, jo 21 simbolam kodējot ir nepieciešams 24 simbols jeb pirmais. Tāpēc, ja simbola kārtas numurs pārsniedz 20, samazinām to par 23, savukārt palielinot iegūto skaitli par 3, iegūstam atbilstošo koda numuru. Piemēram: 21 (X) iegūst 21 - 23 + 3 = 1 (A)

  11. Programmas loģiskā daļa Nosakām atbilstošā simbola kārtas numuru alfabētā FOR i:=1 to LENGTH(teksts) do BEGIN nr:=POS(teksts[i],alfa); IF nr>20 then nr:=nr-23; IF teksts[i]=' ' then kods:=kods+' ' ELSE kods:=kods+alfa[nr+3]; END; write(kods); Ja simbola kārtas numurs pārsniedz 20, tad samazinām kārtas numuru par 23, jo burta Y kods ir B Ja simbols ir tukšumzīme, tad nemainām to (tukšumzīmes nekodēsim), pretējā gadījumā kodējam izvēloties atbilstošo burtu no alfabēta Izdrukājam kodēto simbolu virkni

  12. Iegūtā programma uses crt; var i,nr:integer; alfa,teksts,kods:string; BEGIN clrscr; alfa:='ABCDEFGHIKLMNOPQRSTVXYZ'; for i:=1 to length(alfa) do write(alfa[i],' '); writeln;writeln; Write('Ievadiet tekstu, kuru kodeesim ');readln(teksts); for i:=1 to length(teksts) do BEGIN nr:=pos(teksts[i],alfa); IF nr>20 then nr:=nr-23; IF teksts[i]=' ' then kods:=kods+' ' else kods:=kods+alfa[nr+3]; END; write(kods); readln; END.

  13. Algoritma pilnveide • Pilnveidojiet programmu un ieviesiet alfabētā iztrūkstošos burtus – U, J, W, kā arī ciparus no 0 līdz 9, veiciet korekcijas, lai programma strādātu bez kļūdām. • Pilnveidojiet programmu tā, lai programma pieprasītu ievadīt arī šifrēšanas nobīdes soli un kodētu datus ar to.

  14. Paldies par uzmanību!

More Related