Mã hóa dữ liệu là tiến trình che dấu dữ liệu thật (plaintext), nghĩa là chuyển dữ liệu thật thành dữ liệu không có ý nghĩa hoặc có ý nghĩa khác xa với dữ liệu thật. Tiến trình đó gọi là mã hóa (encrytion). Kết quả của tiến trình gọi là bản mã (ciphertext). Từ “encrytion” được tạo ra từ “cryptography” (mật mã) xuất phát từ tiếng Hi Lạp cổ xưa “Kryptos” (Che dấu) và từ “graphia” (viết). Tiến trình mã hóa dữ liệu có thế được thực hiện bằng cách hoán vị dữ liệu thật hoặc thay thế chúng bằng dữ liệu khác. Show
Tiến trình ngược với tiến trình mã hóa tức là chuyển từ bản mã thành dữ liệu ban đầu gọi là giải mã. Hệ mã CaesarTrong mật mã học, mật mã Caesar (Xê da), còn gọi là mật mã dịch chuyển, là một trong những mật mã đơn giản và được biết đến nhiều nhất. Hệ mã Caesar là một hệ mã hóa thay thế đơn âm, làm việc trên bẳng chữ cái tiếng Anh 26 ký tự. Đó là một dạng của mật mã thay thế, trong đó mỗi ký tự trong văn bản được thay thế bằng một ký tự cách nó một đoạn trong bảng chữ cái để tạo thành bản mã. Ví dụ:Đối với bảng mã tiếng anh (ABCDEFGHI...), nếu độ dịch là 3, A sẽ được thay bằng D, B sẽ được thay bằng E, ..., W sẽ thay bằng Z, X sẽ thay bằng A, Y sẽ thay bằng B và Z thay bằng C. Phương pháp được đặt tên theo Caesar, vị hoàng đế đã sử dụng nó thường xuyên trong công việc. Không gian bản rõ P là các từ cần được mà hóa được tạo từ bảng chữ cái A. Không gian bản rỏ C là các từ đã được mã hóa. Để mã hóa, người ta đánh số các chữ cái từ 0N-1 (N là tổng số phần tử của bản chữ cái). Không gian khóa K=ZN. Với mỗi khóa K K hàm mã hóa và giải mã một ký tự có số thứ tự là I sẽ được biểu diễn như sau:
Trong đó: Xét ví dụ sau: Cho bản rõ : Tìm bản mã ? Theo công thức thay vào ta sẽ có kết quả sau. Vậy bản mã là :
0 Quá trình giải mã thì ngược lại với quá trình mã hóa. Cài đặtMỗi ngôn ngữ khác nhau sẽ có cách cài đặt khác nhau. Mình sẽ sử dụng Python để cài đặt thuật toán: Mặc định bạn có thể dụng bảng chữ cái Tiếng Anh nhưng trong phần cài đặt này. Để thực tế hơn. Mình sẽ sử dụng bảng mã Tiếng Việt. 1. Bảng mã
1. Hàm mã hóa
Nếu đã đọc xong đống lý thuyết bên trên thì chắc hẳn bạn sẽ không gặp khó khăn gì trong đoạn code cài đặt trên: Mã hóa ký tự ASCII và Unicode cho phép máy tính lưu trữ và trao đổi dữ liệu với các máy tính và chương trình khác. Dưới đây là danh sách các ký tự hệ La-tinh ASCII và Unicode được sử dụng thường xuyên. Đối với các ký tự Unicode cho các script không thuộc hệ La-tinh, hãy xem mục Biểu đồ mã ký tự Unicode theo tập lệnh. Trong bài viết nàyChèn ký tự ASCII hoặc Unicode vào tài liệuNếu bạn chỉ cần nhập một vài ký tự hoặc ký hiệu đặc biệt, bạn có thể sử dụng Bản đồ hoặc nhập phím tắt. Xem bảng dưới đây hoặc xem mục Phím tắt cho các ký tự quốc tế để biết danh sách các ký tự ASCII. Lưu ý:
Chèn ký tự ASCIIĐể chèn ký tự ASCII, hãy nhấn và giữ phím ALT trong khi nhập mã ký tự. Ví dụ: để chèn ký hiệu độ (º), hãy nhấn và giữ ALT trong khi nhập 0176 trên bàn phím số. Bạn phải sử dụng bàn phím số để nhập các số, chứ không phải bàn phím. Đảm bảo rằng phím NUM LOCK đang bật nếu bàn phím của bạn yêu cầu phải nhập số trên bàn phím số. Chèn ký tự UnicodeĐể chèn ký tự Unicode, hãy nhập mã ký tự, nhấn ALT, rồi nhấn X. Ví dụ: để nhập ký hiệu đô la ($), hãy nhập 0024, nhấn ALT, rồi nhấn X. Để biết thêm mã ký tự Unicode, hãy xem mục Biểu đồ mã ký tự Unicode theo tập lệnh. Quan trọng: Một số chương trình Microsoft Office, chẳng hạn như PowerPoint và InfoPath, không thể chuyển đổi mã Unicode thành ký tự. Nếu bạn cần ký tự Unicode và đang dùng một trong các chương trình không hỗ trợ ký tự Unicode, hãy dùng Bản đồ Ký tự để nhập (các) ký tự bạn cần. Lưu ý:
Sử dụng Bản đồ Ký tựBản đồ Ký tự là một chương trình được tích hợp sẵn trong Microsoft Windows cho phép bạn xem các ký tự sẵn dùng trong phông chữ đã chọn. Sử dụng Bản đồ Ký tự, bạn có thể sao chép các ký tự riêng lẻ hoặc một nhóm ký tự vào Bảng tạm và dán chúng vào bất kỳ chương trình nào có thể hiển thị chúng. Để mở Bản đồ Ký tự:
Các ký tự được nhóm theo phông chữ. Bấm vào danh sách phông chữ để chọn một tập hợp các ký tự. Để chọn một ký tự, hãy bấm vào ký tự đó, bấm Chọn, bấm vào nút chuột phải trong tài liệu nơi bạn muốn đặt ký tự, rồi bấm Dán. Mã ký tự ký tự phổ biếnĐể biết thêm ký hiệu ký tự, hãy xem mục Bản đồ Ký tự được cài đặt trên máy tính, mã ký tự ASCII hoặc biểu đồ mã ký tự Unicode theo tập lệnh. Glyph Mã Glyph Mã Ký hiệu tiền tệ £ ALT+0163 ¥ ALT+0165 ¢ ALT+0162 $ 0024+ALT+X € ALT+0128 ¤ ALT+0164 Ký hiệu pháp lý © ALT+0169 ® ALT+0174 § ALT+0167 ™ ALT+0153 Ký hiệu toán học ° ALT+0176 º ALT+0186 √ 221A+ALT+X + ALT+43 # ALT+35 Μ ALT+0181 < ALT+60 \> ALT+62 % ALT+37 ( ALT+40 [ ALT+91 ) ALT+41 ] ALT+93 ∆ 2206+ALT+X Phân số ¼ ALT+0188 ½ ALT+0189 ¾ ALT+0190 Ký hiệu dấu câu và phương ngữ ? ALT+63 ¿ ALT+0191 ! ALT+33 ‼ 203+ALT+X - ALT+45 ' ALT+39 " ALT+34 , ALT+44 . ALT+46 | ALT+124 / ALT+47 \ ALT+92 ` ALT+96 ^ ALT+94 « ALT+0171 » ALT+0187 « ALT+174 » ALT+175 ~ ALT+126 & ALT+38 : ALT+58 { ALT+123 ; ALT+59 } ALT+125 Biểu tượng biểu mẫu □ 25A1+ALT+X √ 221A+ALT+X Các mã ký tự viết hoa thường gặpĐể biết danh sách đầy đủ các hình chữ và mã ký tự của chúng, hãy xem Bản đồ . Glyph Mã Glyph Mã à ALT+0195 å ALT+0229 Å ALT+143 å ALT+134 Ä ALT+142 ä ALT+132 À ALT+0192 à ALT+133 Á ALT+0193 á ALT+160  ALT+0194 â ALT+131 Ç ALT+128 ç ALT+135 Č 010C+ALT+X č 010D+ALT+X É ALT+144 é ALT+130 È ALT+0200 è ALT+138 Ê ALT+202 ê ALT+136 Ë ALT+203 ë ALT+137 Ĕ 0114+ALT+X ĕ 0115+ALT+X Ğ 011E+ALT+X ğ 011F+ALT+X Ģ 0122+ALT+X ģ 0123+ALT+X Ï ALT+0207 ï ALT+139 Î ALT+0206 î ALT+140 Í ALT+0205 í ALT+161 Ì ALT+0204 ì ALT+141 Ñ ALT+165 ñ ALT+164 Ö ALT+153 ö ALT+148 Ô ALT+212 ô ALT+147 Ō 014C+ALT+X ō 014D+ALT+X Ò ALT+0210 ò ALT+149 Ó ALT+0211 ó ALT+162 Ø ALT+0216 ø 00F8+ALT+X Ŝ 015C+ALT+X ŝ 015D+ALT+X Ş 015E+ALT+X ş 015F+ALT+X Ü ALT+154 ü ALT+129 Ū ALT+016A ū 016B+ALT+X Û ALT+0219 û ALT+150 Ù ALT+0217 ù ALT+151 Ú 00DA+ALT+X ú ALT+163 Ÿ 0159+ALT+X ÿ ALT+152 Mã ký tự cho ký tự chữ ghépĐể biết thêm thông tin về các chữ ghép, hãy xem Chữ ghép đánh máy. Để biết danh sách đầy đủ các chữ ghép và mã ký tự của chúng, hãy xem Bản đồ . Glyph Mã Glyph Mã Æ ALT+0198 æ ALT+0230 ß ALT+0223 ß ALT+225 Œ ALT+0140 œ ALT+0156 ʩ 02A9+ALT+X ʣ 02A3+ALT+X ʥ 02A5+ALT+X ʪ 02AA+ALT+X ʫ 02AB+ALT+X ʦ 0246+ALT+X ʧ 02A7+ALT+X Љ 0409+ALT+X Ю 042E+ALT+X Њ 040A+ALT+X Ѿ 047E+ALT+x Ы 042B+ALT+X Ѩ 0468+ALT+X Ѭ 049C+ALT+X ﷲ FDF2+ALT+X Ký tự điều khiển không in ASCIISố bảng ASCII 0–31 được gán cho ký tự điều khiển dùng để điều khiển một số thiết bị ngoại vi như máy in. Ví dụ: 12 đại diện cho hàm trang mới/nguồn cấp biểu mẫu. Lệnh này hướng dẫn máy in đi đến đầu trang tiếp theo. Biểu đồ ký tự điều khiển không in ASCIIDecimal Ký tự Decimal Ký tự null 0 thoát liên kết dữ liệu 16 bắt đầu đầu đầu đề mục 1 điều khiển thiết bị 1 17 bắt đầu văn bản 2 điều khiển thiết bị 2 18 cuối văn bản 3 điều khiển thiết bị 3 19 kết thúc truyền dẫn 4 điều khiển thiết bị 4 20 Yêu cầu 5 xác nhận tiêu cực 21 Thừa nhận 6 nhàn rỗi đồng bộ 22 Bell 7 kết thúc khối truyền dẫn 23 Backspace 8 hủy bỏ 24 tab ngang 9 cuối trung bình 25 nguồn cấp dòng/dòng mới 10 Thay thế 26 tab dọc 11 Thoát 27 nguồn cấp biểu mẫu/trang mới 12 dấu tách tệp 28 vận chuyển trở về 13 dấu tách nhóm 29 chuyển ra 14 dấu tách bản ghi 30 thay đổi trong 15 dấu tách đơn vị 31 dung lượng 32 DEL 127 Thêm thông tin
Bạn cần thêm trợ giúp?Bạn muốn xem các tùy chọn khác?Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa. Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú. |