otp (one-time-pad)

OTP takes a security problem and changes it into a
distribution problem. Modern cryptography takes a
distribution problem and changes it into a security problem.

Chuỗi khoá được in trên một cuốn sổ bé xíu, để dễ cất dấu hay tiêu huỷ khi cần thiết. Mỗi lần mã hoá dùng một (hay nhiều) tờ trong cuốn sổ, những tờ đó sẽ bị huỷ sau khi dùng, do vậy mà có cái tên one-time-pad

Hình bên: một cuốn sổ OTP của KGB, được in trên giấy phim để dể cháy khi đốt

đĩa Vigenere

ôi đến với Computer Science khá trể, nhớ lại hồi năm nhất đại học, khi lần đầu tiên học về toán tử XOR (bit-wise operator XOR), tôi đã nghĩ ngay đến phương pháp mã hoá đơn giản và hiệu quả: thông điệp cần gửi được XOR với một chuỗi ký tự ngẫu nhiên (chuỗi khoá), ở đầu nhận, người ta XOR chuỗi đã được mã hoá với chuỗi khoá lần nữa để giải mã thông điệp. Đây chính là biểu diễn máy tính của phương pháp mã hoá cổ xưa OTP (one-time-pad) được dùng từ thời đệ nhất thế chiến.

Lincolnshire Poacher (MI6 ?) 
Magnetic Fields (Deuxième Bureau?) 

OTP được các điệp viên CIA, KGB, MI6… dùng phổ biến trong hai cuộc thế chiến. Lý do thứ nhất là vì nó đơn giản: mã & giải mã chỉ cần dùng đến tính nhẩm (có thể dùng thêm bút chì và giấy), lý do thứ hai là nó rất an toàn. Tuy đã được dùng rất lâu từ trước nhưng mãi đến khoảng năm 1940, phương pháp này mới được chứng mình bằng lý thuyết về tính an toàn tuyệt đối của nó. Chứng minh được đưa ra đồng thời và độc lập bởi Claude Shannon (nhà toán học Mỹ, cha đẻ lý thuyết thông tin) và Vladimir Kotelnikov (viện sĩ khoa học Liên bang Nga, kỹ sư chế tạo rađa).

Mã & giải mã với OTP rất đơn giản, tương đương phép XOR, ta định nghĩa phép biến đổi như sau. Mã hoá = (text T(19) + khoá X(23)) mod 26 = Q(16). Giải mã = (Q(16) – khoá X(23)) mod 26 = text T(19), với 26 là kích thước bản chữ cái (phép XOR thực chất là phép cộng và modulo cho 2, với 2 là kích thước bảng chữ cái nhị phân: 0 & 1). Những người không giỏi tính nhẩm có thể dùng “thiết bị” sau (gọi là đĩa Vigenere), đĩa gồm 2 vòng giấy đặt đồng trục. Mã hoá text T với khoá X: gióng (xoay) vị trí [X] của vòng trong với vị trí [A] của vòng ngoài, tìm [T] tại vòng ngoài, ví trí tương đương [Q] tại vòng trong chính là kết quả. Giải mã là quá trình ngược lại: gióng [Q] của vòng trong với [A] của vòng ngoài, tìm [X] tại vòng trong, vị trí tương đương [T] tại vòng ngoài là văn bản gốc.

Có một cách sử dụng OTP đặc biệt gọi là chia xẻ bí mật (secret splitting), sau khi mã hoá, văn bản gốc bị huỷ thay vì khoá, sau đó khoá và văn bản mã hoá được đưa cho hai người khác nhau cất giữ. Chỉ khi hai người này cũng đồng ý nối hai “khoá” lại với nhau thì mới giải mã ra được văn bản gốc. Tương tự, có thể chia xẻ bí mật cho 3, 4,… người bằng cách sử dụng 2, 3,… khoá. Đây là cách bảo vệ các tài nguyên đặc biệt quan trọng, trách nhiệm bảo vệ đó được chia xẻ cho nhiều người, tuy nhiên lưu ý rằng nếu chỉ một phần của bí mật bị mất đi, thì bí mật đó cũng sẽ mất đi vĩnh viễn.

OTP là phương pháp mã hoá tuyệt đối an toàn nếu được sử dụng đúng cách, và là phương pháp tuyệt đối an toàn duy nhất cho đến thời điểm hiện tại. Văn bản được mã hoá với OTP không cho biết bất kỳ thông tin gì về văn bản gốc, ngoại trừ độ dài. Với một văn bản đã mã hoá cho trước, chúng ta có thể nghĩ ra các chuỗi khoá để “giải mã” nó về bất kỳ văn bản nào chúng ta muốn! Các phương pháp mã hoá mới sau này như DES (Data Encryption Standard), AES (Advanced Encryption Standard), PGP (Pretty Good Privacy), PKI (Public Key Infastructure)… tuy tiện dụng và có nhiều ưu điểm khác, nhưng về mặt lý thuyết không phải là không phá được. Nhưng trong sử dụng thực tế, có những lý do sau khiến OTP trở nên không an toàn:

  • Chuỗi khóa OTP không thực sự ngẫu nhiên (các nhân viên thư ký của KGB tạo ra OTP bằng cách gõ ngẫu nhiên lên máy đánh chữ, nhưng xu hướng gõ phím của tay người vẫn có những pattern nhất định).

  • Việc cất giữ và tiêu huỷ OTP có quá nhiều yếu tố rủi ro (đã có tình huống CIA giải được mã nhờ một cuốn sổ OTP đã bị đốt nhưng chưa cháy hết).

  • Mỗi trang OTP chỉ được dùng một lần (đã có lúc trong tình hình khẩn cấp, nhân viên KGB bất cẩn dùng một trang OTP cho nhiều lần mã hoá, dẫn đến việc CIA giải được khoảng 1% trong số những thông điệp gửi bởi KGB trong những năm 1945 ~ 1950).

Điểm yếu nhất của OTP nằm trong quá trình trao đổi khoá (key exchange), đó là một trong những lý do hình thành phương pháp public key rất tiện dụng sau này. Đến bây giờ, khi những phương tiện mã hoá và truyền thông đã quá hiện đại, người ta vẫn còn tiếp tục dùng OTP cho những kênh thông tin thuộc loại top secret (như đường dây hotline Washington DC – Moscow, liên lạc với tàu ngầm…) vì tính tuyệt đối an toàn đã được chứng minh lý thuyết của nó. Có thể kiểm chứng dấu vết của việc sử dụng OTP trong thực tế:

Các Number Station nổi tiếng bí ẩn, là những đài phát thanh không rõ nguồn gốc, phát trên băng tần sóng ngắn (shortwave) những bản tin toàn chữ số, được xem như những hoạt động tình báo của nhiều nước. Trên internet, những Numbers Relay Pages như nrp.write2me.com là hình thức mới của Number Station, cho phép mọi người gửi đi những thông điệp bí mật. Tất cả đều dưới hình thức những bộ 5 chữ số của mã hoá OTP (e.g: 41888 42037 89537 55295 14846 82981 63440…).

xăm hường

Xăm hường

Tứ sắc

rò chơi ni người mô gốc Huế hay Hội An xưa thì mới biết: xăm (xâm) hường. Bi chừ không mấy ai còn nhớ và chơi trò ni nữa! Khi nhỏ, ba ngày Tết không gì vui hơn là đổ xăm hường hay gầy sòng tứ sắc (ba mẹ tôi còn nói chưa biết chơi tứ sắc thì chưa phải là người Huế 😬). Trong các trò bài bạc “truyền thống” VN, miền Trung và miền Nam thường chơi tứ sắc và bài tới, ở miền Bắc hay chơi tổ tôm (hơi giống bài tới) và tam cúc (hơi giống tứ sắc).

Riêng ở một số đô thị cũ như Huế hay Hội An, bài giấy thì có tứ sắc và bài tới, bài thẻ thì có thêm xăm hường và mạt chược. Như người ta hay nói: đi xoè tức là đi đánh tứ sắc, đi xoa tức là đi đánh mạt chược. Tiếc là khi nhỏ tôi không được dạy bài tới và mạt chược, chỉ còn biết hai món ăn chơi chụp ảnh dưới đây.

Chụp lại ảnh bộ xăm hường của nhà post lên đây để bà con biết mặt mũi trò chơi thế nào (cùng với ảnh xáo bộ bài tứ sắc). Xăm hường gồm có: một thẻ trạng anh (trạng nguyên – 32 điểm), hai trạng em (bảng nhãn & thám hoa – mỗi thẻ 16 điểm), 4 thẻ hội nguyên (8 điểm), 8 thẻ tiến sĩ (4 điểm), và các thẻ con tương đương 1 điểm (tú tài), 2 điểm (cử nhân).

1 mặt tứ trên bộ xúc xắc ăn được quân một điểm, 2 mặt tứ ăn được quân hai điểm, 3 mặt tứ ăn được thẻ hội nguyên, 4 mặt tứ ăn thẻ trạng nguyên, 5 mặt tứ thì ăn cả 3 thẻ trạng, 6 mặt tứ (lục phú hường) thì ăn được tất cả các thẻ (kể cả thẻ đã thuộc về người khác). Đây được xem là tột đỉnh may mắn! Ngoài ra còn có các luật tứ tự (4 mặt giống nhau), ngũ tử (5 mặt giống nhau), lục phú (6 mặt giống nhau), phân song (2 nhóm, mỗi nhóm có 3 mặt giống nhau), và suốt (đủ 6 mặt 1, 2 , 3, 4, 5, 6) và nhiều luật lẻ khác…

Thức thâu đêm suốt sáng, tiếng của 6 hột xí ngầu leng keng leng keng trong lòng chiếc tô sứ, những song phân, nhất hường, suốt, giật trạng… những bất ngờ, hồi hộp như tiên đoán vận may trong năm mới…

thẩm oánh

Hãy nhìn lại một góc ngôi trường của chúng ta, cái sân lát gạch và những gốc vông đồng sau này đã được thay thế bằng sân xi-măng và những cây bàng.

Âm nhạc cải cách phải theo ý nhạc Việt Nam và phải có cảm tưởng thuần túy Á Đông. (Thẩm Oánh)

i cũng biết Thẩm Oánh là nhạc sĩ tiên phong của Tân nhạc, nhưng ít người biết dù là chút ít về ông. Wiki viết được đúng 1 dòng, thậm chí còn không giới thiệu được một sáng tác nào của nhạc sĩ. Trường cấp 2 của tôi, PTCS Trưng Vương, Đà Nẵng (trước 1975 là trường tiểu học Thánh Tâm), hàng năm đều kỷ niệm ngày truyền thống trường. Tôi còn nhớ lễ kỷ niệm 10 năm được tổ chức rất hoành tráng, có nhiều hoạt động văn nghệ, và Trưng nữ vương của nhạc sĩ Thẩm Oánh được dùng như ca khúc chính thức của trường.

Trưng nữ vương 
Nhà Việt Nam 

Bài hát này tôi còn nhớ mãi đến bây giờ, cùng với rất nhiều kỷ niệm khác dưới mái trường dấu yêu. Lũ học sinh chúng tôi được tập bài hát này nhiều lần, nhưng với nhạc cảm của tôi lúc ấy, tập mãi mà tôi cũng chỉ hát được một nữa bài. Ngay từ lúc ấy, tôi đã cảm nhận loại nhạc này khác hẳn với loại nhạc đỏ mà lũ học sinh dưới mái trường XHCN chúng tôi thường nghe và hát. Bài này so với: em mang trên vai màu khăn tươi thắm, bao niềm mơ ước tươi sáng ngày mai… hẳn không cùng một loại như nhau 😀.

Là thành viên nhóm nhạc Myosotis cùng với Dương Thiệu Tước, nhạc sĩ Thẩm Oánh là thế hệ đầu tiên, là người có tuyên ngôn sáng tác rất rõ ràng về Tân nhạc. Ông sáng tác rất nhiều tác phẩm thuộc các thể thoại hùng ca (như bài Nhà Việt Nam, một bài hát cho hướng đạo), tình ca, nhạc thiếu nhi và nhạc Phật giáo. Gia tài âm nhạc của ông có hơn 1000 bài, nhưng đến nay chỉ còn lưu truyền 5, 7 bài thi thoảng được vài người nhắc đến 😢. Một phần vì tác giả hạn chế không phổ biến nhạc của mình (cái chữ nhạc tài tử thực chất là để “bao biện” cho quan niệm chung xem âm nhạc là “xướng ca vô loài”, phần lớn lứa nhạc sĩ tiên phong đều muốn gọi nó là thú vui tài tử hơn là nghề nghiệp thật sự). Phần khác vì nhạc của ông (ngoại trừ một vài bản hùng ca dễ hát dễ nghe) còn thì phần lớn không dành cho đại chúng, chỉ phù hợp với một lớp thính giả ít ỏi.

Âm nhạc của Thẩm Oánh có thể được mô tả bằng một chứ “hoà”: hoà điệu với thiên nhiên, hoà vào lòng người. So với Tân nhạc về sau, nhạc của ông có phần “đơn giản”. Tuy vậy, thứ nhạc “đơn giản” ấy mang tôi đi từ hết ngạc nhiên này đến thú vị khác… Điều tinh tuý trong âm nhạc Thẩm Oánh là sự hoà trộn của ngũ cung Việt Nam và ngũ cung Trung Hoa, cũng như cách chuyển hệ (métabole) giữa hai loại ngũ cung đó. Ông dùng ngũ cung Trung Hoa theo một cách gần như là vô thức, có lẽ thừa hưởng từ gốc gác người Hoa xa xưa (họ Thẩm) của mình. Hãy tìm nghe một số nhạc phẩm trữ tình của ông như: Toà miếu cổ, Khúc yêu đương, Xuân về… để cảm nhận dáng nhạc rất đặc biệt của Thẩm Oánh!

Một vài bìa nhạc Thẩm Oánh: