Tuesday, September 3, 2013

Mật mã – thật là đơn giản!


Hồi người viết còn nhỏ, các bạn của tôi – nhất là các bạn trai – đều mơ ước có một cách dễ dàng để liên lạc với bạn gái thân của mình mà không bị các cô cậu khác phát hiện, hoặc để qua mặt phụ huynh (tôi chắc mấy thằng con tôi giờ cũng đang nghĩ y như thế kakaka!). Mọi nỗ lực thời đó thường dừng ở mức ám hiệu. Hồi ấy chúng tôi không có điện thoại di động như bây giờ, nên cô bạn tôi sẽ phơi một cái khăn mặt lên cửa sổ nếu có phụ huynh ở nhà, nếu không có khăn là không ai ở nhà, có thể lên chơi được. Mặc dù đạp xe đạp hết hơi mới đến nơi, song chẳng may mà thấy cái khăn mặt phơi lên thì đành ngậm ngùi đạp về!

Lên đến đại học, một anh bạn khác tự chế ra mật mã riêng để ghi nhật ký. Chúng tôi – tức là vài thằng rỗi hơi – bèn khích đểu anh ấy để lôi vào một vụ cá cược. Hình như độ là một chầu bia cho cả bọn, nếu trong một tuần chúng tôi phá được 2 trang mã. Thông tin ban đầu cho biết: bản gốc là tiếng Việt, và mã này chỉ dùng mã hóa tiếng Việt (không mã được tiếng Anh hay các ngoại ngữ khác). Văn bản đã mã hóa trông cũng na ná tiếng Việt, có bổ sung một số ký tự ký âm quốc tế.

Đến bây giờ thì chúng tôi biết đây là một dạng mã chuyển vị, trong đó mỗi ký tự được thay thế bằng một ký tự khác. Với bảng chữ cái tiếng Việt 29 chữ, thì chữ đầu tiên có thể chọn 1 trong 28 khả năng (không mã hóa một chữ bằng chính nó), chữ cái thứ 2 có 27 khả năng mã hóa, chứ thứ 3 có 26 khả năng .... Vậy kết quả số lượng tổ hợp mã có thể có là 28x27x26x... , hay là giai thừa 28 (28!). Bạn nào tính nhẩm nhanh có thể biết ngay 28! xấp xỉ bằng 3x10 mũ 29, tức là khoảng 300 tỷ tỷ tỷ khả năng. Nếu mỗi phút 4 người chúng tôi thử được 4 mã, thì trong một năm chỉ thử được hơn 2 triệu mã (không ăn không ngủ gì hết), và nếu như chúng tôi thử từ lúc vũ trụ ra đời đến giờ liên tục như vậy, thì vẫn chưa được thử hết được 1 phẩn tỷ số lượng chìa khóa mã có thể có. Kể cả loại bỏ đi các chữ cái gần giống nhau (ví dụ a không mã bằng ă hay â, e và ê không mã lẫn nhau, u – ư, o – ô – ơ không mã lẫn nhau) thì số lượng còn lại cũng thừa sức làm chúng tôi nản chí từ lúc chưa bắt đầu.

May là hồi đấy bọn sinh viên thừa hormon chúng tôi quên tiệt mất phép giai thừa, nên hăng hái ra sức công phá. May nữa là anh bạn tác giả mã phạm sai lầm nghiêm trọng, khi dùng mã viết một câu ghi chú "Ngày N giờ G xxx bảo vệ ký túc xá" – xxx là 3 ký tự được viết bằng mã, các chữ khác viết bằng ngoại ngữ nên không mã. Với một từ 3 chữ cái bị mã như vậy, chúng tôi cho rằng nó là chữ "hẹn" hoặc là "gặp" hoặc là "đến" hoặc là "qua". Không phải nói là công việc ban đầu của chúng tôi tiến lên ào ào. Song được độ nửa buổi thì lại tắc tịt. Một loạt chữ tưởng chừng như có nghĩa lại hoàn toàn trở nên vô nghĩa, hoặc chỗ này có nghĩa còn chỗ khác thì vô nghĩa. Không thể tả hết nỗi tức giận lúc đó, cảm giác như ngụm bia đưa lên gần đến miệng thì bị thằng khác đá vỡ cốc!

Đến ngày hôm sau, một người trong bọn đưa ra ý tưởng xuất sắc, hay chỗ này ta thay chữ "N" bằng chữ "L". Phản ứng tức thì của chúng tôi, như thế là sai chính tả. Song anh ấy vẫn kiên trì thuyết phục chúng tôi thử xem sao. Chúng tôi lấy giấy bút ra, và thật là ngạc nhiên, khi mọi thứ lại bắt đầu có vẻ ăn khớp với nhau. Hóa ra tác giả mã cố tình viết sai trính tả một cách không nhất quán mấy cặp chữ l/n tr/ch và hai dấu hõi ngả – nàm chúng tôi giãi mã mà như ăn cơm có sạn kakaka.

Về sau này, đọc cuốn The Code Book của Simon Singh, tôi mới biết họ dùng phép phân tích tần suất để phá mã chuyển vị. Với phép phân tích tần suất và tần suất chuẩn của ngôn ngữ bản gốc, một tay phá mã vớ vẩn cũng có thể đập chết mã này ngay tắp lự. Nếu bạn nào chưa nghe nói đến The Code Book, tôi khuyên các bạn nên tìm đọc, đây là một cuốn sách rất thú vị. Cũng đã có bản tiếng Việt, cuốn bìa mềm tôi đang có chỉ dưới 100K VND là mua được.

Tuy có hơi chậm trễ, nhưng so với hạn cá cược thì chúng tôi vượt qua xuất sắc. Chỉ 3 ngày sau, 2 trang mã đã bị phá sạch sẽ. Bạn gì thua độ đọc thấy cái note này thì tự động mà rủ 2 bạn còn đang ở đây đi uống bia nhé. May cho bạn là hai thằng kia một đứa ở nước ngoài và một đứa ở Đà Nẵng rồi, thế là tiết kiệm được 50% chi phí đấy.

À còn chuyện đang kể dở về cô bạn gái. Hôm ấy chúng tôi đi đá bóng, đang đá thì mưa quá, cả bọn chán cái kiểu vừa đá vừa bơi nên bỏ về. Trời đất run rủi thế nào mà tôi lại đi ngang nhà cô bạn – nhìn lên không thấy cái khăn ám hiệu đâu, liền tức khắc vứt xe vào gầm cầu thang khu tập thể mà chạy lên.

Đập cửa rầm rầm, người ra mở cửa không phải là cô bạn xinh như mộng mà là cậu em, trong nhà không phải không có ai, mà lố nhố một đống người. Giật mình nhìn lại, cả người toàn bùn từ đầu đến chân, nom y hệt con trâu vùi. Mọi người nhìn mình rất lạ lẫm và hơi có vẻ hoài nghi. Nhưng được cái nhanh trí, mình bịa ra một câu chuyện rất logic để làm yên lòng mấy quý vị phụ huynh và biến mất trước khi họ kịp định thần.

Về sau mới biết, hóa ra lúc mưa, bà mẹ nhìn thấy cái khăn khô rồi liền mang đi cất. Cô bé không biết để mang ra phơi lại. Thế nên, một chuyện tình lẽ ra là lãng mạn bất hủ, chàng và nàng bí mật đi lại với nhau nhờ ám hiệu chiếc khăn, thì lại đi vào ngõ cụt chỉ vì phương tiện liên lạc không đủ tin cậy. May quá, tầm năm 2000 thì tôi mua điện thoại di động. Kể từ đó, việc hẹn hò với bạn gái trở nên dễ dàng hơn hẳn. Nếu cứ chờ vào ám hiệu phập phù như dạo trước, có nhẽ đến giờ tôi vẫn còn ế vợ!

4 comments:

  1. hì hì...
    thời nay mà còn để bạn bè coment phải thử xem có phải rô văn bốt không ư?

    ReplyDelete
    Replies
    1. Có nhất thiết phải là Friend mới còm được đâu!

      Delete
  2. Bạn thua độ mấy nhóc rồi? Bây giờ mới nhớ đợt anh từ Đà Nẵng ra ăn cưới chú, bạn ấy có mời.

    ReplyDelete