Mã hóa. Mật mã đơn giản và cách giải mã chúng

4.1. Khái niệm cơ bản về mã hóa

Bản chất của việc mã hóa bằng phương pháp thay thế như sau. Hãy để các tin nhắn bằng tiếng Nga được mã hóa và mỗi chữ cái trong các tin nhắn này phải được thay thế. Sau đó, theo nghĩa đen MỘT bảng chữ cái nguồn được so sánh với một bộ ký hiệu nhất định (thay thế mật mã) M A, B – M B,…, I – M I. Việc thay thế mật mã được chọn sao cho hai bộ bất kỳ ( tôiMJ, tôi ≠ j) không chứa các phần tử giống nhau ( M Tôi ∩ M J = Ø).

Bảng trong hình 4.1 là khóa của mật mã thay thế. Biết nó, bạn có thể thực hiện cả mã hóa và giải mã.

MỘTB... TÔI
M AM B... tôi

Hình.4.1. Bảng thay thế mật mã

Khi mã hóa, mỗi chữ cái MỘT mở tin nhắn có thể được thay thế bằng bất kỳ ký tự nào trong bộ M A. Nếu tin nhắn có nhiều chữ cái MỘT, sau đó mỗi ký tự trong số chúng được thay thế bằng bất kỳ ký tự nào từ M A. Do đó, sử dụng một phím bạn có thể nhận được Các tùy chọn khác nhau mật mã cho cùng một tin nhắn đang mở. Kể từ khi các bộ M A, M B, ..., M tôi không giao nhau theo cặp, thì đối với mỗi ký hiệu của mật mã, có thể xác định rõ ràng nó thuộc về tập hợp nào và do đó, nó thay thế chữ cái nào của tin nhắn đang mở. Do đó, việc giải mã là có thể và tin nhắn đang mở được xác định theo một cách duy nhất.

Mô tả ở trên về bản chất của mật mã thay thế áp dụng cho tất cả các loại của chúng ngoại trừ, trong đó để mã hóa nhân vật khác nhau của bảng chữ cái gốc, có thể sử dụng các cách thay thế mật mã tương tự (tức là M Tôi ∩ M J ≠ Ø, tôi ≠ j).

Phương pháp thay thế thường được nhiều người dùng thực hiện khi làm việc trên máy tính. Nếu do quên, bạn không chuyển bộ ký tự trên bàn phím từ tiếng Latin sang tiếng Cyrillic, thì thay vì các chữ cái trong bảng chữ cái tiếng Nga, khi nhập văn bản, các chữ cái trong bảng chữ cái Latinh (“thay thế mật mã”) sẽ được in.

Các bảng chữ cái được xác định nghiêm ngặt được sử dụng để ghi lại các tin nhắn gốc và được mã hóa. Bảng chữ cái để ghi tin nhắn gốc và tin nhắn được mã hóa có thể khác nhau. Các ký tự của cả hai bảng chữ cái có thể được biểu thị bằng các chữ cái, sự kết hợp của chúng, số, hình ảnh, âm thanh, cử chỉ, v.v. Ví dụ, chúng ta có thể trích dẫn những người đàn ông nhảy múa trong câu chuyện của A. Conan Doyle () và bản thảo của bức thư runic () từ tiểu thuyết “Hành trình đến trung tâm trái đất” của J. Verne.

Mật mã thay thế có thể được chia thành các loại sau các lớp con(Đẳng cấp).

Hình.4.2. Phân loại mật mã thay thế

I. Mật mã thông thường. Các thay thế mật mã bao gồm cùng số ký tự hoặc được phân tách với nhau bằng dấu phân cách (dấu cách, dấu chấm, dấu gạch ngang, v.v.).

Mã khẩu hiệu.Đối với một mật mã cho trước, việc xây dựng bảng thay thế mật mã dựa trên một khẩu hiệu (khóa) - một từ dễ nhớ. Dòng thứ hai của bảng thay thế mật mã trước tiên được điền bằng từ khẩu hiệu (và các chữ cái lặp lại sẽ bị loại bỏ), sau đó là các chữ cái còn lại không có trong từ khẩu hiệu, trong thứ tự ABC. Ví dụ: nếu chọn từ khẩu hiệu “UNCLE” thì bảng sẽ trông như thế này.

MỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔI
DTÔINMỘTBTRONGGEyoZYĐẾNLMVỀPRVỚITbạnFXCHShSCHKommersantYbEYU

Hình.4.4. Bảng mật mã thay thế cho mật mã slogan

Khi mã hóa tin nhắn gốc“ABRAMOV”, sử dụng khóa trên, mật mã sẽ trông giống như “DYAPDKMI”.

Quảng trường Polybian. Mật mã được phát minh bởi chính khách, chỉ huy và nhà sử học Hy Lạp Polybius (203-120 trước Công nguyên). Liên quan đến bảng chữ cái tiếng Nga và chữ số Ấn Độ (Ả Rập), bản chất của mã hóa như sau. Các chữ cái được viết theo hình vuông 6x6 (không nhất thiết phải theo thứ tự bảng chữ cái).


1 2 3 4 5 6
1 MỘTBTRONGGDE
2 yoZYĐẾN
3 LMNVỀPR
4 VỚITbạnFXC
5 HShSCHKommersantYb
6 EYUTÔI- - -

Hình.4.5. Bảng thay thế mật mã cho hình vuông Polybian

Chữ cái được mã hóa được thay thế bằng tọa độ của hình vuông (cột hàng) nơi nó được viết. Ví dụ: nếu tin nhắn gốc là “ABRAMOV” thì mật mã là “11 12 36 11 32 34 13”. TRONG Hy Lạp cổ đại tin nhắn được truyền đi bằng điện báo quang học (sử dụng đèn pin). Đối với mỗi chữ cái của thông điệp, đầu tiên số ngọn đuốc tương ứng với số hàng của chữ cái và sau đó là số cột được nâng lên.

Bảng 4.1. Tần suất xuất hiện của các chữ cái tiếng Nga trong văn bản

KHÔNG.ThưTính thường xuyên, %KHÔNG.ThưTính thường xuyên, %
1 VỀ10.97 18 b1.74
2 E8.45 19 G1.70
3 MỘT8.01 20 Z1.65
4 7.35 21 B1.59
5 N6.70 22 H1.44
6 T6.26 23 Y1.21
7 VỚI5.47 24 X0.97
8 R4.73 25 0.94
9 TRONG4.54 26 Sh0.73
10 L4.40 27 YU0.64
11 ĐẾN3.49 28 C0.48
12 M3.21 29 SCH0.36
13 D2.98 30 E0.32
14 P2.81 31 F0.26
15 bạn2.62 32 Kommersant0.04
16 TÔI2.01 33 yo0.04
17 Y1.90

Có các bảng tương tự cho các cặp chữ cái (digram). Ví dụ: các bigram thường gặp là “to”, “but”, “st”, “po”, “en”, v.v. Một kỹ thuật khác để phá mật mã dựa trên việc loại bỏ các tổ hợp chữ cái có thể có. Ví dụ, trong văn bản (nếu chúng được viết mà không có lỗi chính tả) bạn không thể tìm thấy sự kết hợp của “cha”, “shchi”, “b”, v.v.

Để làm phức tạp thêm nhiệm vụ phá mật mã một-một, ngay cả trong thời cổ đại, dấu cách và/hoặc nguyên âm đã bị xóa khỏi tin nhắn gốc trước khi mã hóa. Một phương pháp khác gây khó khăn khi mở là mã hóa bigram(theo cặp chữ cái).

4.3. Mật mã đa giác

Mật mã thay thế Polygram- đây là những mật mã trong đó một sự thay thế mật mã tương ứng với nhiều ký tự cùng một lúc văn bản nguồn.

Cổng mật mã Bigram. Mật mã Porta, được trình bày dưới dạng bảng, là mật mã bigram đầu tiên được biết đến. Kích thước bàn của anh ấy là 20 x 20 ô; bảng chữ cái tiêu chuẩn được viết ở trên cùng theo chiều ngang và chiều dọc ở bên trái (nó không chứa các chữ cái J, K, U, W, X và Z). Bất kỳ số, chữ cái hoặc ký hiệu nào cũng có thể được viết trong các ô của bảng - chính Giovanni Porta đã sử dụng các ký hiệu - miễn là nội dung của các ô không bị lặp lại. Liên quan đến tiếng Nga, bảng thay thế mật mã có thể trông như thế này.


MỘTBTRONGGDE
(Yo)
Z
(Y)
ĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔI
MỘT001 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
TRONG063 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
CÔ ẤY)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
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
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
Tôi (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
ĐẾN280 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
VỀ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
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
VỚI497 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
bạn559 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
Sh714 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
TÔ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

Hình.4.10. Bảng thay thế mật mã cho mật mã Cổng

Mã hóa được thực hiện bằng cách sử dụng các cặp chữ cái của tin nhắn gốc. Chữ cái đầu tiên của cặp biểu thị hàng thay thế mật mã, chữ cái thứ hai - cột. Nếu có số lẻ các chữ cái trong tin nhắn gốc thì một ký tự phụ (“ký tự trống”) sẽ được thêm vào đó. Ví dụ: tin nhắn gốc “AB RA MO V”, được mã hóa - “002 466 355 093”. Chữ “I” được dùng làm ký hiệu phụ.

Mật mã Playfair (tiếng Anh: “Trò chơi công bằng”). Vào đầu những năm 1850. Charles Wheatstone đã phát minh ra cái gọi là "mật mã hình chữ nhật". Leon Playfair, một người bạn thân của Wheatstone, đã nói về mật mã này trong bữa tối chính thức vào năm 1854 với Bộ trưởng Nội vụ, Lord Palmerston và Hoàng tử Albert. Và vì Playfair nổi tiếng trong giới quân sự và ngoại giao nên cái tên “Mật mã Playfair” mãi mãi được gán cho sự sáng tạo của Wheatstone.

Mật mã này là mật mã bigram chữ cái đầu tiên (bảng bigram của Porta sử dụng các ký hiệu chứ không phải chữ cái). Nó được thiết kế để đảm bảo bí mật liên lạc bằng điện báo và được quân đội Anh sử dụng trong Boer và Thế chiến thứ nhất. Nó cũng được Cảnh sát biển Quần đảo Úc sử dụng trong Thế chiến thứ hai.

Mật mã cung cấp mã hóa các cặp ký hiệu (digram). Do đó, mật mã này có khả năng chống bẻ khóa cao hơn so với mật mã thay thế đơn giản vì việc phân tích tần số khó khăn hơn. Nó có thể được thực hiện, nhưng không phải với 26 ký tự có thể có (bảng chữ cái Latinh), mà dành cho 26 x 26 = 676 bigram có thể. Phân tích tần số Bigram là có thể thực hiện được nhưng khó khăn hơn đáng kể và đòi hỏi lượng văn bản mã hóa lớn hơn nhiều.

Để mã hóa một tin nhắn, cần phải chia nó thành các bigram (nhóm gồm hai ký hiệu) và nếu tìm thấy hai ký hiệu giống hệt nhau trong bigram thì một ký hiệu phụ trợ được thỏa thuận trước sẽ được thêm vào giữa chúng (trong bản gốc - X, đối với bảng chữ cái tiếng Nga - TÔI). Ví dụ: "tin nhắn được mã hóa" trở thành "tin nhắn được mã hóa" TÔI giao tiếp TÔI" Để tạo thành một bảng khóa, một khẩu hiệu được chọn và sau đó được điền vào theo các quy tắc của hệ thống mã hóa Trisemus. Ví dụ: đối với khẩu hiệu “UNCLE”, bảng khóa trông như thế này.

DTÔINMỘTB
TRONGGEyoZ
YĐẾNLMVỀP
RVỚITbạnFX
CHShSCHKommersantY
bEYU- 1 2

Hình.4.11. Bảng khóa cho mật mã Playfair

Sau đó, tuân theo các quy tắc sau, các cặp ký tự trong văn bản nguồn sẽ được mã hóa:

1. Nếu các ký hiệu bigram của văn bản nguồn xuất hiện trên một dòng thì các ký hiệu này sẽ được thay thế bằng các ký hiệu nằm ở các cột gần nhất bên phải của các ký hiệu tương ứng. Nếu ký tự cuối cùng trong một dòng thì nó được thay thế bằng ký tự đầu tiên của cùng dòng.

2. Nếu các ký tự bigram của văn bản nguồn xuất hiện trong một cột thì chúng sẽ được chuyển đổi thành các ký tự của cùng một cột nằm ngay bên dưới chúng. Nếu ký tự là ký tự cuối cùng trong một cột thì nó được thay thế bằng ký tự đầu tiên của cùng cột.

3. Nếu ký hiệu bigram của văn bản nguồn ở dạng cột khác nhaudòng khác nhau, khi đó chúng được thay thế bằng các ký tự nằm trên cùng một dòng nhưng tương ứng với các góc khác của hình chữ nhật.

Ví dụ mã hóa.

Bigram “for” tạo thành một hình chữ nhật - nó được thay thế bằng “zhb”;

Bigram "shi" nằm trong một cột - được thay thế bằng "yu";

Bigram “fr” nằm trên một dòng - được thay thế bằng “xc”;

Bigram “ov” tạo thành một hình chữ nhật - nó được thay thế bằng “yzh”;

Bigram “an” nằm trong một dòng - nó được thay thế bằng “ba”;

Bigram “nhưng” tạo thành một hình chữ nhật - nó được thay thế bằng “am”;

Bigram “es” tạo thành một hình chữ nhật - nó được thay thế bằng “gt”;

Bigram “oya” tạo thành một hình chữ nhật - nó được thay thế bằng “ka”;

Bigram “about” tạo thành một hình chữ nhật - nó được thay thế bằng “pa”;

Bigram “shche” tạo thành một hình chữ nhật - nó được thay thế bằng “shyo”;

Bigram “ni” tạo thành một hình chữ nhật - được thay thế bằng “an”;

Bigram “ee” tạo thành một hình chữ nhật và được thay thế bằng “gi”.

Mã là “zhb yue xs yzh ba am gt ka pa she an gi.”

Để giải mã, bạn phải sử dụng phép đảo ngược các quy tắc này, loại bỏ các ký tự TÔI(hoặc X) nếu chúng không có ý nghĩa trong tin nhắn gốc.

Nó bao gồm hai đĩa - một đĩa cố định bên ngoài và một đĩa di động bên trong, trên đó các chữ cái trong bảng chữ cái được in. Quá trình mã hóa liên quan đến việc tìm kiếm bức thư văn bản thô TRÊN ổ đĩa ngoài và thay thế nó bằng chữ s đĩa nội bộ, đứng dưới cô ấy. Sau đó, đĩa bên trong được dịch chuyển một vị trí và chữ cái thứ hai được mã hóa bằng bảng chữ cái mật mã mới. Chìa khóa của mật mã này là thứ tự của các chữ cái trên đĩa và điểm xuất phátđĩa bên trong so với đĩa bên ngoài.

Bàn Trisemus. Một trong những mật mã do tu viện trưởng người Đức Trisemus phát minh ra là mật mã đa chữ cái dựa trên cái gọi là “bảng Trisemus” - một bảng có các cạnh bằng N, Ở đâu N- số ký tự trong bảng chữ cái. Ở hàng đầu tiên của ma trận, các chữ cái được viết theo thứ tự trong bảng chữ cái, ở hàng thứ hai - cùng một chuỗi các chữ cái, nhưng với sự dịch chuyển theo chu kỳ một vị trí sang trái, ở hàng thứ ba - với một chu kỳ dịch chuyển sang trái hai vị trí, v.v.

MỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔI
BTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘT
TRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTB
GDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONG
DEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGG
EyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGD
yoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDE
ZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyo
ZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyo
YĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZ
YĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZ
ĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZY
LMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾN
MNVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNL
NVỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLM
VỀPRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMN
PRVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀ
RVỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀP
VỚITbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPR
TbạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚI
bạnFXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚIT
FXCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạn
XCHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnF
CHShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFX
HShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXC
ShSCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCH
SCHKommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHSh
KommersantYbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCH
YbEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersant
bEYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantY
EYUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYb
YUTÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbE
TÔIMỘTBTRONGGDEyoZYĐẾNLMNVỀPRVỚITbạnFXCHShSCHKommersantYbEYU

Hình.4.17. Bảng trisemus

Dòng đầu tiên cũng là bảng chữ cái dành cho các chữ cái trong văn bản gốc. Chữ cái đầu tiên của văn bản được mã hóa ở dòng đầu tiên, chữ cái thứ hai ở dòng thứ hai, v.v. Sau khi sử dụng dòng cuối cùng quay trở lại cái đầu tiên một lần nữa. Vì vậy tin nhắn “ABRAMOV” sẽ có dạng “AVTGRUZ”.

Hệ thống mã hóa Vigenère. Năm 1586, nhà ngoại giao Pháp Blaise Vigenère trình diện Henry trước ủy ban III mô tả một mật mã đơn giản nhưng khá mạnh dựa trên bảng Trisemus.

Trước khi mã hóa, một khóa được chọn từ các ký tự bảng chữ cái. Bản thân quy trình mã hóa như sau. Ký tự thứ i của tin nhắn đang mở ở dòng đầu tiên xác định cột và ký tự thứ i của khóa ở cột ngoài cùng bên trái xác định hàng. Tại giao điểm của hàng và cột sẽ có ký tự thứ i được đặt trong mật mã. Nếu độ dài khóa nhỏ hơn tin nhắn thì nó sẽ được sử dụng lại. Ví dụ: tin nhắn gốc là “ABRAMOV”, key là “UNCLE”, mã mã hóa là “DAFIYOYE”.

Công bằng mà nói, cần lưu ý rằng quyền tác giả của mật mã này thuộc về Giovanni Batista Bellaso người Ý, người đã mô tả nó vào năm 1553. Lịch sử “bị bỏ qua sự thật quan trọng và đặt tên mật mã theo tên Vigenère, mặc dù thực tế là ông ấy không hề làm gì để tạo ra nó." Bellazo đề nghị gọi điện Từ bí mật hoặc cụm từ mật khẩu(Mật khẩu tiếng Ý; tạm tha tiếng Pháp - từ).

Năm 1863, Friedrich Kasiski đã công bố một thuật toán để tấn công mật mã này, mặc dù đã có những trường hợp mật mã của ông bị phá bởi một số nhà giải mã có kinh nghiệm trước đó. Đặc biệt, vào năm 1854, mật mã đã được giải mã bởi người phát minh ra phương pháp phân tích đầu tiên. máy tính Charles Babbage, mặc dù sự thật này chỉ được biết đến vào thế kỷ 20, khi một nhóm nhà khoa học phân tích các tính toán và ghi chú cá nhân của Babbage. Mặc dù vậy, mật mã Vigenère nổi tiếng là có khả năng chống bẻ khóa “thủ công” cực kỳ tốt. trong một khoảng thời gian dài. Vì vậy, nhà văn và nhà toán học nổi tiếng Charles Lutwidge Dodgson (Lewis Carroll), trong bài báo “Mật mã chữ cái” đăng trên tạp chí dành cho trẻ em năm 1868, đã gọi mật mã Vigenère là không thể giải mã được. Năm 1917, tạp chí khoa học nổi tiếng Scientific American cũng mô tả mật mã Vigenère là không thể giải mã được.

Máy quay.Ý tưởng của Alberti và Bellaso đã được sử dụng để tạo ra các máy quay cơ điện vào nửa đầu thế kỷ XX. Một số trong số chúng đã được sử dụng trong Những đất nước khác nhau cho đến những năm 1980. Hầu hết đều sử dụng rôto (bánh xe cơ khí), sắp xếp lẫn nhau trong đó xác định bảng chữ cái mật mã hiện tại được sử dụng để thực hiện việc thay thế. Máy quay nổi tiếng nhất là xe Đức Bí ẩn về Thế chiến thứ hai.

Các chân đầu ra của một rôto được nối với các chân đầu vào của rôto tiếp theo và khi nhấn biểu tượng thông báo ban đầu trên bàn phím, một mạch điện sẽ hoàn thành, do đó bóng đèn có biểu tượng thay thế mật mã sẽ sáng lên.

Hình.4.19. Hệ thống quay Enigma [www.cryptomuseum.com]

Hiệu ứng mã hóa của Enigma được thể hiện khi hai phím được nhấn liên tiếp - dòng điện chạy qua rôto, được “phản xạ” từ gương phản xạ, sau đó lại qua rôto.

Hình.4.20. Sơ đồ mã hóa

Ghi chú. Đường màu xám hiển thị khả năng khác mạch điện bên trong mỗi rotor. Thư MỘTđược mã hóa khác nhau khi thực hiện các lần nhấn phím liên tiếp, lần đầu tiên trong G, sau đó vào C. Tín hiệu đang đến dọc theo một tuyến đường khác bằng cách xoay một trong các rôto sau khi nhấn chữ cái trước của tin nhắn gốc.

3. Mô tả các loại mật mã thay thế.

Nếu bạn là người sử dụng thẻ div cho mọi thứ trên trang web thì bài viết này là dành cho bạn. Chúng ta sẽ tập trung vào cách viết HTML rõ ràng, có ngữ nghĩa bằng cách sử dụng đánh dấu hợp lệ. Trong thực tế, bạn sẽ thấy cách giảm thiểu số lượng thẻ div trong mã HTML của mình. Bạn sẽ học cách bố trí ngữ nghĩa không chỉ về mặt lý thuyết mà còn thông qua các ví dụ. Viết các mẫu ngữ nghĩa phù hợp giúp cuộc sống trở nên dễ dàng hơn không chỉ cho bản thân bạn mà còn cho cả nhóm. Chà, trình duyệt diễn giải mã sẽ dễ dàng hơn. Càng ít mã, tải trang càng nhanh. Điều này cũng cho phép bạn tiết kiệm thời gian và dễ hiểu mã khi tạo dự án lớn. Nói cách khác, bố cục ngữ nghĩa là Điều kiện cần thiết tạo ra một trang web chất lượng.

Khái niệm bố cục ngữ nghĩa

Ngữ nghĩa trongBố cục HTML- đây là sự tương ứng của các thẻ với thông tin nằm bên trong chúng. Ngữ nghĩa mã cũng đạt được bằng cách giảm số lượng thẻ. Vì vậy, chúng tôi tạo mã HTML hợp lệ, rõ ràng, dễ đọc. Một trang như vậy sẽ tải nhanh hơn và được xếp hạng bởi các công cụ tìm kiếm.

Làm thế nào để đạt được ngữ nghĩa mã?

Thật đơn giản, điều chính là giữ mọi thứ đơn giản và cố gắng đặt mọi thứ theo kiểu CSS càng nhiều càng tốt và mã JS trong tập tin riêng biệt. Theo kinh điển, trên một trang HTML Chỉ nên đưa vào một tệp CSS và một tệp JS. Về HTML, mỗi trang web đều có tình huống riêng. Rốt cuộc, mỗi người trong số họ là duy nhất. Bây giờ chúng ta hãy xem xét những điểm chính mà các nhà thiết kế bố cục gặp phải:

  • Các tiêu đề phải được đánh dấu bằng thẻ H1, H2, H3, H4 chứ không phải thẻ B và MẠNH.
  • Khi tạo menu, tốt nhất nên sử dụng danh sách UL, danh sách này sẽ chứa các thành phần menu LI. Điều này cho thấy các liên kết là tương đương. Nếu có các mục của lần lồng thứ hai, chúng tôi sẽ tạo một danh sách UL khác bên trong phần tử LI chính.
  • Tất cả hình ảnh dịch vụ (biểu tượng, mũi tên, dấu đầu dòng...) phải được viết bằng mã CSS. Trong HTML, thẻ IMG chỉ nên được sử dụng cho hình ảnh lớn. Giả sử, khái niệm này rất linh hoạt, bắt đầu bằng các bản xem trước 100 x 100 trở lên.
  • Khối văn bản được tạo bằng thẻ P chứ không phải DIV.
  • Không được dùng Thuộc tính STYLE bên trong Thẻ HTML. Đặt tất cả các phong cách vào CSS riêng biệt tài liệu.
  • Điều tương tự cũng xảy ra với JavaScript.
  • Duy trì hệ thống phân cấp tài liệu và logic. Các thành phần trang quan trọng hơn nên có trong phần đầu của HTML mã, ít hơn ở cuối. VỚI sử dụng CSS style và khối DIV, điều này không khó đạt được với bất kỳ bố cục mẫu nào.
  • Có lẽ tôi đã quên điều gì khác... nếu vậy, hãy sửa lại cho tôi trong phần bình luận của bài viết.

Để rõ hơn về bản chất của vấn đề, hãy xem sơ đồ đánh dấu văn bản ngữ nghĩa:

Bố cục ngữ nghĩa trong thực tế - ví dụ về mã HTML + CSS

Bây giờ chúng ta hãy củng cố tất cả các nguyên tắc bố cục ngữ nghĩa này trong thực tế. Chúng tôi sẽ phân tích các tình huống cụ thể.

Loại bỏ các thẻ div không cần thiết

Tôi đã thấy rất nhiều người tạo thẻ div gần biểu mẫu hoặc ul. Tại sao lại tạo thêm một div mà bạn không cần? Bạn có thể đạt được kết quả tương tự bằng cách thêm một vài nguyên tắc vào tệp CSS.

Ví dụ 1:

Ví dụ bên dưới cho thấy cách bạn có thể xóa thẻ div và thêm kiểu tương tự vào bộ chọn biểu mẫu.

Ví dụ 2:

Đôi khi chúng tôi gói nội dung vào khối divđể tạo thụt lề, như trong ví dụ bên trái. Nhưng nếu mỗi khối có tiêu đề h4, chúng ta chỉ cần áp dụng lề cho bộ chọn h4 và xóa thẻ div bổ sung.

Chúng tôi sử dụng đánh dấu mã ngữ nghĩa

Như đã đề cập trước đó, bạn phải luôn sử dụng đánh dấu ngữ nghĩa cho mã HTML của mình. Nhưng điều này không thể đạt được nếu không có biểu định kiểu CSS.

Ví dụ:

Hình ảnh bên dưới cho thấy sự khác biệt giữa đánh dấu div và đánh dấu ngữ nghĩa không có kiểu css.

Giảm thiểu việc sử dụng thẻ div

Có thể bạn đã thấy các mẫu có thẻ div ở khắp mọi nơi... chúng khiến tôi khó chịu. Bạn có thẻ đóng /div bổ sung hoặc thẻ div không được tiết lộ không? Tôi chắc chắn rằng mọi nhà thiết kế bố cục đều đã gặp phải vấn đề tương tự khi có 3-4 người ở gần thẻ div. Để tránh nhầm lẫn, bạn cần hạn chế tối đa việc sử dụng div, điều này sẽ giúp việc theo dõi lỗi dễ dàng hơn.

Ví dụ 1:

Thay vì sử dụng div để tạo đường dẫn điều hướng, bạn có thể sử dụng thẻ p.

Hoặc thay thế. Một bảng tương ứng một-một giữa bảng chữ cái văn bản nguồn và các ký hiệu mã được biên soạn và theo bảng này, quá trình mã hóa một-một sẽ diễn ra. Để giải mã bạn cần phải biết bảng mã.

tồn tại con số lớn mã được sử dụng trong Những khu vực khác nhau cuộc sống con người. Các mã nổi tiếng được sử dụng chủ yếu để thuận tiện cho việc truyền thông tin bằng cách này hay cách khác. Nếu bảng mã chỉ có máy phát và máy thu biết thì kết quả là một mật mã khá nguyên thủy có thể dễ dàng tuân theo để phân tích tần số. Nhưng nếu một người ở xa lý thuyết mã hóa và không quen với việc phân tích tần số của văn bản, thì việc giải mã những mật mã như vậy là khá khó khăn đối với anh ta.

A1Z26

Mật mã đơn giản nhất. Được gọi là A1Z26 hoặc trong phiên bản tiếng Nga là A1Я33. Các chữ cái trong bảng chữ cái được thay thế bằng số sê-ri của chúng.

"NoZDR" có thể được mã hóa thành 14-15-26-4-18 hoặc 1415260418.

mã Morse

Các chữ cái, số và một số ký hiệu được liên kết với một tập hợp các dấu chấm và dấu gạch ngang, có thể được truyền đi bằng tín hiệu radio, âm thanh, tiếng gõ cửa, điện báo ánh sáng và tín hiệu cờ. Bạn có thể đọc thêm về mã Morse trên trang.

chữ nổi

Chữ nổi là một hệ thống đọc xúc giác dành cho người mù, bao gồm các ký tự sáu chấm được gọi là ô. Ô bao gồm ba chấm có chiều cao và hai chấm có chiều rộng.

Các ký tự chữ nổi khác nhau được hình thành bằng cách đặt các dấu chấm ở các vị trí khác nhau trong một ô.

Để thuận tiện, khi đọc các điểm được mô tả như sau: 1, 2, 3 từ bên trái từ trên xuống dưới và 4, 5, 6 từ bên phải từ trên xuống dưới.

Khi soạn thảo văn bản, hãy tuân thủ các quy tắc sau:

    một ô (dấu cách) bị bỏ qua giữa các từ;

    sau dấu phẩy và dấu chấm phẩy ô không bị bỏ qua;

    một dấu gạch ngang được viết cùng với từ trước đó;

    một dấu hiệu kỹ thuật số được đặt ở phía trước của số.

Trang mã

Trong các nhiệm vụ và câu đố trên máy tính, các chữ cái có thể được mã hóa theo mã của chúng trong các trang mã khác nhau - các bảng được sử dụng trên máy tính. Đối với văn bản Cyrillic, tốt nhất nên sử dụng các bảng mã phổ biến nhất: Windows-1251, KOI8, CP866, MacCyrillic. Mặc dù đối với mã hóa phức tạp, bạn có thể chọn thứ gì đó kỳ lạ hơn.

Bạn có thể mã hóa số thập lục phân hoặc bạn có thể chuyển đổi chúng thành số thập phân. Ví dụ: chữ E trong KOI8-R có mã B3 (179), trong CP866 - F0 (240) và trong Windows-1251 - A8 (168). Hoặc bạn có thể tìm kiếm sự trùng khớp với các chữ cái ở bảng bên phải ở bảng bên trái, khi đó văn bản sẽ được gõ bằng những từ “điên rồ” như èαᬫº∩íαδ (866→437) hoặc Êðàêîçÿáðû (1251→Latin-1).

Đây https://www.artlebedev.ru/tools/decoding/advanced/ Có một bộ giải mã tốt cho các văn bản được mã hóa như vậy :)

Mật mã Tam điểm

Mật mã Masonic còn được gọi là “pigpen” hoặc “tic-tac-toe”. Mật mã này là một mật mã thay thế đơn giản, trong đó mỗi chữ cái trong bảng chữ cái có một ký hiệu đồ họa tương ứng được tính từ một trong các lưới bên dưới.

Để mã hóa một chữ cái cụ thể bằng mật mã này, trước tiên bạn phải xác định vị trí của chữ cái đó ở một trong bốn lưới, sau đó vẽ phần lưới bao quanh chữ cái đó. Đó là, một cái gì đó như thế này:

Nếu bạn biết chìa khóa (cách sắp xếp các chữ cái trong lưới), thì việc làm sáng tỏ một dòng chữ như vậy là khá dễ dàng. Nhưng nếu các chữ cái trong lưới ban đầu được sắp xếp theo một quy tắc chưa biết nào đó (với từ khóa, từng cái một hoặc thậm chí ngẫu nhiên), thì trong tình huống này, nó luôn có thể hữu ích

Cách sử dụng ký hiệu đồ họa thay vì các chữ cái không phải là trở ngại lớn cho việc phân tích mật mã và hệ thống này giống hệt các hệ thống khác mạch đơn giản sự thay thế bằng một bảng chữ cái. Do tính đơn giản của nó, mật mã này thường được nhắc đến trong sách dành cho trẻ em về mã hóa, viết bí mật và tất cả các loại nội dung gián điệp khác.

Thời gian chính xác về nguồn gốc của mật mã vẫn chưa được biết, nhưng một số hồ sơ được tìm thấy về hệ thống này có niên đại từ thế kỷ 18. Các biến thể của mật mã này đã được sử dụng bởi Dòng Rosicrucian và Hội Tam điểm. Sau này sử dụng nó khá thường xuyên trong các tài liệu và thư từ bí mật của họ, đó là lý do tại sao mật mã này bắt đầu được gọi là mật mã Masonic. Ngay cả trên bia mộ của Masons, bạn cũng có thể thấy những dòng chữ sử dụng mã này. Hệ thống tương tự mã hóa đã được sử dụng trong Nội chiến Hoa Kỳ bởi quân đội của George Washington, cũng như các tù nhân trong các nhà tù liên bang của Liên bang Hoa Kỳ.

Dưới đây là hai tùy chọn (xanh và đỏ) để điền vào lưới các mật mã đó. Các chữ cái được sắp xếp theo cặp, chữ cái thứ hai trong cặp được vẽ bằng ký hiệu có dấu chấm:

Mật mã bản quyền

Rất nhiều loại mật mã, trong đó một ký tự của bảng chữ cái (chữ cái, số, dấu chấm câu) tương ứng với một ký hiệu đồ họa (hiếm khi nhiều hơn), đã được phát minh. Hầu hết chúng được phát minh để sử dụng trong các bộ phim khoa học viễn tưởng, phim hoạt hình và trò chơi máy tính. Dưới đây là một số trong số họ:

Đàn ông nhảy múa

Một trong những mật mã thay thế của tác giả nổi tiếng nhất là “”. Nó được phát minh và mô tả bởi nhà văn người Anh Arthur Conan Doyle trong một trong những tác phẩm của ông về Sherlock Holmes. Các chữ cái trong bảng chữ cái được thay thế bằng các biểu tượng trông giống như những người đàn ông nhỏ bé trong các tư thế khác nhau. Trong cuốn sách, những người đàn ông nhỏ bé không được phát minh ra cho tất cả các chữ cái trong bảng chữ cái, vì vậy người hâm mộ đã sửa đổi và làm lại các ký hiệu một cách sáng tạo, và kết quả là mật mã này:

Bảng chữ cái của Thomas More

Nhưng bảng chữ cái như vậy đã được Thomas More mô tả trong chuyên luận “Utopia” năm 1516:

Bill Cipher từ loạt phim hoạt hình "Gravity Falls"

Bảng chữ cái Jedi từ Star Wars

Bảng chữ cái người ngoài hành tinh từ Futurama

Bảng chữ cái Kryptonian của Superman

bảng chữ cái sinh học

Và xét theo lý do trong phần bình luận, tôi muốn làm rõ một điều tâm điểm, bạn cần hiểu điều này trước khi nói về ngôn ngữ HTML và các thẻ mà nó sử dụng.

Thời điểm này nằm ở việc hiểu một khái niệm quan trọng như ngữ nghĩa mã. Chúng ta hãy cố gắng hiểu vấn đề này trong bài đăng này và tại sao tất cả những điều này là cần thiết.

Chuyện gì đã xảy ra vậy ngữ nghĩa mã?

Ngữ nghĩa(theo quan điểm ngôn ngữ học) là ý nghĩa, nội dung thông tin của một ngôn ngữ hoặc đơn vị riêng của nó.

Như chúng ta đã biết, đơn vị cấu trúc ngôn ngữ HTML là các thẻ, chúng là những đơn vị riêng lẻ mang ý nghĩa, nội dung thông tin.

Khi chúng ta có một số thông tin trước mặt cần được trình bày trên một trang web trên Internet, trước hết, chúng ta phải giải thích cho máy tính biết phần thông tin này là gì. Nếu không biết điều này, đơn giản là nó sẽ không thể hiển thị chính xác tất cả nội dung.

Do đó, khi chúng tôi tạo một trang web bằng ngôn ngữ HTML, chúng tôi sẽ giải thích cho máy tính phần tử nào sẽ đóng vai trò gì trên trang.

Chúng ta phải hiểu rằng nội dung của từng thành phần của trang web phải được đặt trong các thẻ tương ứng với mục đích logic và ngữ nghĩa của chúng.

Những thứ kia. các tiêu đề trong văn bản sẽ được chứa trong thẻ h 1-h 6, đoạn văn trong thẻ p, danh sách trong thẻ ul / ol (li), v.v.

Mã đáp ứng các điều kiện này được gọi là ngữ nghĩa những thứ kia. mỗi phần tử trên một trang web tương ứng với Chính xácý nghĩa ngữ nghĩa.

Bây giờ câu hỏi là liệu chúng ta có thể đặt tiêu đề trên trang web vào thẻ đoạn văn không?
Tại sao không? Tất nhiên là chúng tôi có thể. Nhiều người sẽ nói, nhưng trong trường hợp này, chúng ta mất đi thiết kế mà các tiêu đề h 1-h 6. Nhưng trên thực tế, thiết kế không đóng bất kỳ vai trò nào ở đây. Bằng cách sử dụng Kiểu CSS, chúng ta có thể gán cho bất kỳ đoạn văn nào một thiết kế giống hệt như phần tử h 1-h 6.

Kết luận mà chúng ta phải rút ra từ điều này là ngữ nghĩa của mã và thiết kế là hai thứ khác nhau không nên nhầm lẫn với nhau. Một thiết kế nhất định được gán cho mỗi thẻ, nhưng nó có thể dễ dàng thay đổi, nhưng ý nghĩa ngữ nghĩa của thẻ này không thể thay đổi.

Chúng ta có thể đặt tiêu đề trong một đoạn văn, nhưng trong trường hợp này ngữ nghĩa của mã bị mất và văn bản này sẽ mang một ý nghĩa hoàn toàn khác.

Do đó, trước khi đưa một phần tử vào bất kỳ thẻ nào, bạn nên suy nghĩ xem nó mang chức năng và ý nghĩa gì trên trang?

Một câu hỏi hợp lý được đặt ra: tại sao, trong trường hợp này, chúng ta lại cần ngữ nghĩa mã?

Tại sao phải viết tiêu đề thành đề mục, đoạn viết thành đoạn văn, viết tắt thành viết tắt v.v.?

Theo tôi, có một số lý do sẽ giúp bạn nghiêng về mã ngữ nghĩa. Đánh dấu ngữ nghĩa mang lại cho chúng ta những gì?

1) Thông tin về cách trình duyệt mặc định sẽ hiển thị phần tử này hoặc phần tử kia trên trang;

Ví dụ: chúng tôi biết rằng tiêu đề h 1, nếu không có bất kỳ kiểu đặc biệt nào, sẽ được hiển thị trên trang có kích thước 2em và in đậm. Nhưng theo tôi, đây là lý do không đáng kể nhất.

2) Mã ngữ nghĩa được các công cụ tìm kiếm đọc và hiểu tốt hơn;

Người ta tin rằng một trang có đánh dấu ngữ nghĩa, tất cả các yếu tố khác đều như nhau, sẽ được xếp hạng cao hơn trong kết quả tìm kiếm công cụ tìm kiếm hơn một trang có mã phi ngữ nghĩa.

2) Mã dễ hiểu hơn đối với con người;

Đồng ý rằng bạn cần phải hiểu mã, trong đó mọi thứ đều được nêu rõ ràng rằng phần này của văn bản là một đoạn văn, đây là từ viết tắt, v.v. dễ dàng hơn nhiều so với mã, nơi tất cả thông tin đều có một cấu trúc liên tục và không rõ tác giả muốn nói gì.

3) Việc truy cập phần tử dễ dàng hơn và kết quả là tính linh hoạt cao hơn.

Bằng cách làm cho mã của bạn có ngữ nghĩa, bạn có thể truy cập các phần tử này dễ dàng hơn nhiều bằng cách sử dụng phương tiện đặc biệt, hoạt động trên các phần tử trên trang web, ví dụ: Ngôn ngữ CSS, Javascript, v.v.

Nếu bạn đặt tất cả các chữ viết tắt trên trang của mình trong thẻ abbr thì trong CSS, để tất cả các chữ viết tắt trên trang của bạn chuyển sang màu đỏ, bạn chỉ cần viết.

abbr (màu :đỏ ;)

Thay vì đánh dấu và quy định quy tắc này trong HTML cho từng chữ viết tắt riêng lẻ.

Đây chỉ là một ví dụ, trong số đó có rất nhiều.

Vì những lý do này, cần phải hiểu rằng mã ngữ nghĩa nó chỉ cung cấp cho tài liệu của chúng tôi nhiều tùy chọn hơn. Chúng tôi có thể sử dụng một số thẻ để cải thiện ngữ nghĩa của trang web và đạt được chức năng cao hơn hoặc chúng tôi không thể sử dụng chúng và không nhận được những lợi ích này.

Đó là việc của bạn!

Bạn phải đưa ra quyết định này cho chính mình.