Vrijmetselaars-alfabet. Vervangingscijfers - educatieve en wetenschappelijke activiteiten van Vladimir Viktorovich Anisimov. Het alfabet van Thomas More

4.1. Basisprincipes van encryptie

De essentie van codering met behulp van de vervangingsmethode is als volgt. Laat berichten in het Russisch versleuteld worden en elke letter van deze berichten moet vervangen worden. Dan letterlijk A het bronalfabet wordt vergeleken met een bepaalde reeks symbolen (vervanging van cijfers) M A, B – M B, …, I – M I. De cijfervervangingen worden zo gekozen dat elke twee sets ( M ik En M J, ik ≠ j) bevatte geen identieke elementen ( M ik ∩ MJ = Ø).

De tabel in figuur 4.1 is de sleutel van het vervangende cijfer. Als u dit weet, kunt u zowel codering als decodering uitvoeren.

AB... I
M.AM B... M ik

Afb.4.1. Cipher-vervangingstabel

Bij het coderen wordt elke letter A open bericht wordt vervangen door een willekeurig teken uit de set M.A. Als het bericht meerdere letters bevat A, dan wordt elk van hen vervangen door een willekeurig teken uit M.A. Hierdoor is het met behulp van één sleutel mogelijk om verschillende versies van het cijfergram voor hetzelfde open bericht te verkrijgen. Sinds de sets M A, M B, ..., M I niet in paren kruisen, dan is het voor elk symbool van het cijfergram mogelijk om ondubbelzinnig te bepalen tot welke set het behoort, en bijgevolg tot welke letter van het open bericht het vervangt. Daarom is decodering mogelijk en wordt het open bericht op een unieke manier bepaald.

De bovenstaande beschrijving van de essentie van vervangingscijfers is van toepassing op al hun varianten, met uitzondering van , waarin dezelfde vervangingscijfers kunnen worden gebruikt om verschillende karakters van het originele alfabet te coderen (dat wil zeggen M ik ∩ MJ ≠ Ø, ik ≠ j).

De vervangingsmethode wordt vaak door veel gebruikers geïmplementeerd bij het werken op een computer. Als u, vanwege vergeetachtigheid, de tekenset op het toetsenbord niet van Latijn naar Cyrillisch verandert, worden in plaats van letters van het Russische alfabet bij het invoeren van tekst letters van het Latijnse alfabet ("cijfervervangingen") afgedrukt.

Er worden strikt gedefinieerde alfabetten gebruikt om originele en gecodeerde berichten op te nemen. De alfabetten voor het opnemen van originele en gecodeerde berichten kunnen verschillen. Tekens van beide alfabetten kunnen worden weergegeven door letters, hun combinaties, cijfers, afbeeldingen, geluiden, gebaren, enz. Als voorbeeld kunnen we de dansende mannen noemen uit het verhaal van A. Conan Doyle () en het manuscript van de runenbrief () uit de roman “Reis naar het middelpunt van de aarde” van J. Verne.

Vervangingscijfers kunnen in de volgende categorieën worden onderverdeeld subklassen(variëteiten).

Afb.4.2. Classificatie van substitutiecijfers

I. Reguliere cijfers. Cijfervervangingen bestaan ​​uit hetzelfde aantal tekens of zijn van elkaar gescheiden door een scheidingsteken (spatie, punt, streepje, enz.).

Slogancode. Voor een bepaald cijfer is de constructie van een cijfervervangingstabel gebaseerd op een slogan (sleutel) - een gemakkelijk te onthouden woord. De tweede regel van de cijfervervangingstabel wordt eerst gevuld met het sloganwoord (en herhaalde letters worden weggegooid) en vervolgens met de overige letters die niet in het sloganwoord voorkomen, in alfabetische volgorde. Als bijvoorbeeld het sloganwoord “OOM” is geselecteerd, ziet de tabel er als volgt uit.

ABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuI
DIENNABINGEJoENZYNAARLMOVERPRMETTUFXCHSchSCHKommersantYBEYu

Afb.4.4. Tabel met cijfervervangingen voor het slogancijfer

Wanneer u het oorspronkelijke bericht “ABRAMOV” versleutelt met de bovenstaande sleutel, ziet het cijfergram eruit als “DYAPDKMI”.

Polybisch vierkant. Het cijfer werd uitgevonden door de Griekse staatsman, commandant en historicus Polybius (203-120 v.Chr.). Met betrekking tot het Russische alfabet en Indiase (Arabische) cijfers was de essentie van codering als volgt. Letters worden geschreven in een vierkant van 6x6 (niet noodzakelijkerwijs in alfabetische volgorde).


1 2 3 4 5 6
1 ABINGDE
2 JoENZENYNAAR
3 LMNOVERPR
4 METTUFXC
5 HSchSCHKommersantYB
6 EYuI- - -

Afb.4.5. Tabel met cijfervervangingen voor het Polybische vierkant

De gecodeerde letter wordt vervangen door de coördinaten van het vierkant (rij-kolom) waarin deze is geschreven. Als het oorspronkelijke bericht bijvoorbeeld “ABRAMOV” is, dan is het cijfergram “11 12 36 11 32 34 13”. In het oude Griekenland werden berichten verzonden met behulp van optische telegrafie (met behulp van fakkels). Voor elke letter van het bericht werd eerst het aantal fakkels verhoogd dat overeenkomt met het rijnummer van de letter en vervolgens het kolomnummer.

Tabel 4.1. Frequentie van verschijnen van Russische letters in teksten

Nee.BriefFrequentie, %Nee.BriefFrequentie, %
1 OVER10.97 18 B1.74
2 E8.45 19 G1.70
3 A8.01 20 Z1.65
4 EN7.35 21 B1.59
5 N6.70 22 H1.44
6 T6.26 23 Y1.21
7 MET5.47 24 X0.97
8 R4.73 25 EN0.94
9 IN4.54 26 Sch0.73
10 L4.40 27 Yu0.64
11 NAAR3.49 28 C0.48
12 M3.21 29 SCH0.36
13 D2.98 30 E0.32
14 P2.81 31 F0.26
15 U2.62 32 Kommersant0.04
16 I2.01 33 Jo0.04
17 Y1.90

Er zijn vergelijkbare tabellen voor letterparen (digrammen). Veel voorkomende bigrams zijn bijvoorbeeld ‘to’, ‘but’, ‘st’, ‘po’, ‘en’, etc. Een andere techniek voor het kraken van cijfergrammen is gebaseerd op het elimineren van mogelijke lettercombinaties. In teksten (als ze zonder spelfouten zijn geschreven) kun je bijvoorbeeld de combinaties “chya”, “shchi”, “b”, enz. niet vinden.

Om de taak van het breken van één-op-één-cijfers te bemoeilijken, werden zelfs in de oudheid spaties en/of klinkers uit de originele berichten verwijderd vóór de codering. Een andere methode die het openen bemoeilijkt, is encryptie bigramen(in paren van letters).

4.3. Polygramcijfers

Polygramvervangingscijfers- dit zijn cijfers waarbij één cijfervervanging overeenkomt met meerdere tekens van de brontekst tegelijk.

Bigram Cipher-poorten. Het Porta-cijfer, gepresenteerd in tabelvorm, is het eerste bekende bigram-cijfer. De grootte van zijn tafel was 20 x 20 cellen; het standaardalfabet was bovenaan horizontaal en verticaal links geschreven (het bevatte niet de letters J, K, U, W, X en Z). In de tabelcellen konden alle cijfers, letters of symbolen worden geschreven - Giovanni Porta gebruikte zelf symbolen - op voorwaarde dat de inhoud van geen van de cellen werd herhaald. Met betrekking tot de Russische taal kan de tabel met cijfervervangingen er als volgt uitzien.


ABINGDE
(Jij)
ENZEN
(J)
NAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuI
A001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
B032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062
IN063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093
G094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
D125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
HAAR)156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
EN187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
Z218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
ik (Y)249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279
NAAR280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
L311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
M342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
N373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403
OVER404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434
P435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465
R466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496
MET497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
T528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558
U559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589
F590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620
X621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651
C652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682
H683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713
Sch714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744
SCH745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775
Kommersant776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806
Y807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837
B838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868
E869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899
Yu900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930
I931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961

Afb.4.10. Cipher-vervangingstabel voor het poortcijfer

De codering wordt uitgevoerd met behulp van letterparen van het originele bericht. De eerste letter van het paar geeft de rij voor het vervangen van cijfers aan, de tweede - de kolom. Als het oorspronkelijke bericht een oneven aantal letters bevat, wordt er een hulpteken (“leeg teken”) aan toegevoegd. Bijvoorbeeld het originele bericht "AB RA MO V", gecodeerd - "002 466 355 093". De letter “I” wordt gebruikt als hulpsymbool.

Playfair-cijfer (Engels: “Fair game”). Begin jaren 1850. Charles Wheatstone vond het zogenaamde "rechthoekige cijfer" uit. Leon Playfair, een goede vriend van Wheatstone, sprak over dit cijfer tijdens een officieel diner in 1854 met de minister van Binnenlandse Zaken, Lord Palmerston, en prins Albert. En aangezien Playfair goed bekend was in militaire en diplomatieke kringen, werd de naam “Playfair cipher” voor altijd toegekend aan de creatie van Wheatstone.

Dit cijfer was het eerste alfabetische bigramcijfer (Porta's bigramtabel gebruikte symbolen, geen letters). Het was ontworpen om de geheimhouding van telegraafcommunicatie te waarborgen en werd door Britse troepen gebruikt in de Boerenoorlog en de Eerste Wereldoorlog. Het werd ook gebruikt door de kustwacht van de Australische eilanden tijdens de Tweede Wereldoorlog.

Het cijfer zorgt voor de codering van paren symbolen (digrammen). Dit cijfer is dus beter bestand tegen kraken dan een eenvoudig substitutiecijfer, aangezien frequentieanalyse moeilijker is. Het kan worden uitgevoerd, maar niet voor 26 mogelijke tekens (Latijns alfabet), maar voor 26 x 26 = 676 mogelijke bigrams. Bigram-frequentieanalyse is mogelijk, maar is aanzienlijk moeilijker en vereist een veel grotere hoeveelheid cijfertekst.

Om een ​​bericht te versleutelen, is het noodzakelijk om het op te splitsen in bigrams (groepen van twee symbolen), en als er twee identieke symbolen in het bigram worden gevonden, wordt daartussen een vooraf overeengekomen hulpsymbool toegevoegd (in het origineel - X, voor het Russische alfabet - I). 'Gecodeerd bericht' wordt bijvoorbeeld 'gecodeerd bericht' I mededeling I" Om een ​​sleuteltabel te vormen, wordt een slogan geselecteerd en vervolgens ingevuld volgens de regels van het Trisemus-coderingssysteem. Voor de slogan “UNCLE” ziet de sleuteltabel er bijvoorbeeld zo uit.

DIENNAB
INGEJoENZ
YNAARLMOVERP
RMETTUFX
CHSchSCHKommersantY
BEYu- 1 2

Afb.4.11. Sleuteltabel voor het Playfair-cijfer

Vervolgens worden, op basis van de volgende regels, de karakterparen in de brontekst gecodeerd:

1. Als biggramsymbolen in de brontekst op één regel voorkomen, worden deze symbolen vervangen door symbolen in de dichtstbijzijnde kolommen rechts van de overeenkomstige symbolen. Als het teken het laatste teken op een regel is, wordt het vervangen door het eerste teken van dezelfde regel.

2. Als de bigram-tekens van de brontekst in één kolom voorkomen, worden ze omgezet naar de tekens van dezelfde kolom die zich er direct onder bevindt. Als een teken het onderste teken in een kolom is, wordt het vervangen door het eerste teken van dezelfde kolom.

3. Als de bigram-tekens van de brontekst zich in verschillende kolommen en verschillende regels bevinden, worden ze vervangen door tekens die zich op dezelfde regels bevinden, maar overeenkomen met andere hoeken van de rechthoek.

Versleutelingsvoorbeeld.

Het bigram "voor" vormt een rechthoek - het wordt vervangen door "zhb";

Het bigram "shi" staat in één kolom - vervangen door "yu";

Het bigram “fr” staat op één regel - vervangen door “xc”;

Het bigram “ov” vormt een rechthoek - het wordt vervangen door “yzh”;

Het bigram "an" staat op één regel - het wordt vervangen door "ba";

Het bigram "maar" vormt een rechthoek - het wordt vervangen door "ben";

Het bigram “es” vormt een rechthoek - het wordt vervangen door “gt”;

Het bigram “oya” vormt een rechthoek - het wordt vervangen door “ka”;

Het bigram "ongeveer" vormt een rechthoek - het wordt vervangen door "pa";

Het bigram “shche” vormt een rechthoek - het wordt vervangen door “shyo”;

Het bigram “ni” vormt een rechthoek - wordt vervangen door “an”;

Het bigram “ee” vormt een rechthoek en wordt vervangen door “gi”.

De code is "zhb yue xs yzh ba am gt ka pa she an gi."

Om te decoderen moet je de omkering van deze regels gebruiken, waarbij je de karakters weggooit I(of X) als ze niet kloppen in het oorspronkelijke bericht.

Het bestond uit twee schijven: een externe vaste schijf en een interne beweegbare schijf, waarop de letters van het alfabet waren gedrukt. Het coderingsproces omvatte het vinden van de leesbare letter op de externe schijf en deze te vervangen door de letter van de interne schijf eronder. Hierna werd de interne schijf één positie verschoven en werd de tweede letter gecodeerd met behulp van het nieuwe cijferalfabet. De sleutel tot dit cijfer was de volgorde van de letters op de schijven en de beginpositie van de interne schijf ten opzichte van de externe schijf.

Trisemus-tafel. Een van de cijfers uitgevonden door de Duitse abt Trisemus was een multi-alfabetisch cijfer gebaseerd op de zogenaamde "Trisemus-tabel" - een tabel met zijden gelijk aan N, Waar N– het aantal tekens in het alfabet. In de eerste rij van de matrix worden de letters geschreven in de volgorde van hun volgorde in het alfabet, in de tweede - dezelfde reeks letters, maar met een cyclische verschuiving van één positie naar links, in de derde - met een cyclische verschuiving verschuiving met twee posities naar links, enz.

ABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuI
BINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIA
INGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIAB
GDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABIN
DEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABING
EJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGD
JoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDE
ENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJo
ZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoEN
ENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZ
YNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZEN
NAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENY
LMNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAAR
MNOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARL
NOVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLM
OVERPRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMN
PRMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVER
RMETTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERP
METTUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPR
TUFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMET
UFXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETT
FXCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTU
XCHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUF
CHSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFX
HSchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXC
SchSCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCH
SCHKommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSch
KommersantYBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCH
YBEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersant
BEYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantY
EYuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYB
YuIABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBE
IABINGDEJoENZENYNAARLMNOVERPRMETTUFXCHSchSCHKommersantYBEYu

Afb.4.17. Trisemus-tafel

De eerste regel is ook een alfabet voor letters in platte tekst. De eerste letter van de tekst wordt gecodeerd op de eerste regel, de tweede letter op de tweede, enzovoort. Nadat ze de laatste regel hebben gebruikt, keren ze terug naar de eerste. Het bericht “ABRAMOV” zal dus de vorm “AVTGRUZ” aannemen.

Vigenère-coderingssysteem. In 1586 presenteerde de Franse diplomaat Blaise Vigenère aan de commissie van Hendrik III een beschrijving van een eenvoudig maar tamelijk sterk cijfer, gebaseerd op de Trisemus-tabel.

Vóór de codering wordt een sleutel geselecteerd uit de alfabetische tekens. De coderingsprocedure zelf is als volgt. Het i-de teken van het geopende bericht in de eerste regel bepaalt de kolom, en het i-de teken van de sleutel in de meest linkse kolom bepaalt de rij. Op het snijpunt van de rij en de kolom wordt het i-de teken in het cijfergram geplaatst. Als de sleutellengte kleiner is dan het bericht, wordt deze opnieuw gebruikt. Het originele bericht is bijvoorbeeld “ABRAMOV”, de sleutel is “UNCLE”, de coderingscode is “DAFIYOYE”.

In alle eerlijkheid moet worden opgemerkt dat het auteurschap van dit cijfer toebehoort aan de Italiaan Giovanni Battista Bellaso, die het in 1553 beschreef. De geschiedenis “negeerde een belangrijk feit en noemde het cijfer naar Vigenère, ondanks het feit dat hij niets deed om het te creëren. .” Bellazo stelde voor om een ​​geheim woord of een geheime zin te noemen wachtwoord(Italiaans wachtwoord; Frans voorwaardelijk woord).

In 1863 publiceerde Friedrich Kasiski een algoritme om dit cijfer aan te vallen, hoewel er eerder gevallen bekend zijn waarin zijn cijfer werd gebroken door enkele ervaren cryptanalisten. In het bijzonder werd het cijfer in 1854 gekraakt door de uitvinder van de eerste analytische computer, Charles Babbage, hoewel dit feit pas in de 20e eeuw bekend werd, toen een groep wetenschappers de berekeningen en persoonlijke aantekeningen van Babbage analyseerde. Desondanks had het Vigenère-cijfer lange tijd de reputatie extreem resistent te zijn tegen handmatig kraken. Zo noemde de beroemde schrijver en wiskundige Charles Lutwidge Dodgson (Lewis Carroll) in zijn artikel 'The Alphabetic Cipher', gepubliceerd in een kindertijdschrift in 1868, het Vigenère-cijfer onbreekbaar. In 1917 beschreef het populair-wetenschappelijke tijdschrift Scientific American het Vigenère-cijfer ook als onbreekbaar.

Roterende machines. De ideeën van Alberti en Bellaso werden in de eerste helft van de twintigste eeuw gebruikt om elektromechanische roterende machines te creëren. Sommigen van hen werden tot de jaren tachtig in verschillende landen gebruikt. De meeste van hen gebruikten rotoren (mechanische wielen), waarvan de relatieve positie het huidige cijferalfabet bepaalde dat werd gebruikt om de vervanging uit te voeren. De bekendste van de roterende machines is de Duitse Enigma-machine uit de Tweede Wereldoorlog.

De uitgangspinnen van de ene rotor zijn verbonden met de ingangspinnen van de volgende rotor en wanneer het oorspronkelijke berichtsymbool op het toetsenbord wordt ingedrukt, wordt een elektrisch circuit voltooid, waardoor het lampje met het cijfervervangingssymbool oplicht.

Afb.4.19. Enigma roterend systeem [www.cryptomuseum.com]

Het versleutelingseffect van de Enigma wordt getoond voor twee toetsen die achter elkaar worden ingedrukt: de stroom vloeit door de rotoren, wordt "gereflecteerd" door de reflector en vervolgens weer door de rotoren.

Afb.4.20. Versleutelingsschema

Opmerking. De grijze lijnen tonen andere mogelijke elektrische circuits binnen elke rotor. Brief A wordt anders gecodeerd wanneer opeenvolgende toetsaanslagen worden gemaakt, eerst in G, dan binnen C. Het signaal neemt een andere route vanwege de rotatie van een van de rotors nadat op de vorige letter van het oorspronkelijke bericht is gedrukt.

3. Beschrijf de soorten vervangingscijfers.

WISKUNDE

Vestn. Ohm. on-ta. 2016. Nr. 3. P. 7-9.

UDC 512.4 VA Romankov

OPTIE VOOR SEMANTISCH STERKE ENCRYPTIE GEBASEERD OP RSA*

Het belangrijkste doel van het artikel is om een ​​andere manier voor te stellen om een ​​van de belangrijkste parameters te selecteren van een versleutelingsschema gebaseerd op het RSA-cryptografische systeem, voorgesteld door de auteur in eerdere werken. De originele versie is gebaseerd op de rekencomplexiteit van het bepalen van de volgorde van elementen in multiplicatieve groepen modulaire ringen. De voorgestelde methode verandert deze basis in een ander hardnekkig probleem: het bepalen of de elementen van multiplicatieve groepen van modulaire ringen tot de machten van deze groepen behoren. Een speciaal geval van een dergelijk probleem is het klassieke probleem van het bepalen van de kwadraticiteit van een residu, dat rekenkundig als moeilijk wordt beschouwd. Deze taak bepaalt de semantische kracht van het bekende Goldwasser-Micali-coderingssysteem. In de voorgestelde versie is de semantische kracht van het versleutelingsschema gebaseerd op de computationele complexiteit van het probleem van het bepalen of de elementen van multiplicatieve groepen van modulaire ringen tot de graden van deze groepen behoren.

Trefwoorden: RSA-cryptografisch systeem, publieke sleutel-encryptie, modulaire ring, kwadratische rest, semantische kracht.

1. Inleiding

Het doel van dit werk is om nieuwe elementen te introduceren voor de RSA-gebaseerde versie van het encryptieschema geïntroduceerd door de auteur in . Er wordt namelijk een andere manier voorgesteld om de subgroepen die in dit diagram voorkomen te specificeren. Deze methode leidt tot de vervanging van het onderliggende computationeel complexe probleem van het bepalen van de volgorde van elementen van multiplicatieve groepen van modulaire ringen door het computationeel complexe probleem van het invoeren van gegeven machten van deze groepen. Een speciaal geval van dit laatste probleem is het klassieke probleem van het bepalen van de kwadraticiteit van het residu van een element van de multiplicatieve groep van een modulaire ring.

Het RSA-encryptiesysteem voor openbare sleutels werd in 1977 geïntroduceerd door Rivest, Shamir en Adleman. Het wordt over de hele wereld veel gebruikt en is opgenomen in bijna alle cryptografieboeken. Zie bijvoorbeeld over dit systeem en de cryptografische kracht ervan.

De basisversie van het systeem is deterministisch en heeft om deze reden niet de eigenschap van semantische geheimhouding, de belangrijkste indicator voor de cryptografische sterkte van een publieke-sleutel-encryptiesysteem. Daarom worden in de praktijk varianten van het systeem gebruikt, met als doel er een probabilistisch element in te introduceren en daarmee de vervulling van de eigenschap van semantische geheimhouding te garanderen.

Installatie: encryptieplatform

Laat n het product zijn van twee grote verschillende priemgetallen p en q. De restring Zn is gekozen als platform voor het encryptiesysteem. Module n en platform Zn zijn open elementen van het systeem, nummers p en q zijn geheim.

* Het onderzoek werd ondersteund door de Russische Stichting voor Basisonderzoek (project 15-41-04312).

© Romankov V.A., 2016

Romankov V.A.

De Euler-functie wordt aangegeven met φ:N ^ N, waarbij in dit geval de waarde φ(n)= (p-1)(q-1) wordt aangenomen. De volgorde van de multiplicatieve groep Z*n van de ring Zn is dus (p-1)(q-1). Zie bijvoorbeeld over deze concepten.

Vervolgens worden twee subgroepen M en H van de groep Z*n van respectievelijk coprime-perioden r en t geselecteerd. Er wordt voorgesteld om deze subgroepen te definiëren via hun genererende elementen M = gr(g1,...,gk), H = gr(j1,...,hl). Bedenk dat de periode t(G) van een groep G het kleinste getal t is, zodat dr = 1 voor elk element geG. De periode van de groep Z*n is het getal t (n), gelijk aan het kleinste gemene veelvoud van de getallen p-1 en q-1. Subgroepen M en H kunnen cyclisch zijn en worden gedefinieerd door één genererend element. De genererende elementen van de subgroepen M en H worden als open beschouwd, terwijl de perioden van de subgroepen r en t als geheim worden beschouwd.

In en wordt uitgelegd hoe u de gespecificeerde selectie van subgroepen M en H effectief kunt uitvoeren, waarbij u de geheime parameters p en q kent. Bovendien kun je eerst r en t instellen, dan p en q selecteren, en dan pas verdere acties uitvoeren. Merk op dat de constructie van elementen van bepaalde ordes in eindige velden wordt uitgevoerd door een standaard effectieve procedure, die bijvoorbeeld wordt beschreven. De overgang naar het construeren van elementen van gegeven ordes in multiplicatieve groepen Z*n van modulaire ringen Zn wordt op een voor de hand liggende manier uitgevoerd met behulp van de Chinese stelling over resten of . Installatie: selectie van sleutels De encryptiesleutel e is een natuurlijk getal coprime tot r. De decryptiesleutel d = ^wordt berekend op basis van de gelijkheid

(te)d1 = 1 (modr). (1)

De sleutel d bestaat omdat de parameter d1 wordt berekend vanwege de wederzijdse prioriteit van te en r. sleutel e is openbaar, de sleutel d en de parameter d1 zijn geheim.

Versleutelingsalgoritme Om een ​​bericht te verzenden via een open netwerk - m element van de subgroep M, selecteert Alice een willekeurig element h van de subgroep H en berekent het element hm. De transmissie lijkt op

c = (hm)e (modn). (2)

Decoderingsalgoritme

Bob decodeert het ontvangen bericht c als volgt:

cd=m(modn). (3)

Uitleg van correcte decodering

Omdat ed=1 (modr), is er een geheel getal k zodat ed = 1 + rk. Dan

cd = (hm)ed = (ht)edi m (mr)k = m (mod n). (4) Het element h wordt dus geschreven als een element van de subgroep H in de vorm van de waarde van het groepswoord u(x1,.,xl) uit de genererende elementen h1t... ,hl van de subgroep H. Sterker nog, wij

kies het woord u(x1,.,xl) en bereken vervolgens de waarde ervan h = u(h1t..., hl). Dit betekent in het bijzonder dat de genererende elementen h1t...,hl geopend zijn.

Cryptografische kracht van het schema

De cryptografische kracht van het schema is gebaseerd op de moeilijkheid om, uit gegeven genererende elementen van de subgroep H van de groep Z*n, de periode of volgorde van deze subgroep te bepalen. Als de volgorde van een element zou kunnen worden berekend door een efficiënt algoritme, dan zouden we door het tellen van de orden o rd(h1), ..., ord(hl) van de genererende elementen van de subgroep H, de periode t = t kunnen vinden (H), gelijk aan hun kleinste gemene veelvoud . Dit zou het mogelijk maken om de schaduwfactor h uit deze encryptieoptie te verwijderen door c1 = met(modri) te transformeren, waardoor de decryptieprocedure wordt teruggebracht tot het klassieke RSA-systeem met een openbare encryptiesleutel et.

3. Een andere manier om de subgroep H te definiëren

Dit artikel stelt een andere optie voor om de subgroep H te specificeren in het versleutelingsschema dat wordt overwogen. Laten we eerst eens kijken naar het speciale geval ervan, dat verband houdt met het erkende hardnekkige probleem van het bepalen van de kwadraticiteit van het residu van de groep Z*n. Bedenk dat het residu aeZ^ kwadratisch wordt genoemd als er een element xeZ*n is zodat x2= a (modn). Alle kwadratische residuen vormen een subgroep QZ*n van de groep Z*n. Het probleem van het bepalen van de kwadraticiteit van een willekeurig residu van een groep wordt computationeel als hardnekkig beschouwd. Op deze eigenschap is het bekende semantisch sterke Goldwasser-Micali-coderingssysteem gebaseerd. De semantische stabiliteit ervan wordt volledig bepaald door de hardnekkigheid van het probleem van het bepalen van de kwadraticiteit van een residu.

Stel dat de parameters p en q worden gekozen met de voorwaarde p, q = 3 (mod 4), dat wil zeggen p = 4k +3, q = 41 +3. In schema's die verband houden met de kwadratische aard van residuen lijkt deze aanname natuurlijk en komt deze vrij vaak voor. Als dit het geval is, is de afbeelding p:QZ*n ^ QZ*n, p:x^x2 een bijectie.

De subgroep van kwadratische residuen QZ*n van de groep heeft een index van 4 in Z*n, zie bijvoorbeeld. De volgorde o^^2^) is gelijk aan φ(n)/4 = (4k + 2)(41 + 2)/4= 4kl + 2k + 21 + 1, d.w.z. het is een oneven getal.

In het bovenstaande versleutelingsschema gaan we ervan uit dat H = QZ*n. Elk element van de subgroep H heeft een oneven volgorde, aangezien de periode t(Z*n), gelijk aan het kleinste gemene veelvoud van de getallen p - 1 = 4k +2 en q - 1 = 41 +2, deelbaar is door 2 , maar niet deelbaar door 4. De maximale mogelijke keuze voor M is een subgroep van orde 4 waarvan de elementen even orde 2 of 4 hebben. Als er een efficiënte manier is om de orde (of op zijn minst de pariteit ervan) van een willekeurig element te berekenen

Semantisch sterke encryptieoptie op basis van RSA

groep 2*n, dan is het probleem van het bepalen van de kwadraticiteit van een residu effectief opgelost. Het nadeel van het schema met deze keuze is het lage vermogen van de tekstruimte - subgroep M. In feite dupliceert het schema het reeds genoemde bekende Gol-Dwasser-Micali-schema.

Bij onze volgende keuze krijgen we meer kansen. Laten we een priemgetal zijn dat als groot genoeg kan worden beschouwd. Laat p en q priemgetallen zijn zodat tenminste één van de getallen p - 1 of q - 1 deelbaar is door s. Er wordt uitgelegd dat men s kan kiezen en dan effectief p of q kan vinden met de gegeven eigenschap. Laten we zeggen dat er naar het getal p wordt gezocht in de vorm 2sx +1. x wordt gewijzigd en de resulterende p wordt gecontroleerd op eenvoud totdat deze eenvoudig blijkt te zijn.

Laten we een ondergroep Н = definiëren, bestaande uit s-machten van elementen van de groep 2*n (voor s = 2 is dit de ondergroep QZ*n). Als p = 52k + su + 1 en q = 521 + sv +1 (of q = sl + V +1), waarbij de getallen u en V niet deelbaar zijn door s, dan is de volgorde o^(H) van de ondergroep H met 2 in de groep *n index b2 (of index s, als q = sl + V +1) is gelijk aan B2k1 + Bku + b1n + w>. Deze volgorde is coprime tot s. Dit betekent in het bijzonder dat de elementen van de subgroep H orden hebben die niet deelbaar zijn door s. Als een element zich buiten de subgroep H bevindt, wordt de volgorde ervan gedeeld door s, aangezien s de volgorde van de groep deelt. Als het probleem van het berekenen van de volgorde van een element van de groep 2*n (of het bepalen van de deelbaarheid ervan door s) effectief oplosbaar is in de groep 2*n, dan wordt het probleem van het binnentreden van een subgroep daarin ook effectief opgelost

Wanneer we op deze manier de subgroep H kiezen, hebben we de mogelijkheid om als M een cyclische subgroep van orde r = 52 (of orde s) te kiezen. Zo'n subgroep bestaat omdat de volgorde van de groep 2*n, gelijk aan (p-1)^-1) = (52k + vi)^21 + sv) (of (52k + vi)^1 + V)), is deelbaar door 52 (op s). Om H te specificeren, volstaat het om s te specificeren. Bovendien geldt voor elke keuze van subgroep M M*2 =1. Als het bij het decoderen van een bericht m mogelijk is om een ​​element van de vorm tel te verkrijgen, waarbij ed coprime is met s, dan kunnen we, door de gehele getallen y en z te vinden zodat edy + s2z = 1, teL = m berekenen.

De genererende elementen van de subgroep H worden echter niet aangegeven bij het specificeren van het type. Als er dus een algoritme is voor het berekenen van de volgorden van de elementen van de groep 2*n, is het niet mogelijk om de periode van de subgroep te berekenen

H, wat mogelijk zou zijn geweest in de originele versie van .

De cryptografische kracht van de versie van het schema is gebaseerd op de moeilijkheid om de volgorde van het element van de groep 2*n te bepalen. In de voorgestelde versie is deze gebaseerd op de moeilijkheid om de periode van de Z*s-subgroep te bepalen. Semantische sterkte Laat weten dat c = (hm")e (modn) een gecodeerd bericht is in de vorm (2), waarbij heH, m" = m1 of m" = m2. Encryptie wordt als semantisch sterk beschouwd als deze onmogelijk is om effectief te bepalen wat alle -wel correspondeert met c. Het juiste antwoord mt (i = 1 of 2) wordt verkregen als en slechts als cmje bij H hoort. Dit betekent dat de codering semantisch sterk is als en slechts als het probleem zich voordoet in H is feitelijk onbeslisbaar in het geval dat in dit artikel wordt behandeld: het probleem van het binnengaan van de subgroep van s-residuen Z*s. In het speciale geval s = 2 verkrijgen we het bekende, als hardnekkige probleem van het binnengaan van Q2 *n, waarop de semantische kracht van het Goldwasser-Micali-encryptiesysteem en een aantal andere encryptiesystemen is gebaseerd.

LITERATUUR

Romankov V. A. Nieuw semantisch sterk encryptiesysteem voor openbare sleutels gebaseerd op RSA // Toegepaste discrete wiskunde. 2015. Nr. 3 (29). blz. 32-40.

Rivest R., Shamir A., ​​Adleman L. Een methode voor het verkrijgen van digitale handtekeningen en cryptosystemen met publieke sleutels // Comm. ACM. 1978. Vol. 21, nr. 2. P. 120126.

Hinek M. Cryptanalyse van RSA en zijn varianten. Boca Raton: Chapman & Hall/CRC, 2010.

Song Y. Y. Cryptanalytische aanvallen op RSA. Berlijn: Springer, 2008.

Stempel M., Lage R.M. Toegepaste cryptoanalyse. Cijfers breken in de echte wereld. Hoboken: John Wiley & Sons, 2007.

Roman"kov V.A. Nieuwe probabilistische codering met openbare sleutels gebaseerd op het RAS-cryptosysteem // Croups, Complexity, Cryptology. 2015. Vol. 7, nr. 2. P. 153156.

Romankov V.A. Inleiding tot cryptografie. M.: Forum, 2012.

Menezes A., Ojrschot P.C., Vanstone S.A. Handboek voor toegepaste cryptografie. Boca Raton: CRC-pers, 1996.

Goldwasser S., Micali S. Probabilistische codering en hoe je mentaal poker speelt, waarbij je alle gedeeltelijke informatie geheim houdt // Proc. 14e symposium over computertheorie, 1982, blz. 365-377.

Webontwerpers en -ontwikkelaars houden ervan om jargon en duistere zinnen te gebruiken die soms moeilijk voor ons te begrijpen zijn. Dit artikel zal zich richten op semantische code. Laten we uitzoeken wat het is!

Wat is semantische code?

Zelfs als u geen webontwerper bent, weet u waarschijnlijk dat uw site in HTML is geschreven. HTML was oorspronkelijk bedoeld als middel om de inhoud van een document te beschrijven, en niet om het er visueel aantrekkelijk uit te laten zien. Semantische code keert terug naar dit oorspronkelijke concept en moedigt webontwerpers aan code te schrijven die inhoud beschrijft, in plaats van hoe deze eruit zou moeten zien. De paginatitel kan bijvoorbeeld als volgt worden geprogrammeerd:

Dit is de paginatitel

Dit zou de titel groot en vetgedrukt maken, waardoor het lijkt op een paginatitel, maar er staat niets in dat het beschrijft als een “titel” in de code. Dit betekent dat de computer het niet kan herkennen als de titel van de pagina.

Wanneer we een titel semantisch schrijven, moeten we de volgende code gebruiken, zodat de computer deze als een “titel” kan herkennen:

Dit is de titel

Het uiterlijk van de header kan worden gedefinieerd in een apart bestand genaamd “cascading style sheets” (CSS), zonder uw beschrijvende (semantische) HTML-code te verstoren.

Waarom is semantische code belangrijk?

Het vermogen van de computer om inhoud correct te herkennen is om verschillende redenen belangrijk:

  • Veel slechtziende mensen vertrouwen op spraakbrowsers om pagina's te lezen. Dergelijke programma's zullen pagina's niet nauwkeurig kunnen interpreteren tenzij ze duidelijk zijn uitgelegd. Met andere woorden, semantische code dient als middel voor toegankelijkheid.
  • Zoekmachines moeten begrijpen waar uw inhoud over gaat om u correct te kunnen rangschikken in zoekmachines. Semantische code heeft de reputatie de plaatsingen in zoekmachines te verbeteren, omdat deze gemakkelijk wordt begrepen door crawlers van zoekmachines.

Semantische code heeft ook andere voordelen:

  • Zoals je in het bovenstaande voorbeeld kunt zien, is de semantische code korter en gaat het laden sneller.
  • Semantische code maakt site-updates eenvoudiger omdat u koptekststijlen op de hele site kunt toepassen in plaats van per pagina.
  • Semantische code is gemakkelijk te begrijpen, dus als een nieuwe webontwerper de code oppikt, kan hij deze gemakkelijk analyseren.
  • Omdat semantische code geen ontwerpelementen bevat, is het mogelijk om het uiterlijk van een website te wijzigen zonder alle HTML opnieuw te coderen.
  • Nogmaals, omdat het ontwerp gescheiden wordt gehouden van de inhoud, stelt semantische code iedereen in staat pagina's toe te voegen of te bewerken zonder een goed oog voor ontwerp nodig te hebben. U beschrijft eenvoudig de inhoud en CSS bepaalt hoe die inhoud eruit zal zien.

Hoe kunt u ervoor zorgen dat een website semantische code gebruikt?

Er is momenteel geen tool die kan controleren op semantische code. Het komt allemaal neer op het controleren op kleuren, lettertypen of lay-outs in de code in plaats van op het beschrijven van de inhoud. Als codeanalyse eng klinkt, kunt u het beste aan uw webontwerper vragen: codeert hij met semantiek in gedachten? Als hij je wezenloos aankijkt of belachelijk begint te kletsen, dan kun je er zeker van zijn dat hij niet op deze manier codeert. Op dit moment moet je beslissen of je hem een ​​nieuwe richting in zijn werk wilt geven, of een nieuwe ontwerper wilt zoeken?!

Semantiek(Franse sémantique uit het oudgriekse σημαντικός - aanduiding) - de wetenschap van het begrijpen van bepaalde tekens, reeksen symbolen en andere symbolen. Deze wetenschap wordt op veel gebieden gebruikt: taalkunde, proxemics, pragmatiek, etymologie, enz. Ik kan me niet voorstellen wat deze woorden betekenen en wat al deze wetenschappen doen. En het maakt niet uit, ik ben geïnteresseerd in de kwestie van het gebruik van semantiek in de lay-out van websites.

Opmerking

Ik zal hier niet ingaan op de term Semantisch Web. Op het eerste gezicht lijkt het misschien dat de onderwerpen Semantisch Web en semantische HTML-code bijna hetzelfde zijn. Maar in feite is het Semantische Web een nogal filosofisch concept en heeft het niet veel gemeen met de huidige realiteit.

Semantische lay-out - wat is het?

In een taal heeft elk woord een specifieke betekenis en doel. Als u 'worst' zegt, bedoelt u een voedingsproduct dat bestaat uit gehakt (meestal vlees) in een langwerpig omhulsel. Kortom, je bedoelt worst, geen melk of groene erwten.

HTML is ook een taal, de “woorden” die tags worden genoemd, hebben ook een bepaalde logische betekenis en doel. Om deze reden allereerst semantische HTML-code is een lay-out met het juiste gebruik van HTML-tags, door ze te gebruiken voor het beoogde doel, zoals ze bedoeld zijn door de ontwikkelaars van de HTML-taal en webstandaarden.

microformats.org is een gemeenschap die eraan werkt om de idealistische ideeën van het Semantische Web tot leven te brengen door de pagina-indeling dichter bij diezelfde semantische idealen te brengen.

Waarom en wie heeft überhaupt semantische lay-out nodig?

Als de informatie op mijn website op dezelfde manier wordt weergegeven als op het ontwerp, waarom zou je dan je hersens pijnigen en nadenken over een of andere vorm van semantiek?! Dit is extra werk! Wie heeft dit nodig?! Wie zal dit waarderen, behalve een andere lay-outontwerper?

Dergelijke vragen hoorde ik vaak. Laten we het uitzoeken.

Semantische HTML voor webontwikkelaars

Semantische code voor gebruikers

Verhoogt de beschikbaarheid van informatie op de site. Dit is allereerst van belang voor alternatieve middelen zoals:

  • semantische code heeft rechtstreeks invloed op de hoeveelheid HTML-code. Minder code -> lichtere pagina's -> sneller laden, minder RAM vereist aan de gebruikerskant, minder verkeer, kleinere databasegrootte. De site wordt sneller en goedkoper.
  • spraakbrowsers voor wie tags en hun attributen belangrijk zijn om de inhoud correct en met de juiste intonatie uit te spreken, of juist niet te veel te zeggen.
  • mobiele apparaten die CSS niet volledig ondersteunen en daarom voornamelijk afhankelijk zijn van HTML-code, en deze op het scherm weergeven volgens de gebruikte tags.
  • afdrukapparaten zelfs zonder extra CSS zal de informatie met een betere kwaliteit worden afgedrukt (dichter bij het ontwerp), en het creëren van de ideale versie voor afdrukken zal een paar eenvoudige manipulaties met CSS worden.
  • Daarnaast zijn er apparaten en plug-ins waarmee je snel door een document kunt navigeren - bijvoorbeeld op koppen in Opera.

Semantische HTML voor machines

Zoekmachines verbeteren voortdurend hun zoekmethoden om ervoor te zorgen dat de resultaten de gewenste informatie bevatten. echt kijken gebruiker. Semantische HTML vergemakkelijkt dit omdat... leent zich voor veel betere analyses - de code is overzichtelijker, de code is logisch (je kunt duidelijk zien waar de koppen staan, waar de navigatie is, waar de inhoud is).

Goede inhoud plus een hoogwaardige semantische lay-out is al een serieuze toepassing goede posities in de zoekresultaten van zoekmachines.