Recent Posts

Mật mã học: Mật mã Caesar (Mã hóa Caesar)

-

Trong mật mã học, mật mã Caesar, 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. Mật mã 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ụ, nếu độ dịch là 3, A sẽ được thay bằng B, Ă sẽ được thay bằng C và cứ thế đến hết. 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.
Bước mã hóa bằng mã Caesar thường được kết hợp với một mã phức tạp hơn, ví dụ như mật mã Vigenère, và hiện nay vẫn được dùng trong các ứng dụng hiên đại nhưROT13. Cũng như các mật mã thay thế dùng một bảng mã khác, mã Xê da dễ dàng bị phá vỡ và không đáp ứng được yêu cầu an toàn thông tin trong truyền thông.
Phép dịch chuyển có thể được biểu diễn bằng hai bảng chữ cái, ví dụ dưới đây bước dịch chuyển là 3, con số này cũng gọi là khóa mã:
Bảng chữ cái thường:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
Bảng chữ cái mật mã:   DEFGHIJKLMNOPQRSTUVWXYZABC

Với bản chữ cái Tiếng Việt:
Bảng chữ cái thường:   AĂÂBCDĐEÊGHIKLMNOÔƠPQRSTUƯVXY
Bảng chữ cái mật mã:   BCDĐEÊGHIKLMNOÔƠPQRSTUƯVXYAĂÂ

Khi mã hóa hay giải mã, người ta thay thế mỗi chữ cái với chữ cái cùng hàng trong bảng trên.
Mật mã cũng có thể được thực hiện bằng số học mô đun. Đầu tiên ta chuyển đổi các chữ cái sang số, A = 0, Ă = 1, Â = 2, B = 3,... Y = 28. Mã hóa ký tự bằng cách dịch chuyển một đoạn n có thể được mô tả bằng công thức toán học dưới đây:
Và giải mã:
(Có nhiều định nghĩa cho phép toán mô đun. Trong trường hợp trên, kết quả phải nằm trong khoảng từ 0...28. Do đó nếu x+n hoặc x-n không nằm trong đoạn 0...28, ta phải cộng hoặc trừ nó với 29.)
Phép thế vẫn giữ nguyên cho toàn bộ văn bản, vì vậy mà mã hóa Xê da được xếp loại vào mã thay thế một bảng chữ cái, khác với mã thay thế nhiều bảng chữ cái.
Giải mã:
Dịch ngược lại dựa theo bảng mật mã trên.
Ví dụ:
Đầu tiên ta có văn bản Help we are being attacked với khóa mã là 15
Mã hóa
Ta tạo ra bảng chữ cái để mã hóa:
Bảng chữ cái thường:   ABCDEFGHIJKLMNOPQRSTUVWXYZ
Bảng chữ cái mật mã:   PQRSTUVWXYZABCDEFGHIJKLMNO
Ta sẽ thay các chữ H=W, E=T, L=A, ...
Văn bản ban đầu: Help we are being attacked
Văn bản mã hóa:  Wtae Lt Pgt Qtxcv Piiprzts
Giải mã
Cũng theo bảng trên, ta thay các chữ W=H, T=E, L=A, ...
Văn bản mã hóa:  Wtae Lt Pgt Qtxcv Piiprzts
Văn bản ban đầu: Help we are being attacked



Related Post:

  • Các PHP framework hay và thông dụng trong thiết kế web5 PHP Framework được đánh giá là tốt và phổ biến nhất hiện nay:1. The Zend FrameworkZend là một [framework] PHP mạnh mẽ , an toàn hơn, đáng tin cậy và cho phép các ứng dụng Web 2.0 và service web. Framework này ban đầu được xây dựng bởi ngôn ngữ lập trình web PHP. Nó được làm giàu với các API từ các nhà cung cấp hàng đầu như Google, Amazon, Yahoo, Flickr vv mà làm cho… Read More
  • Android: Hướng dẫn tải và cài đặt Android Studio1. Tải bộ cài Android Studio: http://developer.android.com/sdk/index.html2. Hướng dẫn cài đặt:       Android Studio cung cấp mọi thứ bạn cần để có thể phát triển ứng dụng cho Android, bao gồm Android Studio IDE và công cụ Android SDK.Trước khi bạn cài đặt Android Studio, hãy chắc chắn rằng bạn đã cài JDK 6.0 hoặc phiên bản mới hơn. JDK 7.0 đượ… Read More
  • Code C#: Ví dụ đơn giản về lớp, thuộc tính, phương thứcYêu cầu: 1. Tạo lớp Student có các dữ liệu và phương thức sau: SID (mã sinh viên), tên sinh viên, khoa, điểm TB, 2. Thêm các property cho các dữ liệu thành viên trên; 3. Viết các phương thức hiển thị thông tin của sinh viên. 4. Tạo lớp Tester, trong lớp này chỉ chứa duy nhất hàm Main(). Hàm cho phép người dùng nhập vào số n là số sinh viê… Read More
  • Nên chọn Java hay .Net ?Có rất nhiều bạn đang rất phân vân khi không biết chọn hướng nào, có bạn đã định hướng trước là chọn Java nhưng nghe nói .NET hay quá cũng phân vân, có bạn chọn .NET rồi nhưng lại thấy tiếc, có bạn muốn chọn cả hai thì sợ mình kham không nổi. Chính chủ nhân blog này đã từng gặp phải hoàn cảnh như vậy, nhưng khi đọc qua một số bài viết trên một diễn đàn IT thì tôi… Read More
  • Test: Danh sách các công cụ Test (Test Tools)1. Load and Performance Test Tools+ Xceptance LoadTest + SiteBlaster+ Load-Intelligence+ LoadStorm+ BrowserMob+ Load Impact+ Pylot+ AppLoader+ fwptt+ JCrawler+ vPerformer+ Curl-Loader+ RealityLoad XF On-Demand Load Testing+ StressTester+ The Grinder+ Proxy Sniffer+ Testing Master+ JKool Online+ Funkload+ Avalanche+ Loadea+ LoadManager+ QEngine Performance Tester+… Read More
  • Welcom new BlogNha moi vua duoc tao.. de trai nghiem xem the nao… Read More




Klik untuk melihat kode: :) =( :s :D :-D ^:D ^o^ 7:( :Q :p T_T @@, :-a :W *fck* x@