Đến nội dung

Hình ảnh

Giải đố mật thư.

- - - - -

  • Please log in to reply
Chủ đề này có 26 trả lời

#1
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết
Chào các bạn!
KG thấy box Khoa học Máy tính còn quá ít nội dung. Mà thực sự toán học có những ứng dụng rất tuyệt vời trong tin học, nhất là đối với các vấn đề của An toàn thông tin.
Tuy nhiên, tôi chưa biết viết bài gì đáng viết cả, nên thử bắt đầu bằng việc viết bài trong box Lý thú. Nếu các bạn thấy thú vị, KG sẽ có những bài viết thật sự trong box Khoa học Máy tính.
Một trong những vấn đề cổ xưa và có lẽ mang lại nhiều hứng thú đó là vấn đề đảm bảo bí mật thông tin. Có thể nói, mật mã đã có từ thời cổ đại, khi mà nhà quân sự thiên tài của La Mã cổ đại, Julius Caesar, đã sử dụng mật mã một cách có hệ thống để đảm bảo bí mật của các thông tin quân sự. Cho đến ngày nay thì kỹ thuật mật mã đã có những bước tiến dài do sự tiến bộ của công nghệ thông tin, điện tử, và đặc biệt là sự áp dụng tuyệt vời của các lý thuyết toán học.
Trong bài viết mở đầu mang tính chất giải trí này, tôi xin được đề cập trước hết tới hình thức truyền thống nhất của sự mã hóa thông tin. Cho một bản tin, là một dãy các ký tự lấy từ một tập nào đó (bảng chữ cái) và có ý nghĩa thông tin nhất định, gọi là bản rõ. Việc mã hóa là biến đổi bản tin theo một cách nào đó để được một dãy các ký tự khó hiểu, gọi là bản mã. Ngược lại, việc biến đổi bản mã thành bản rõ (theo cách tương ứng với mã hóa), được gọi là giải mã.
Ý tưởng của việc này là chỉ những người nhận tin biết cách giải mã mới có thể đọc được bản rõ. Việc mã hóa và giải mã thường sử dụng các thông tin (bí mật hoặc công khai) gọi là chìa khóa. Tên gọi này xuất phát từ trong cuộc sống: Chỉ những người có chìa khóa mở tủ mới có thể lấy được đồ trong tủ đã bị khóa.
Đồng thời với mã hóa và giải mã, một vấn đề rất tự nhiên nảy sinh: Đó là liệu có thể thấy bản rõ mà không cần biết chìa khóa? Các kỹ thuật để thực hiện việc này được gọi là thám mã. Vấn đề thám mã không chỉ là của những người muốn bẻ khóa, mà nhiều khi của chính những người lập mã, để đánh giá độ tin cậy của việc mã hóa. Chính sự hiệu quả của thám mã sẽ đánh giá gián tiếp độ an toàn của hệ mã sử dụng. Thông thường, việc thám mã là khó khăn, thú vị, và là động cơ thúc đẩy sự ra đời của các hệ mã an toàn.

Để kết thúc, trên phương diện một trò chơi lý thú, mời các bạn thử giải mã mật thư sau:


ZYKGXOYYQPXQELLKDXJFKE


Gợi ý chìa khóa:
Tên của nó đã được nhắc trong bài.

Thật sự KG muốn có phần thưởng gì đó cho mỗi mật thư giải được, nhưng cũng không biết thưởng gì, với lại mật thư này thuộc loại dễ nhất của lý thuyết mật mã nên có thể hẹn các bạn ở mật thư tiếp theo, nếu các bạn còn cảm hứng.
Chúc các bạn vui vẻ!
KG.

Đời thay đổi khi chúng ta thay đổi.

#2
namvk

namvk

    Tay Trái Vàng

  • Thành viên
  • 592 Bài viết
78952 7415963 7412369 9874123 987456321 7412369 741953 7415963 98741236 741953 7415963 8513 1475369

Anh KG có thể hiểu điều em nói qua mật thư trên.

Gợi Ý NumLock

.........................................................

Cái này chịu nhìn thì dễ lắm :neq
Tất cả là phù du.

#3
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

Cái này chịu nhìn thì dễ lắm :lol:

Ơ, KG đang đố mọi người trước mà! :neq
Thực sự không khó đâu! DeparmentMale giải mật thư nhé! :D

Đời thay đổi khi chúng ta thay đổi.

#4
namvk

namvk

    Tay Trái Vàng

  • Thành viên
  • 592 Bài viết
Cái này phải tư duy, Nếu như cho em thêm thời gian thì em giải cho (Chưa chắc cụm từ ấy có trong bài đâu nhiều đâu hãy để ý chữ Z)
Tất cả là phù du.

#5
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

Cái này phải tư duy, Nếu như cho em thêm thời gian thì em giải cho (Chưa chắc cụm từ ấy có trong bài đâu nhiều đâu hãy để ý chữ Z)

Hơn một ngày rồi, không ai có hứng thú à? :)
Nhắc lại gợi ý:

Gợi ý chìa khóa: Tên của nó đã được nhắc trong bài.

Nó ở đây là chìa khóa, không phải mật thư!

:D
Đời thay đổi khi chúng ta thay đổi.

#6
ilovemoney_hic

ilovemoney_hic

    Thượng sĩ

  • Thành viên
  • 249 Bài viết
Câu của DeparmentMale là "Thực sự khó khăn" hả ? Dựa theo Num lock thì thế mà :leq

#7
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết
Ế ẩm quá! :geq
Xin rõ ràng hơn chìa khóa là:
Caesar
Và với những ai chưa từng chơi trò giải đố mật thư, thì một gợi ý là:
http://www.google.com.vn :geq
Mong nhận được lời giải! :Leftrightarrow
The creator.

Đời thay đổi khi chúng ta thay đổi.

#8
namvk

namvk

    Tay Trái Vàng

  • Thành viên
  • 592 Bài viết
Em có đọc qua cái chi'a khoa Caesar cua anh goi ! tuy nhien thong tin co'n ich voi viec nhieu thanh vien khong thay hung thu nen it quan tam den ! neu anh co len Mess thi anh co the chi ro cai do thi em co the giai :)
Tất cả là phù du.

#9
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

neu anh co len Mess thi anh co the chi ro cai do thi em co the giai :(

Thế thì là anh giải chứ đâu phải em :)
Đời thay đổi khi chúng ta thay đổi.

#10
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết
Chào các bạn!
Đối với dân học toán, câu trả lời đơn giản nhất cho câu hỏi "Thế nào là bài toán khó?" chính là: "Là bài toán mà tôi không(chưa) biết cách giải" :)
Trong mật mã học, như tôi đã nói, Hệ mã Caesar là hệ mã mà ý tưởng của nó là đơn giản nhất mà khá đẹp đẽ. Người ta phân biệt ra hai cách mã hóa chính, đó là Phép mã chuyển vị (transposition cipher) và Phép mã thay thế (substitution cipher). Trong văn bản của mã chuyển vị, các ký tự (các bit) được tráo đổi vị trí cho nhau. Còn trong văn bản của mã thay thế, một ký tự này được thay thế bằng một ký tự khác (mà không thay đổi vị trí). Để kết hợp sức mạnh và sự phức tạp của hai phép mã trên, người ta còn đề ra và sử dụng các phép mã tích hợp (product cipher), đó là việc kết hợp xen kẽ hai cách mã hóa trên.
Hệ mã Caesar, do vị hoàng đế cùng tên sử dụng trong quân sự để mã hóa các thông tin bí mật, thuộc vào loại mã thay thế. Ý tưởng của hệ mã rất đơn giản: Mỗi ký tự được thay thế bởi ký tự đứng sau nó 3 vị trí trong bảng chữ cái sắp theo thứ tự alphabet. Có nghĩa là chữ A được thay bằng chữ D, chữ B được thay bởi chữ E, ...
Việc triển khai hệ mã như vậy trong thực tế khá đơn giản và thuận tiện, bằng cách dùng hai vòng đĩa đồng tâm khác bán kính có bảng chữ cái được rải đều trên mỗi vành đĩa. Khi đó chỉ việc xoay (một trong hai đĩa) sao cho chữ A trên vành đĩa nhỏ nằm tương ứng với chữ D trên vòng đĩa lớn, ta sẽ có tương ứng với hệ mã Caesar nói trên.
Ví dụ mã hóa bằng hệ mã Caesar:

Bản rõ: the quick brown fox jumps over the lazy dog
Bản mã: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

Tổng quát, ta có phép mã theo kiểu Caesar. Chẳng hạn như khi ta quay đĩa một góc bất kỳ sao cho sự tương ứng chữ cái giữa hai đĩa là rõ ràng có thể phân biệt được. Công thức mã hóa trong trường hợp tổng quát của bảng chữ cái tiếng Anh là:


Và công thức giải mã là:

Mã Caesar nguyên thủy tương ứng với n = 3.
Nhận xét rằng, đối với các hệ mã tính theo công thức (1), chỉ có 25 chìa khóa ứng với mỗi n = 1, 2, ..., 25 theo modulo 26 (với n = 26 thì việc mã hóa trở nên vô nghĩa). Cho nên độ an toàn của hệ mã này rất thấp. Hiện nay nó chỉ còn được dùng trong các trò chơi sinh hoạt ngoại khóa, trong những trường hợp mà con người không được hỗ trợ bởi các công cụ tính toán mạnh mẽ...
Và, mời các bạn thực hành với mật thứ thứ nhất:

ZYKGXOYYQPXQELLKDXJFKE

Có một bẫy nhỏ ở đây! Chỉ một chút xíu là các bạn sẽ vượt qua. Nếu các bạn còn cảm hứng, KG xin được đề cập đến các mật thư sử dụng các hệ mã giản đơn khác.

Hình vẽ: Mã tựa Caesar với n = 16.

Hình gửi kèm

  • caesar3_03.png

Đời thay đổi khi chúng ta thay đổi.

#11
duylong01

duylong01

    Hạ sĩ

  • Thành viên
  • 84 Bài viết
Góp ý 1 tẹo thôi:Những ai quan tâm đến lịch sử mật mã có thể tìm mua cuốn"Thế giới mật mã " của nhà xuất bản trẻ.

#12
quangtrung

quangtrung

    Hạ sĩ

  • Thành viên
  • 53 Bài viết
Cho mình hỏi một chút : (xin lỗi bác KG nhé) cuốn sách đó có bán ớ các hiệu sách thông thường không ?
Theo em biết thì trong thế chiến thứ II ,quân đội 2 bên đã sử dụng rất nhiều hệ mã để truyền tin cho nhau ,mà người da đỏ khi đánh nhau với các chiến binh viễn chinh Hoa kỳ cũng dùng rất nhiều hệ mã ,nói túm lại có rất nhiều hệ mã .Bác KG mà không giải thích thì tụi em chịu thua.

#13
classpad300

classpad300

    Lamborghini

  • Thành viên
  • 2075 Bài viết
Mật mã nhiều dạng lắm bạn ơi. Chẳng hạn họ sẽ đưa trước cho bạn 1 đoạn mã, bạn dịch nó ra, đó là sơ đổ đục lỗ 1 tờ giấy. Sau đó họ mới đưa cho bạn 1 trang giấy tùm lum chữ, bạn áp tờ giấy đục lỗ lên thì mới dịch được.
Hiện tại thì có vô vàn phương pháp mã hóa văn bản.

#14
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

Mật mã nhiều dạng lắm bạn ơi. Chẳng hạn họ sẽ đưa trước cho bạn 1 đoạn mã, bạn dịch nó ra, đó là sơ đổ đục lỗ 1 tờ giấy. Sau đó họ mới đưa cho bạn 1 trang giấy tùm lum chữ, bạn áp tờ giấy đục lỗ lên thì mới dịch được.
Hiện tại thì có vô vàn phương pháp mã hóa văn bản.

Thực ra, nếu xét về khía cạnh mã hóa văn bản của Mật mã học, có thể phân loại các phương pháp mã hóa như sau:
- Về cách tác động lên văn bản, thông điệp: Có phép mã chuyển vị, phép mã thay thế, mã tích hợp (hỗn hợp).
- Về tính chất của bí quyết mã hóa: Mã hóa khóa bí mật, mã hóa khóa công khai.
- Về tính tất định của phép mã: Các hệ mã tất định và hệ mã xác suất.
...
Cách mã và giải mã của bạn classpad300 chỉ là một trong những phép mã chuyển vị, trong đó bỏ qua một số ký tự trong mỗi phép giải mã.
Ngoài ra, người ta cũng thường gọi các phương pháp mã sử dụng vật lý là mã hóa, đó là các phương pháp non-cryptography như: sử dụng tính chất hóa học, vật lý (đổi màu...)
Câu đố của mật thư KG đã nêu thuộc về Mật mã học, bản thân phép mã khá đơn giản như chính gợi ý của chìa khóa. Tuy nhiên vì lý do lịch sử nó vẫn được gọi là Hệ mã, mà bất cứ học viên nhập môn nào cũng phải biết tới vì tính giản dị đẹp đẽ và nguyên thủy của nó! Theo KG nghĩ thì gợi ý là rõ ràng, bạn đọc quan tâm đọc kỹ lại nhé!

Đời thay đổi khi chúng ta thay đổi.

#15
math123

math123

    Thượng sĩ

  • Thành viên
  • 207 Bài viết

78952 7415963 7412369 9874123  987456321 7412369  741953 7415963 98741236 741953 7415963 8513 1475369

Anh KG có thể hiểu điều em nói qua mật thư trên.

Gợi Ý NumLock

.........................................................

Cái này chịu nhìn thì dễ lắm :Rightarrow

Mới được 1 ít.

TNUCSUKNOKNAH

Hic nhưng đến đây khó quá.

@Anh KG: Anh thử "giải mẫu" một bài kiểu như bài ban đầu đi để em học tập kinh nghiệm.
Offline hết tháng 8. Có gì nhắn vào YM : vietanhlt

#16
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

Em đoán ra rồi
Nếu không nhầm thì đó là

TNUCSUKNOKNAH

Hic nhưng đến đây khó quá.

Trời ạ! Đến bây giờ mà còn có người chưa biết cái này thì mật thư của mình "mốc" mất :Rightarrow (KG đã trả lời "thật sự không khó" ngay sau "ý" của DeparmentMale, và ilovemoney_hic cũng đã trả lời tường minh cái này rồi mà).
Đời thay đổi khi chúng ta thay đổi.

#17
math123

math123

    Thượng sĩ

  • Thành viên
  • 207 Bài viết
:Rightarrow
Cho em 1 ngày em sẽ giải mật thử của anh. Nhưng bây giờ quả thật không biết bắt đầu từ đâu.
Offline hết tháng 8. Có gì nhắn vào YM : vietanhlt

#18
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết

Nhưng bây giờ quả thật không biết bắt đầu từ đâu.

Anh đã vẽ ra đích rồi mà chú ko biết bắt đầu từ đâu. Đúng là chả có ai chịu khó đọc hết topic này cả! :)
Đời thay đổi khi chúng ta thay đổi.

#19
math123

math123

    Thượng sĩ

  • Thành viên
  • 207 Bài viết
Viết tạm chương trình để dùng.
Nhập mã vào file ma.txt (Tự tạo file này bằng Notepad)
program matma;
const chu:string[26]='ABCDEFGHIJKLMNOPQRSTUVWXYZ';

var f:text;
    s:string;
    a:array[1..26] of 1..26;
    i,j,k,l:byte;

procedure giaima;
begin
writeln(f,'----------------------------------------');
writeln(f,'Thu voi ma khoa k = ',k);
for i:=1 to l do
 begin
   j:=(a[i]-k+26) mod 26; if j=0 then j:=26;
   write(f,chu[j]);
 end;
writeln(f);
end;

begin
assign(f,'ma.txt');reset(f);readln(f,S);close(f);l:=length(s);
for i:=1 to l do
begin for j:=1 to 26 do if chu[j]=s[i] then a[i]:=j; end;
assign(f,'ma.txt');rewrite(f);
for k:=1 to 25 do giaima;
close(f);
end.

File gửi kèm

  • File gửi kèm  MATMA.EXE   3.25K   26 Số lần tải

Offline hết tháng 8. Có gì nhắn vào YM : vietanhlt

#20
koreagerman

koreagerman

    WriteLine("Hello World!");

  • Hiệp sỹ
  • 288 Bài viết
Bạn math123 có công cụ gần đúng rồi!
KG nhắc lại đây là mã "tựa Caesar" chứ không phải mã Caesar.
Have fun!

Đời thay đổi khi chúng ta thay đổi.




0 người đang xem chủ đề

0 thành viên, 0 khách, 0 thành viên ẩn danh