Sémantique(Sémantique française du grec ancien σημαντικός - dénotant) - la science de la compréhension de certains signes, séquences de symboles et autres symboles. Cette science est utilisée dans de nombreux domaines : linguistique, proxémique, pragmatique, étymologie, etc. Je ne peux pas imaginer ce que signifient ces mots et ce que font toutes ces sciences. Et ce n’est pas grave, la question de l’utilisation de la sémantique dans la mise en page des sites Web m’intéresse.
La note
Je n’aborderai pas ici le terme Web sémantique. À première vue, il peut sembler que les thèmes du Web sémantique et du code HTML sémantique sont presque la même chose. Mais en réalité, le Web sémantique est un concept plutôt philosophique et n’a pas grand chose en commun avec la réalité actuelle.
Disposition sémantique - qu'est-ce que c'est ?
Dans une langue, chaque mot a une signification et un but précis. Lorsque vous dites « saucisse », vous entendez un produit alimentaire qui est de la viande hachée (généralement de la viande) dans un boyau oblong. Bref, vous parlez de saucisses, pas de lait ou de pois verts.
HTML est aussi un langage, ses « mots » appelés balises ont également une certaine signification et un but logique. Pour cette raison, tout d'abord le code HTML sémantique est une mise en page avec l'utilisation correcte des balises HTML, en les utilisant aux fins prévues, comme prévu par les développeurs du langage HTML et des standards du Web.
microformats.org est une communauté qui s'efforce de donner vie aux idées idéalistes du Web sémantique en rapprochant la mise en page de ces mêmes idéaux sémantiques.
Pourquoi et qui a besoin d’une présentation sémantique ?
Si les informations sur mon site Web sont affichées de la même manière que sur le design, pourquoi se creuser la tête et réfléchir à une sorte de sémantique ?! C'est du travail supplémentaire ! Qui a besoin de ça ?! Qui appréciera cela, à part un autre maquettiste ?
J'ai souvent entendu de telles questions. Voyons cela.
HTML sémantique pour les développeurs Web
Code sémantique pour les utilisateurs
Augmente la disponibilité des informations sur le site. Tout d’abord, cela est important pour les agents alternatifs tels que :
- le code sémantique affecte directement la quantité de code HTML. Moins de code -> pages plus légères -> chargement plus rapide, moins de RAM requise côté utilisateur, moins de trafic, taille de base de données plus petite. Le site devient plus rapide et moins cher.
- navigateurs vocaux pour qui les tags et leurs attributs sont importants afin de prononcer le contenu correctement et avec la bonne intonation, ou, à l'inverse, pour ne pas trop en dire.
- appareils mobiles qui ne supportent pas totalement le CSS et s'appuient donc principalement sur du code HTML, l'affichant à l'écran en fonction des balises utilisées.
- appareils d'impression même sans CSS supplémentaire, les informations seront imprimées avec une meilleure qualité (plus proche du design), et créer la version idéale pour l'impression se transformera en quelques manipulations faciles avec CSS.
- De plus, il existe des appareils et des plugins qui vous permettent de naviguer rapidement dans un document - par exemple, par titres dans Opera.
HTML sémantique pour les machines
Les moteurs de recherche améliorent constamment leurs méthodes de recherche pour garantir que les résultats contiennent les informations souhaitées. vraiment à la recherche utilisateur. Le HTML sémantique facilite cela car... se prête à une bien meilleure analyse - le code est plus propre, le code est logique (vous pouvez voir clairement où se trouvent les titres, où se trouve la navigation, où se trouve le contenu).
Un bon contenu et une présentation sémantique de haute qualité constituent déjà une application sérieuse pour bonnes positions dans les résultats des moteurs de recherche.
Les concepteurs et développeurs Web adorent utiliser du jargon et des phrases abstruses qui nous sont parfois difficiles à comprendre. Cet article se concentrera sur le code sémantique. Voyons ce que c'est !
Qu'est-ce que le code sémantique ?
Même si vous n'êtes pas un web designer, vous savez probablement que votre site a été écrit en HTML. HTML était à l'origine conçu comme un moyen de décrire le contenu d'un document, plutôt que comme un moyen de le rendre visuellement agréable. Le code sémantique revient à ce concept original et encourage les concepteurs Web à écrire du code qui décrit le contenu, plutôt que ce à quoi il devrait ressembler. Par exemple, le titre de la page pourrait être programmé comme suit :
C'est le titre de la page
Cela rendrait le titre grand et gras, lui donnant l'apparence d'un titre de page, mais il n'y a rien dans ce document qui le décrit comme un « titre » dans le code. Cela signifie que l'ordinateur ne peut pas le reconnaître comme titre de la page.
Lors de l’écriture sémantique d’un titre, pour que l’ordinateur le reconnaisse comme un « titre », il faut utiliser le code suivant :
C'est le titre
L'apparence de l'en-tête peut être définie dans un fichier séparé appelé « feuilles de style en cascade » (CSS), sans interférer avec votre code HTML descriptif (sémantique).
Pourquoi le code sémantique est-il important ?
La capacité de l'ordinateur à reconnaître correctement le contenu est importante pour plusieurs raisons :
- De nombreuses personnes malvoyantes s'appuient sur des navigateurs vocaux pour lire les pages. De tels programmes ne seront pas capables d'interpréter avec précision les pages à moins qu'elles n'aient été clairement expliquées. En d’autres termes, le code sémantique sert de moyen d’accessibilité.
- Les moteurs de recherche doivent comprendre de quoi parle votre contenu afin de vous classer correctement dans les moteurs de recherche. Le code sémantique a la réputation d’améliorer vos placements dans les moteurs de recherche, car il est facilement compris par les robots des moteurs de recherche.
Le code sémantique présente également d’autres avantages :
- Comme vous pouvez le voir dans l'exemple ci-dessus, le code sémantique est plus court et le chargement est plus rapide.
- Le code sémantique facilite les mises à jour du site car vous pouvez appliquer des styles d'en-tête sur l'ensemble du site plutôt que page par page.
- Le code sémantique est facile à comprendre, donc si un nouveau concepteur Web reprend le code, il lui sera facile de l'analyser.
- Puisque le code sémantique ne contient pas d’éléments de conception, il est alors possible de modifier l’apparence d’un site Web sans recoder tout le HTML.
- Encore une fois, parce que le design est séparé du contenu, le code sémantique permet à quiconque d’ajouter ou de modifier des pages sans avoir besoin d’un bon œil pour le design. Vous décrivez simplement le contenu et CSS détermine à quoi ressemblera ce contenu.
Comment s’assurer qu’un site Web utilise du code sémantique ?
Il n’existe actuellement aucun outil permettant de vérifier le code sémantique. Tout se résume à vérifier les couleurs, les polices ou les mises en page dans le code au lieu de décrire le contenu. Si l’analyse de code semble effrayante, un bon point de départ est de demander à votre concepteur Web : code-t-il en gardant à l’esprit la sémantique ? S'il vous regarde d'un air absent ou commence à bavarder ridiculement, alors vous pouvez être sûr qu'il ne code pas de cette façon. À ce moment-là, vous devez décider si vous souhaitez lui donner une nouvelle direction dans son travail ou vous trouver un nouveau designer ?!
4.1. Bases du chiffrement
L'essence du cryptage utilisant la méthode de remplacement est la suivante. Laissez les messages en russe être cryptés et chaque lettre de ces messages doit être remplacée. Alors, littéralement UN l'alphabet source est comparé à un certain ensemble de symboles (remplacement de chiffre) M A, B – M B, …, I – M I. Les substitutions de chiffre sont choisies de telle manière que deux ensembles quelconques ( M.I. Et M.J., je ≠ j) ne contenait pas d'éléments identiques ( M je ∩ M J = Ø).
Le tableau présenté sur la figure 4.1 est la clé du chiffre de remplacement. Le sachant, vous pouvez effectuer à la fois le cryptage et le déchiffrement.
UN | B | ... | je |
M A | M.B. | ... | M.I. |
Figure 4.1. Table de substitution de chiffre
Lors du cryptage, chaque lettre UN le message ouvert est remplacé par n'importe quel caractère de l'ensemble M A. Si le message contient plusieurs lettres UN, alors chacun d'eux est remplacé par n'importe quel caractère de M A. De ce fait, à l'aide d'une seule clé, il est possible d'obtenir différentes versions du chiffrement pour le même message ouvert. Depuis les ensembles M A, M B, ..., M I ne se croisent pas par paires, alors pour chaque symbole du chiffrement, il est possible de déterminer sans ambiguïté à quel ensemble il appartient et, par conséquent, quelle lettre du message ouvert il remplace. Le décryptage est donc possible et le message ouvert est déterminé de manière unique.
La description ci-dessus de l'essence des chiffres de substitution s'applique à toutes leurs variétés à l'exception de , dans laquelle les mêmes chiffres de substitution peuvent être utilisés pour chiffrer différents caractères de l'alphabet d'origine (c'est-à-dire M je ∩ M J ≠ Ø, je ≠ j).
La méthode de remplacement est souvent mise en œuvre par de nombreux utilisateurs lorsqu'ils travaillent sur un ordinateur. Si, en raison d'un oubli, vous ne changez pas le caractère défini sur le clavier du latin au cyrillique, alors au lieu des lettres de l'alphabet russe, lors de la saisie du texte, des lettres de l'alphabet latin (« remplacements de chiffre ») seront imprimées.
Des alphabets strictement définis sont utilisés pour enregistrer les messages originaux et cryptés. Les alphabets pour l'enregistrement des messages originaux et cryptés peuvent différer. Les caractères des deux alphabets peuvent être représentés par des lettres, leurs combinaisons, des chiffres, des images, des sons, des gestes, etc. A titre d'exemple, on peut citer les hommes dansants du conte de A. Conan Doyle () et le manuscrit de la lettre runique () du roman « Voyage au centre de la Terre » de J. Verne.
Les chiffrements de substitution peuvent être divisés comme suit sous-classes(variétés).
Figure 4.2. Classification des chiffres de substitution
I. Chiffres réguliers. Les remplacements de chiffre sont constitués du même nombre de caractères ou sont séparés les uns des autres par un séparateur (espace, point, tiret, etc.).
Code du slogan. Pour un chiffre donné, la construction d'une table de substitution de chiffre est basée sur un slogan (clé) - un mot facile à retenir. La deuxième ligne de la table de remplacement de chiffre est remplie d'abord avec le mot slogan (et les lettres répétées sont supprimées), puis avec les lettres restantes qui ne sont pas incluses dans le mot slogan, par ordre alphabétique. Par exemple, si le mot slogan « ONCLE » est sélectionné, le tableau ressemble à ceci.
UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je |
D | je | ET | N | UN | B | DANS | g | E | Yo | ET | Z | Oui | À | L | M | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU |
Figure 4.4. Tableau des remplacements de chiffre pour le chiffre slogan
Lors du cryptage du message original « ABRAMOV » à l'aide de la clé ci-dessus, le chiffrement ressemblera à « DYAPDKMI ».
Carré polybien. Le chiffre a été inventé par l'homme d'État, commandant et historien grec Polybe (203-120 av. J.-C.). En ce qui concerne l'alphabet russe et les chiffres indiens (arabes), l'essence du cryptage était la suivante. Les lettres sont écrites dans un carré de 6x6 (pas nécessairement par ordre alphabétique).
1 | 2 | 3 | 4 | 5 | 6 | |
1 | UN | B | DANS | g | D | E |
2 | Yo | ET | Z | ET | Oui | À |
3 | L | M | N | À PROPOS | P. | R. |
4 | AVEC | T | U | F | X | C |
5 | H | Ch | SCH | Kommersant | Oui | b |
6 | E | YU | je | - | - | - |
Figure 4.5. Tableau des substitutions de chiffres pour le carré polybien
La lettre chiffrée est remplacée par les coordonnées du carré (ligne-colonne) dans lequel elle est écrite. Par exemple, si le message original est « ABRAMOV », alors le chiffrement est « 11 12 36 11 32 34 13 ». Dans la Grèce antique, les messages étaient transmis par télégraphie optique (à l'aide de torches). Pour chaque lettre du message, on augmentait d'abord le nombre de torches correspondant au numéro de ligne de la lettre puis le numéro de colonne.
Tableau 4.1. Fréquence d'apparition des lettres russes dans les textes
Non. | Lettre | Fréquence, % | Non. | Lettre | Fréquence, % |
1 | À PROPOS | 10.97 | 18 | b | 1.74 |
2 | E | 8.45 | 19 | g | 1.70 |
3 | UN | 8.01 | 20 | Z | 1.65 |
4 | ET | 7.35 | 21 | B | 1.59 |
5 | N | 6.70 | 22 | H | 1.44 |
6 | T | 6.26 | 23 | Oui | 1.21 |
7 | AVEC | 5.47 | 24 | X | 0.97 |
8 | R. | 4.73 | 25 | ET | 0.94 |
9 | DANS | 4.54 | 26 | Ch | 0.73 |
10 | L | 4.40 | 27 | YU | 0.64 |
11 | À | 3.49 | 28 | C | 0.48 |
12 | M | 3.21 | 29 | SCH | 0.36 |
13 | D | 2.98 | 30 | E | 0.32 |
14 | P. | 2.81 | 31 | F | 0.26 |
15 | U | 2.62 | 32 | Kommersant | 0.04 |
16 | je | 2.01 | 33 | Yo | 0.04 |
17 | Oui | 1.90 |
Il existe des tableaux similaires pour les paires de lettres (digrammes). Par exemple, les bigrammes fréquemment rencontrés sont « to », « but », « st », « po », « en », etc. Une autre technique pour déchiffrer les chiffrements consiste à éliminer les combinaisons possibles de lettres. Par exemple, dans les textes (s'ils sont écrits sans fautes d'orthographe), vous ne trouvez pas les combinaisons « chya », « shchi », « b », etc.
Pour compliquer la tâche de décryptage des chiffrements un à un, même dans les temps anciens, les espaces et/ou les voyelles étaient supprimés des messages originaux avant le cryptage. Une autre méthode qui rend l'ouverture difficile est le cryptage bigrammes(par paires de lettres).
4.3. Chiffres polygrammes
Chiffres de substitution de polygramme- ce sont des chiffres dans lesquels une substitution de chiffre correspond à plusieurs caractères du texte source à la fois.
Ports de chiffrement bigramme. Le chiffre de Porta, présenté sous forme de tableau, est le premier chiffre bigramme connu. La taille de son tableau était de 20 x 20 cellules ; l'alphabet standard était écrit en haut horizontalement et verticalement à gauche (il ne contenait pas les lettres J, K, U, W, X et Z). N'importe quel chiffre, lettre ou symbole pouvait être écrit dans les cellules du tableau - Giovanni Porta lui-même utilisait des symboles - à condition que le contenu d'aucune des cellules ne soit répété. En ce qui concerne la langue russe, le tableau des substitutions de chiffres peut ressembler à ceci.
UN | B | DANS | g | D | E (Yo) | ET | Z | ET (Y) | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | |
UN | 001 | 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 |
B | 032 | 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 |
DANS | 063 | 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 |
g | 094 | 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 |
D | 125 | 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 |
SON) | 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 |
ET | 187 | 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 |
Z | 218 | 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 |
Je (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 |
À | 280 | 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 |
L | 311 | 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 |
M | 342 | 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 |
N | 373 | 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 |
À PROPOS | 404 | 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 |
P. | 435 | 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 |
R. | 466 | 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 |
AVEC | 497 | 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 |
T | 528 | 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 |
U | 559 | 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 |
F | 590 | 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 |
X | 621 | 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 |
C | 652 | 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 |
H | 683 | 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 |
Ch | 714 | 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 |
SCH | 745 | 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 |
Kommersant | 776 | 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 |
Oui | 807 | 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 |
b | 838 | 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 |
E | 869 | 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 |
YU | 900 | 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 |
je | 931 | 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 |
Figure 4.10. Table de remplacement du chiffrement pour le chiffrement des ports
Le cryptage est effectué à l'aide de paires de lettres du message d'origine. La première lettre de la paire indique la ligne de remplacement du chiffre, la seconde la colonne. S'il y a un nombre impair de lettres dans le message d'origine, un caractère auxiliaire (« caractère blanc ») y est ajouté. Par exemple, le message original « AB RA MO V », crypté - « 002 466 355 093 ». La lettre « I » est utilisée comme symbole auxiliaire.
Chiffre Playfair (anglais : « Fair game »). Au début des années 1850. Charles Wheatstone a inventé ce qu'on appelle le « chiffre rectangulaire ». Leon Playfair, un ami proche de Wheatstone, a parlé de ce chiffre lors d'un dîner officiel en 1854 avec le ministre de l'Intérieur, Lord Palmerston, et Prince Albert. Et comme Playfair était bien connu dans les cercles militaires et diplomatiques, le nom de « chiffre Playfair » a été attribué à jamais à la création de Wheatstone.
Ce chiffre était le premier chiffre bigramme alphabétique (la table bigramme de Porta utilisait des symboles, pas des lettres). Il a été conçu pour garantir le secret des communications télégraphiques et a été utilisé par les troupes britanniques pendant la guerre des Boers et la Première Guerre mondiale. Il a également été utilisé par la Garde côtière des îles australiennes pendant la Seconde Guerre mondiale.
Le chiffre permet le cryptage de paires de symboles (digrammes). Ainsi, ce chiffre est plus résistant au craquage qu'un simple chiffre de substitution, car l'analyse de fréquence est plus difficile. Elle peut être réalisée, mais pas pour 26 caractères possibles (alphabet latin), mais pour 26 x 26 = 676 bigrammes possibles. L'analyse de la fréquence des bigrammes est possible, mais elle est nettement plus difficile et nécessite une quantité beaucoup plus grande de texte chiffré.
Pour crypter un message, il est nécessaire de le diviser en bigrammes (groupes de deux symboles), et si deux symboles identiques sont trouvés dans le bigramme, alors un symbole auxiliaire préalablement convenu est ajouté entre eux (dans l'original - X, pour l'alphabet russe - je). Par exemple, « message crypté » devient « message crypté » je communication je" Pour constituer un tableau de clés, un slogan est sélectionné puis il est renseigné selon les règles du système de cryptage Trisemus. Par exemple, pour le slogan « ONCLE », le tableau des clés ressemble à ceci.
D | je | ET | N | UN | B |
DANS | g | E | Yo | ET | Z |
Oui | À | L | M | À PROPOS | P. |
R. | AVEC | T | U | F | X |
C | H | Ch | SCH | Kommersant | Oui |
b | E | YU | - | 1 | 2 |
Figure 4.11. Table clé pour le chiffre Playfair
Ensuite, guidés par les règles suivantes, les paires de caractères du texte source sont cryptées :
1. Si les symboles bigrammes du texte source apparaissent sur une seule ligne, ces symboles sont remplacés par des symboles situés dans les colonnes les plus proches à droite des symboles correspondants. Si le caractère est le dernier d'une ligne, alors il est remplacé par le premier caractère de la même ligne.
2. Si les caractères bigrammes du texte source apparaissent dans une colonne, ils sont alors convertis en caractères de la même colonne située directement en dessous d'eux. Si un caractère est le dernier caractère d'une colonne, alors il est remplacé par le premier caractère de la même colonne.
3. Si les caractères bigrammes du texte source se trouvent dans des colonnes et des lignes différentes, alors ils sont remplacés par des caractères situés dans les mêmes lignes, mais correspondant à d'autres coins du rectangle.
Exemple de chiffrement.
Le bigramme « pour » forme un rectangle - il est remplacé par « zhb » ;
Le bigramme « shi » est dans une colonne – remplacé par « yu » ;
Le bigramme « fr » est sur une seule ligne - remplacé par « xc » ;
Le bigramme « ov » forme un rectangle - il est remplacé par « yzh » ;
Le bigramme « an » est sur une seule ligne - il est remplacé par « ba » ;
Le bigramme « mais » forme un rectangle - il est remplacé par « suis » ;
Le bigramme « es » forme un rectangle - il est remplacé par « gt » ;
Le bigramme « oya » forme un rectangle - il est remplacé par « ka » ;
Le bigramme « environ » forme un rectangle - il est remplacé par « pa » ;
Le bigramme « shche » forme un rectangle - il est remplacé par « shyo » ;
Le bigramme « ni » forme un rectangle - est remplacé par « an » ;
Le bigramme « ee » forme un rectangle et est remplacé par « gi ».
Le code est « zhb yue xs yzh ba am gt ka pa she an gi ».
Pour décrypter, il faut utiliser l'inversion de ces règles, en écartant les caractères je(ou X) s'ils n'ont pas de sens dans le message d'origine.
Il se composait de deux disques - un disque fixe externe et un disque mobile interne, sur lesquels étaient imprimées les lettres de l'alphabet. Le processus de cryptage impliquait de trouver la lettre en clair sur le disque externe et de la remplacer par la lettre du disque interne situé en dessous. Après cela, le disque interne a été déplacé d'une position et la deuxième lettre a été cryptée à l'aide du nouvel alphabet chiffré. La clé de ce chiffre était l'ordre des lettres sur les disques et la position initiale du disque interne par rapport au disque externe.
Table Trisème. L'un des chiffres inventés par l'abbé allemand Trisemus était un chiffre multi-alphabétique basé sur ce qu'on appelle la « table de Trisemus » - une table dont les côtés sont égaux à n, Où n– le nombre de caractères de l'alphabet. Dans la première rangée de la matrice, les lettres sont écrites dans l'ordre de leur ordre dans l'alphabet, dans la seconde - la même séquence de lettres, mais avec un décalage cyclique d'une position vers la gauche, dans la troisième - avec un cyclique décaler de deux positions vers la gauche, etc.
UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je |
B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN |
DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B |
g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS |
D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g |
E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D |
Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E |
ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo |
Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET |
ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z |
Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET |
À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui |
L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À |
M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L |
N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M |
À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N |
P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS |
R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. |
AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. |
T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC |
U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T |
F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U |
X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F |
C | H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X |
H | Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C |
Ch | SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H |
SCH | Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch |
Kommersant | Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH |
Oui | b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant |
b | E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui |
E | YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b |
YU | je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E |
je | UN | B | DANS | g | D | E | Yo | ET | Z | ET | Oui | À | L | M | N | À PROPOS | P. | R. | AVEC | T | U | F | X | C | H | Ch | SCH | Kommersant | Oui | b | E | YU |
Figure 4.17. Table Trisemus
La première ligne est également un alphabet pour les lettres en clair. La première lettre du texte est chiffrée sur la première ligne, la deuxième lettre sur la seconde, et ainsi de suite. Après avoir utilisé la dernière ligne, ils reviennent à la première. Ainsi le message « ABRAMOV » prendra la forme « AVTGRUZ ».
Système de cryptage Vigenère. En 1586, le diplomate français Blaise Vigenère présenta devant la commission d'Henri III une description d'un chiffre simple mais assez fort, basé sur la table de Trisemus.
Avant le cryptage, une clé est sélectionnée parmi les caractères alphabétiques. La procédure de cryptage elle-même est la suivante. Le ième caractère du message ouvert dans la première ligne détermine la colonne et le ième caractère de la clé dans la colonne la plus à gauche détermine la ligne. À l'intersection de la ligne et de la colonne, le ième caractère sera placé dans le chiffrement. Si la longueur de la clé est inférieure à celle du message, elle est réutilisée. Par exemple, le message original est « ABRAMOV », la clé est « UNCLE », le code de cryptage est « DAFIYOYE ».
En toute honnêteté, il convient de noter que la paternité de ce chiffre appartient à l'Italien Giovanni Battista Bellaso, qui l'a décrit en 1553. L'histoire « a ignoré un fait important et a donné au chiffre le nom de Vigenère, malgré le fait qu'il n'a rien fait pour le créer. .» Bellazo a suggéré d'appeler un mot ou une phrase secrète mot de passe(mot de passe italien ; parole française - mot).
En 1863, Friedrich Kasiski a publié un algorithme pour attaquer ce chiffre, bien qu'il existe déjà des cas connus de piratage de son chiffre par des cryptanalystes expérimentés. En particulier, en 1854, le chiffre a été déchiffré par l'inventeur du premier ordinateur analytique, Charles Babbage, bien que ce fait ne soit devenu connu qu'au XXe siècle, lorsqu'un groupe de scientifiques a analysé les calculs et les notes personnelles de Babbage. Malgré cela, le chiffre de Vigenère a longtemps eu la réputation d’être extrêmement résistant au craquage manuel. Ainsi, le célèbre écrivain et mathématicien Charles Lutwidge Dodgson (Lewis Carroll), dans son article « Le chiffre alphabétique », publié dans un magazine pour enfants en 1868, qualifiait le chiffre de Vigenère d'incassable. En 1917, le magazine scientifique populaire Scientific American décrit également le chiffre de Vigenère comme incassable.
Machines rotatives. Les idées d'Alberti et Bellaso ont été utilisées pour créer des machines rotatives électromécaniques dans la première moitié du XXe siècle. Certains d’entre eux ont été utilisés dans différents pays jusque dans les années 1980. La plupart d'entre eux utilisaient des rotors (roues mécaniques), dont la position relative déterminait l'alphabet chiffré actuel utilisé pour effectuer la substitution. La plus célèbre des machines rotatives est la machine allemande Enigma de la Seconde Guerre mondiale.
Les broches de sortie d'un rotor sont connectées aux broches d'entrée du rotor suivant et lorsque le symbole du message d'origine est enfoncé sur le clavier, un circuit électrique est complété, à la suite de quoi l'ampoule avec le symbole de remplacement du chiffre s'allume.
Figure 4.19. Système de rotor Enigma [www.cryptomuseum.com]
L'effet de cryptage de l'Enigma est démontré pour deux touches enfoncées successivement - le courant circule à travers les rotors, est « réfléchi » par le réflecteur, puis à nouveau à travers les rotors.
Figure 4.20. Schéma de cryptage
Note. Les lignes grises montrent d'autres circuits électriques possibles dans chaque rotor. Lettre UN est crypté différemment lorsque des pressions successives sur des touches sont effectuées, d'abord dans g, puis dans C. Le signal prend un chemin différent en raison de la rotation de l'un des rotors après avoir appuyé sur la lettre précédente du message original.
3. Décrire les types de chiffrements de substitution.
La sémantique du code HTML est toujours un sujet brûlant. Certains développeurs essaient de toujours écrire du code sémantique. D’autres critiquent les adeptes du dogme. Et certains n’ont même aucune idée de ce que c’est et pourquoi c’est nécessaire. La sémantique est définie en HTML dans des balises, des classes, des identifiants et des attributs qui décrivent l'objectif mais ne spécifient pas le contenu exact qu'ils contiennent. Autrement dit, nous parlons de séparer le contenu et son format.
Commençons par un exemple évident.
Mauvaise sémantique du code
Bonne sémantique du code
Le texte d’un article écrit par quelqu’un. Inko Gnito- son auteur.Le titre de l'article
Que vous pensiez que HTML5 est prêt à l'emploi ou non, l'utilisation du Mais tout n’est pas représenté aussi clairement par les balises HTML5. Examinons un ensemble de noms de classes et voyons s'ils répondent aux exigences sémantiques. Pas de code sémantique. Ceci est un exemple classique. Chaque atelier de grille CSS utilise ces types de noms de classe pour définir les éléments de grille. Qu'il s'agisse de "yui-b", "grid-4" ou "spanHalf", ces noms sont plus proches de la spécification du balisage que de la description du contenu. Cependant, leur utilisation est inévitable dans la plupart des cas lorsque l'on travaille avec des modèles de grille modulaires. Code sémantique. Le pied de page a acquis une signification forte dans la conception Web. Il s'agit de la partie inférieure de la page, qui contient des éléments tels que la navigation répétée, les droits d'utilisation, les informations sur l'auteur, etc. Cette classe définit un groupe pour tous ces éléments sans les décrire. Si vous êtes passé à HTML5, il est préférable d'utiliser l'élément Pas de code sémantique. Il définit précisément le contenu. Mais pourquoi le texte doit-il être gros ? Pour se démarquer des autres textes plus petits ? "standOut" (surbrillance) est plus approprié dans ce cas. Vous pouvez décider de modifier le style du texte surligné mais ne rien faire concernant sa taille, auquel cas le nom de la classe peut vous dérouter. Code sémantique. Dans ce cas, il s'agit de déterminer le niveau d'importance d'un élément dans l'interface de l'application (par exemple, un paragraphe ou un bouton). Un élément de niveau supérieur peut avoir des couleurs vives et une taille plus grande, tandis que les éléments de niveau inférieur peuvent contenir plus de contenu. Mais dans ce cas, il n’y a pas de définition exacte des styles, le code est donc sémantique. Cette situation est très similaire à l'utilisation de balises Code sémantique. Si seulement chaque nom de classe pouvait être aussi clairement défini ! Dans ce cas, nous avons une description d'une section qui a un contenu dont le but est facile à décrire, tout comme « tweets », « pagination » ou « admin-nav ». Pas de code sémantique. Dans ce cas, nous parlons de définir le style du premier paragraphe de la page. Cette technique est utilisée pour attirer l'attention des lecteurs sur le matériel. Il est préférable d'utiliser le nom "intro", qui ne mentionne pas l'élément. Mais il est encore mieux d'utiliser un sélecteur pour de tels paragraphes, comme article p:first-of-type ou h1 + p . Pas de code sémantique. Il s'agit d'un nom de classe très générique utilisé pour organiser le formatage des éléments. Mais il n’y a rien là-dedans qui se rapporte à une description du contenu. Divers théoriciens sémantiques recommandent d'utiliser un nom de classe comme « groupe » dans de tels cas. Il est probable qu’ils aient raison. Puisque cet élément sert sans aucun doute à regrouper plusieurs autres éléments, le nom recommandé décrira mieux sa fonction sans entrer dans les détails. Pas de code sémantique. Description trop détaillée du format du contenu. Il est préférable de choisir un autre nom qui décrira le contenu plutôt que son format. Code sémantique. La classe décrit très bien l'état du contenu. Par exemple, un message de réussite peut avoir un style complètement différent d'un message d'erreur. Pas de code sémantique. Cet exemple tente de définir le format du contenu plutôt que son objectif. "plain-jane" est très similaire à "normal" ou "regular". Le code CSS idéal doit être écrit de telle manière qu'il n'est pas nécessaire de nommer des classes comme « regular » qui décrivent le format du contenu. Pas de code sémantique. Ces types de classes sont généralement utilisés pour définir des éléments de site qui ne doivent pas être inclus dans la chaîne de liens. Dans ce cas, il est préférable d'utiliser quelque chose comme rel=nofollow pour les liens, mais pas une classe pour tout le contenu. Pas de code sémantique. Il s'agit d'une tentative de décrire le format du contenu, et non son objectif. Disons que vous avez deux articles sur votre site Web. Et vous voulez leur donner des styles différents. « Movie Reviews » aura un fond bleu, tandis que « Breaking News » aura un fond rouge et une taille de police plus grande. Une façon de résoudre le problème est la suivante : Une autre façon est la suivante : Certes, si vous interrogez plusieurs développeurs pour savoir quel code est le plus conforme aux exigences sémantiques, la majorité pointera vers la première option. Cela correspond parfaitement au matériel de cette leçon : une description de l'objectif sans liens vers le formatage. Et la deuxième option indique le format (« blueBg » est le nom de la classe, formé de deux mots anglais signifiant « fond bleu »). Si vous décidez soudainement de modifier la conception des critiques de films - par exemple, créer un fond vert, alors le nom de classe "blueBg" se transformera en un cauchemar pour les développeurs. Et le nom « movie-review » vous permettra de changer de style de conception en toute simplicité tout en conservant un excellent niveau de prise en charge du code. Mais personne ne prétend que le premier exemple est meilleur dans tous les cas sans exception. Disons qu'une certaine nuance de bleu est utilisée à de nombreux endroits du site. Par exemple, il s’agit de l’arrière-plan de certains pieds de page et zones de la barre latérale. Vous pouvez utiliser le sélecteur suivant : Critique du film, pied de page > div:nth-of-type(2), à part > div:nth-of-type(4) ( arrière-plan : #c2fbff; ) Une solution efficace, puisque la couleur est déterminée en un seul endroit. Mais un tel code devient difficile à maintenir, car il comporte un long sélecteur difficile à comprendre visuellement. Vous aurez également besoin d'autres sélecteurs pour définir des styles uniques, ce qui entraînera une répétition du code. Ou vous pouvez adopter une approche différente et les garder séparés : Critique du film ( arrière-plan : #c2fbff; /* Définition des couleurs */ ) pied de page > div:nth-of-type(2) ( arrière-plan : #c2fbff; /* Et encore une chose */ ) à part > div:nth-of - type(4) ( background: #c2fbff; /* Et encore une chose */ ) Ce style permet de garder le fichier CSS plus organisé (différentes zones sont définies dans différentes sections). Mais le prix à payer est la répétition des définitions. Pour les grands sites, l’identification d’une même couleur peut atteindre plusieurs milliers de fois. Terrible! Une solution serait d'utiliser une classe comme "blueBg" pour définir la couleur une fois et de l'insérer dans le code HTML lorsque vous souhaitez utiliser ce design. Bien sûr, il est préférable de l'appeler "mainBrandColor" ou "secondaryFont" pour supprimer la description du formatage. Vous pouvez sacrifier la sémantique du code au profit de l'économie de ressources. MATHÉMATIQUES Vestn. Ohm. un-ta. 2016. N° 3. P. 7-9. UDC 512.4 V.A. Romankov OPTION DE CHIFFREMENT SÉMANTIQUEMENT FORT BASÉ SUR RSA* L'objectif principal de l'article est de proposer une autre manière de sélectionner l'un des principaux paramètres d'un schéma de chiffrement basé sur le système cryptographique RSA, proposé par l'auteur dans des travaux antérieurs. La version originale est basée sur la complexité informatique de la détermination des ordres des éléments dans des groupes multiplicatifs d'anneaux modulaires. La méthode proposée change cette base en un autre problème insoluble consistant à déterminer si les éléments des groupes multiplicatifs des anneaux modulaires appartiennent aux puissances de ces groupes. Un cas particulier d'un tel problème est le problème classique de la détermination de la quadratique d'un résidu, qui est considéré comme difficile en termes de calcul. Cette tâche détermine la force sémantique du système de cryptage bien connu Goldwasser-Micali. Dans la version proposée, la force sémantique du schéma de cryptage repose sur la complexité informatique du problème consistant à déterminer si les éléments des groupes multiplicatifs d'anneaux modulaires appartiennent aux degrés de ces groupes. Mots clés : système cryptographique RSA, chiffrement à clé publique, anneau modulaire, résidu quadratique, force sémantique. 1. Introduction Le but de ce travail est d'introduire de nouveaux éléments pour la version basée sur RSA du schéma de chiffrement introduit par l'auteur dans . A savoir : une autre façon de préciser les sous-groupes apparaissant dans ce diagramme est proposée. Cette méthode conduit au remplacement du problème informatique complexe sous-jacent consistant à déterminer les ordres des éléments des groupes multiplicatifs d'anneaux modulaires par le problème informatiquement complexe de la saisie des puissances données de ces groupes. Un cas particulier de ce dernier problème est le problème classique de la détermination de la quadratique du résidu d'un élément du groupe multiplicatif d'un anneau modulaire. Le système de chiffrement à clé publique RSA a été introduit par Rivest, Shamir et Adleman en 1977. Il est largement utilisé dans le monde entier et figure dans presque tous les manuels de cryptographie. Concernant ce système et sa force cryptographique, voir par exemple. La version de base du système est déterministe et pour cette raison ne possède pas la propriété de secret sémantique, l'indicateur le plus important de la force cryptographique d'un système de cryptage à clé publique. Ainsi, dans la pratique, des variantes du système sont utilisées, dont le but est d'y introduire un élément probabiliste et d'assurer ainsi le respect de la propriété de secret sémantique. Installation : plateforme de chiffrement Soit n le produit de deux grands nombres premiers distincts p et q. L'anneau résiduel Zn est choisi comme plateforme pour le système de chiffrement. Le module n et la plateforme Zn sont des éléments ouverts du système, les nombres p et q sont secrets. * L'étude a été soutenue par la Fondation russe pour la recherche fondamentale (projet 15-41-04312). © Romankov V.A., 2016 Romankov V.A. La fonction d'Euler est notée φ:N ^ N, prenant dans ce cas la valeur φ(n)= (p-1)(q-1). Ainsi, l'ordre du groupe multiplicatif Z*n de l'anneau Zn est (p-1)(q-1). Concernant ces concepts, voir, par exemple. Ensuite, deux sous-groupes M et H du groupe Z*n de périodes coprimes r et t, respectivement, sont sélectionnés. Il est proposé de définir ces sous-groupes à travers leurs éléments générateurs M = gr(g1,...,gk), H = gr(j1,...,hl). Rappelons que la période t(G) d'un groupe G est le plus petit nombre t tel que dr = 1 pour tout élément geG. La période du groupe Z*n est le nombre t (n), égal au plus petit commun multiple des nombres p-1 et q-1. Les sous-groupes M et H peuvent être cycliques et définis par un seul élément générateur. Les éléments générateurs des sous-groupes M et H sont considérés comme ouverts, tandis que les périodes des sous-groupes r et t sont considérées comme secrètes. Dans et il est expliqué comment effectuer efficacement la sélection spécifiée des sous-groupes M et H, connaissant les paramètres secrets p et q. De plus, vous pouvez d'abord définir r et t, puis sélectionner p et q, et ensuite seulement effectuer d'autres actions. A noter que la construction d'éléments d'ordres donnés dans des corps finis est réalisée par une procédure efficace standard, décrite par exemple. Le passage à la construction d'éléments d'ordres donnés dans des groupes multiplicatifs Z*n d'anneaux modulaires Zn s'effectue de manière évidente à l'aide du théorème chinois des restes ou . Installation : sélection des clés La clé de chiffrement e est tout nombre naturel premier à r. La clé de déchiffrement d = ^est calculée à partir de l'égalité (te)d1 = 1 (modr). (1) La clé d existe car le paramètre d1 est calculé en raison du caractère premier mutuel de te et r. La clé e est publique, la clé d et le paramètre d1 sont secrets. Algorithme de chiffrement Pour transmettre un message sur un réseau ouvert - m élément du sous-groupe M, Alice sélectionne un élément aléatoire h du sous-groupe H et calcule l'élément hm. La transmission ressemble à c = (hm)e (modn). (2) Algorithme de décryptage Bob déchiffre le message reçu c comme suit : cd=m(modn). (3) Explication du décryptage correct Puisque ed=1 (modr), il existe un entier k tel que ed = 1 + rk. Alors cd = (hm)ed = (ht)edi m (mr)k = m (mod n). (4) Ainsi, l'élément h s'écrit comme un élément du sous-groupe H sous la forme de la valeur du mot de groupe u(x1,.,xl) à partir des éléments générateurs h1t... ,hl du sous-groupe H. En fait, nous choisissez le mot u(x1,.,xl), puis calculez sa valeur h = u(h1t..., hl). Cela signifie notamment que les éléments générateurs h1t... ,hl sont ouverts. Force cryptographique du schéma La force cryptographique du schéma repose sur la difficulté de déterminer, à partir d'éléments générateurs donnés du sous-groupe H du groupe Z*n, la période ou l'ordre de ce sous-groupe. Si l'ordre d'un élément pouvait être calculé par un algorithme efficace, alors en comptant les ordres o rd(h1), ..., ord(hl) des éléments générateurs du sous-groupe H, on pourrait trouver sa période t = t (H), égal à leur plus petit commun multiple. Cela permettrait de supprimer le facteur d'ombre h de cette option de chiffrement en transformant c1 = met(modri), réduisant ainsi la procédure de décryptage au système RSA classique avec une clé de chiffrement publique et. 3. Une autre façon de définir le sous-groupe H Cet article propose une autre option pour spécifier le sous-groupe H dans le schéma de chiffrement considéré. Considérons d’abord son cas particulier, associé au problème reconnu et insoluble de la détermination de la quadratique du résidu du groupe Z*n. Rappelons que le résidu aeZ^ est dit quadratique s'il existe un élément xeZ*n tel que x2= a (modn). Tous les résidus quadratiques forment un sous-groupe QZ*n du groupe Z*n. Le problème de la détermination de la quadratique d'un résidu arbitraire d'un groupe est considéré comme insoluble sur le plan informatique. Le système de cryptage Goldwasser-Micali, sémantiquement fort, est basé sur cette propriété. Sa stabilité sémantique est entièrement déterminée par le caractère insoluble du problème de la détermination de la quadratique d'un résidu. Supposons que les paramètres p et q soient choisis avec la condition p, q = 3 (mod 4), c'est-à-dire p = 4k +3, q = 41 +3. Dans les schémas liés à la nature quadratique des résidus, cette hypothèse semble naturelle et se produit assez souvent. Si tel est le cas, l'application p:QZ*n ^ QZ*n, p:x^x2, est une bijection. Le sous-groupe des résidus quadratiques QZ*n du groupe a un indice de 4 dans Z*n, voir par exemple. Son ordre o^^2^) est égal à φ(n)/4 = (4k + 2)(41 + 2)/4= 4kl + 2k + 21 + 1, c'est-à-dire que c'est un nombre impair. Dans le schéma de chiffrement ci-dessus, nous supposons H = QZ*n. Tout élément du sous-groupe H est d'ordre impair, puisque la période t(Z*n), égale au plus petit commun multiple des nombres p - 1 = 4k +2 et q - 1 = 41 +2, est divisible par 2 , mais non divisible par 4. Maximum un choix possible pour M est un sous-groupe d'ordre 4 dont les éléments ont des ordres pairs 2 ou 4. S'il existe un moyen efficace de calculer l'ordre (ou au moins sa parité) d'un élément arbitraire Option de chiffrement sémantiquement fort basée sur RSA groupe 2*n, alors le problème de la détermination de la quadratique d’un résidu est effectivement résolu. L'inconvénient du schéma avec ce choix est la faible puissance de l'espace des textes - sous-groupe M. En fait, le schéma duplique le schéma bien connu de Gol-Dwasser-Micali déjà mentionné. Nous obtenons de plus grandes opportunités avec notre prochain choix. Soit un nombre premier pouvant être considéré comme suffisamment grand. Soient p et q des nombres premiers tels qu'au moins un des nombres p - 1 ou q - 1 soit divisible par s. Il est expliqué que l’on peut choisir s puis trouver effectivement p ou q avec la propriété donnée. Disons que le nombre p est recherché sous la forme 2sx +1. x est modifié et le p résultant est vérifié pour sa simplicité jusqu'à ce qu'il s'avère simple. Définissons un sous-groupe Н =, constitué de s-puissances d'éléments du groupe 2*n (pour s = 2 c'est le sous-groupe QZ*n). Si p = 52k + su + 1 et q = 521 + sv +1 (ou q = sl + V +1), où les nombres u et V ne sont pas divisibles par s, alors l'ordre o^(H) du sous-groupe H ayant 2 dans le groupe *n d'indice b2 (ou d'indice s, si q = sl + V +1) est égal à B2k1 + Bku + b1n + w>. Cette ordonnance est première à l’art. En particulier, cela signifie que les éléments du sous-groupe H ont des ordres non divisibles par s. Si un élément est en dehors du sous-groupe H, alors son ordre est divisé par s, puisque s divise l'ordre du groupe. Si le problème du calcul de l'ordre d'un élément du groupe 2*n (ou de la détermination de sa divisibilité par s) peut effectivement être résolu dans le groupe 2*n, alors le problème de l'entrée dans un sous-groupe y est également efficacement résolu. En choisissant ainsi le sous-groupe H, on a la possibilité de choisir comme M un sous-groupe cyclique d'ordre r = 52 (ou ordre s). Un tel sous-groupe existe car l'ordre du groupe 2*n, égal à (p-1)^-1) = (52k + vi)^21 + sv) (ou (52k + vi)^1 + V)), est divisible par 52 (sur s). Pour spécifier H, il suffit de spécifier s. De plus, pour tout choix de sous-groupe M on a M*2 =1. Si, lors du déchiffrement d'un message m, il est possible d'obtenir un élément de la forme tel, où ed est premier avec s, alors en trouvant les entiers y et z tels que edy + s2z = 1, on peut calculer teL = m. Cependant, les éléments générateurs du sous-groupe H ne sont pas indiqués lors de la spécification du type, donc, s'il existe un algorithme de calcul des ordres des éléments du groupe 2*n, cela ne permet pas de calculer la période du sous-groupe H, ce qui aurait été possible dans la version originale de . La force cryptographique de la version du schéma repose sur la difficulté de déterminer l’ordre des éléments du groupe 2*n. Dans la version proposée, elle repose sur la difficulté de déterminer la période du sous-groupe Z*s. Force sémantique Sachez que c = (hm")e (modn) est un message crypté de la forme (2), où heH, m" = m1 ou m" = m2. Le cryptage est considéré comme sémantiquement fort s'il est impossible pour déterminer efficacement à quoi correspond tout -c. La bonne réponse mt (i = 1 ou 2) est obtenue si et seulement si cmje appartient à H. Cela signifie que le cryptage est sémantiquement fort si et seulement si le problème d'occurrence dans H est effectivement indécidable. Dans le cas considéré dans cet article est le problème de l’entrée dans le sous-groupe des s-résidus Z*s. Dans le cas particulier s = 2, nous obtenons le problème bien connu et considéré comme insoluble de l’entrée dans Q2. *n, sur lequel repose la force sémantique du système de cryptage Goldwasser-Micali et d'un certain nombre d'autres systèmes de cryptage. LITTÉRATURE Romankov V. A. Nouveau système de cryptage à clé publique sémantiquement fort basé sur RSA // Mathématiques discrètes appliquées. 2015. N° 3 (29). p. 32-40. Rivest R., Shamir A., Adleman L. Une méthode d'obtention de signatures numériques et de cryptosystèmes à clé publique // Comm. ACM. 1978. Vol. 21, n° 2. P. 120126. Hinek M. Cryptanalyse du RSA et de ses variantes. Boca Raton : Chapman & Hall/CRC, 2010. Chanson Y. Y. Attaques cryptanalytiques contre RSA. Berlin : Springer, 2008. Timbre M., Low R.M. Cryptanalyse appliquée. Briser les chiffres dans le monde réel. Hoboken : JohnWiley&Sons, 2007. Roman"kov V.A. Nouveau cryptage probabiliste à clé publique basé sur le cryptosystème RAS // Croups, Complexity, Cryptology. 2015. Vol. 7, No. 2. P. 153156. Romankov V.A. Introduction à la cryptographie. M. : Forum, 2012. Menezes A., Ojrschot P.C., Vanstone S.A. Manuel de cryptographie appliquée. Boca Raton : CRC Press, 1996. Goldwasser S., Micali S. Cryptage probabiliste et comment jouer au poker mental en gardant secrètes toutes les informations partielles // Proc. 14e Symposium sur la théorie de l'informatique, 1982, pp. 365-377. ,
,
, et ainsi de suite, mais à d'autres éléments d'interface.
Mais...