Sách. Tải xuống sách DJVU, PDF miễn phí. Thư viện điện tử miễn phí V.V. Yashchenko, Giới thiệu về mật mã

Mật mã học là khoa học đảm bảo an toàn dữ liệu. Cô đang tìm kiếm giải pháp cho bốn vấn đề bảo mật quan trọng - bảo mật, xác thực, tính toàn vẹn và kiểm soát người tham gia.

Hệ thống mật mã

Hệ thống mật mã hoạt động theo một phương pháp (thủ tục) nhất định. Nó bao gồm: một hoặc nhiều thuật toán mã hóa (công thức toán học); các khóa được sử dụng bởi các thuật toán mã hóa này; hệ thống quản lý chìa khóa; văn bản thô; và bản mã (ciphertext).

Theo phương pháp này, thuật toán mã hóa và khóa đầu tiên được áp dụng cho văn bản để thu được văn bản mã hóa từ đó. Sau đó, văn bản mã hóa được gửi đến đích, nơi sử dụng thuật toán tương tự để giải mã và tạo lại văn bản. Phương pháp này cũng bao gồm các thủ tục tạo khóa và phân phối chúng.

Phương pháp chính

Trong phương pháp này, thuật toán mã hóa kết hợp khóa với văn bản để tạo thành văn bản mã hóa. Tính bảo mật của loại hệ thống mã hóa này phụ thuộc vào tính bảo mật của khóa được sử dụng trong thuật toán mã hóa, thay vì giữ bí mật thuật toán. Nhiều thuật toán mã hóa được cung cấp công khai và đã được thử nghiệm kỹ lưỡng nhờ điều này (ví dụ: DES).

Nhưng vấn đề chính với phương pháp này là làm thế nào để tạo và truyền khóa một cách an toàn cho những người tham gia tương tác. Làm cách nào để thiết lập kênh an toàn để truyền thông tin giữa những người tham gia trước khi chuyển khóa?

Một vấn đề khác là xác thực. Có hai vấn đề nghiêm trọng với điều này:

    Tin nhắn được mã hóa bởi người hiện đang giữ chìa khóa. Đây có thể là chủ sở hữu của chìa khóa; nhưng nếu hệ thống bị xâm phạm, đó có thể là một người khác.

    Khi những người tham gia tương tác nhận được khóa, làm sao họ có thể biết rằng những khóa đó thực sự được tạo và gửi bởi người được ủy quyền?

Có hai phương pháp chính - đối xứng (khóa riêng) và bất đối xứng (khóa chung). Mỗi phương pháp sử dụng các quy trình, phương pháp phân phối khóa, loại khóa cũng như thuật toán mã hóa và giải mã khóa riêng. Vì thuật ngữ được sử dụng bởi các phương pháp này có vẻ khó hiểu nên hãy xác định các thuật ngữ chính:

Thuật ngữ

Nghĩa

Ghi chú

Phương pháp đối xứng

Một khóa duy nhất được sử dụng để thực hiện cả mã hóa và giải mã bằng cùng một thuật toán mã hóa đối xứng.

Khóa này được chia sẻ giữa hai bên một cách an toàn trước khi dữ liệu được mã hóa được truyền đi.

Thường được gọi là phương pháp khóa bí mật.

Phương pháp bất đối xứng

Sử dụng thuật toán mã hóa đối xứng và khóa đối xứng để mã hóa dữ liệu.

Sử dụng thuật toán mã hóa bất đối xứng và khóa bất đối xứng để mã hóa khóa đối xứng. Hai khóa bất đối xứng được kết nối với nhau được tạo ra. Khóa đối xứng được mã hóa bằng một khóa bất đối xứng và thuật toán mã hóa bất đối xứng phải được giải mã bằng khóa khác và cùng thuật toán mã hóa.

Hai khóa bất đối xứng được kết nối với nhau được tạo ra. Một khóa phải được chuyển giao một cách an toàn cho chủ sở hữu của nó và khóa còn lại cho người chịu trách nhiệm lưu trữ các khóa này (CA - cơ quan cấp chứng chỉ khóa) trước khi chúng có thể được sử dụng.

Thường được gọi là phương pháp khóa công khai

Khóa bí mật(1)

Phương pháp đối xứng

Một khóa duy nhất được sử dụng để thực hiện cả mã hóa và giải mã. Xem ở trên

Khóa bí mật(2)

Khóa bí mật mã hóa đối xứng

Khóa bí mật đối xứng

Khóa bí mật(3)

Khóa bí mật mã hóa bất đối xứng

Khóa bí mật bất đối xứng.

Khóa bất đối xứng được tạo theo cặp vì chúng có liên quan với nhau. Cụm từ "khóa bí mật" thường được sử dụng cho một trong các cặp khóa bất đối xứng phải được giữ bí mật.

Khóa bí mật bất đối xứng không có gì chung với khóa bí mật đối xứng.

Khóa công khai (1)

Phương pháp bất đối xứng

Sử dụng một cặp khóa được tạo chung và liên kết với nhau. Mọi thứ được mã hóa bằng một khóa chỉ có thể được giải mã bằng khóa còn lại của cặp đó.

Khóa công khai (2)

Khóa công khai mã hóa bất đối xứng

Các khóa bất đối xứng được tạo theo cặp, trong đó mỗi khóa trong số hai khóa được liên kết với khóa kia.

Cụm từ "khóa chung" thường được sử dụng cho một trong các cặp khóa bất đối xứng mà mọi người đều phải biết.

Khóa phiên

Khóa mã hóa đối xứng (bí mật)

Được sử dụng trong phương pháp bất đối xứng để mã hóa dữ liệu bằng phương pháp đối xứng.

Đây chỉ đơn giản là một khóa bí mật đối xứng (xem ở trên)

Thuật toán mã hóa

Công thức toán học

Thuật toán đối xứng yêu cầu khóa đối xứng.

Thuật toán bất đối xứng yêu cầu khóa bất đối xứng.

Bạn không thể sử dụng khóa đối xứng cho thuật toán bất đối xứng và ngược lại.

Hệ thống mật mã bí mật

Hệ thống mật mã mở

Sử dụng thuật toán bất đối xứng và khóa bất đối xứng để mã hóa khóa phiên.

Họ sử dụng thuật toán đối xứng và khóa đối xứng (bí mật) để mã hóa dữ liệu.

Bảo vệ thông tin là tập hợp các biện pháp, phương pháp và phương tiện nhằm đảm bảo:

    ngăn chặn truy cập trái phép vào tài nguyên, chương trình và dữ liệu máy tính;

    kiểm tra tính toàn vẹn của thông tin;

    loại trừ việc sử dụng trái phép các chương trình (bảo vệ chương trình khỏi sao chép).

Có một xu hướng rõ ràng hướng tới phương pháp kỹ thuật số truyền tải và lưu trữ thông tin cho phép sử dụng các phương pháp và thuật toán thống nhất để bảo vệ thông tin rời rạc và liên tục.

Một phương pháp đã được chứng minh để bảo vệ thông tin khỏi bị truy cập trái phép là mã hóa (mật mã).

Sử dụng các phương pháp mã hóa có thể:

    mã hóa thông tin;

    thực hiện Chữ ký điện tử;

    phân phối khóa mã hóa;

    bảo vệ chống lại những thay đổi vô tình hoặc cố ý đối với thông tin.

Có một số yêu cầu nhất định đối với thuật toán mã hóa:

    mức độ bảo vệ dữ liệu cao chống lại việc giải mã và sửa đổi có thể;

    tính bảo mật của thông tin chỉ nên dựa trên kiến ​​thức về khóa và không phụ thuộc vào việc thuật toán có được biết hay không (quy tắc Kirkhoff);

    một thay đổi nhỏ trong văn bản nguồn hoặc khóa sẽ dẫn đến một thay đổi đáng kể trong văn bản mã hóa (hiệu ứng “sự cố”);

    phạm vi giá trị khóa phải loại trừ khả năng giải mã dữ liệu bằng cách liệt kê các giá trị khóa;

    thực hiện tiết kiệm thuật toán với tốc độ đủ;

    chi phí giải mã dữ liệu mà không biết khóa phải vượt quá chi phí dữ liệu.

Thuật toán mã hóa đối xứng

Các thuật toán mã hóa đối xứng (hoặc mật mã khóa bí mật) dựa trên thực tế là người gửi và người nhận thông tin sử dụng cùng một khóa. Khóa này phải được giữ bí mật và được truyền theo cách không thể bị chặn.

Trao đổi thông tin được thực hiện theo 3 giai đoạn:

    người gửi chuyển khóa cho người nhận (trong trường hợp mạng có nhiều thuê bao thì mỗi cặp thuê bao phải có khóa riêng, khác với khóa của các cặp khác);

    người gửi, sử dụng khóa, mã hóa tin nhắn được gửi đến người nhận;

Nếu sử dụng một khóa duy nhất cho mỗi ngày và cho mỗi phiên liên lạc thì điều này sẽ làm tăng tính bảo mật của hệ thống.

Luồng mật mã

Trong mật mã luồng, nghĩa là khi mã hóa luồng dữ liệu, mỗi bit thông tin gốc được mã hóa độc lập với các bit khác bằng gamma.

Gamma là việc áp đặt gamma mật mã (một chuỗi ngẫu nhiên hoặc giả ngẫu nhiên gồm các số 1 và 0) trên dữ liệu mở theo một quy tắc nhất định. Thông thường, "OR độc quyền" được sử dụng, còn được gọi là phép cộng modulo 2 và được triển khai trong các chương trình hợp ngữ với lệnh XOR. Để giải mã, gamma tương tự được áp dụng cho dữ liệu được mã hóa.

Khi một gamma ngẫu nhiên có cùng kích thước được sử dụng một lần với dữ liệu được mã hóa, việc phá mã là không thể (cái gọi là hệ thống mật mã có khóa một lần hoặc khóa vô hạn). Trong trường hợp này, “vô hạn” có nghĩa là thang đo không lặp lại. Trong một số mật mã dòng, khóa ngắn hơn thông báo. Do đó, trong hệ thống điện báo của Vernam, một vòng giấy có chứa thang đo được sử dụng. Tất nhiên, độ mạnh của mật mã như vậy không phải là lý tưởng.

Rõ ràng là việc trao đổi khóa với kích thước của thông tin được mã hóa không phải lúc nào cũng phù hợp. Do đó, gamma thu được bằng cách sử dụng bộ tạo giả thường được sử dụng nhiều hơn. Số ngẫu nhiên(PSCh). Trong trường hợp này, khóa là số tạo (giá trị ban đầu, vectơ khởi tạo, giá trị khởi tạo, IV) để khởi động trình tạo PNG. Mỗi trình tạo PNG có một khoảng thời gian, sau đó chuỗi được tạo sẽ được lặp lại. Rõ ràng, khoảng thời gian của gamma giả ngẫu nhiên phải vượt quá độ dài của thông tin được mã hóa.

Trình tạo PNG được coi là chính xác nếu việc quan sát các đoạn đầu ra của nó không cho phép khôi phục các phần bị thiếu hoặc toàn bộ chuỗi bằng thuật toán đã biết mà không cho phép khôi phục giá trị ban đầu không xác định. Khi sử dụng máy phát PSC, có thể có một số tùy chọn:

    Mã hóa bitwise của luồng dữ liệu. Khóa kỹ thuật số được sử dụng làm giá trị ban đầu của trình tạo PNG và luồng bit đầu ra được tính tổng theo modulo 2 với thông tin gốc. Các hệ thống như vậy thiếu đặc tính lan truyền lỗi.

    Mã hóa dựa trên bit của luồng dữ liệu với phản hồi bản mã. Hệ thống này tương tự như hệ thống trước, ngoại trừ văn bản mã hóa được trả về dưới dạng tham số cho trình tạo PNG. Thuộc tính lan truyền lỗi là đặc trưng. Vùng lan truyền lỗi phụ thuộc vào cấu trúc của bộ tạo PNG.

    Mã hóa bitwise của luồng dữ liệu với phản hồi về văn bản nguồn. Cơ sở của bộ tạo PSCh là thông tin ban đầu. Đặc tính lan truyền lỗi không giới hạn là đặc trưng.

    Mã hóa bitwise của luồng dữ liệu với phản hồi về bản mã và văn bản nguồn.

Các phông chữ dòng chảy nổi tiếng nhất bao gồm:

    RC4 (Rivest Cipher 4), được phát triển bởi R. Rivest, mật mã này có thể sử dụng độ dài khóa thay đổi;

    SEAL (Thuật toán mã hóa phần mềm) – phông chữ truyền phát được điều chỉnh để triển khai phần mềm, sử dụng khóa 160 bit;

    WAKE (Word Auto Key Encryption) - mã hóa các từ bằng khóa tự động, được đề xuất bởi David Wheeler.

Khối mật mã

Với mã hóa khối, thông tin được chia thành các khối có độ dài cố định và được mã hóa theo từng khối. Mật mã khối có hai loại chính:

    mật mã hoán vị (chuyển vị, hoán vị, khối P);

    mật mã thay thế (thay thế, hộp S).

Mật mã hoán vị sắp xếp lại các phần tử dữ liệu đơn giản (bit, chữ cái, ký hiệu) thành một số thứ tự mới. Có các mật mã ngang, dọc, hoán vị kép, lưới, mê cung, khẩu hiệu, v.v.

Mật mã thay thế thay thế các phần tử của dữ liệu đơn giản bằng các phần tử khác theo một quy tắc cụ thể. Có các loại mật mã thay thế cặp đơn giản, phức tạp, mã hóa âm tiết alpha và mật mã thay thế cột. Mật mã thay thế được chia thành hai nhóm:

    bảng chữ cái đơn (mã Caesar);

    đa bảng chữ cái (mật mã Widgenere, hình trụ Jefferson, đĩa Whetstone, Enigma).

Trong mật mã thay thế dùng một bảng chữ cái, một chữ cái trong văn bản gốc được thay thế bằng một chữ cái khác được xác định trước. Ví dụ, trong mã Caesar, một chữ cái được thay thế bằng một chữ cái cách nó một số vị trí nhất định trong bảng chữ cái Latinh. Rõ ràng, mật mã như vậy rất dễ bị bẻ khóa. Bạn cần tính toán tần suất xuất hiện các chữ cái trong văn bản mã hóa và so sánh kết quả với tần suất xuất hiện các chữ cái đã biết của từng ngôn ngữ.

Trong thay thế nhiều bảng chữ cái, các ký tự khác nhau từ một bộ nhất định được sử dụng tuần tự để thay thế một ký tự nhất định của thông báo gốc trong mỗi trường hợp xuất hiện của nó. Rõ ràng là tập hợp này không phải là vô hạn; sau một số ký tự nhất định, nó phải được sử dụng lại. Đây chính là điểm yếu của mật mã thuần túy dùng nhiều bảng chữ cái.

Trong các hệ thống mật mã hiện đại, theo quy định, cả hai phương pháp mã hóa (thay thế và hoán vị) đều được sử dụng. Bộ mã hóa như vậy được gọi là bộ mã hóa phức hợp. Nó an toàn hơn một đĩa mã hóa chỉ sử dụng phép thay thế hoặc hoán vị.

Mã hóa khối có thể được thực hiện theo hai cách:

    Không có phản hồi. Nhiều bit (một khối) của bản rõ được mã hóa cùng lúc và mỗi bit của bản rõ sẽ ảnh hưởng đến mọi bit của bản mã. Tuy nhiên, không có sự ảnh hưởng lẫn nhau của các khối, tức là hai khối văn bản nguồn giống hệt nhau sẽ được biểu diễn bằng cùng một bản mã. Do đó, các thuật toán như vậy chỉ có thể được sử dụng để mã hóa một chuỗi bit ngẫu nhiên (ví dụ: khóa). Ví dụ là DES ở chế độ ECB (Sách mã điện tử) và GOST 28147-89 ở chế độ thay thế đơn giản.

    Với phản hồi. Thông thường, phản hồi được tổ chức như sau: khối được mã hóa trước đó được thêm modulo 2 vào khối hiện tại. Giá trị khởi tạo được sử dụng làm khối đầu tiên trong chuỗi phản hồi. Một lỗi trong một bit sẽ ảnh hưởng đến hai khối - khối bị lỗi và khối tiếp theo. Ví dụ - DES ở chế độ CBC (Chuỗi khối mật mã).

Trình tạo số giả ngẫu nhiên cũng có thể được sử dụng trong mã hóa khối:

    Mã hóa dựa trên khối của luồng dữ liệu. Mã hóa các khối liên tiếp (thay thế và hoán vị) phụ thuộc vào trình tạo PNG, được điều khiển bằng một khóa.

    Mã hóa dựa trên khối của luồng dữ liệu có phản hồi. Bộ tạo PSCh được điều khiển bởi một bộ mã hóa hoặc văn bản gốc hoặc cả hai cùng nhau.

Tiêu chuẩn liên bang Hoa Kỳ DES (Tiêu chuẩn mã hóa dữ liệu) rất phổ biến, dựa trên tiêu chuẩn quốc tế ISO 8372-87. DES đã được Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) xác nhận và được Hiệp hội Ngân hàng Hoa Kỳ (ABA) khuyến nghị sử dụng. DES cung cấp 4 chế độ hoạt động:

    bảng mật mã điện tử ECB (Sổ mã điện tử);

    Chuỗi khối CBC (Chuỗi khối mật mã);

    Phản hồi bản mã CFB (Phản hồi mật mã);

    OFB (Phản hồi đầu ra) phản hồi đầu ra.

GOST 28147-89 là tiêu chuẩn nội địa về mã hóa dữ liệu. Tiêu chuẩn này bao gồm ba thuật toán để mã hóa (giải mã) dữ liệu: chế độ thay thế đơn giản, chế độ gamma, chế độ gamma có phản hồi và chế độ tạo mô phỏng chèn.

Bằng cách sử dụng chức năng chèn mô phỏng, bạn có thể ghi lại việc sửa đổi thông tin được mã hóa một cách vô tình hoặc cố ý. Bạn có thể tạo phần chèn mô phỏng trước khi mã hóa (sau khi giải mã) toàn bộ tin nhắn hoặc đồng thời mã hóa (giải mã) từng khối. Trong trường hợp này, khối thông tin được mã hóa với mười sáu chu kỳ đầu tiên ở chế độ thay thế đơn giản, sau đó thêm modulo 2 với khối thứ hai, kết quả tổng lại được mã hóa với mười sáu chu kỳ đầu tiên, v.v.

Thuật toán mã hóa GOST 28147-89 có những ưu điểm của các thuật toán khác dành cho hệ thống đối xứng và vượt trội hơn chúng về khả năng của chúng. Như vậy, GOST 28147-89 (khóa 256 bit, 32 chu kỳ mã hóa) so với các thuật toán như DES (khóa 56 bit, 16 chu kỳ mã hóa) và FEAL-1 (khóa 64 bit, 4 chu kỳ mã hóa) có tính mật mã cao hơn sức mạnh do phím dài hơn và hơn chu kỳ mã hóa.

Cần lưu ý rằng, không giống như DES, trong GOST 28147-89, khối thay thế có thể được thay đổi tùy ý, nghĩa là nó là một khóa 512 bit bổ sung. Thuật toán gamma GOST 28147-89 (khóa 256 bit, khối thay thế 512 bit, vectơ khởi tạo 64 bit) vượt trội về độ mạnh mật mã so với thuật toán B-Crypt (khóa 56 bit, vectơ khởi tạo 64 bit). Ưu điểm của GOST 28147-89 còn là khả năng bảo vệ chống lại việc áp đặt dữ liệu sai (tạo dữ liệu bắt chước) và cùng một chu kỳ mã hóa trong cả bốn thuật toán GOST.

Thuật toán khối cũng có thể được sử dụng để tạo gamma. Trong trường hợp này, gamma được tạo theo khối và được thêm vào theo khối modulo 2 với văn bản nguồn. Các ví dụ bao gồm B-Crypt, DES ở chế độ CFB và OFB, GOST 28147-89 ở chế độ gamma và gamma phản hồi.

Thuật toán mã hóa bất đối xứng

Các thuật toán mã hóa bất đối xứng (hoặc mật mã khóa công khai) sử dụng một khóa (công khai) để mã hóa thông tin và một khóa khác (bí mật) để giải mã nó. Các khóa này khác nhau và không thể bắt nguồn từ nhau. Sơ đồ trao đổi thông tin như sau:

    người nhận tính toán khóa chung và khóa riêng, giữ bí mật khóa bí mật và cung cấp khóa chung (thông báo cho người gửi, một nhóm người dùng mạng, xuất bản);

    người gửi, sử dụng khóa chung của người nhận, mã hóa tin nhắn được gửi đến người nhận;

    người nhận nhận được tin nhắn và giải mã nó bằng khóa riêng của mình.

Các hệ thống mật mã bất đối xứng nổi tiếng nhất bao gồm:

    RSA được bảo vệ bởi bằng sáng chế Hoa Kỳ N 4405829. Được phát triển vào năm 1977 tại Viện Công nghệ Massachusetts (Hoa Kỳ). Nó được đặt tên theo những chữ cái đầu tiên trong họ của các tác giả (Rivest, Shamir, Adleman). Sức mạnh của mật mã dựa trên độ phức tạp tính toán của bài toán phân tích một số lớn thành thừa số nguyên tố;

    ElGamal- được phát triển vào năm 1985. Được đặt theo họ của tác giả - El-Gamal. Được sử dụng trong tiêu chuẩn chữ ký số DSS (Digital Signature Standard) của Mỹ. Độ mạnh của mật mã dựa trên độ phức tạp tính toán của bài toán lấy logarit của số nguyên trong trường hữu hạn;

So sánh các thuật toán mã hóa đối xứng và bất đối xứng

Trong các hệ thống bất đối xứng, cần sử dụng các khóa dài (512 bit trở lên). Khóa dài làm tăng đáng kể thời gian mã hóa. Ngoài ra, việc tạo khóa rất tốn thời gian. Nhưng bạn có thể phân phối khóa qua các kênh không bảo mật.

Thuật toán đối xứng sử dụng khóa ngắn hơn, nghĩa là mã hóa nhanh hơn. Nhưng trong những hệ thống như vậy, việc phân phối khóa rất khó khăn.

Vì vậy, khi thiết kế một hệ thống an toàn, người ta thường sử dụng cả thuật toán đối xứng và bất đối xứng. Do hệ thống khóa công khai cho phép các khóa được phân phối trong các hệ thống đối xứng nên có thể kết hợp các thuật toán mã hóa đối xứng và bất đối xứng trong một hệ thống để truyền thông tin được bảo vệ. Cái đầu tiên được sử dụng để phân phối khóa, trong khi cái thứ hai được sử dụng để mã hóa thông tin được truyền đi.

Thông tin có thể được trao đổi như sau:

    người nhận tính toán khóa chung và khóa riêng, giữ bí mật khóa bí mật và cung cấp khóa chung;

    người gửi, sử dụng khóa chung của người nhận, mã hóa khóa phiên, khóa này được gửi đến người nhận qua kênh không an toàn;

    người nhận nhận được khóa phiên và giải mã nó bằng khóa riêng của mình;

    người gửi mã hóa tin nhắn bằng khóa phiên và chuyển tiếp nó đến người nhận;

    người nhận nhận được tin nhắn và giải mã nó.

Cần lưu ý rằng trong các hệ thống thông tin liên lạc của chính phủ và quân sự chỉ sử dụng các thuật toán đối xứng, vì không có bằng chứng toán học chặt chẽ nào cho sự ổn định của các hệ thống khóa công khai cũng như điều ngược lại chưa được chứng minh.

Xác minh tính xác thực của thông tin. Chữ ký số điện tử

Khi truyền tải thông tin phải cung cấp đồng thời hoặc riêng lẻ các nội dung sau:

      Tính bảo mật - kẻ tấn công sẽ không thể tìm ra nội dung của tin nhắn được truyền đi.

      Tính xác thực, bao gồm hai khái niệm

    tính toàn vẹn - tin nhắn phải được bảo vệ khỏi sự sửa đổi vô tình hoặc cố ý;

Mã hóa có thể cung cấp tính bảo mật và tính toàn vẹn trong một số hệ thống. Tính toàn vẹn của tin nhắn được kiểm tra bằng cách tính toán hàm kiểm tra từ tin nhắn - một số độ dài nhỏ nhất định. Chức năng kiểm soát này phải có khả năng thay đổi cao ngay cả với những thay đổi nhỏ trong thông báo (xóa, thêm, hoán vị hoặc sắp xếp lại thông tin). Hàm điều khiển được gọi và tính toán theo nhiều cách khác nhau:

    Mã xác thực tin nhắn (MAC);

    thuật toán đồng dư bậc hai (Mã phát hiện thao tác đồng dư bậc hai, QCMDC);

    Mã phát hiện thao túng (MDС);

    Thuật toán phân loại tin nhắn (MD5);

    kiểm tra tổng;

    Ký tự kiểm tra khối (BCC);

    kiểm tra dự phòng theo chu kỳ (CRC);

    hàm băm (băm);

    chèn giả trong GOST 28147-89;

    thuật toán cắt ngắn thành n bit (Thuật toán n-bit có cắt ngắn).

Khi tính toán hàm điều khiển, có thể sử dụng một số thuật toán mã hóa. Có thể tự mã hóa tổng kiểm tra. Chữ ký số được sử dụng rộng rãi (một sự bổ sung kỹ thuật số cho thông tin được truyền đi, đảm bảo tính toàn vẹn của thông tin sau và cho phép xác minh quyền tác giả của nó).

Chữ ký số điện tử (EDS) là điều kiện cần thiết của tài liệu điện tử nhằm bảo vệ tài liệu điện tử này khỏi bị giả mạo, thu được do chuyển đổi thông tin bằng mật mã bằng cách sử dụng khóa riêng của tài liệu điện tử. chữ ký số và cho phép bạn xác định chủ sở hữu của chứng chỉ khóa chữ ký, thiết lập việc không làm sai lệch thông tin trong tài liệu điện tử, đồng thời đảm bảo tính không thoái thác của người ký.

Mục đích của chữ ký số. Chữ ký số nhằm mục đích xác thực người đã ký tài liệu điện tử. Ngoài ra, việc sử dụng chữ ký số cho phép bạn:

    Giám sát tính toàn vẹn của tài liệu được truyền. Bất kỳ sự thay đổi vô tình hoặc cố ý nào đối với tài liệu sẽ làm thay đổi chữ ký, do đó, nó sẽ trở nên không hợp lệ.

    Bảo vệ chống lại những thay đổi (giả mạo) của tài liệu.

Tất cả các thuộc tính này của chữ ký số cho phép nó được sử dụng cho các mục đích sau:

    Tờ khai hàng hóa, dịch vụ (tờ khai hải quan).

    Đăng ký giao dịch bất động sản.

    Sử dụng trong hệ thống ngân hàng.

    Thương mại điện tử và các mệnh lệnh của chính phủ.

    Kiểm soát việc thực hiện ngân sách nhà nước.

    Trong các hệ thống kháng cáo lên chính quyền.

    Để báo cáo bắt buộc cho các cơ quan chính phủ.

    Tổ chức luồng tài liệu điện tử có ý nghĩa pháp lý.

    Trong hệ thống thanh toán và giao dịch.

Các mô hình chữ ký số được biết đến dựa trên thuật toán mã hóa đối xứng, tuy nhiên khi sử dụng hệ thống khóa công khai thì chữ ký số sẽ thuận tiện hơn.

Để sử dụng thuật toán RSA, thông báo phải được nén bằng hàm băm (MD5 - Message Digest Algorithm) thành hàm băm 256-bit (H). Chữ ký tin nhắn S được tính như sau:

Chữ ký được gửi cùng với tin nhắn. Quá trình nhận dạng bao gồm việc lấy hàm băm của thông báo (H) và so sánh nó với

trong đó H là hàm băm thông điệp,

S là chữ ký của anh ấy,

d - khóa bí mật,

e - khóa công khai.

Các tiêu chuẩn sau đây được dành cho việc xác thực:

    xác thực (xác thực) - ISO 8730-90, ISO/IES 9594-90 và ITU X.509; (ISO - Tổ chức Tiêu chuẩn hóa Quốc tế /IOS/, ITU - Liên minh Viễn thông Quốc tế /ITU/.)

    tính toàn vẹn - GOST 28147-89, ISO 8731-90;

    chữ ký số - ISO 7498, P 34.10-94 (Nga), DSS (Tiêu chuẩn chữ ký số, Hoa Kỳ).

Hệ điều hành CryptoAPIcác cửa sổ

Giao diện ứng dụng mật mã của hệ điều hành Windows là một tập hợp các hằng số, kiểu dữ liệu và chức năng được thiết kế để thực hiện mã hóa, giải mã, nhận và xác minh chữ ký số, tạo, lưu trữ và phân phối khóa mã hóa. Các dịch vụ ứng dụng này được cung cấp bởi Nhà cung cấp dịch vụ mật mã (CSP), thư viện liên kết động (DLL) xuất một tập hợp đối tượng được xác định bởi giao diện CryptoAPI.

Sự tương tác giữa ứng dụng và CSP dựa trên các nguyên tắc sau:

    ứng dụng không có quyền truy cập trực tiếp vào việc sản xuất và lưu trữ khóa mã hóa (không có nguy cơ mất chúng do lỗi trong ứng dụng);

    ứng dụng không xác định chi tiết về việc thực hiện các hoạt động mã hóa mà chỉ chỉ ra các hành động được yêu cầu từ CSP (ví dụ: mã hóa dữ liệu bằng thuật toán nhất định và lấy chữ ký số cho nó);

    ứng dụng không xử lý dữ liệu được sử dụng để xác thực người dùng mà cung cấp dữ liệu đó cho CSP, có khả năng xác thực người dùng tốt hơn (ví dụ: nó có thể sử dụng xác thực sinh trắc học hoặc Thông tin mấu chốt nằm trên thẻ thông minh hoặc các thành phần phần cứng khác); trong trường hợp này, do lỗi ứng dụng nên thông tin bí mật về người dùng không thể bị rò rỉ.

Hình này cho thấy kiến ​​trúc của hệ thống con mật mã Windows. Các cuộc gọi đến các chức năng CryptoAPI được xử lý bởi mô-đun hệ điều hành advapi32.dll, mô-đun này sẽ chuyển đổi chúng thành các cuộc gọi đến các chức năng Giao diện Nhà cung cấp Dịch vụ Mật mã (CryptoSPI). Để đảm bảo tính xác thực và xác thực của CSP, nó được trang bị chữ ký số điện tử, được hệ điều hành xác minh định kỳ trong phiên người dùng. Chữ ký số do Tập đoàn Microsoft thu được dựa trên giá trị băm CSP do nhà sản xuất thư viện này cung cấp.

Mỗi CSP được đặc trưng bởi tên và loại do nhà sản xuất chỉ định, xác định các thuật toán mã hóa được nhà cung cấp đó hỗ trợ.

Các thuộc tính chính của CSP bao gồm:

    thuật toán chữ ký số được hỗ trợ bắt buộc (luôn duy nhất);

    độ dài của khóa mã hóa bất đối xứng;

    định dạng chữ ký số;

    các định dạng khối trong đó các khóa mã hóa bất đối xứng công khai và (có thể) riêng tư được xuất từ ​​CSP;

    có thể hỗ trợ thuật toán trao đổi khóa phiên mã hóa đối xứng (luôn duy nhất);

    Các thuật toán mã hóa đối xứng có thể được hỗ trợ (một CSP cụ thể chỉ có thể hỗ trợ một tập hợp con của các thuật toán đó được xác định cho loại nhà cung cấp mật mã tương ứng);

    sơ đồ tạo khóa phiên từ giá trị băm;

    độ dài khóa phiên (tùy thuộc vào thuật toán);

    định dạng khối khóa phiên khi xuất nó từ CSP;

    chế độ mã hóa đối xứng mặc định.

Thông tin về các nhà cung cấp mật mã được cài đặt trên máy tính có trong sổ đăng ký Windows trong phần

HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Mặc định. Tiểu mục Nhà cung cấp chứa thông tin về đường dẫn đến thư viện, chữ ký số và loại của từng CSP (theo tên của nó) và tiểu mục Loại nhà cung cấp chứa thông tin về tên đầy đủ của nhà cung cấp tiền điện tử và loại của nó.

Đối với mỗi người dùng đã đăng ký với anh ta hoặc ứng dụng cụ thể CSP lưu trữ một thùng chứa các khóa mã hóa bất đối xứng, có thể bao gồm hai cặp khóa - khóa chung và khóa bí mật để trao đổi khóa phiên, cũng như khóa chung và khóa bí mật cho chữ ký số. Các khóa mã hóa đối xứng không được CSP lưu trữ và phải được ứng dụng xử lý.

Có hai phiên bản CryptoAPI: 1.0 và 2.0. CryptoAPI 2.0 giới thiệu các tính năng bổ sung để hỗ trợ cơ sở hạ tầng khóa công khai. Các hàm CryptoAPI 2.0 bổ sung sử dụng các lệnh gọi đến các hàm CryptoAPI 1.0, các hàm CryptoAPI 1.0 được liệt kê trong bảng bên dưới.

Tên chức năng

Mô tả ngắn gọn về chức năng

CryptAcquireContext CryptReleaseContext

Lấy và giải phóng tay cầm CSP

CryptGetProvParamCryptSetProvParam

Lấy và thiết lập thuộc tính CSP

Nhà cung cấp CryptSet

Đặt CSP mặc định

CryptGenKeyCryptDestroyKey

Tạo khóa mã hóa và giải phóng tay cầm của chúng

Tạo khóa phiên từ giá trị băm

CryptExportKeyCryptlmportKey

Xuất và nhập khóa mã hóa vào CSP

Lấy một tay cầm khóa công khai

CryptGetKeyParamCryptSetKeyParam

Lấy và thiết lập các tham số khóa mã hóa

Mật MãMã HóaMật MãGiải Mã

Mã hóa và giải mã dữ liệu đối xứng

Mật mãTạoHashCryptoPhá hủyHash

Tạo một giá trị băm trống và giải phóng phần xử lý của nó

CryptHashDataCryptHashSessionKey

Băm (thêm vào giá trị băm) dữ liệu tùy ý và khóa phiên

CryptGetHashParamCryptSetHashParam

Lấy và thiết lập các tham số giá trị băm

Mật mãXác minhChữ ký

Nhận và xác thực chữ ký số

Tạo một giá trị ngẫu nhiên

Để người dùng hoặc ứng dụng của anh ta có thể truy cập các dịch vụ do một CSP cụ thể cung cấp, cần phải tạo một vùng chứa khóa trống cho thực thể này (nói cách khác, hãy đăng ký nó với nhà cung cấp tiền điện tử này). Sau đó, vào đầu mỗi phiên với CSP, ứng dụng phải nhận được bộ mô tả cho vùng chứa khóa của chủ thể tương ứng từ nhà cung cấp mật mã. Việc tạo vùng chứa khóa và truy xuất bộ điều khiển của nó được thực hiện bằng cách sử dụng hàm CryptoAPI CryptAcquireContext.

Trong các phiên bản được bảo vệ hệ điều hành Trên Windows, để tạo vùng chứa khóa mới, ứng dụng phải có quyền quản trị viên (bắt buộc phải có mục nhập vào khóa đăng ký HKEY_LOCAL_MACHINE). Trình xử lý vùng chứa khóa kết quả phải được ứng dụng chỉ định khi gọi các hàm CryptoAPI khác. Để giải phóng một mã điều khiển cho vùng chứa khóa thu được bằng hàm CryptAcquireContext, hãy sử dụng hàm CryptoAPI CryptReleaseContext.

Nhà cung cấp mật mã Microsoft Base Cryptographic Provider vl.0 được cung cấp cùng với mọi phiên bản Windows. Bắt đầu với các phiên bản của Windows 2000/ME, Nhà cung cấp mật mã nâng cao của Microsoft vl.0 và Nhà cung cấp mật mã mạnh của Microsoft cũng được bao gồm trong hệ điều hành Windows. Nhà cung cấp mật mã vl.0 của Nhà cung cấp mật mã nâng cao Microsoft có thể được cài đặt trên các máy tính chạy hệ điều hành Windows 9x bằng cách tải xuống từ máy chủ web của Microsoft.

Nhà cung cấp mật mã Microsoft Base Cryptographic Provider vl.0 sử dụng khóa mã hóa bất đối xứng dài 512 bit và khóa mã hóa đối xứng sử dụng thuật toán RC2 và RC4 dài 40 bit, điều này là không đủ ở mức độ phát triển của công nghệ máy tính hiện nay. Nhà cung cấp mật mã nâng cao của Microsoft vl.0 và Nhà cung cấp mật mã mạnh của Microsoft sử dụng khóa mã hóa bất đối xứng 1024 bit và khóa mã hóa đối xứng 56 bit (DES), 128 bit (RC2 và RC4) và 168 bit (3-DES) .

Có những nhà cung cấp tiền điện tử triển khai thuật toán mã hóa đối xứng và chữ ký số tuân thủ các tiêu chuẩn của Nga trong lĩnh vực bảo mật thông tin (GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001 và GOST R 34.11-94). Một ví dụ về nhà cung cấp tiền điện tử như vậy là công cụ bảo vệ thông tin mật mã CryptoPro CSP.

Ngoài ra, các nhà cung cấp mật mã đã cài đặt có thể lưu trữ các bộ chứa khóa trên phương tiện chống giả mạo (ví dụ: thẻ thông minh) hoặc trong sổ đăng ký ở dạng mã hóa (trong trường hợp này, khi thực thi chức năng CryptAcquireContext, có thể cần phải nhập thông tin xác thực người dùng: a) mã PIN hoặc mật khẩu đặc biệt).

Bảo vệ tài liệuMicrosoft Văn phòngkhỏi sự truy cập trái phép

Việc bảo vệ tài liệu Microsoft Office khỏi bị truy cập trái phép dựa trên mã hóa của chúng bằng cách gọi các hàm CryptoAPI thích hợp. Khi cài đặt bảo vệ, người dùng sẽ được nhắc nhập mật khẩu truy cập cho tài liệu được bảo vệ, từ đó khóa mã hóa phiên cho tài liệu này sẽ được tạo. Khi bạn cố gắng mở một tài liệu được bảo vệ trong tương lai, bạn sẽ cần nhập mật khẩu truy cập, dựa vào đó khóa phiên sẽ được tạo và tài liệu sẽ được giải mã.

Trong trình xử lý văn bản Microsoft Word (phiên bản Microsoft Office XP trở xuống), tính năng bảo vệ chống truy cập trái phép vào tài liệu đã chỉnh sửa được cài đặt bằng lệnh menu Tools\Options\Security. Nút “Nâng cao” cho phép bạn đặt tham số mã hóa tài liệu:

    loại mã hóa (dựa trên sự lựa chọn của một trong các nhà cung cấp mật mã được cài đặt trong hệ thống và thuật toán mã hóa luồng RC4);

    cường độ (độ dài) của khóa mã hóa phiên tính bằng bit;

    nhu cầu mã hóa các thuộc tính tài liệu (chỉ có thể thực hiện được khi sử dụng mã hóa bằng CryptoAPI).

Khi chọn loại mã hóa, không nên chọn tùy chọn "Mã hóa yếu" và "Tương thích với Office 97/2000", vì trong trường hợp này, mã hóa yếu sẽ được áp dụng để bảo vệ tài liệu và không sử dụng các khả năng của CryptoAPI. Có nhiều công cụ phần mềm cho phép bạn giải mã các tài liệu được bảo vệ theo cách này bằng cách tìm kiếm đơn giản mật khẩu có thể truy cập.

Khi chọn loại mã hóa dựa trên việc sử dụng một trong các nhà cung cấp mật mã được cài đặt trong hệ thống, bạn phải đặt độ dài tối đa có thể có của khóa mã hóa (thường là 128 bit).

Độ mạnh của mã hóa tài liệu cũng phụ thuộc vào độ dài của mật khẩu (thực ra là cụm từ khóa để tạo khóa phiên). Độ dài tối đa của mật khẩu truy cập là 255 ký tự. Khi chọn mật khẩu truy cập tài liệu, bạn phải được hướng dẫn các lưu ý tương tự như khi chọn mật khẩu người dùng để đăng nhập vào hệ thống máy tính: chọn mật khẩu có độ dài và độ phức tạp vừa đủ, không sử dụng một mật khẩu để bảo vệ nhiều tài liệu khác nhau, không sử dụng dễ dàng. mật khẩu được đoán khớp với tên logic của người dùng hoặc tên tài liệu, v.v.

Để bảo vệ khỏi những thay đổi trái phép đối với tài liệu Microsoft Word, bạn có thể đặt mật khẩu để cho phép ghi vào tài liệu đó. Trong trường hợp này, bạn cũng sẽ được nhắc nhập mật khẩu truy cập trước khi mở tài liệu. Nếu bạn nhập sai mật khẩu hoặc từ chối nhập mật khẩu, tài liệu sẽ được mở ở dạng chỉ đọc. Tuy nhiên, biện pháp bảo vệ này không thể được coi là đủ đáng tin cậy, vì phiên bản sửa đổi của tài liệu có thể được lưu dưới một tên khác, sau đó tệp có tài liệu gốc có thể bị xóa và tệp mới tạo được đổi tên tương ứng. Ngoài ra, mật khẩu cho phép ghi được chứa trực tiếp trong văn bản của tài liệu và do đó có thể xóa khỏi tài liệu một cách đơn giản bằng các công cụ phần mềm đặc biệt.

Để bảo vệ tài liệu Word khỏi bị sửa đổi trái phép, cần sử dụng các công cụ kiểm soát truy cập đối với các thư mục và tệp có sẵn trong các phiên bản được bảo vệ của hệ điều hành Windows và hệ thống tệp NTFS.

Tài liệu Microsoft Word (Microsoft Office XP trở lên) có thể được ký điện tử để đảm bảo tính xác thực và tính toàn vẹn của nó. Có thể thêm chữ ký số vào tệp tài liệu bằng cách sử dụng nút “Chữ ký số” trong cửa sổ cài đặt bảo mật. Để thêm chữ ký điện tử vào tài liệu, bạn phải chọn chứng chỉ khóa chữ ký số thích hợp trong cửa sổ “Chữ ký số”. Khi nhận được chữ ký đầu tiên cho một tài liệu, hãy sử dụng nút “Thêm” để chọn chứng chỉ cho chữ ký số sẽ được thêm vào tài liệu.

Chứng chỉ khóa công khai EDS có thể được lấy theo một trong các cách sau:

    trong trung tâm chứng nhận của hệ thống máy tính công ty sử dụng cơ sở hạ tầng khóa công khai của Microsoft Windows;

    tại cơ quan chứng nhận thương mại (ví dụ: tại cơ quan chứng nhận của VeriSign, Inc.);

    độc lập sử dụng chương trình Selfcert.exe, có trong gói Microsoft Office tiêu chuẩn.

Trước khi thêm chữ ký điện tử vào tài liệu được bảo vệ, bạn có thể xem chứng chỉ bằng nút “Xem chứng chỉ”. Khi bạn tạo chứng chỉ một cách độc lập (cùng với khóa EDS riêng tương ứng), chương trình Selfcert.exe sẽ hỏi tên của chủ sở hữu chứng chỉ và sau khi hoàn tất thành công quy trình tạo, nó sẽ hiển thị một thông báo tương ứng. Chứng chỉ tự tạo chỉ dành cho mục đích sử dụng cá nhân của chủ sở hữu tài liệu được bảo vệ.

Khi bạn cố lưu một tài liệu đã sửa đổi được trang bị chữ ký số, Microsoft Word sẽ đưa ra cảnh báo rằng tất cả chữ ký số sẽ bị xóa khỏi tài liệu. Nếu tập tin được bảo vệ tài liệu EDS sẽ được thay đổi bằng phần mềm khác (ví dụ: sử dụng Notepad), sau đó khi bạn mở tài liệu lần sau, Microsoft Word sẽ hiển thị thông báo tương ứng và tệp chứa tài liệu sẽ không được mở.

Việc bảo vệ chống truy cập trái phép vào bảng tính Microsoft Excel và bản trình bày Microsoft PowerPoint trong gói Microsoft Office XP hoàn toàn tương tự như việc bảo vệ tài liệu Microsoft Word. Để cài đặt tính năng bảo vệ chống truy cập trái phép vào cơ sở dữ liệu Microsoft Access, hãy tiến hành như sau.

    Tệp cơ sở dữ liệu (có phần mở rộng “.mdb”) được mở ở chế độ độc quyền (sử dụng danh sách thả xuống ở bên phải nút “Mở”).

    Chạy lệnh Service\Protection\Set cơ sở dữ liệu mật khẩu và nhập mật khẩu truy cập hai lần.

    Lần tiếp theo khi mở cơ sở dữ liệu, bạn sẽ được yêu cầu nhập mật khẩu truy cập.

Mật khẩu truy cập cơ sở dữ liệu Microsoft Access được lưu trữ trong tệp cơ sở dữ liệu ở dạng văn bản rõ ràng.

Thay vì sử dụng một mật khẩu duy nhất để truy cập cơ sở dữ liệu Microsoft Access, bạn có thể sắp xếp các hạn chế truy cập vào các đối tượng của nó (bảng, biểu mẫu, truy vấn và báo cáo) ở cấp độ người dùng cá nhân.

Đầu tiên, thật thuận tiện khi sử dụng các dịch vụ của Microsoft Access Protection Wizard (lệnh menu Tools\Protection\Wizard).

Trong cuộc đối thoại với Wizard, sau khi mở tệp cơ sở dữ liệu ở chế độ độc quyền, bạn sẽ cần chỉ định:

    nhu cầu tạo một tệp mới hoặc thay đổi tệp hiện có nhóm làm việc cho cơ sở dữ liệu;

    tên tệp và mã nhóm làm việc, cũng như tên của chủ sở hữu cơ sở dữ liệu và tên của tổ chức;

    các đối tượng kiểm soát truy cập trong cơ sở dữ liệu (mặc định là tất cả các bảng);

    nhóm người dùng được xác định trước với quyền truy cập được xác định trước (ví dụ: tất cả các quyền hoặc chỉ đọc);

    quyền truy cập được phép đối với nhóm Người dùng, sẽ bao gồm tất cả người dùng đã đăng ký cơ sở dữ liệu;

    tên và mật khẩu (ban đầu có thể trống) của tất cả người dùng cơ sở dữ liệu đã được Wizard đăng ký;

    các nhóm sẽ bao gồm những người dùng được Master đăng ký.

Sau khi hoàn thành Wizard, để có quyền truy cập vào cơ sở dữ liệu, người dùng sẽ cần thực hiện quy trình đăng nhập bằng cách chỉ định tên logic và mật khẩu để truy cập cơ sở dữ liệu. Để thêm người dùng mới vào cơ sở dữ liệu và đặt quyền truy cập của họ vào cơ sở dữ liệu, bạn phải sử dụng các lệnh menu Tools\Protection\Users và Groups và Tools\Protection\Permissions tương ứng. Các thay đổi đối với danh sách người dùng và nhóm, cũng như quyền truy cập của họ vào các đối tượng cơ sở dữ liệu, chỉ có thể được thực hiện bởi chủ sở hữu cơ sở dữ liệu hoặc người dùng là thành viên của nhóm Quản trị viên, nếu không, khi cố gắng thực hiện thao tác đặc quyền, Microsoft Access sẽ hiển thị thông báo từ chối truy cập thích hợp.

Phương tiện đơn giản nhất để bảo vệ cơ sở dữ liệu Microsoft Access khỏi bị truy cập trái phép là mã hóa cơ sở dữ liệu, trong đó cơ sở dữ liệu được nén và không thể truy cập được để xem và chỉnh sửa bằng các công cụ phần mềm khác ngoài Microsoft Access. Nhưng nếu một cơ sở dữ liệu được mã hóa không sử dụng quyền kiểm soát truy cập ở cấp độ người dùng thì bất kỳ ai trong số họ cũng có thể mở cơ sở dữ liệu đó và có toàn quyền truy cập vào tất cả các đối tượng của nó. Do đó, mã hóa nên được sử dụng cùng với kiểm soát truy cập ở cấp độ người dùng hoặc sử dụng mật khẩu truy cập cơ sở dữ liệu hoặc để tiết kiệm bộ nhớ khi lưu trữ cơ sở dữ liệu trên đĩa mềm hoặc CD.

Chỉ có chủ sở hữu cơ sở dữ liệu hoặc thành viên của nhóm Quản trị viên mới có thể mã hóa cơ sở dữ liệu với quyền truy cập hạn chế vào các đối tượng của nó ở cấp độ người dùng. Để mã hóa cơ sở dữ liệu Microsoft Access, hãy sử dụng lệnh menu Tools\Protection\Encrypt/Decrypt.

Ưu điểm của phương tiện bảo vệ chống truy cập trái phép được coi là thực tế là chúng có thể được sử dụng trong các chương trình Microsoft Office chạy cả phiên bản mở và được bảo vệ của hệ điều hành Windows.

Mã hóa hệ thống tập tin trong các phiên bản hệ điều hành được bảo vệcác cửa sổ

Trong các phiên bản bảo mật của hệ điều hành Windows, bắt đầu từ Windows 2000, để bảo vệ bổ sung chống truy cập trái phép vào các thư mục và tệp của người dùng, có thể sử dụng các công cụ Hệ thống tệp được mã hóa (EFS), dựa trên giao diện ứng dụng mã hóa Windows CryptoAPI.

Hệ thống tệp mã hóa được thiết kế dựa trên các nguyên tắc sau:

    nhà cung cấp mật mã tự động tạo các khóa trao đổi bất đối xứng khi người dùng truy cập dịch vụ EFS lần đầu (mã hóa thư mục hoặc tệp đầu tiên);

    tự động tạo khóa phiên ngẫu nhiên trước khi mã hóa tệp do người dùng chỉ định;

    mã hóa và giải mã tự động ở chế độ minh bạch ở cấp độ tệp hoặc thư mục (đảm bảo rằng đối với tệp được mã hóa, tất cả dữ liệu được tạo trên cơ sở của nó Hồ sơ tạm thời cũng sẽ được mã hóa);

    khả năng gọi các chức năng mã hóa và giải mã bằng cách sử dụng danh mục Windows Explorer và các chương trình dòng lệnh mật mã;

    khả năng truy cập khóa trao đổi công khai của người dùng từ hệ điều hành chỉ trong phiên của họ trong hệ thống.

Người dùng yêu cầu hệ thống tệp mã hóa Windows mã hóa thư mục hoặc tệp bằng cách sử dụng các thuộc tính bổ sung của các đối tượng này, có sẵn thông qua lệnh menu ngữ cảnh Properties\Other. Trạng thái của bộ chuyển đổi Mã hóa nội dung để bảo vệ dữ liệu xác định liệu thông tin trong đối tượng này có nên được mã hóa hay không. Khi trạng thái này thay đổi, EFS sẽ nhắc người dùng xác nhận rằng thuộc tính mã hóa đã thay đổi và liệu thay đổi đó chỉ áp dụng cho thư mục hay cho tất cả các tệp con và thư mục của nó.

Khi bạn thay đổi thuộc tính mã hóa cho một tệp riêng lẻ, hệ thống tệp mã hóa cũng yêu cầu người dùng xác nhận thay đổi này và đề nghị bạn chọn một trong hai tùy chọn: chỉ mã hóa (giải mã) một tệp hoặc áp dụng giá trị thuộc tính mã hóa mới cho toàn bộ tệp. thư mục chứa tập tin. Nếu tệp bạn chọn để mã hóa nằm trong thư mục không được mã hóa (và ngược lại), thì sau khi sửa đổi tệp này, giá trị thuộc tính mã hóa của nó có thể tự động thay đổi. Vì vậy, nên thay đổi giá trị thuộc tính mã hóa cho toàn bộ thư mục.

Hệ điều hành Windows 2000 không cung cấp khả năng chia sẻ quyền truy cập vào tệp được mã hóa với nhiều người dùng hoặc truyền tệp được mã hóa qua mạng. Do đó, để loại bỏ nguy cơ mất dữ liệu được mã hóa của người dùng, chẳng hạn do người dùng không thể đăng nhập vào hệ thống, quản trị viên phải áp dụng chính sách bắt buộc sử dụng Data Recovery Agent (DRA).

Windows XP Professional và các phiên bản bảo mật mới hơn của hệ điều hành này hỗ trợ chia sẻ tệp được mã hóa. Sử dụng nút “Chi tiết” trong cửa sổ để đặt các thuộc tính bổ sung của tệp được mã hóa, một cửa sổ sẽ mở ra để xem danh sách người dùng được phép truy cập vào tệp này. Nút “Thêm” trong cửa sổ này nhằm mục đích thêm những người dùng đã đăng ký dịch vụ của hệ thống tệp mã hóa (đã có cặp khóa trao đổi không đối xứng) hoặc những người có chứng chỉ khóa chung của họ được cơ quan chứng nhận sử dụng trong máy tính chứng nhận hệ thống.

Việc cho phép người dùng khác truy cập các tệp được mã hóa có thể loại bỏ nhu cầu về chính sách tác nhân khôi phục trên hệ thống máy tính.

Nhược điểm của cơ chế chia sẻ tệp được mã hóa được triển khai trong Windows XP Professional:

    khi chọn người dùng được phép truy cập vào tệp được mã hóa, bạn không thể sử dụng các nhóm được xác định trong hệ thống;

    Không có cách nào để chia sẻ quyền truy cập vào một thư mục được mã hóa.

Là một dịch vụ bổ sung, Windows XP Professional hỗ trợ tên của các tệp và thư mục được mã hóa được đánh dấu bằng màu xanh lá cây, mặc dù điều này cũng có thể được coi là dấu hiệu bổ sung cho các đối tượng chứa thông tin nhạy cảm. Ngoài mã hóa DESX, mã hóa 3-DES cũng được hỗ trợ (bạn có thể thay đổi thuật toán mã hóa bằng cách thay đổi giá trị của tham số bảo mật tương ứng).

Bắt đầu với phiên bản Windows XP Professional, có thể sử dụng các công cụ hệ thống tệp mã hóa khi làm việc với các tệp ngoại tuyến được lưu trong bộ nhớ đệm trên máy khách từ các thư mục dùng chung cho người dùng mạng. Bộ nhớ đệm cho phép người dùng tiếp tục xem và chỉnh sửa tệp từ các thư mục được chia sẻ khi máy tính của họ ngoại tuyến. Sau đó, khi bạn kết nối với máy chủ mạng, hệ điều hành sẽ đồng bộ hóa các thay đổi được thực hiện trong tệp với các phiên bản trước đó của chúng nằm trong các thư mục dùng chung. Cơ hội mã hóa tự động và giải mã các tệp ngoại tuyến giúp tăng cường tính bảo mật của chúng khỏi bị truy cập trái phép khi làm việc với chúng trên máy tính di động.

Đối tượng CAPICOM, có sẵn trong các phiên bản của hệ điều hành Windows bắt đầu từ Windows XP Professional, dựa trên giao diện ứng dụng mật mã Windows và công nghệ đối tượng đa thành phần (công nghệ COM). Đối tượng CAPICOM có thể được sử dụng để thực hiện các hoạt động mã hóa cơ bản trong các ứng dụng được viết bằng cả ngôn ngữ lập trình đa năng và ngôn ngữ kịch bản. Các đối tượng CAPICOM hỗ trợ nhận và xác minh chữ ký số, trao đổi khóa phiên, mã hóa đối xứng và giải mã dữ liệu.

Quá trình phát triển lịch sử của các phương tiện và phương pháp bảo mật thông tin đã phát triển ba phương pháp bảo vệ chính.

Cách đầu tiên để bảo vệ thông tin là bảo vệ vật lý khỏi kẻ thù bằng vật liệu mang thông tin (giấy da, giấy, băng từ, v.v.), ví dụ, chuyển thông tin bằng một chuyển phát nhanh đặc biệt có bảo mật, một chiếc nhẫn có hộp đựng cho một tin nhắn bí mật, v.v.

Cách thứ hai để bảo vệ thông tin là steganography. Việc sử dụng kỹ thuật giấu tin đảm bảo rằng chính việc truyền thông tin sẽ được giấu kín khỏi kẻ thù. Bảo vệ thông tin Steganographic được cung cấp theo nhiều cách khác nhau, ví dụ:

Việc sử dụng phương tiện lưu trữ “vô hình” (vi phim);

Việc sử dụng mực thông cảm, có thể nhìn thấy được bằng cách xử lý hóa học thích hợp của chất mang thông tin;

Mặt nạ thông tin mật tin nhắn thông thường, v.v.

Steganography hiện đại có khá nhiều phương pháp bảo mật thông tin.

Phương pháp bảo vệ thông tin thứ ba, đáng tin cậy và phổ biến nhất là mật mã. Cuốn sách giáo khoa này được dành riêng cho các phương pháp mã hóa để bảo vệ thông tin.

1.1. Các khái niệm và định nghĩa cơ bản về mật mã

Chúng ta hãy xem xét các khái niệm cơ bản được áp dụng trong mật mã và trước tiên hãy xác định mật mã là gì.

mật mã là một nhánh của toán học ứng dụng (mật mã học) nghiên cứu các mô hình, phương pháp, thuật toán, phần mềm và phần cứng để chuyển đổi thông tin (mã hóa) nhằm che giấu nội dung của nó, ngăn chặn sửa đổi hoặc sử dụng trái phép. Phân tích mật mã nhằm mục đích giải quyết các vấn đề nghịch đảo lẫn nhau. Phân tích mật mã là một nhánh của toán học ứng dụng (mật mã học) nghiên cứu các mô hình, phương pháp, thuật toán, phần mềm và phần cứng để phân tích hệ thống mật mã hoặc tín hiệu đầu vào và đầu ra của chúng nhằm trích xuất các tham số bí mật, bao gồm cả bản rõ. Do đó, mật mã và giải mã tạo thành một tổng thể duy nhất và tạo thành một khoa học - mật mã học, mà ngay từ đầu đã phát triển như một ngành khoa học hai hướng.

Về mặt lịch sử, khái niệm trung tâm của mật mã là khái niệm về mật mã. mật mã là một tập hợp các phép biến đổi mật mã có thể đảo ngược của một tập hợp các bản rõ thành một tập hợp các bản mã được thực hiện nhằm mục đích bảo vệ chúng. Loại chuyển đổi mật mã văn bản gốc cụ thể được xác định bằng cách sử dụng chìa khóa mã hóa. Bằng văn bản rõ ràng gọi điện Tin nhắn gốc, có thể được mã hóa. Dưới mã hóađề cập đến quá trình áp dụng một phép biến đổi mật mã có thể đảo ngược thành bản rõ và kết quả của phép biến đổi này được gọi là bản mã hoặc mật mã. Theo đó, quá trình chuyển đổi mật mã ngược của một mật mã thành bản rõ được gọi là giải mã.



Giải mã không nên nhầm lẫn với giải mã. giải mã(giải mã, phá vỡ) - quá trình trích xuất bản rõ mà không cần biết về khóa mật mã dựa trên các mật mã bị chặn. Do đó, việc giải mã được thực hiện bởi một người dùng hợp pháp biết khóa mật mã và việc giải mã được thực hiện bởi một nhà giải mã.

Hệ thống mật mã- một họ các phép biến đổi mật mã và một bộ khóa. Bản thân việc mô tả thuật toán mã hóa không cấu thành một hệ thống mật mã. Chỉ khi được bổ sung các sơ đồ quản lý và phân phối chính thì nó mới trở thành một hệ thống.

Việc phân loại các hệ thống mật mã được trình bày trong Hình 2. 1.1.

Cơm. 1.1. Phân loại hệ thống mật mã

Hơn phân loại đầy đủ các hệ thống mật mã được đưa ra, ví dụ, trong.

Hệ thống mật mã đối xứng (các hệ mật mã khóa bí mật) được xây dựng trên nguyên tắc giữ bí mật khóa mã hóa. Trong bộ lễ phục. Hình 1.2 thể hiện sơ đồ khối đơn giản của hệ thống mật mã đối xứng. Trước khi sử dụng hệ thống mật mã đối xứng, người dùng phải có được khóa bí mật chung và ngăn chặn kẻ tấn công truy cập vào nó. Tin nhắn mở trải qua quá trình chuyển đổi mật mã và mật mã kết quả bởi kênh mở thông tin liên lạc được truyền đến người nhận, tại đó việc chuyển đổi ngược được thực hiện để làm nổi bật bản gốc mở tin nhắn.

Cơm. 1.2. Sơ đồ khối đơn giản hóa của hệ mật mã đối xứng

Các hệ thống mật mã đối xứng được phân loại theo nhiều tiêu chí khác nhau: theo loại chuyển đổi mật mã; theo nguyên tắc xây dựng; theo loại thông tin được bảo vệ; về sức mạnh mật mã, v.v. Hai tiêu chí phân loại đầu tiên thường được sử dụng nhiều nhất. Về vấn đề này, nhiều hệ thống mật mã đối xứng được chia thành:

Theo loại chuyển đổi mật mã - mật mã hoán vị, mật mã thay thế và mật mã thành phần;

Theo nguyên tắc thiết kế - hệ thống mật mã truyền phát và hệ thống mật mã khối.

Dưới mật mã hoán vịđề cập đến việc sắp xếp lại các chữ cái trong tin nhắn gốc, do đó nó trở nên không thể đọc được. Dưới mật mã thay thếđược hiểu là một sự chuyển đổi, bao gồm việc thay thế các chữ cái của tin nhắn gốc bằng các chữ cái khác theo một quy tắc ít nhiều phức tạp. Mật mã thành phầnđược xây dựng trên cơ sở mật mã thay thế và hoán vị. Chặn các hệ thống mật mã đối xứng(BSK) là một họ các phép biến đổi mật mã có thể đảo ngược của các khối của thông báo gốc. Truyền phát hệ thống mật mã(PSK) chuyển đổi từng ký tự của tin nhắn gốc thành mật mã.

Tính năng đặc biệt hệ thống mật mã bất đối xứng(hệ thống mật mã khóa công khai) là các khóa khác nhau được sử dụng để mã hóa và giải mã thông tin. Trong bộ lễ phục. Hình 1.3 thể hiện sơ đồ khối đơn giản của hệ thống mật mã bất đối xứng. Một hệ thống mật mã khóa công khai được xác định bởi ba thuật toán: tạo khóa, mã hóa và giải mã. Thuật toán tạo khóa cho phép bạn lấy được một cặp khóa , Và . Một trong những khóa được xuất bản, nó được gọi là mở, và cái thứ hai được gọi là đóng cửa(hoặc bí mật) và được giữ bí mật. Thuật toán mã hóa và giải mã sao cho đối với bất kỳ bản rõ nào đều có sự bình đẳng .

Cơm. 1.3. Sơ đồ khối đơn giản hóa của hệ thống mật mã bất đối xứng

1.2. Từ lịch sử của mật mã

Theo một số chuyên gia, mật mã có cùng độ tuổi với kim tự tháp Ai Cập. Các tài liệu của các nền văn minh cổ đại (Ấn Độ, Ai Cập, Lưỡng Hà) chứa đựng thông tin về hệ thống và phương pháp soạn thảo các bức thư được mã hóa.

Từ xa xưa, hai loại mật mã đã được sử dụng trong mật mã: thay thế (substitution) và hoán vị. Một ví dụ lịch sử về mật mã thay thế là mật mã Caesar(thế kỷ 1 trước Công nguyên), được mô tả bởi nhà sử học La Mã cổ đại Suetonius. Gaius Julius Caesar đã sử dụng mật mã do chính ông phát minh ra trong thư từ của mình. Liên quan đến tiếng Nga thì như sau. Bảng chữ cái được viết ra, và sau đó bảng chữ cái tương tự được viết bên dưới nó, nhưng với sự dịch chuyển theo chu kỳ của ba chữ cái sang trái:

MỘT B TRONG G D E E YU TÔI
G D E yo Z MỘT B TRONG

Mã hóa bao gồm việc chọn một chữ cái từ dòng đầu tiên và thay thế nó bằng chữ cái ở dòng thứ hai; việc giải mã là thao tác ngược lại. Ví dụ: ROME – ULP. Chìa khóa của mật mã Caesar là giá trị dịch chuyển theo chu kỳ. Guy Julius Caesar đã sử dụng cùng một chìa khóa suốt cuộc đời mình - một sự thay đổi 3 chữ cái. Người kế nhiệm Julius Caesar, Caesar Augustus, cũng sử dụng mật mã tương tự nhưng thay đổi một chữ cái. Suetonius không trích dẫn sự thật về việc giải mã mật mã của Caesar, nhưng vào thời đó khi nạn mù chữ phổ biến đang ngự trị, ngay cả một tin nhắn mở thông thường cũng có thể vẫn chưa được đọc.

Một trong những thiết bị vật lý đầu tiên thực hiện mã hóa hoán vị là lang thang. Nó được phát minh ở Sparta cổ đại (thế kỷ thứ 5 trước Công nguyên). Ngoài Hy Lạp cổ đại, thiết bị lang thang còn được sử dụng rộng rãi ở La Mã cổ đại. Scytale (được dịch là "que") là một hình trụ có đường kính nhất định. Một đai giấy da được quấn quanh hình trụ, trên đó văn bản của thông điệp được dán dọc theo trục của hình trụ. Sau đó, chiếc thắt lưng được quấn lại và gửi đến người nhận tin nhắn. Cái sau, có hình trụ tương tự, đã giải mã được tin nhắn. Khóa mã hóa là đường kính của scytal. Việc phát minh ra thiết bị giải mã được cho là của Aristotle. Ông đề xuất sử dụng một “ngọn giáo” hình nón để giải mã, trên đó dây đai bị chặn sẽ được quấn cho đến khi xuất hiện một văn bản có ý nghĩa.

Một trong những cái tên lịch sử đầu tiên được nhắc đến liên quan đến mật mã là tên của Aeneas, người chỉ huy huyền thoại và người bảo vệ thành Troy. Trong lĩnh vực viết bí mật, Aeneas sở hữu hai phát minh. Đầu tiên trong số đó là cái gọi là đĩa của Aeneas. Nguyên tắc của nó rất đơn giản. Các lỗ được khoan trên đĩa có kích thước 10-15 cm và dày 1-2 cm theo số lượng chữ cái trong bảng chữ cái. Một cuộn chỉ được cố định ở giữa đĩa. Khi mã hóa, sợi chỉ được kéo tuần tự qua các lỗ tương ứng với các chữ cái trong tin nhắn. Đĩa được gửi đến người nhận, người này rút sợi chỉ ra khỏi lỗ và nhận được tin nhắn trong thứ tự ngược lại. Một thiết bị khác là người cai trị Aeneas. Ở đây, thay vì một chiếc đĩa, người ta sử dụng một chiếc thước có số lỗ bằng số chữ cái trong bảng chữ cái. Các chữ cái trong các lỗ được sắp xếp theo thứ tự ngẫu nhiên. Một cuộn chỉ được buộc vào thước. Khi mã hóa, sợi chỉ được kéo qua một lỗ tương ứng với chữ cái của tin nhắn được mã hóa và một nút thắt được buộc trên sợi chỉ tại vị trí lỗ đi qua. Do đó, tin nhắn được mã hóa là một sợi dây có các nút thắt, trong đó mỗi chữ cái được liên kết với khoảng cách giữa các nút thắt của sợi dây. Chìa khóa của mật mã là thứ tự của các chữ cái dọc theo các lỗ trên thước kẻ. Tương tự như người cai trị của Aeneas Đóng cọc(thư thắt nút) trở nên phổ biến ở người da đỏ ở Trung Mỹ.

Nó cũng là một phát minh của người Hy Lạp cổ đại - quảng trường Polybius (Polybius là một chính khách, chỉ huy, nhà sử học người Hy Lạp thế kỷ thứ 3 trước Công nguyên):

MỘT B C D E
MỘT MỘT B C D E
B F G H Tôi,J K
C L M N P
D Q R S T bạn
E V. W X Y Z

Liên quan đến bảng chữ cái Latinh hiện đại, việc mã hóa bằng hình vuông này như sau. Bức thư được mã hóa đã được thay thế bằng tọa độ của hình vuông nơi nó được viết. Vì vậy chữ R được thay thế bằng DB. Khi được giải mã, mỗi cặp chữ cái sẽ xác định chữ cái tương ứng của tin nhắn. Ví dụ: BẢNG là DDAAABCAAE. Chìa khóa của mật mã này chính là hình vuông. Một phiên bản phức tạp của hình vuông Polybius liên quan đến việc viết các chữ cái theo thứ tự ngẫu nhiên trong hình vuông. Để ghi nhớ thứ tự tùy ý như vậy, một khẩu hiệu đã được sử dụng, đó là một từ được viết không lặp lại các chữ cái trong một hình vuông, và các ô còn lại của hình vuông được điền theo thứ tự chúng xuất hiện với các chữ cái còn lại trong bảng chữ cái. Ví dụ: THE APPLE khớp với THEAPL.

Điều thú vị cần lưu ý là ở dạng được sửa đổi một chút, hình vuông Polybius vẫn tồn tại cho đến ngày nay và được gọi là “mật mã nhà tù”. Để sử dụng nó, chỉ cần biết thứ tự tự nhiên của các chữ cái trong bảng chữ cái là đủ. Các cạnh của hình vuông được biểu thị không phải bằng chữ cái mà bằng số. Mỗi chữ số được mã hóa bằng một số lần gõ nhất định. Khi truyền một tin nhắn, số dòng đầu tiên sẽ được “chạm” và sau đó là số cột. “Mật mã nhà tù”, nói đúng ra, không phải là mật mã, nó là một cách mã hóa một thông điệp để chuyển nó thành một dạng thuận tiện cho việc truyền qua kênh liên lạc (tường nhà tù).

Trong thời Trung cổ, mật mã châu Âu đã có một danh tiếng đáng ngờ, tiếng vang của nó vẫn còn được nghe thấy cho đến ngày nay. Thực tế là mật mã bắt đầu được đồng nhất với ma thuật đen, chiêm tinh, thuật giả kim và các thế lực thần bí được kêu gọi để mã hóa. Để mã hóa tin nhắn, nên sử dụng "hình vuông ma thuật". Điều kỳ diệu của những hình vuông này là tổng các số theo hàng, cột và toàn bộ đường chéo bằng một số. Mã hóa bằng cách sử dụng “hình vuông ma thuật” như sau. Các chữ cái của tin nhắn được viết thành một hình vuông theo số ghi trong đó và các chữ cái ngẫu nhiên được chèn vào các ô trống. Bản mã được viết ra theo cách đã được thỏa thuận trước. Ví dụ: tin nhắn TÔI ĐẾN HÔM NAY được mã hóa bằng “hình vuông ma thuật”:

16U 3tôi 2P 13D
5Z 10E 11G 8YU
6G 7A 12O
4E 15tôi 14N 1P

có dạng UIRDZEGYUSZHAOEYANP. Mật mã này là một mật mã hoán vị thông thường, nhưng người ta tin rằng phép thuật của “hình vuông ma thuật” mang lại cho nó sức mạnh đặc biệt.

Vào thế kỷ 15, Tu viện trưởng Trithemius đã đưa ra hai đề xuất mang tính đổi mới trong lĩnh vực mật mã: ông đề xuất mật mã Ave Maria và mật mã dựa trên khóa dịch chuyển định kỳ. Đề xuất nghiêm túc nhất của Trithemius còn tồn tại cho đến ngày nay nằm trong chiếc bàn mà ông đã phát minh ra:

MỘT B C D W X Y Z
B C D E X Y Z MỘT
C D E F Y Z MỘT B
Y Z MỘT B bạn V. W X
Z MỘT B C V. W X Y

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. Dòng đầu tiên cũng là một chuỗi các chữ cái trong văn bản gốc. Ví dụ: CHIẾN ĐẤU – FJIKX. Trong phiên bản gốc, mật mã Trithemius thiếu chìa khóa. Bí mật nằm ở phương pháp mã hóa. Mật mã còn phức tạp hơn theo hai cách: bằng cách đưa ra một thứ tự tùy ý các chữ cái trong bảng; làm phức tạp thứ tự các hàng trong bảng được chọn trong quá trình mã hóa. Có thể nói, mật mã Caesar là trường hợp đặc biệt của mật mã Trithemius.

Mật mã “Ave Maria” dựa trên nguyên tắc thay thế các chữ cái của văn bản được mã hóa bằng toàn bộ các từ mà từ đó các thông điệp dường như vô hại được tạo ra. Ví dụ: N - “I”, “TẠI ĐÂY”; E – “ĐANG CHỜ”, “SẼ ĐƯỢC”; T – “NHÀ”, “TỐI BUỔI”. Khi đó tin nhắn KHÔNG mở có thể tương ứng với các tin nhắn “TÔI ĐANG CHỜ Ở NHÀ”, “TÔI SẼ Ở ĐÂY VÀO TỐI”.

Vào thế kỷ 17, nhà triết học và nhà khoa học người Anh Lord Chancellor Francis Bacon đã đưa ra các yêu cầu chính đối với mật mã: “Chúng không thể giải mã được, không cần nhiều thời gian để viết và đọc, và không gây ra bất kỳ nghi ngờ nào”. Những yêu cầu này vẫn còn phù hợp cho đến ngày nay.

Hội “thợ xây tự do” (thợ xây) cũng sử dụng rộng rãi mật mã. Quy tắc của “Hội Tam điểm” là một mật mã thay thế và trái ngược với niềm tin phổ biến, nó không mạnh nhưng được quan tâm. Mã hóa bao gồm việc thay thế các chữ cái trong văn bản gốc bằng các ký hiệu theo quy tắc:

MỘT: B: C: J. K. L. S T bạn
D: E: F: M. N. Ô. V. W X
G: H: TÔI: P. Q. R. Y Z

Ví dụ: APPLE tương ứng với một mật mã có dạng:

: . . . :

Trong chiến dịch chống lại Nga, Napoléon đã sử dụng mật mã của “thợ xây tự do” ở các cấp độ liên lạc thấp hơn của mình, nhưng mật mã này nhanh chóng bị các nhà giải mã Nga tiết lộ.

Vào thế kỷ 16, Alberti người Ý lần đầu tiên đưa ra ý tưởng về mã hóa kép, tức là Văn bản sau lần mã hóa đầu tiên được mã hóa lại. Alberti cũng sở hữu một mật mã mà ông gọi là “mật mã xứng đáng với các vị vua”. Mật mã được thực hiện bằng cách sử dụng đĩa mã hóa. Các chữ cái và số được áp dụng cho đĩa cố định bên ngoài, bên dưới là các chữ cái và số của đĩa di động bên trong. Quá trình mã hóa rất đơn giản - các chữ cái và số của bản rõ khớp với các chữ cái và số của đĩa bên trong. Sau khi mã hóa từ thông báo, đĩa bên trong được dịch chuyển một bước. Vị trí ban đầu của các đĩa đã được thỏa thuận trước. Đĩa Alberti, với những sửa đổi nhỏ, đã được sử dụng cho đến đầu thế kỷ 20.

Vào thế kỷ 16, Mateo Argenti, Giovani Batista Belazo, Giovani Batista Porta, Cordano và những người khác đã có những đóng góp đáng kể cho sự phát triển của mật mã. ​​sử dụng từ khẩu hiệu để tạo cho bảng chữ cái một hình thức hỗn hợp dễ ghi nhớ. Argenti cũng đề xuất chèn vào bản mã một số lượng lớn Các chữ cái "giả", loại bỏ dấu câu, không chèn các từ mở vào văn bản mật mã ("clair"), thay thế các chữ cái mật mã bằng số. Belaso và Porta đã phát triển ý tưởng của Argenti trong các tác phẩm "Mật mã của Thượng nghị sĩ Belaso" và "Về thư từ bí mật".

Nhà toán học, bác sĩ và triết gia Cordano đã có đóng góp đáng kể cho sự phát triển của mật mã. Mật mã mà ông đề xuất đã đi vào lịch sử dưới cái tên “Mạng Cordano”. "Lưới Cordano" là một mật mã hoán vị, bản chất của nó như sau. Một tấm vật liệu dày đặc (bìa cứng, giấy da) đã được lấy, đó là một hình vuông trong đó "cửa sổ" được cắt ra. Khi mã hóa, hình vuông được đặt trên một tờ giấy và thông điệp được nhập vào các “cửa sổ”, sau đó hình vuông được xoay 90 độ và thông điệp tiếp tục được ghi vào các “cửa sổ” của hình vuông được xoay. Quy trình này tiếp tục cho đến khi hình vuông được xoay hoàn toàn 360 độ. Yêu cầu chính của “Lưới Cordano” là với tất cả các phép quay, các “cửa sổ” không được rơi xuống đáy và ở cùng một vị trí, và khi xoay hoàn toàn hình vuông, tất cả các vị trí trong bản mã đều bị chiếm giữ. Bản mã được đọc từng hàng từ bảng kết quả. Mật mã do Cordano đề xuất là cơ sở của thuật toán nổi tiếng mật mã Richelieu, trong đó văn bản mật mã trông giống như một tin nhắn thông thường. Bằng cách đặt một hình chữ nhật có cửa sổ trên một tờ giấy có dòng chữ như vậy, người ta có thể đọc được tin nhắn. Mật mã Richelieu không phải là mật mã thay thế hay mật mã hoán vị; nó là một phương pháp bảo vệ thông tin bằng steganographic. Loại mật mã này đã được nhà văn và chính khách người Nga A.S. Griboedov làm đại sứ ở Ba Tư.

Cordano đưa ra nhưng chưa có thời gian để thực hiện đầy đủ ý tưởng “tự khóa”. Bản chất của nó là sử dụng một phần của tin nhắn đang mở làm chìa khóa.

Làm quen với các tác phẩm của Trithemius, Belaso, Cordano và Alberti, chính khách người Pháp Blaise de Vigenère đã phát triển mật mã của riêng mình, được gọi là Mật mã Vigenere. Bản chất của mật mã là một từ bí mật đã được chọn, đó là khóa mật mã. Từ này được viết dưới một tin nhắn mở theo định kỳ. Chữ cái trên của bản rõ tương ứng với cột của bảng Trithemian, chữ cái dưới của khóa tương ứng với hàng của bảng Trithemian; chữ cái ở giao điểm của hàng và cột là chữ cái của bản mã. Mật mã Vigenère là mật mã thay thế. Sau đó, mật mã này đã được đơn giản hóa phần nào để sử dụng thực tế bởi người đứng đầu cơ quan giải mã nhà nước đầu tiên ở Đức, Bá tước Gronsfeld. Mật mã Vigenère và mật mã Gronsfeld về cơ bản là tổ tiên của mật mã gamma hiện đang được sử dụng rộng rãi. Mật mã Vigenère được sử dụng với nhiều biến thể khác nhau cho đến thế kỷ 19. Một trong những sửa đổi nổi tiếng nhất của mật mã Vigenère là mật mã Đô đốc Beaufort của Anh. Ưu điểm của mật mã Beaufort là các quy tắc mã hóa tin nhắn và giải mã chúng đều giống nhau.

Sự phát triển rộng rãi của mật mã học thế kỷ 16 gắn liền với sự phát triển của khoa học tự nhiên và toán học. Đồng thời, các cơ quan ngoại giao đặc biệt đầu tiên xuất hiện ở châu Âu, giải quyết các vấn đề về mã hóa thư từ của chính họ và giải mã thư từ bị chặn. Thế kỷ 17-18 đi vào lịch sử mật mã là kỷ nguyên của “văn phòng đen”. “Văn phòng đen”- một cơ quan nhà nước đặc biệt để đánh chặn, giải thích và giải mã thư từ, chủ yếu là ngoại giao. Nhân viên của “văn phòng đen” bao gồm những người giải mã, nhân viên chặn thư, người chép-sao chép, dịch giả, chuyên gia giả mạo con dấu, nhà hóa học, chuyên gia giả mạo chữ viết tay, v.v. Những chuyên gia này được đánh giá cao và được chính quyền bảo vệ đặc biệt;

Vào thế kỷ 19, các thiết bị mã hóa cơ học đầu tiên xuất hiện. Nổi tiếng nhất là những phát minh của Đại tá quân đội Mỹ D. Wadsworth và kỹ sư người Anh C. Wheatstone. Thiết bị của Wadsworth (1817) là một bộ mã hóa cơ học, thành phần chính của nó là hai đĩa mã hóa, ở cuối phía dưới có các chữ cái trong bảng chữ cái tiếng Anh và ở cuối đĩa thứ hai có các chữ cái và số từ 2 đến 8 . Các chữ cái trên đĩa thứ hai có thể tháo rời được, điều này giúp có thể thay đổi văn bản bảng chữ cái được mã hóa. Các đĩa được đặt trong một hộp có cửa sổ cắt vào đó. Khi xoay đĩa đầu tiên, chữ cái của tin nhắn đang mở được hiển thị ở cửa sổ phía trên. Các đĩa được kết nối bằng một hộp số truyền động nên ký tự mã hóa tương ứng xuất hiện ở cửa sổ phía dưới. Thiết bị đã được trang bị nút đặc biệtđể ngắt kết nối đĩa. Điều này là cần thiết để đảm bảo việc lắp đặt thiết bị theo đúng quy định điểm xuất phát. Ý tưởng của Alberti, Trithemius và Vigenère có thể nhìn thấy được trong thiết bị của Wadsworth. Mặc dù thực tế là thiết bị này khá cồng kềnh và vào thời điểm đó, mật mã “thủ công” không yêu cầu thiết bị đặc biệt chiếm ưu thế, nhưng nó vẫn là động lực cho sự phát triển của các thiết bị cơ học để mã hóa và giải mã tin nhắn.

Một đề xuất thú vị nhằm tạo ra một thiết bị mã hóa cơ học đã được Charles Wheatstone đưa ra vào nửa sau thế kỷ 20. Trong thiết bị của Wheatstone, người ta có thể thấy ý tưởng của Alberti cũng như của Wadsworth. Nhìn bên ngoài, thiết bị của Wheatstone giống một chiếc đĩa Alberti, nhưng nó thực hiện một ý tưởng nghịch lý - bảng chữ cái văn bản gốc chứa nhiều ký tự hơn bảng chữ cái được mã hóa. Vấn đề mơ hồ trong việc xác định các chữ cái của một tin nhắn đang mở đã được Wheatstone giải quyết một cách xuất sắc. Trong bộ lễ phục. Hình 1.4 thể hiện diện mạo của thiết bị Wheatstone.

Đĩa bên ngoài, một đĩa bảng chữ cái văn bản gốc, bao gồm 27 ký tự (26 chữ cái trong bảng chữ cái tiếng Anh và dấu hiệu đặc biệt"+" có nghĩa là không gian). Bảng chữ cái bên trong xác định bảng chữ cái văn bản gốc và bao gồm 26 chữ cái thông thường được sắp xếp theo thứ tự khóa ngẫu nhiên. Trên cùng trục với các đĩa (bảng chữ cái) của thiết bị, được kết nối bằng các bánh răng có kích thước tương ứng 27x26, có hai kim, giống như trong một chiếc đồng hồ hiện đại.

Cơm. 1.4. Ngoại hình của thiết bị C. Wheatstone

Khi bắt đầu mã hóa, một mũi tên lớn (dài) chỉ vào dấu "+". Mũi tên nhỏ nối với bánh răng ren lớn được đặt ở vị trí tương tự, tức là. "Đồng hồ" hiển thị "12:00". Các chữ cái của văn bản thuần túy được thiết lập bằng cách xoay mũi tên lớn theo hướng chuyển động theo chiều kim đồng hồ. Sau vòng quay này, một mũi tên nhỏ biểu thị dấu hiệu bản mã. Do đó, khi đĩa lớn được quay hoàn toàn, đĩa nhỏ sẽ dịch chuyển một vị so với trạng thái tương đối ban đầu của hai đĩa, dẫn đến sự thay đổi trong bảng chữ cái bản mã so với bảng chữ cái văn bản gốc. Ở cuối mỗi từ, mũi tên lớn được đặt trên dấu “+”, chữ cái mà mũi tên ngắn chỉ vào được viết ra dưới dạng ký hiệu văn bản mật mã. Để tránh sự mơ hồ trong quá trình giải mã, không được phép nhân đôi các chữ cái trong bản rõ. Chữ cái lặp lại nên được bỏ qua hoặc thay thế bằng một số chữ cái hiếm, ví dụ như Q. Ví dụ: từ THE APPLE khi được mã hóa sẽ được viết là +THE+APLE+ hoặc +THE+APQLE+.

Phát minh của Wheatstone, giống như của Wadsworth, không được ứng dụng rộng rãi. Tuy nhiên, số phận của đề xuất khác của ông trong lĩnh vực mật mã - mật mã thay thế bigram - hóa ra lại tốt hơn, mặc dù mật mã này được đặt tên một cách không công bằng theo tên người bạn của nhà phát minh là Baron Playfair. Đồng thời, bản thân Playfair đã cư xử rất đúng đắn: khi phổ biến phát minh này, ông luôn ghi tên tác giả - Wheatstone, nhưng lịch sử lại quy định khác: mật mã được đặt tên không phải của nhà phát minh mà là tên của người phổ biến. Mật mã Playfair sẽ được thảo luận chi tiết trong phần tiếp theo.

Vào đầu thế kỷ 20, G. Vernam người Mỹ đã có đóng góp đáng kể cho sự phát triển của mật mã. Năm 1917, khi còn là nhân viên của một công ty điện báo, ông đã đề xuất ý tưởng mã hóa tự động các tin nhắn điện báo, bản chất của ý tưởng này như sau. Bản rõ được thể hiện bằng mã Baudot (ở dạng "tổ hợp xung" gồm năm chữ số). Ví dụ: trong mã này, chữ "A" trông giống như (+ + - - -). Trên giấy tờ, dấu “+” có nghĩa là một lỗ và dấu “-” có nghĩa là không có lỗ. Khi đọc từ băng, năm đầu dò kim loại “xác định” các lỗ (nếu có lỗ thì đầu dò sẽ đóng mạch điện). Các xung hiện tại đã được gửi vào đường dây liên lạc. Vernam đề xuất cơ chế lưu trữ xung của các dấu hiệu văn bản bí mật bằng các xung của khóa bí mật, đó là một tập hợp hỗn loạn các chữ cái trong cùng một bảng chữ cái. Việc bổ sung, theo thuật ngữ hiện đại, đã được thực hiện modulo 2. G. Vernam đã tạo ra một thiết bị thực hiện các hoạt động mã hóa một cách tự động mà không cần sự tham gia của bộ mã hóa, do đó đánh dấu sự khởi đầu của cái gọi là “mã hóa tuyến tính”, khi các quá trình mã hóa và truyền tin nhắn xảy ra đồng thời. Cho đến lúc đó, mã hóa chỉ là sơ bộ nên mã hóa tuyến tính đã làm tăng đáng kể hiệu quả truyền thông. Mật mã Vernam có sức mạnh mật mã đặc biệt. Đồng thời, nhược điểm của hệ thống mã hóa này là rõ ràng - khóa phải có cùng độ dài với bản rõ. Để giải mã ở đầu nhận của giao tiếp, bạn cần chuyển đến đó (thông qua các kênh bí mật, an toàn) một khóa có độ dài vừa đủ. Tại triển khai thực tếđiều này gây ra nhiều vấn đề và những vấn đề rất quan trọng đã định trước sự phổ biến khiêm tốn của mật mã Vernam. Bản thân Vernam không phải là một nhà toán học-mật mã, tuy nhiên, ông nhấn mạnh rằng khóa mật mã không được lặp lại trong quá trình mã hóa, và về điều này, như lịch sử mật mã đã chỉ ra, ông đã đúng. Ý tưởng của ông đã tạo ra những cách tiếp cận mới để bảo vệ thông tin đáng tin cậy khi truyền tải khối lượng lớn tin nhắn.

Nửa đầu thế kỷ 20 trở thành “thời kỳ hoàng kim” của máy mã hóa cơ điện. Dòng máy mã hóa cơ điện nổi tiếng nhất của Đức là Enigma. Nhiều sửa đổi khác nhau của máy mã hóa này đã được quân đội Đức sử dụng từ cuối năm 1923 cho đến năm 1945. Năm 1943, các đồng minh của liên minh chống Hitler đã tìm cách “hack” được cỗ máy Enigma, cỗ máy đóng vai trò quan trọng trong chiến thắng trong Thế chiến thứ hai. Để truyền những thông điệp bí mật nhất trong Thế chiến thứ hai, người Đức đã sử dụng máy mã hóa Lorenz. Quân đội Hoa Kỳ sử dụng thiết bị mã hóa cơ học M-94 từ năm 1923 đến năm 1943. Thiết bị này dựa trên đĩa Alberti. Máy Hebern MarkII được sử dụng để bảo vệ thư tín ngoại giao ở Hoa Kỳ. Nhà mật mã người Thụy Điển B. Hagelin đã phát triển thiết bị mã hóa CD-57 cho cảnh sát mật Pháp và máy mã hóa M-209 cho cơ quan tình báo Pháp. Một bản sửa đổi của cỗ máy này cũng được quân đội Mỹ sử dụng trong Thế chiến thứ hai. Từ năm 1939 đến năm 1952, người Nhật đã sử dụng máy mã hóa để bảo vệ thư tín ngoại giao được gọi là Loại 97 và bản sửa đổi của nó. Tại Hoa Kỳ, những chiếc xe này đã nhận được ký hiệu đầy màu sắc “Code Purple” và “Code Red”. Ở Liên Xô, trước chiến tranh và trong Chiến tranh Vệ quốc vĩ đại, máy mã hóa đĩa cỡ nhỏ K-37 “Crystal” đã được sử dụng rộng rãi. Chỉ trong năm 1940, 100 bộ máy này đã được sản xuất. Sau chiến tranh, kết quả hoạt động của K-37 đã được tổng hợp và công việc được tiến hành để cải thiện nó hơn nữa.

Sách. Tải xuống sách DJVU, PDF miễn phí. Miễn phí thư viện số
V.V. Yashchenko, Giới thiệu về mật mã

Bạn có thể (chương trình sẽ đánh dấu nó bằng màu vàng)
Bạn có thể xem danh sách sách về toán cao cấp được sắp xếp theo thứ tự bảng chữ cái.
Bạn có thể xem danh sách sách về vật lý cao cấp, được sắp xếp theo thứ tự bảng chữ cái.

• Tải sách miễn phí, dung lượng 1,69 MB, định dạng djvu
Tái bản lần thứ hai, ed. Yashchenko V.V., tháng 9 năm 1999

Thưa quý vị và các bạn!! Để tải file xuất bản phẩm điện tử không bị “trục trặc”, click vào link gạch chân kèm theo file Nút chuột phải, chọn lệnh "Lưu mục tiêu dưới dạng..." ("Lưu đối tượng dưới dạng...") và lưu file xuất bản điện tử vào máy tính cục bộ. Các ấn phẩm điện tử thường được trình bày ở định dạng Adobe PDF và DJVU.

Chương 1. Các khái niệm cơ bản về mật mã
1. Giới thiệu
2. Đối tượng mật mã
3. Cơ bản về toán học
4. Hướng đi mới
5. Kết luận

Chương 2. Mật mã học và lý thuyết độ phức tạp
1. Giới thiệu
2. Mật mã và giả thuyết
3. Chức năng một chiều
4. Trình tạo giả ngẫu nhiên
5. Bằng chứng không có kiến ​​thức

Chương 3. Giao thức mật mã
1. Giới thiệu
2. Tính chính trực. Giao thức xác thực và chữ ký điện tử
3. Không thể truy nguyên. Tiền điện tử
4. Giao thức tung đồng xu qua điện thoại
5. Một lần nữa về việc chia sẻ bí mật
6. Hãy chơi cốc. Giao thức bỏ phiếu
7. Vượt xa những giả định tiêu chuẩn. Tin nhắn bí mật
8. Thay vì kết luận

Chương 4. Các bài toán thuật toán của lý thuyết số
1. Giới thiệu
2. Hệ thống mã hóa RSA
3. Độ phức tạp của các thuật toán lý thuyết số
4. Cách phân biệt hợp số với số nguyên tố
5. Cách xây dựng lớn số nguyên tố
6. Cách kiểm tra tính nguyên tố của một số lớn
7. Cách phân tích số tổng hợp
8. Logarit rời rạc
9. Kết luận

Chương 5: Toán học của việc chia sẻ bí mật
1. Giới thiệu
2. Chia sẻ bí mật cho các cấu trúc truy cập tùy ý
3. Chia sẻ bí mật tuyến tính
4. Sự tách biệt hoàn hảo giữa bí mật và matroid

Chương 6. Máy tính và mật mã
1. Thay vì giới thiệu
2. Một chút lý thuyết
3. Làm cách nào để mã hóa một tập tin?
4. Hãy học hỏi từ sai lầm của người khác
5. Thay vì kết luận

Chương 7. Olympic Mật mã học sinh
1. Giới thiệu
2. Mật mã thay thế
3. Mật mã hoán vị
4. Mật mã thay thế đa bảng chữ cái có khóa tuần hoàn
5. Điều kiện dự thi Olympic môn toán và mật mã
6. Chủ trương và giải pháp

Phụ lục: trích từ bài viết của K. Shannon "Lý thuyết truyền thông trong các hệ thống bí mật"

Tóm tắt ngắn gọn về cuốn sách

Dưới sự chung chung biên tập. V.V. Yashchenko. Nhóm tác giả: V. V. Yashchenko (chủ biên chương 1), N. P. Varnovsky (chương 2, 3), Yu. V. Nesterenko (chương 4), G. A. Kabatyansky (chương 5), P. N Devyanin, V. G. Proskurin, A. V. Cheremushkin ( chương 6), P. A. Gyrdymov, A. Yu. Zubov, A. V. Zyazin, V. N. Ovchinnikov (chương 7).

Lần đầu tiên bằng tiếng Nga, cuốn sách cung cấp một bản trình bày có hệ thống về cơ sở khoa học của mật mã, từ những ví dụ và khái niệm cơ bản đơn giản nhất đến các cấu trúc mật mã hiện đại. Hiểu các nguyên tắc của mật mã đã trở thành một điều cần thiết đối với nhiều người do việc sử dụng rộng rãi các công cụ mật mã bảo mật thông tin. Vì vậy, cuốn sách có thể hữu ích cho người đọc nói chung. Cuốn sách dành cho sinh viên toán học và các chuyên gia bảo mật thông tin.

Mật mã học - môn khoa học về mật mã - đã được phân loại từ lâu vì nó được sử dụng chủ yếu để bảo vệ bí mật nhà nước và quân sự. Hiện nay, các phương pháp, phương tiện mật mã được sử dụng để đảm bảo an ninh thông tin không chỉ của nhà nước mà còn của các cá nhân, tổ chức. Vấn đề ở đây không nhất thiết phải là vấn đề bí mật. Có quá nhiều thông tin khác nhau đang trôi nổi khắp thế giới dưới dạng kỹ thuật số. Và trên thông tin này ẩn chứa các mối đe dọa truy cập thù địch, tích lũy, thay thế, giả mạo, v.v. Mật mã cung cấp các phương pháp bảo vệ đáng tin cậy nhất chống lại các mối đe dọa đó.

Hiện tại, các thuật toán mã hóa là một bí mật được bảo vệ chặt chẽ đối với người tiêu dùng bình thường, mặc dù nhiều người đã phải sử dụng một số công cụ mã hóa: mã hóa E-mail, thẻ ngân hàng thông minh, v.v. Đương nhiên, câu hỏi chính của người dùng là liệu công cụ mật mã này có cung cấp khả năng bảo vệ đáng tin cậy hay không. Nhưng ngay cả việc hình thành câu hỏi cơ bản này một cách chính xác cũng không hề dễ dàng. Chúng ta đang chống lại kẻ thù nào? Kẻ thù này có khả năng gì? Anh ấy có thể theo đuổi mục tiêu gì? Làm thế nào để đo lường độ tin cậy của bảo vệ? Danh sách các câu hỏi như vậy có thể được tiếp tục. Để trả lời chúng, người dùng cần có kiến ​​thức về các khái niệm cơ bản về mật mã.

Một sự trình bày phổ biến về cơ sở khoa học của mật mã ( Chúng ta đang nói về chỉ về mật mã “phi trạng thái”; phần mật mã liên quan đến an ninh quốc gia phải được giữ bí mật) là mục đích của cuốn sách này. Nó cũng có thể được sử dụng như một công cụ hỗ trợ giảng dạy. Chưa có cuốn sách tương tự bằng tiếng Nga. Tài liệu của một số chương đã được tác giả xuất bản trước đó trong các ấn phẩm khác (chương 1 - trong sách của S. A. Dorichenko, V. V. Yashchenko, “25 nghiên cứu về mật mã”, M.: TEIS, 1994; chương 1,2,4, 5 - trên tạp chí "Giáo dục toán học", bộ thứ ba, số 2, M.: MTsNMO, chương 7 - trên báo "Tin học" (bổ sung hàng tuần trên báo "Đầu tháng 9"), số 4, tháng Giêng 1998). Trong quá trình biên soạn ấn phẩm này, các tài liệu này đã được sửa đổi và bổ sung. Việc trình bày tài liệu được thiết kế dành cho người đọc có đầu óc toán học.

Về cơ bản, các chương độc lập với nhau (điều này đạt được thông qua việc lặp lại) và chúng có thể được đọc theo bất kỳ thứ tự nào. Chương 1 - phần giới thiệu - được khuyến nghị cho mọi người đọc, vì nó giải thích ở mức độ phổ biến tất cả các khái niệm cơ bản của mật mã hiện đại: mật mã, khóa, độ mạnh, chữ ký số điện tử, giao thức mật mã, v.v. Trong các chương khác, một số tài liệu được lặp lại nhưng có chiều sâu hơn. Các chương 2, 3, 4, 5 sử dụng một số thông tin toán cao cấp mà các lớp và học sinh toán đã biết. Chương 6 dành cho các chuyên gia công nghệ máy tính. Chương 7 chứa các tài liệu từ các kỳ thi Olympic mật mã dành cho học sinh và do đó không cần có kiến ​​thức nào ngoài chương trình giảng dạy ở trường để đọc nó.

Tuyên bố từ chối trách nhiệm: Các công cụ và phần mềm mật mã được đề cập trong cuốn sách này chỉ được sử dụng để minh họa các ý tưởng chung về mật mã; Các tác giả không có ý định đánh giá hoặc so sánh các công cụ mật mã hiện có trên thị trường.

Mật mã học được đặt trên cơ sở khoa học phần lớn nhờ vào công trình của nhà khoa học xuất sắc người Mỹ Claude Shannon. Báo cáo “Lý thuyết toán học về mật mã” của ông được chuẩn bị dưới dạng phiên bản bí mật năm 1945, được giải mật và xuất bản năm 1948, được dịch sang tiếng Nga năm 1963. Kể từ “Các công trình về Lý thuyết thông tin và Điều khiển học” (1963) của K. Shannon đã trở thành một tài liệu quý hiếm về mặt thư mục. , chúng tôi đã đưa vào phần phụ lục phần chính của bài viết “Lý thuyết truyền thông trong các hệ thống bí mật” của K. Shannon. Tác phẩm có ảnh hưởng sâu sắc này được khuyến khích đọc cho bất kỳ ai quan tâm đến mật mã.

Để có sự hiểu biết chuyên nghiệp về các thuật toán mật mã và khả năng đánh giá điểm mạnh và mặt yếu Việc đào tạo toán học nghiêm túc đã được yêu cầu (ở cấp độ khoa toán của trường đại học). Điều này được giải thích là do mật mã hiện đại dựa trên kết quả sâu sắc của các ngành toán học như lý thuyết về độ phức tạp tính toán, lý thuyết số, đại số, lý thuyết thông tin, v.v. Những ai muốn nghiên cứu nghiêm túc về mật mã có thể giới thiệu chuyên khảo ôn tập “Mật mã học trong Ngân hàng” của M. I. Anokhin, Varnovsky N.P., Sidelnikova V.M., Yashchenko V.V., M.: MEPhI, 1997.

Làm thế nào để truyền tải thông tin cần thiết đến đúng người nhận mà người khác không hề hay biết? Mỗi độc giả ở những thời điểm khác nhau và với các mục đích khác nhau Có lẽ tôi đã cố gắng tự mình giải quyết vấn đề thực tế này (để thuận tiện cho việc tham khảo thêm, hãy gọi nó là “vấn đề TP”, tức là vấn đề Truyền tải bí mật). Sau khi chọn được giải pháp phù hợp, rất có thể anh ta đã lặp lại việc phát minh ra một trong những phương pháp truyền tải thông tin bí mật đã có từ hàng nghìn năm nay.

Khi nghĩ về vấn đề TP, không khó để đi đến kết luận rằng có ba khả năng xảy ra.
1. Tạo kênh liên lạc tuyệt đối đáng tin cậy giữa các thuê bao, người khác không thể tiếp cận được.
2. Sử dụng kênh công cộng giao tiếp nhưng lại che giấu sự thật về việc truyền tải thông tin.
3. Sử dụng kênh liên lạc công cộng nhưng truyền tải thông tin cần thiết qua kênh đó dưới dạng chuyển đổi mà chỉ người nhận mới có thể khôi phục được.

Chúng ta hãy bình luận về ba khả năng này.
1. Với trình độ phát triển của khoa học công nghệ hiện nay, việc tạo ra một kênh liên lạc giữa các thuê bao ở xa để truyền lặp đi lặp lại khối lượng thông tin lớn là gần như không thể.
2. Steganography là sự phát triển các phương tiện, phương pháp nhằm che giấu sự thật về việc truyền tải thông điệp.

Dấu vết đầu tiên của phương pháp giấu tin đã bị thất lạc từ thời cổ đại. Ví dụ, có một cách đã biết để che giấu một tin nhắn bằng văn bản: đầu của nô lệ bị cạo trọc, một tin nhắn được viết trên da đầu và sau khi tóc mọc lại, nô lệ được gửi đến người nhận. Từ các tác phẩm trinh thám, người ta đã biết nhiều phương pháp viết bí mật khác nhau giữa các dòng văn bản thông thường, không được bảo vệ: từ sữa đến các thuốc thử hóa học phức tạp với quá trình xử lý tiếp theo.

Phương pháp “microdot” còn được biết đến trong truyện trinh thám: một tin nhắn được ghi lại bằng cách sử dụng công nghệ hiện đại trên một phương tiện rất nhỏ (microdot), được gửi cùng với một lá thư thông thường, chẳng hạn như dưới một con tem hoặc ở một nơi khác, ở một địa điểm được xác định trước.

Ngày nay, do việc sử dụng rộng rãi máy tính, nhiều phương pháp tinh vi được biết đến để “giấu” thông tin được bảo vệ bên trong khối lượng lớn thông tin được lưu trữ trên máy tính. Bạn có thể tìm thấy một ví dụ rõ ràng về việc ẩn tệp văn bản trong tệp đồ họa trên Internet; nó cũng được đăng trên tạp chí "Computerra", N48 (225) ngày 1 tháng 12 năm 1997, ở trang 62. (Cần lưu ý rằng các tác giả của bài báo trên tạp chí đã nhầm lẫn gán kỹ thuật giấu tin cho mật mã. sự trợ giúp của steganography, bạn cũng có thể ẩn các văn bản được mã hóa trước, nhưng nói chung, steganography và mật mã là những hướng cơ bản khác nhau trong lý thuyết và thực hành bảo mật thông tin.)

3. Mật mã đề cập đến việc phát triển các phương pháp chuyển đổi (mã hóa) thông tin nhằm bảo vệ thông tin đó khỏi những người sử dụng bất hợp pháp. Những phương pháp và phương pháp chuyển đổi thông tin như vậy được gọi là mật mã.

Mã hóa (mã hóa) là quá trình áp dụng mật mã cho thông tin được bảo vệ, tức là chuyển đổi thông tin được bảo vệ (bản rõ) thành tin nhắn được mã hóa (bản mã, mật mã) bằng cách sử dụng các quy tắc nhất định có trong mật mã.

Giải mã là quá trình mã hóa ngược, tức là chuyển đổi một tin nhắn được mã hóa thành thông tin được bảo vệ bằng cách sử dụng các quy tắc nhất định có trong mật mã.

Mật mã học là một ngành khoa học ứng dụng, nó sử dụng những tiến bộ mới nhất khoa học cơ bản và trước hết là các nhà toán học. Mặt khác, mọi nhiệm vụ cụ thể của mật mã đều phụ thuộc đáng kể vào trình độ phát triển của công nghệ, phương tiện truyền thông được sử dụng và phương pháp truyền tải thông tin.

Chủ đề của mật mã. Chủ đề của mật mã là gì? Để trả lời câu hỏi này, chúng ta hãy quay lại bài toán TP để làm rõ thực trạng và các khái niệm được sử dụng. Trước hết, hãy lưu ý rằng nhiệm vụ này chỉ phát sinh đối với những thông tin cần được bảo vệ. Thông thường trong những trường hợp như vậy họ nói rằng thông tin đó có chứa bí mật hoặc được bảo vệ, riêng tư, bí mật, bí mật. Đối với những tình huống điển hình nhất, thường xuyên xảy ra thuộc loại này, thậm chí các khái niệm đặc biệt cũng đã được đưa ra:
- bí mật nhà nước;
- bí mật quân sự;
- bí mật thương mại;
- bí mật pháp lý;
- bí mật y tế, v.v.

Tiếp theo, chúng ta sẽ nói về thông tin được bảo vệ, lưu ý các đặc điểm sau của thông tin đó:
- có một nhóm người dùng hợp pháp nhất định có quyền sở hữu thông tin này;
- có những người dùng bất hợp pháp tìm cách lấy thông tin này để biến nó thành lợi ích của họ và gây hại cho người dùng hợp pháp.

Sách, tải sách, tải sách, sách trực tuyến, đọc trực tuyến, tải sách miễn phí, đọc sách, đọc sách trực tuyến, đọc, thư viện trực tuyến, đọc sách, đọc trực tuyến miễn phí, đọc sách miễn phí, sách điện tử, đọc trực tuyến sách, sách toán và vật lý hay nhất, sách toán và vật lý thú vị, sách điện tử, sách miễn phí, sách tải xuống miễn phí, tải sách toán và vật lý miễn phí, tải sách miễn phí đầy đủ, thư viện trực tuyến, tải sách miễn phí, đọc sách trực tuyến miễn phí mà không cần đăng ký toán và vật lý, đọc sách trực tuyến toán và vật lý miễn phí, thư viện điện tử toán và vật lý, sách đọc toán và vật lý trực tuyến, thế giới sách toán và vật lý, đọc toán và vật lý miễn phí, thư viện toán học trực tuyến và vật lý, đọc sách toán và vật lý, sách toán và vật lý trực tuyến miễn phí, sách toán và vật lý phổ biến, thư viện sách miễn phí toán học và vật lý, tải sách điện tử toán học và vật lý, thư viện miễn phí toán học và vật lý trực tuyến, tải sách điện tử, sách giáo khoa toán học và vật lý trực tuyến, thư viện sách điện tử toán học và vật lý, tải sách điện tử toán học và vật lý miễn phí mà không cần đăng ký toán học và vật lý, sách toán học vật lý hay, tải sách hoàn toàn toán học và vật lý, thư viện điện tử đọc toán và vật lý miễn phí, thư viện điện tử tải toán và vật lý miễn phí, các trang tải sách toán và vật lý, sách thông minh toán và vật lý, tìm kiếm sách toán và vật lý, tải sách điện tử toán và vật lý miễn phí, tải sách điện tử toán học và vật lý, sách toán học và vật lý hay nhất, thư viện điện tử toán học và vật lý miễn phí, đọc sách trực tuyến miễn phí toán học và vật lý, trang sách toán học và vật lý, thư viện điện tử, sách trực tuyến để đọc, sách toán học và vật lý điện tử, trang web dành cho tải sách miễn phí và không cần đăng ký, thư viện toán và vật lý trực tuyến miễn phí, tải sách toán và vật lý miễn phí ở đâu, đọc sách toán và vật lý miễn phí và không cần đăng ký, tải sách giáo khoa toán và vật lý, tải sách điện tử toán và vật lý miễn phí , tải sách miễn phí đầy đủ, thư viện trực tuyến miễn phí, sách điện tử toán học và vật lý hay nhất, thư viện sách toán học trực tuyến, tải sách điện tử miễn phí mà không cần đăng ký, tải xuống thư viện trực tuyến miễn phí, tải sách miễn phí ở đâu, thư viện điện tử miễn phí, sách điện tử miễn phí, thư viện điện tử miễn phí, thư viện trực tuyến miễn phí, đọc sách miễn phí, sách trực tuyến miễn phí để đọc, đọc trực tuyến miễn phí, sách thú vị đọc toán học và vật lý trực tuyến, đọc sách trực tuyến toán học và vật lý, điện tử thư viện toán và vật lý trực tuyến, thư viện sách điện tử toán và vật lý miễn phí, thư viện trực tuyến đọc, đọc miễn phí và không cần đăng ký toán và vật lý, tìm sách toán và vật lý, danh mục sách toán và vật lý, tải sách trực tuyến miễn phí về toán và vật lý vật lý, thư viện Internet toán học và vật lý, tải xuống sách miễn phí mà không cần đăng ký toán học và vật lý, nơi bạn có thể tải xuống sách toán học và vật lý miễn phí, nơi bạn có thể tải xuống sách, trang web cho tải xuống miễn phí sách, đọc trực tuyến, thư viện để đọc, sách đọc trực tuyến miễn phí mà không cần đăng ký, thư viện sách, thư viện trực tuyến miễn phí, thư viện trực tuyến để đọc miễn phí, sách đọc miễn phí và không cần đăng ký, thư viện điện tử tải sách miễn phí, đọc trực tuyến miễn phí.

,
Từ năm 2017, chúng tôi đã đổi mới phiên bản di động của website dành cho điện thoại di động (thiết kế văn bản rút gọn, công nghệ WAP) - nút trên cùng ở góc trên bên trái của trang web. Nếu bạn không có quyền truy cập Internet thông qua Máy tính cá nhân hoặc thiết bị đầu cuối Internet, bạn có thể sử dụng điện thoại di động của mình để truy cập trang web của chúng tôi (thiết kế ngắn) và nếu cần, hãy lưu dữ liệu từ trang web vào bộ nhớ điện thoại di động của bạn. Lưu sách và bài viết vào điện thoại di động của bạn (Internet di động) và tải chúng từ điện thoại xuống máy tính của bạn. Tải sách thuận tiện qua điện thoại di động (vào bộ nhớ điện thoại) và về máy tính qua giao diện di động. Internet nhanh không có thẻ không cần thiết, miễn phí (với giá dịch vụ Internet) và không có mật khẩu. Tài liệu này chỉ được cung cấp cho mục đích thông tin. Các liên kết trực tiếp đến các tập tin sách và bài viết trên trang web và việc bán chúng bởi các bên thứ ba đều bị cấm.

Ghi chú. Liên kết văn bản thuận tiện cho các diễn đàn, blog, trích dẫn tài liệu trang web, Mã HTML có thể được sao chép và dán vào trang web của bạn khi trích dẫn từ trang web của chúng tôi. Tài liệu này chỉ được cung cấp cho mục đích thông tin. Đồng thời lưu sách vào điện thoại di động của bạn qua Internet (có phiên bản dành cho thiết bị di động của trang web - liên kết ở trên cùng bên trái của trang) và tải chúng từ điện thoại về máy tính của bạn. Liên kết trực tiếp tới các tập tin sách đều bị cấm.

12.1. Giới thiệu. Về lịch sử của steganography và mật mã.

Làm thế nào để truyền tải thông tin cần thiết đến đúng người nhận mà người khác không hề hay biết? Mỗi độc giả vào những thời điểm khác nhau và với những mục đích khác nhau có lẽ đã cố gắng tự giải quyết vấn đề thực tế này (để thuận tiện cho việc tham khảo thêm, chúng tôi sẽ gọi nó là “vấn đề TP”, tức là vấn đề Truyền tải bí mật). Sau khi chọn được giải pháp phù hợp, rất có thể anh ta đã lặp lại việc phát minh ra một trong những phương pháp truyền tải thông tin bí mật đã có từ hàng nghìn năm nay.

Nghĩ về vấn đề TP, không khó để đi đến kết luận có ba khả năng xảy ra:

  • 1. Tạo kênh liên lạc tuyệt đối đáng tin cậy giữa các thuê bao, người khác không thể tiếp cận được.
  • 2. Sử dụng một kênh liên lạc công cộng nhưng che giấu sự thật về việc truyền tải thông tin.
  • 3. Sử dụng kênh liên lạc công cộng nhưng truyền tải thông tin cần thiết qua kênh đó dưới dạng chuyển đổi mà chỉ người nhận mới có thể khôi phục được.

Chúng ta hãy bình luận về ba khả năng này.

  • 1. Với trình độ phát triển của khoa học công nghệ hiện nay, việc tạo ra một kênh liên lạc giữa các thuê bao ở xa để truyền lặp đi lặp lại khối lượng thông tin lớn là gần như không thể.
  • 2. Steganography là sự phát triển các phương tiện và phương pháp nhằm che giấu sự thật về việc truyền tải thông điệp.

Steganography như một môn khoa học hiện đang phát triển do sự phát triển nhanh chóng của Internet. Được dịch từ tiếng Hy Lạp, “steganography” có nghĩa đen là “văn bản bí mật” (steganos - bí mật; graph - viết). Mục đích của kỹ thuật giấu tin là để che giấu việc truyền tải thông tin; nó không thể thay thế mật mã, nhưng cùng với nó, nó cho phép đạt được tối đa chuyển giao an toàn tin nhắn.

Ở các trình độ công nghệ khác nhau tương ứng với thời đại của mình, ý tưởng che giấu thông tin đã được thực hiện từ thời xa xưa. Người đọc có lẽ đã biết đến việc người xưa sử dụng những tấm bảng có thông điệp phủ sáp hoặc việc các nhà cách mạng trong nước tích cực sử dụng mực cảm thông.

Cần lưu ý rằng phương pháp steganographic có thể được sử dụng để bảo vệ thông tin bí mật và nhằm mục đích phá hoại. Điều này đặc biệt có ý nghĩa trong bối cảnh thái độ đã thay đổi đối với Internet như một kênh liên lạc khả thi cho các phần tử khủng bố thuộc nhiều loại khác nhau. Ở đây chúng tôi xem xét các khả năng của kỹ thuật giấu tin hiện đại liên quan đến vấn đề bảo mật thông tin.

Tính năng chính của mật mã máy tính là ẩn một tệp tin bên trong một tệp chứa. Vùng chứa thường được phát bởi các tệp đồ họa được sử dụng rộng rãi. định dạng BMP, GIF, JPEG hoặc WAV âm thanh, mặc dù những thứ khác đều có thể thực hiện được - tất cả phụ thuộc vào việc triển khai cụ thể. Các hệ thống steganography máy tính hiện đại chủ yếu sử dụng phương pháp LSB hoặc phương pháp thay thế bit ít quan trọng nhất. Bản chất của phương pháp này là thay thế giá trị của bit có trọng số thấp nhất. Giả sử chúng ta muốn ẩn một tin nhắn bên trong một thùng chứa, đó là nhiếp ảnh đen trắng. Trong hình ảnh kỹ thuật số tám bit tiêu chuẩn, giá trị độ sáng nằm trong khoảng từ 0 đến 255, việc thay đổi giá trị của bit cuối cùng có thể tăng hoặc giảm giá trị độ sáng thêm một. Do đó, sự thay đổi trung bình về độ sáng của pixel sẽ không vượt quá một phần trăm. Chúng tôi xin nói thêm rằng không phải tất cả các thành phần của hình ảnh đều trải qua những thay đổi nhỏ, có nghĩa là hình thức của nó sẽ không khác so với hình ảnh gốc. Từ những điều trên cho thấy rằng việc phân biệt trực quan các thay đổi trong tệp vùng chứa sẽ khó khăn hơn nếu đó là hình ảnh có độ nhiễu tương phản đồng đều. Phương pháp được mô tả ở trên cũng được sử dụng để ẩn tin nhắn trong các tệp có định dạng âm thanh, trong khi những thay đổi trong vùng chứa ban đầu thực tế không thể phân biệt được bằng tai và một tệp có tiếng ồn nền lớn có thể được coi là vùng chứa chất lượng cao.

Bây giờ chúng ta đã biết thêm một chút về kỹ thuật giấu tin, chúng ta có thể rút ra kết luận. Tỷ lệ kích thước của tệp chứa và tệp đính kèm càng cao thì chất lượng ẩn thông tin bên trong tệp chứa càng cao. Trong thực tế, điều này có nghĩa là việc truyền tải các thông điệp steganographic chất lượng cao đòi hỏi một khối lượng lớn thông tin được truyền đi. Vì vậy, chúng ta có thể nói rằng việc tăng chất lượng ẩn thông tin sẽ dẫn đến giảm khối lượng cần thiết để truyền và ngược lại.

Mặc dù lĩnh vực giấu tin máy tính còn khá non trẻ, nhưng bằng cách sử dụng các công cụ tìm kiếm trên Internet, bạn có thể tìm thấy đủ số lượng chương trình chuyên nghiệp và nghiệp dư để viết bí mật. Một trong những chương trình thành công nhất là Steganos Security Suite 4. Chương trình này là một bộ tiện ích mạnh mẽ để đảm bảo bí mật thông tin. Nó bao gồm các công cụ để bảo vệ đĩa và quyền truy cập vào toàn bộ máy tính, mã hóa email, đảm bảo an ninh Internet, một tiện ích chuyên nghiệp để đảm bảo xóa tệp không thể phục hồi và tất nhiên là một hệ thống tốc ký chất lượng cao. Đối với những mục đích mà chúng tôi quan tâm, tiện ích Steganos File Manager được thiết kế. Với sự trợ giúp của nó, có thể chọn tệp chứa từ những tệp đã có trên đĩa của người dùng hoặc sử dụng máy quét hoặc micrô để tạo độc lập tệp có định dạng phù hợp. Chương trình không chỉ có thể ẩn tin nhắn một cách an toàn trong vùng chứa đã chọn mà còn tạo một kho lưu trữ tự giải nén.

Như chúng ta thấy, vấn đề bảo mật thông tin đã kích thích sự phát triển khá nhanh chóng của các hệ thống steganographic và mật mã. Xem xét các ứng dụng quan trọng của kỹ thuật giấu tin như bảo vệ quyền riêng tư, hình mờ kỹ thuật số, chữ ký số điện tử và thương mại điện tử, có thể nói rằng trong thời gian tới sẽ có sự phát triển tích cực theo hướng này. Đồng thời, người ta không thể đánh giá thấp mối đe dọa nghiêm trọng mà các hệ thống an ninh thông tin mạnh mẽ có thể gây ra nếu chúng rơi vào tay nhiều loại khủng bố và cướp biển máy tính. Vì vậy, cũng giống như giải mã vào thời đó, theo quy luật của khiên và kiếm, ngày nay steganalysis cũng đang phát triển, nhiệm vụ của nó là tìm ra các thuật toán hiệu quả để phát hiện thông tin ẩn giấu.

Steganography đôi khi bị phân loại nhầm là mật mã. Tất nhiên, với sự trợ giúp của kỹ thuật giấu tin, bạn cũng có thể ẩn các văn bản được mã hóa trước, nhưng nói chung, kỹ thuật giấu tin và mật mã về cơ bản là những hướng khác nhau trong lý thuyết và thực tiễn về bảo mật thông tin.

3. Mật mã đề cập đến việc phát triển các phương pháp chuyển đổi (mã hóa) thông tin nhằm bảo vệ thông tin đó khỏi những người sử dụng bất hợp pháp. Những phương pháp và phương pháp chuyển đổi thông tin như vậy được gọi là mật mã.

Mã hóa (mã hóa)- quá trình áp dụng mật mã cho thông tin được bảo vệ, tức là chuyển đổi thông tin được bảo vệ (văn bản thuần túy) thành tin nhắn được mã hóa (bản mã, mật mã) bằng cách sử dụng các quy tắc nhất định có trong mật mã.

giải mã- quá trình mã hóa ngược lại, tức là chuyển đổi một tin nhắn được mã hóa thành thông tin được bảo vệ bằng cách sử dụng các quy tắc nhất định có trong mật mã.

mật mã- khoa học ứng dụng, nó sử dụng những thành tựu mới nhất của khoa học cơ bản và trước hết là toán học. Mặt khác, mọi nhiệm vụ cụ thể của mật mã đều phụ thuộc đáng kể vào trình độ phát triển của công nghệ, phương tiện truyền thông được sử dụng và phương pháp truyền tải thông tin.

Một số khái niệm về mật mã có thể được minh họa một cách thuận tiện bằng các ví dụ lịch sử, vì vậy chúng ta hãy thực hiện một đoạn lạc đề lịch sử ngắn gọn.

Trong một thời gian dài, mật mã là nơi dành riêng cho những người lập dị đơn độc. Trong số đó có các nhà khoa học, nhà ngoại giao và giáo sĩ tài năng.

Có những trường hợp mật mã thậm chí còn bị coi là ma thuật đen. Thời kỳ phát triển mật mã như một nghệ thuật này kéo dài từ thời xa xưa cho đến đầu thế kỷ 20, khi những chiếc máy mã hóa đầu tiên xuất hiện. Sự hiểu biết về bản chất toán học của các vấn đề được giải quyết bằng mật mã chỉ xuất hiện vào giữa thế kỷ 20 - sau công trình của nhà khoa học xuất sắc người Mỹ K. Shannon.

Lịch sử của mật mã gắn liền với một lượng lớn bí mật ngoại giao và quân sự và do đó bị che phủ trong sương mù huyền thoại. Nhiều nhân vật lịch sử nổi tiếng đã để lại dấu ấn trong lịch sử mật mã. Dưới đây là một số ví dụ nổi bật nhất. Thông tin đầu tiên về việc sử dụng mật mã trong các vấn đề quân sự gắn liền với tên tuổi của chỉ huy Spartan Lysander (mật mã “Scitala”). Caesar đã sử dụng một mật mã trong thư từ của mình, mật mã này đã đi vào lịch sử với tên gọi “mật mã Caesar”. Ở Hy Lạp cổ đại, một loại mật mã đã được phát minh, sau này được gọi là “hình vuông Politai”. Một trong những cuốn sách đầu tiên về mật mã được viết bởi Tu viện trưởng I. Tritelius (1462-1516), sống ở Đức. Năm 1566, nhà toán học nổi tiếng D. Cardano đã xuất bản một tác phẩm mô tả hệ thống mã hóa mà ông đã phát minh ra (“Mạng Cardano”). Nước Pháp thế kỷ 16 đã để lại trong lịch sử mật mã các mật mã của Vua Henry IV và Richelieu. Ngoài ra còn có nhiều mật mã của Nga, trong đó có “bảng chữ cái kỹ thuật số” năm 1700, tác giả của nó là Peter Đại đế.

Một số thông tin về đặc tính của mật mã và ứng dụng của chúng có thể được tìm thấy trong tiểu thuyết, đặc biệt là trong văn học phiêu lưu, trinh thám và quân sự. Một lời giải thích chi tiết về các đặc điểm của một trong những mật mã đơn giản nhất, mật mã thay thế và phương pháp phá nó được chứa đựng trong hai câu chuyện nổi tiếng: “Con bọ vàng” của E. Poe và “The Dancing Men” của A. Conan Doyle. .

Hãy xem xét hai ví dụ.


Phương pháp mã hóa/giải mã được gọi là mã số (mật mã). Một số thuật toán mã hóa dựa trên thực tế là bản thân phương thức mã hóa (thuật toán) là bí mật. Ngày nay những phương pháp như vậy chỉ có giá trị lịch sử và không có ý nghĩa thực tiễn. Tất cả các thuật toán hiện đại đều sử dụng chìa khóa quản lý việc mã hóa và giải mã; tin nhắn chỉ có thể được giải mã thành công nếu biết khóa. Khóa dùng để giải mã có thể không giống với khóa dùng để mã hóa, nhưng trong hầu hết các thuật toán, các khóa đều giống nhau.

Các thuật toán dựa trên khóa được chia thành hai loại: đối xứng (hoặc thuật toán khóa bí mật) và bất đối xứng (hoặc thuật toán khóa chung). Điểm khác biệt là các thuật toán đối xứng sử dụng cùng một khóa để mã hóa và giải mã (hoặc khóa giải mã được tính đơn giản từ khóa mã hóa). Trong khi các thuật toán bất đối xứng sử dụng các khóa khác nhau và không thể tính khóa giải mã từ khóa mã hóa.

Các thuật toán Smetric được chia thành dòng mật mãkhối mật mã . Truyền phát cho phép bạn mã hóa thông tin từng chút một, trong khi các khối hoạt động với một tập hợp bit dữ liệu nhất định (thường kích thước khối là 64 bit) và mã hóa tập hợp này thành một tổng thể.

Mật mã bất đối xứng (còn được gọi là thuật toán khóa công khai, hay nói chung hơn là mật mã khóa công khai) cho phép tất cả mọi người đều có thể sử dụng khóa chung (chẳng hạn như được xuất bản trên một tờ báo). Điều này cho phép bất cứ ai mã hóa tin nhắn. Tuy nhiên, chỉ có người phù hợp (người sở hữu khóa giải mã) mới có thể giải mã được tin nhắn này. Khóa mã hóa được gọi là khóa công khai, và khóa giải mã --- khóa riêng hoặc chìa khoá bí mật.

Các thuật toán mã hóa/giải mã hiện đại khá phức tạp và không thể thực hiện thủ công. Các thuật toán mã hóa thực sự được thiết kế để sử dụng cho máy tính hoặc các thiết bị phần cứng đặc biệt. Trong hầu hết các ứng dụng, việc mã hóa được thực hiện bằng phần mềm và có sẵn nhiều gói mã hóa.

Nói chung, các thuật toán đối xứng nhanh hơn các thuật toán bất đối xứng. Trong thực tế, cả hai loại thuật toán thường được sử dụng cùng nhau: thuật toán khóa chung được sử dụng để truyền khóa bí mật được tạo ngẫu nhiên, sau đó khóa này được sử dụng để giải mã tin nhắn.

Nhiều thuật toán mật mã chất lượng cao được phổ biến rộng rãi - trong hiệu sách, thư viện, văn phòng cấp bằng sáng chế hoặc trên Internet. Các thuật toán đối xứng nổi tiếng bao gồm DES và IDEA. Có lẽ thuật toán bất đối xứng tốt nhất là RSA.

Chữ ký số

Một số thuật toán bất đối xứng có thể được sử dụng để tạo ra chữ ký số. Chữ ký số là một khối dữ liệu được tạo bằng một khóa bí mật nhất định. Trong trường hợp này, bằng cách sử dụng khóa chung, bạn có thể xác minh rằng dữ liệu thực sự được tạo bằng khóa riêng này. Thuật toán tạo chữ ký số phải đảm bảo rằng không thể không có khóa bí mật để tạo ra một chữ ký mà khi được xác minh thì hóa ra là chính xác.

Chữ ký số được sử dụng để xác nhận rằng tin nhắn thực sự đến từ một người gửi nhất định (giả sử rằng chỉ người gửi có khóa riêng khớp với khóa chung của mình). Chữ ký cũng được dùng để gắn dấu thời gian (dấu thời gian) trên các tài liệu: bên mà chúng tôi tin tưởng ký vào tài liệu có dấu thời gian bằng khóa riêng của họ và do đó xác nhận rằng tài liệu đã tồn tại tại thời điểm được khai báo trong dấu thời gian.

Chữ ký số cũng có thể được sử dụng để xác thực ( chứng nhận --- chứng nhận) rằng tài liệu đó thuộc về đến một người nào đó. Việc này được thực hiện như sau: khóa công khai và thông tin về người sở hữu nó được ký bởi một bên đáng tin cậy. Đồng thời, chúng ta có thể tin tưởng người ký dựa trên thực tế là khóa của nó đã được bên thứ ba ký. Điều này tạo ra một hệ thống phân cấp tin cậy. Rõ ràng, một số khóa phải là gốc của hệ thống phân cấp (nghĩa là chúng ta tin cậy nó không phải vì nó được ai đó ký, mà vì chúng ta tin rằng nó có thể được tin cậy). TRONG cơ sở hạ tầng quan trọng tập trung có một số lượng rất nhỏ các khóa gốc mạng (ví dụ: các cơ quan chính phủ có thẩm quyền; chúng còn được gọi là cơ quan chứng nhận --- cơ quan chứng nhận). TRONG cơ sở hạ tầng phân tán không cần phải có khóa gốc chung và mỗi bên có thể tin cậy vào bộ khóa gốc của riêng mình (ví dụ: khóa riêng của mình và các khóa được ký bởi bên đó). Khái niệm này được gọi là mạng lưới tin cậy (mạng lưới tin cậy) và được triển khai, ví dụ như trong PGP.

Chữ ký số của một tài liệu thường được tạo ra như thế này: cái gọi là tiêu (tóm lược thông điệp) và thông tin về người ký tài liệu, dấu thời gian, v.v. được thêm vào đó. Chuỗi kết quả sau đó được mã hóa bằng khóa bí mật của người ký bằng thuật toán này hoặc thuật toán khác. Tập hợp các bit được mã hóa kết quả là chữ ký. Chữ ký thường đi kèm với khóa công khai của người ký. Trước tiên, người nhận tự quyết định xem liệu anh ta có tin rằng khóa chung thuộc về chính xác người mà nó nên thuộc về hay không (sử dụng mạng lưới tin cậy hoặc kiến ​​thức tiên nghiệm), sau đó giải mã chữ ký bằng khóa chung. Nếu chữ ký được giải mã bình thường và nội dung của nó tương ứng với tài liệu (thông báo, v.v.) thì tin nhắn được coi là đã xác nhận.

Một số phương pháp tạo và xác minh chữ ký số được cung cấp miễn phí. Nổi tiếng nhất là thuật toán RSA.

Hàm băm mật mã

Hàm băm mật mã thường được sử dụng để tạo thông báo tóm tắt khi tạo chữ ký số. Hàm băm ánh xạ tin nhắn tới một kích thước cố định Giá trị băm (Giá trị băm) sao cho toàn bộ tập hợp tin nhắn có thểđược phân phối đồng đều trên nhiều giá trị băm. Tuy nhiên, hàm băm mật mã thực hiện điều này theo cách gần như không thể khớp tài liệu với một giá trị băm nhất định.

Hàm băm mật mã thường tạo ra các giá trị có độ dài từ 128 bit trở lên. Con số này lớn hơn đáng kể so với số lượng tin nhắn từng tồn tại trên thế giới.

Nhiều hàm băm mật mã tốt có sẵn miễn phí. Những cái thường được biết đến bao gồm MD5 và SHA.

Trình tạo số ngẫu nhiên bằng mật mã

Trình tạo số ngẫu nhiên bằng mật mã tạo ra các số ngẫu nhiên được sử dụng trong các ứng dụng mã hóa, chẳng hạn như tạo khóa. Máy phát điện thông thường các số ngẫu nhiên có sẵn trong nhiều ngôn ngữ lập trình và môi trường phần mềm không phù hợp với nhu cầu của mật mã (chúng được tạo ra với mục tiêu đạt được sự phân bố ngẫu nhiên về mặt thống kê; các nhà phân tích mật mã có thể dự đoán hành vi của các trình tạo ngẫu nhiên đó).

Lý tưởng nhất là các số ngẫu nhiên nên dựa trên nguồn thông tin ngẫu nhiên thực tế không thể dự đoán được. Ví dụ về các nguồn như vậy bao gồm các thiết bị bán dẫn gây ồn, các bit âm thanh số hóa bậc thấp và khoảng thời gian giữa các lần ngắt hoặc nhấn phím của thiết bị. Sau đó, nhiễu sinh ra từ nguồn vật lý sẽ được "chưng cất" bằng hàm băm mật mã sao cho mỗi bit phụ thuộc vào từng bit. Thông thường, một nhóm khá lớn (vài nghìn bit) được sử dụng để lưu trữ thông tin ngẫu nhiên và mỗi bit của nhóm được tạo ra phụ thuộc vào từng bit thông tin nhiễu và mỗi bit khác của nhóm được bảo mật bằng mật mã ( mạnh) đường.

Khi không có nguồn nhiễu vật lý thực sự, bạn phải sử dụng số giả ngẫu nhiên. Tình trạng này là không mong muốn nhưng thường xảy ra trên các máy tính đa năng. Người ta luôn mong muốn nhận được một số loại tiếng ồn môi trường --- chẳng hạn như từ mức độ trễ của thiết bị, số liệu thống kê sử dụng tài nguyên, số liệu thống kê mạng, gián đoạn bàn phím hoặc thứ gì khác. Mục tiêu là thu được dữ liệu mà người quan sát bên ngoài không thể đoán trước được. Để đạt được điều này, nhóm ngẫu nhiên phải chứa ít nhất 128 bit entropy thực.

Trình tạo số giả ngẫu nhiên bằng mật mã thường sử dụng một nhóm lớn (giá trị hạt giống) chứa thông tin ngẫu nhiên. Các bit được tạo bằng cách lấy mẫu từ một nhóm, có thể chạy qua hàm băm mật mã để ẩn nội dung của nhóm khỏi những người quan sát bên ngoài. Khi cần một phần bit mới, nhóm sẽ được xáo trộn bằng cách mã hóa bằng khóa ngẫu nhiên (khóa này có thể được lấy từ phần không sử dụng của nhóm) để mọi bit trong nhóm phụ thuộc vào mọi bit khác. Tiếng ồn mới môi trường phải được thêm vào nhóm trước khi xáo trộn để khiến việc dự đoán các giá trị nhóm mới càng khó khăn hơn.

Mặc dù trình tạo số ngẫu nhiên được bảo mật bằng mật mã không quá khó thực hiện với thiết kế cẩn thận nhưng đây là một vấn đề thường bị bỏ qua. Vì vậy, cần nhấn mạnh tầm quan trọng của trình tạo số ngẫu nhiên bằng mật mã --- nếu nó được thực hiện kém, nó có thể dễ dàng trở thành thành phần dễ bị tổn thương nhất của hệ thống.

Mức độ bảo vệ được cung cấp bởi mật mã

Các hệ thống mật mã tốt được thiết kế để làm cho việc phá vỡ chúng trở nên khó khăn nhất có thể. Có thể xây dựng các hệ thống mà trong thực tế không thể mở được (mặc dù thực tế này thường không thể được chứng minh). Nó không đòi hỏi nhiều nỗ lực để thực hiện. Điều duy nhất cần có là sự chính xác và kiến ​​​​thức cơ bản. Không có sự tha thứ nào cho nhà phát triển nếu anh ta để lại khả năng mở hệ thống. Tất cả các cơ chế có thể được sử dụng để hack hệ thống phải được ghi lại và thu hút sự chú ý của người dùng cuối.

Về mặt lý thuyết, bất kỳ thuật toán mã hóa nào sử dụng khóa đều có thể bị phá bằng cách tìm kiếm trong tất cả các giá trị khóa. Nếu khóa được chọn bằng phương pháp lực lượng vũ phu (lực lượng vũ phu), công suất máy tính cần thiết sẽ tăng theo cấp số nhân khi tăng độ dài khóa. Khóa 32 bit yêu cầu 2^32 (khoảng 10^9) bước. Nhiệm vụ này nằm trong khả năng của bất kỳ người nghiệp dư nào và có thể giải quyết được bằng máy tính ở nhà. Các hệ thống có khóa 40 bit (ví dụ: phiên bản xuất khẩu của thuật toán RC4 của Mỹ) yêu cầu 2^40 bước --- sức mạnh máy tính như vậy có sẵn ở hầu hết các trường đại học và thậm chí ở các công ty nhỏ. Các hệ thống có khóa 56 bit (DES) cần nhiều nỗ lực để mở nhưng có thể mở dễ dàng bằng thiết bị đặc biệt. Chi phí của những thiết bị như vậy rất lớn nhưng lại phù hợp với túi tiền của mafia, các công ty lớn và chính phủ. Các khóa có độ dài 64 bit hiện có thể được mở bởi các quốc gia lớn và trong vài năm tới chúng sẽ có sẵn để mở bởi các tổ chức tội phạm, công ty lớn và tiểu bang nhỏ. Khóa dài 80 bit có thể dễ bị tấn công trong tương lai. Khóa 128 bit có thể sẽ không thể bị phá vỡ bằng vũ lực trong tương lai gần. Các phím dài hơn cũng có thể được sử dụng. Trong giới hạn, không khó để đảm bảo rằng năng lượng cần thiết cho việc mở (giả sử rằng lượng năng lượng cơ học lượng tử tối thiểu được tiêu tốn cho mỗi bước) vượt quá khối lượng của mặt trời hoặc vũ trụ.

Tuy nhiên, độ dài khóa không phải là tất cả. Nhiều mật mã có thể bị giải mã mà không cần thử mọi cách kết hợp có thể. Nói chung, rất khó để tìm ra một mật mã không thể giải được bằng cách khác hiệu quả hơn. Việc phát triển mật mã của riêng bạn có thể rất thú vị, nhưng đối với các ứng dụng trong thế giới thực, bạn không nên sử dụng mật mã tự tạo trừ khi bạn là chuyên gia và chắc chắn 100% về những gì mình đang làm.

Nói chung, bạn nên tránh xa các thuật toán bí mật hoặc chưa được công bố. Thông thường, người phát triển thuật toán như vậy không chắc chắn về độ tin cậy của nó hoặc độ tin cậy phụ thuộc vào tính bí mật của chính thuật toán đó. Nói chung, không có thuật toán nào có độ bí mật phụ thuộc vào độ bí mật của chính thuật toán đó là đáng tin cậy. Đặc biệt, nếu bạn có một chương trình mã hóa, bạn có thể thuê một lập trình viên sẽ tháo rời nó và khôi phục thuật toán bằng kỹ thuật đảo ngược. Kinh nghiệm cho thấy rằng hầu hết các thuật toán bí mật sau này được công khai hóa ra lại không đáng tin cậy một cách nực cười.

Độ dài khóa được sử dụng trong mật mã khóa công khai thường dài hơn nhiều so với các thuật toán đối xứng. Vấn đề ở đây không phải ở việc chọn khóa mà ở việc tạo lại khóa bí mật từ khóa chung. Trong trường hợp RSA, bài toán tương đương với việc phân tích một số nguyên lớn là tích của một cặp số nguyên tố chưa biết. Trong trường hợp của một số hệ thống mật mã khác, bài toán này tương đương với việc tính logarit rời rạc modulo một số nguyên lớn (bài toán này được coi là có độ khó gần giống với bài toán phân tích nhân tử). Có những hệ thống mật mã khai thác các vấn đề khác.

Để đưa ra ý tưởng về độ khó của việc phá vỡ RSA, các lập trình viên thông thường có thể dễ dàng phân tích các mô-đun 256-bit. Khóa 384-bit có thể bị bẻ khóa bởi nhóm nghiên cứu của trường đại học hoặc công ty. Khóa 512 bit nằm trong tầm tay của các quốc gia lớn. Các khóa dài 768 bit có thể sẽ không được bảo mật lâu dài. Các khóa dài 1024 bit có thể được coi là an toàn cho đến khi có tiến bộ đáng kể trong thuật toán nhân tố hóa; Hầu hết mọi người coi các khóa có độ dài 2048 là đáng tin cậy trong nhiều thập kỷ. Thông tin thêm về độ dài khóa RSA có thể được tìm thấy trong bài viết của Bruce Scheier.

Điều quan trọng cần nhấn mạnh là mức độ tin cậy hệ thống mật mãđược xác định bởi liên kết yếu nhất của nó. Không nên bỏ qua khía cạnh nào của thiết kế hệ thống, từ việc lựa chọn thuật toán đến các chính sách phân phối và sử dụng chính.

Phân tích mật mã và tấn công vào hệ thống mật mã

Phân tích mật mã là khoa học giải mã các tin nhắn được mã hóa mà không cần biết khóa. Có nhiều cách tiếp cận giải mã. Một số trong những điều quan trọng nhất đối với các nhà phát triển được liệt kê dưới đây.
  • Tấn công chỉ với kiến ​​thức về bản mã (tấn công chỉ bằng bản mã): Đây là tình huống kẻ tấn công không biết gì về nội dung của tin nhắn và hắn chỉ phải làm việc với chính văn bản mã hóa. Trong thực tế, thường có thể đưa ra những giả định hợp lý về cấu trúc của văn bản vì nhiều tin nhắn có tiêu đề chuẩn. Ngay cả những bức thư và tài liệu thông thường cũng bắt đầu bằng những thông tin dễ đoán. Cũng thường có thể giả định rằng một khối thông tin nhất định có chứa một từ nhất định.
  • Tấn công bằng kiến ​​thức về nội dung mã hóa (tấn công bằng văn bản đã biết): Kẻ tấn công biết hoặc có thể đoán được nội dung của toàn bộ hoặc một phần văn bản mã hóa. Nhiệm vụ là giải mã phần còn lại của tin nhắn. Điều này có thể được thực hiện bằng cách tính toán khóa mã hóa hoặc bỏ qua nó.
  • Tấn công bằng văn bản đã cho (tấn công bằng bản rõ đã chọn): Kẻ tấn công có khả năng lấy được tài liệu được mã hóa cho bất kỳ văn bản nào hắn cần, nhưng không biết khóa. Nhiệm vụ là tìm chìa khóa. Một số phương pháp mã hóa và đặc biệt là RSA khá dễ bị tấn công kiểu này. Khi sử dụng các thuật toán như vậy, phải cẩn thận để đảm bảo rằng kẻ tấn công không thể mã hóa văn bản do anh ta đưa ra.
  • Đứng tấn công (Người đàn ông giữa cuộc chiến): Cuộc tấn công nhằm mục đích trao đổi các tin nhắn được mã hóa và đặc biệt là vào giao thức trao đổi khóa. Ý tưởng là khi hai bên trao đổi khóa để liên lạc bí mật (ví dụ: sử dụng mật mã Diffie-Hellman), kẻ thù sẽ xâm nhập vào đường dây nhắn tin giữa họ. Tiếp theo, kẻ địch đưa cho mỗi bên chìa khóa riêng. Kết quả là mỗi bên sẽ có những chìa khóa khác nhau, mỗi chiếc đều được kẻ địch biết. Bây giờ kẻ tấn công sẽ giải mã từng tin nhắn bằng khóa riêng của mình và sau đó mã hóa nó bằng một khóa khác trước khi gửi cho người nhận. Các bên sẽ có ảo tưởng thư từ bí mật, trong khi thực tế kẻ thù đọc được tất cả tin nhắn.

    Một cách để ngăn chặn kiểu tấn công này là các bên trao đổi khóa để tính toán hàm băm mật mã trao đổi các giá trị giao thức (hoặc ít nhất là các giá trị khóa), ký tên bằng thuật toán chữ ký số và gửi chữ ký cho bên kia. Người nhận sẽ xác minh chữ ký và giá trị băm khớp với giá trị được tính toán. Phương pháp này đặc biệt được sử dụng trong hệ thống Photuris.

  • Tấn công hẹn giờ (tấn công thời gian): Cái này kiểu mới Cuộc tấn công dựa trên phép đo tuần tự thời gian dành cho việc thực hiện thao tác nâng tường theo modulo một số nguyên. Ít nhất các mật mã sau đây dễ bị ảnh hưởng bởi nó: RSA, Diffie-Hellman và phương pháp đường cong elip. Thông tin thêm xem bài viết gốc và nhiều bài viết tiếp theo.
Có nhiều cuộc tấn công mật mã và phương pháp phân tích mật mã khác. Tuy nhiên, những điều trên có lẽ là quan trọng nhất để phát triển hệ thống thực tế. Nếu bất kỳ ai định tạo thuật toán mã hóa của riêng mình, họ cần hiểu những vấn đề này sâu sắc hơn nhiều. Một nơi để bắt đầu nghiên cứu thông tin một cách có hệ thống là cuốn sách xuất sắc của Bruce Schneier, Mật mã ứng dụng.

Tuyên bố từ chối trách nhiệm. Mọi ý kiến, kết luận trình bày ở đây đều là quan điểm chủ quan của tác giả, tác giả không chịu trách nhiệm về nội dung của mình.