Thư viện bài tháng 05 năm 2005

Các thách thức về pháp luật của công nghệ P2P

Ngô Quang Hưng | 31 tháng 05, 2005 | Bản để in Bản để in

Các công nghệ/ý tưởng nào có ảnh hưởng sâu rộng đến cuộc sống đều tạo các thách thức mới về nhiều mặt: kỹ thuật, xã hội, pháp luật, vân vân. Công nghệ peer-to-peer (P2P technology) không là ngoại lệ. Kazaa, Chord, Gnutella (hiện thực bởi Bearshare, Limewire, Morpheus), BitTorrent (hiện thực bởi Morpheus), Tapestry, v.v. là các đại diện phổ biến của các giao thức và ứng dụng P2P mà có lẽ các bạn đã nghe/dùng qua.

Dịp khác ta sẽ bàn về các thách thức về mặt kỹ thuật/thiết kế của P2P. Giáo sư Pamela Samuelson của Berkeley dẫn một seminar với tên gọi “Công nghệ P2P: các thách thức về luật pháp và chính sách“. Dân làm máy tính rất nên biết các thông tin này vì nó có khả năng ảnh hưởng trực tiếp đến khía cạnh pháp luật và chính sách liên quan đến các sản phẩm tương lai của bạn.

Giới kinh doanh âm nhạc/phim ảnh của Mỹ (như RIAA, MGM) đã khởi tạo các vụ kiện gây tiếng vang lớn liên quan đến các sản phẩm P2P như vụ kiện Napster, vụ kiện Aimster, và vụ kiện Grokster gần đây nhất. (Đó là chưa kể đến vụ kiện người sử dụng các dịch vụ P2P.)

Tôi tóm tắt các lập luận và sự kiện có liên quan:

  • Chia sẻ nhạc và phim ảnh trên các mạng P2P với số lượng lớn là xâm phạm bản quyền. Điều này khó có thể chối cãi được. Do đó, nếu có bằng chứng cụ thể, giới kinh doanh nhạc/phim hoàn toàn có thể kiện người dùng (và họ đã làm để dọa).
  • Giới kinh doanh những năm gần đây bắt đầu tiến tới kiện cả những người sản xuất và phân phối các dịch vụ này. Ngoài các vụ đã kể (liên quan đến P2P), còn có vụ phần mềm deCSS dùng để crack DVD của Jon Johansen người Thụy Điển, hay vụ kiện Dmitry Sklyarov với phần mềm crack eBook của Adobe.
  • Câu hỏi chính quanh vấn đề phức tạp này là: “người tạo ra các công nghệ có khả năng bị lạm dụng cho việc vi phạm bản quyền có phải chịu trách nhiệm liên đới hay không?” (trong khi bản thân họ không trực tiếp vi phạm bản quyền).
  • Câu trả lời là không nếu công nghệ này có khả năng lớn để dùng cho các việc không vi phạm (substantial non-infringing uses – SNIUs).
  • Câu trả lời trên không kẻ ranh giới rõ ràng. Một tiền án quan trọng nhất là vụ Sony chọi Universal Studios năm 1984, hay còn gọi là vụ Betamax. Số là máy Betamax của Sony hồi đó có thể dùng để chép lại các phim truyền qua TV, và Universal Studio kiện Sony bán sản phẩm dùng để xâm phạm bản quyền phim. Tòa án tối cao Mỹ phán quyết rằng Betamax có SNIU. Các sản phẩm mới liên quan đến digital TV recording (như TiVo, ReplayTV, UltimateTV) và digital audio recording (như Replay Radio) cũng ở tình trạng tương tự. Đa số các sản phẩm này còn cho phép thu lại các chương trình TV/Radio trong khi bỏ qua các quảng cáo. Giới truyền thông Mỹ đã kiện SonicBlue về vấn đề này, mặc dù các VCR từ những năm 90 đã có chức năng bỏ qua quảng cáo này.
  • Do sự phức tạp đó, giới kinh doanh thắng kiện trong vụ Napster và Aimster, còn vụ Grokster vẫn đang tiếp diễn, hứa hẹn các kết quả thú vị.

Nếu giới kinh doanh thắng kiện liên tục, dân lập trình sẽ phải suy nghĩ thật kỹ trước khi đưa ra sản phẩm mới, xem nó có khả năng bị lạm dụng để xâm phạm bản quyền hay không. Ví dụ, MGM cho rằng sản phẩm nào có đến 90% là để dùng xâm phạm bản quyền thì người sản xuất phải chịu trách nhiệm liên đới (ví dụ 90% các files chia sẻ bởi ứng dụng Grokster là các files lậu). Nếu tòa án chấp nhận lý luận này thì sẽ tạo tiền lệ rất khó chịu. Giả sử một ISP tăng băng thông nhiều lần cho người dùng, nhưng 90% băng thông được dùng để tải các files lậu thì thế nào?

Chuyên mục: KHMT và luật pháp & Mạng máy tính | Bình luận »

Tháo quạt ra khỏi CPU

Ngô Quang Hưng | 31 tháng 05, 2005 | Bản để in Bản để in

Bạn có bao giờ thử tháo quạt ra khỏi CPU chưa? Cái gì sẽ xảy ra: cháy máy/bốc khói, máy tự tắt, các ứng dụng không chạy nữa, …? Xem thử thí nghiệm này (cần divx codec để xem).

Chuyên mục: Các hệ thống máy tính | Bình luận »

Các bài báo kinh điển của KHMT (1)

Ngô Quang Hưng | 25 tháng 05, 2005 | Bản để in Bản để in

Giáo sư Christo H. Papadimitriou dạy một lớp với nội dung dựa trên các bài báo kinh điển của KHMT. Lấy cảm hứng từ lớp này, tôi sẽ bắt đầu một series mới các bài về đề tài này.

Mỗi post sẽ giới thiệu một bài báo kinh điển, không theo một trật tự nhất định nào. “Kinh điển” cũng không đồng nghĩa với “cổ điển”. Tôi sẽ giới thiệu cả các bài báo gần đây mà vẫn có thể xếp vào loại kinh điển. Hy vọng các bloggers khác của blog này sẽ thêm vào các bài báo kinh điển mà họ thích.

Mặc dù tựa đề của post là “các bài báo kinh điển trong KHMT”, các bài báo sẽ được trình bày trong series này không nhất thiết là chỉ thuộc về “KHMT”. Có rất nhiều các bài báo có ảnh hưởng sâu sắc đến KHMT nhưng đã được viết trong một ngữ cảnh khác.

Bài hôm nay là của Claude E. Shannon:

Bài báo này đánh dấu sự ra đời của lý thuyết thông tin. Để nói về ảnh hưởng sâu sắc của bài báo này nói riêng và của Shannon nói chung đến KHMT hiện đại thì ta cần vài quyển sách. Ta tóm tắt ở đây vài khái niệm và kết quả kinh điển từ bài báo này:

  • Lần đầu tiên xác suất được áp dụng vào phân tích truyền thông. Ngày nay thì các phân tích và mô hình hóa bằng xác suất trong KHMT và truyền thông phổ dụng đến mức ta khó có thể tưởng tượng ý tưởng này mới như thế nào khi Shannon viết bài này.
  • Ý tưởng đột phá là “thông tin” (bất kể nguồn loại gì) về căn bản là mang tính số (digital). Dấu ấn của ý tưởng này trên các ngành công nghệ hiện đại nằm ở mọi nơi: lưu trữ thông tin (CD, đĩa cứng), truyền thông tin (mạng máy tính), vân vân. Khái niệm “bit” thông tin được giới thiệu lần đầu tiên.
  • Khái niệm “entropy” thông tin ra đời, dùng để đo “độ phức tạp” hay “độ ngẫu nhiên” của nguồn thông tin. Nói nôm na thì entropy của một tín hiệu thông tin đại diện cho “tổng số thông tin” mà tín hiệu này mang.
  • Các kênh thông tin có một dung tích (channel capacity) mà nếu ta truyền tín hiệu với tốc độ nhỏ hơn nó thì tồn tại một cách mã hóa (code) tín hiệu mà nhờ đó ta có thể đạt được xác suất lỗi nhỏ tùy ý. Phát biểu này đại khái là nội dung của định lý noisy channel coding lừng danh.
  • Bài báo cũng đặt nền tảng cho ngành nén dữ liệu (data compression), mã hóa và giải mã tín hiệu với khả năng phát hiện lỗi (error-detection code) và sửa lỗi (error-correction code). Xem thêm quyển sách kinh điển này.
  • Nhờ bài báo này, truyền thông có thể hiểu nôm na là bao gồm 3 bước chính: mã hóa tín hiệu, truyền tín hiệu qua kênh thông tin, và giải mã tín hiệu.

Nhà toán học vĩ đại Kolmogorov từng nói về Shannon như sau

  • Trong thời buổi mà kiến thức nhân loại càng lúc càng đuợc chuyên môn hóa, Claude Shannon là một nhà khoa học ngoại lệ. Shannon kết hợp các ý tưởng toán học sâu sắc với các hiểu biết rộng và cụ thể của các vấn đề quan trọng bậc nhất của công nghệ. Shannon là một trong những nhà toán học vĩ đại nhất đồng thời là một trong những kỹ sư giỏi nhất trong vài thập niên qua.

Chuyên mục: Lý thuyết thông tin & Lý thuyết tính toán | Bình luận (5) »

Lược sử nghịch lý

Ngô Quang Hưng | 22 tháng 05, 2005 | Bản để in Bản để in

Tôi vừa đọc xong quyển “lược sử nghịch lý” của giáo sư Roy Sorensen. Quyển sách điểm qua rất nhiều các tư tưởng và triết gia thế giới trong vài nghìn năm qua bằng các nghịch lý và hành trình của nhân loại giải thích các nghịch lý này. Lược sử nghịch lý rất đáng đọc: hài hước, sâu sắc, và nhiều thông tin.

Trong loạt bài Chung qui chỉ tại Cantor, tôi đã giới thiệu một số nghịch lý đóng vai trò thiết yếu cho sự phát triển của lý thuyết tính toán hiện đại. Dĩ nhiên các nghịch lý này cũng được Rorensen đề cập.

Xin trích lại đây hai đoạn vui trong sách.

Đoạn số một. Trong bài “Concerning the Jews“, tạp chí Harper, tháng ba năm 1898, Mark Twain viết:

  • Tôi chẳng kính trọng Satan gì lắm; nhưng ít nhất tôi có thể tuyên bố rằng tôi không có thành kiến gì với hắn. Có khi tôi lại còn nghiêng về phía hắn một chút, vì hắn không được đối xử công bằng. Tất cả các tôn giáo đều phát hành thánh kinh thóa mạ hắn, thế mà ta chưa bao giờ được nghe gì từ phía hắn. Ta chỉ có bằng chứng từ bên công tố mà ta đã phán xử. Với tôi, điều này không bình thường, nó không Anh, không Mỹ. Nó là Pháp.

Đoạn số hai. Thế kỷ thứ 5 trước công nguyên, Epicharmus viết một đoản kịch như sau. Một con nợ đến gặp chủ nợ. Vì thiếu tiền, hắn tìm cách thuyết phục chủ nợ để khỏi trả tiền.

  • Con nợ hỏi: “nếu có một đống đá cuội, và ta thêm hoặc bớt một cục, thì ta có còn cùng số đá không?
  • Chủ nợ trả lời: “dĩ nhiên là không rồi“.
  • Nếu ta có một mét chiều dài, sau đó cộng hay trừ một mẩu, thì ta có còn một mét không?“, con nợ hỏi tiếp.
  • Không“, chủ nợ trả lời.

Con nợ thuyết phục tiếp rằng con người cũng y như vậy. Sau một thời gian thì con người già đi, lớn lên, gầy đi, mập lên, vân vân. Không có ai giống hệt như anh ta trong quá khứ. Chủ nợ lẽ dĩ nhiên là đồng ý.

  • Con nợ kết luận: “vậy thì tôi chẳng nợ anh cái gì cả, vì tôi hôm nay đâu có phải người đã vay anh hôm trước đâu.

Chủ nợ bí ý, không biết nói sao, bèn đấm con nợ một phát ngã chỏng gọng.

  • Con nợ tức lắm, hỏi: “sao anh lại đánh tôi?
  • Chủ nợ trả lời, giọng rất thương cảm, “tôi có phải là người đã đánh anh đâu?

Các mẩu chuyện này đều mang một mệnh đề, một ý nghĩa triết học nhất định trong chương tương ứng của quyển sách hai mươi bốn chương. Sorensen lược qua các lập luận của bao thế hệ triết gia, từ Anaximander, Zeno, Socrates, Plato, Aristotle, Sextus Empiricus, đến Hume, Kant, Hegel, Russell, Wittgenstein, Quine. Quyển sách được viết công phu và rất quyến rũ.

Chuyên mục: Giới thiệu sách | Bình luận (1) »

Oái oăm Microsoft

Ngô Quang Hưng | 18 tháng 05, 2005 | Bản để in Bản để in

Microsoft tuần trước vừa ra thông cáo là họ sẽ tham gia thị trường phần mềm chống virus và chống spy-wares vào năm tới. Trước đó thì phiên bản beta của Windows anti-spyware cũng đã ra trình làng.

Vụ này cực kỳ oái oăm, vì đa phần các virus và spy-wares đều nhằm vào và là hậu quả của các bugs/features của các phần mềm Microsoft, đặc biệt là Internet Explorer.

Một công ty bán cho khách hàng một sản phẩm sửa chữa hậu quả của các lỗi phần mềm do chính công ty đó đã bán cho khách hàng. Vẫn biết rằng cái user agreement không giới hạn việc Microsoft bán các sản phẩm sửa chữa phần mềm của chính họ (như kiểu mua xe hơi xong rồi thi thoảng phải trả tiền bảo trì sửa chữa), nhưng vụ này nghe vẫn quái vì lỗi phần mềm không phải như lỗi cơ học của xe hơi.

Các công ty lớn nhất hiện nay trong thị trường phần mềm chống virus/spy-wares gồm có McAfee, Symantec, CA, Trend Micro, Sophos, và Kaspersky. Bản thân tôi thường dùng Symantec AV (license của trường) cùng với AdAware (bản miễn phí). Tôi chỉ dùng Firefox (trên cả Windows lẫn Linux/Unix) và đặt cấu hình cẩn thận nên không ngại spy-wares chút nào.

Hiện nay ta đang thấy xu hướng các công ty chuyển sang bán software license theo kiểu đăng ký dài hạn (subscription service) chứ không phải bán từng sản phẩm như xưa. Theo cách này thì các cập nhật bảo mật và cập nhật khác sẽ tiện lợi hơn, đảm bảo một môi trường tính toán tốt hơn nhiều. Xu hướng này cũng làm ảnh hưởng đến người dùng phần mềm lậu của Microsoft mà Việt Nam đứng hàng đầu.

Security focus có hai bài báo (một, hai) liên quan đến việc này.

Chuyên mục: CNTT các nước và VN | Bình luận »

Điều trần về tương lai của nghiên cứu KHMT ở Mỹ

Ngô Quang Hưng | 18 tháng 05, 2005 | Bản để in Bản để in

Tuần trước, ngày 12 tháng 5, có một buổi điều trần với ủy ban khoa học của hạ nghị viện Mỹ về tình trạng tài trợ nghiên cứu khoa học máy tính hiện nay. Các nhân chứng trong buổi điều trần bao gồm các tiến sĩ

  • John Marburger III, giám đốc văn phòng chính sách khoa học và công nghệ của nhà trắng (OSTP).
  • Anthony J. Tether, giám đốc chi nhánh các dự án nghiên cứu cấp cao của bộ quốc phòng (DARPA).
  • William Ạ Wulf, chủ tịch viện kỹ thuật quốc gia (NAE).
  • Tom Leighton, khoa học gia trưởng (chief scientist) và đồng sáng lập viên của Akamai Technologies, đồng thời là giáo sư khoa toán ứng dụng của MIT.

Số là gần đây giới nghiên cứu KHMT ở Mỹ đang càm ràm về tình trạng giảm sút đáng kể về tài trợ nghiên cứu cơ bản trong khoa học máy tính, đặc biệt là ở các trường đại học. Bài báo sau đây ở tạp chí Science tóm tắt khá tốt tình hình này:

Lazowska and Patterson, An Endless Frontier Postponed, Science 2005 308: 757

Hai tổ chức đóng vai trò thiết yếu tài trợ nghiên cứu cơ bản cho khoa học máy tính là NSF và DARPA. Chính các tài trợ của hai tổ chức này trong 40 năm qua đã mang lại các phát kiến đóng vai trò chủ đạo cho sự phát triển cực mạnh về nhiều lĩnh vực của Mỹ mấy mươi năm qua. Rất nhiều các công nghệ trung tâm của khoa học máy tính hiện đại đã được phát triển từ các nghiên cứu căn bản ở các trường đại học: mạng Internet, các hệ thống time-sharing, PKC, google, web browsers, cơ sở dữ liệu, đồ họa máy tính, vân vân, … Các công nghệ này tạo ra những ngành công nghiệp nhiều chục tỉ đô la và biết bao nhiêu công ăn việc làm, đó là chưa kể năng suất lao động của các ngành khác, năng suất trao đổi thông tin và học tập, truyền thông, vân vân, đều bùng phát nhờ các công nghệ này.

Tài trợ nghiên cứu tầm xa là đầu tư chiến lược của một quốc gia, và Mỹ không là ngoại lệ. Bốn mươi năm vừa qua là minh chứng sinh động cho tầm quan trọng của nghiên cứu khoa học cơ bản được quản lý và tài trợ tốt.

Mấy năm gần đây thì DARPA chuyển hướng tài trợ: từ nghiên cứu cơ bản sang các nghiên cứu ngắn hạn, có ứng dụng ngay theo kiểu R&D của các công ty. DARPA gọi nó là kiểu nghiên cứu “làm cầu nối” giữa nghiên cứu cơ bản và công nghệ ứng dụng. Báo cáo tổng hợp của buổi điều trần đưa ví dụ: năm 1998 thì DARPA tài trợ 30% tổng số tiền tài trợ nghiên cứu KHMT, NSF đóng góp 27%; đến năm nay thì DARPA chỉ còn đóng góp 6%. Không chỉ giảm phần trăm, tổng số đô la tài trợ của DARPA cũng giảm đáng kể (143 triệu USD năm 2005). Nói cách khác, DARPA đặt gánh nặng tài nghiên cứu cơ bản lên vai NSF và, phần nào đó, vào phòng khoa học của bộ năng lượng (DoE).

Cụ thể hơn, tôi đang làm một dự án của DARPA được sub-contract từ Telcordia. So với một dự án khác của NSF thì làm với DARPA rất khó chịu vì phải báo cáo thường xuyên về tiến trình nghiên cứu và vì chính sách xem xét “tiếp tục hay không” (go/no-go) sau 1 năm hay 18 tháng. Cứ sau một khoảng thời gian từ 1 năm đến 18 tháng mà dự án chưa có kết quả “rõ ràng” thì dự án sẽ không được tiếp tục tài trợ. Kết quả của chính sách này là các nghiên cứu tầm xa rất khó được tài trợ của DARPA. Có rất nhiều vấn đề quan trọng cần vài năm “nấu chín” ý tưởng mà không phải chạy theo các báo cáo “vụ mùa” hai tháng một.

Để so sánh, một dự án thông thường của NSF có thời khoảng là 3 năm. Dự án cho một CAREER grant của NSF cho các giáo sư trẻ thì được đến 5 năm.

Một “hậu quả” nữa của các chính sách mới của DARPA là hiện nay đa phần họ tài trợ các công ty thay vì các giáo sư đại học. Các công ty có nhiều tài nguyên và người làm các dự án ngắn hạn này hơn. Tuy vậy, khi dự các buổi họp của các princial investigator của DARPA thì tôi thấy các công trình ở các công ty cũng chẳng khác gì các công trình thông thường ở các trường đại học.

Các bạn có thể đọc kỹ hơn các báo cáo của buổi điều trần trên ở đây. Hội nghiên cứu điện toán (CRA) có một blog bàn nhiều về vấn đề này.

Chuyên mục: Chính trị trong ngành | Bình luận »

Từ kết quả một cuộc thi lập trình …

Ngô Quang Hưng | 15 tháng 05, 2005 | Bản để in Bản để in

Cuộc thi lập trình bậc đại học của ACM (ACM International Collegiate Programming Contest, viết tắt là ACM-ICPC) hàng năm là cuộc thi lập trình có truyền thống và danh tiếng nhất của sinh viên máy tính bậc đại học trên thế giới. Đạt được thứ hạng cao trong cuộc thi này làm gia tăng đáng kể tiếng tăm của một trường, dù là ở bất kỳ nước nào trên thế giới. Các thành viên của một đội tuyển đoạt thứ hạng cao thì có một đề mục nặng ký trong resumé để xin học masters, Ph.D ở các trường hàng đầu thế giới. Năm vừa rồi, một Ph.D xin việc ở khoa tôi đã từng nằm trong một đội tuyển của Slovakia đứng thứ 12 trong kỳ thi ACM-ICPC năm 1996.

Cuộc thi ACM-ICPC lần thứ 29 (2005) tổ chức ở đại học Thượng Hải Jiao Tong, Trung Quốc. Đây là danh sách thứ hạng của cuộc thi, trong đó 12 hạng đầu bao gồm:

  1. Shanghai Jiaotong University (Trung Quốc)
  2. Moscow State University (ta hay gọi là Lomonosov, Nga)
  3. St Petersburg Institute of Fine Mechanics and Optics (Nga)
  4. University of Waterloo (Canada)
  5. University of Wroclaw (Ba Lan)
  6. Fudan University (Trung Quốc)
  7. KTH – Royal Institute of Technology (Thụy Điển)
  8. Norwegian University of Science & Technology (Thụy Điển, Na Uy)
  9. Izhevsk State Technical University (Nga)
  10. Politehnica University Bucharest (Rumani)
  11. Peking University (Trung Quốc)
  12. The University of Hong Kong (Trung Quốc)

Các trường đại học ở Trung Quốc và Đông Âu (bao gồm Nga) bắt đầu thống trị cuộc thi này những năm gần đây. Trường đại học đạt hạng cao nhất của Mỹ chỉ đứng thứ 17 (UIUC của anh Đoàn An Hải). Ta có thể rút ra bài học hay các câu hỏi gì từ kết quả này (khá đồng nhất trong những năm gần đây)?

  • Phải chăng chất lượng giáo dục KHMT ở Mỹ đang giảm sút? Hay chất lượng sinh viên học KHMT ở Mỹ đang giảm sút? (Nhớ rằng ta đang xét đết chất lượng giáo dục KHMT ở bậc đại học chứ không phải sau đại học.) Nếu câu trả lời là có thì do nguyên nhân nào?

    Một bài báo gần đây của Thomas L. Friedman trên tờ New York Times có bàn về vấn đề này. Thomas gợi ý rằng sinh viên Mỹ đang tụt hậu về khoa học và kỹ thuật.

    Một bài phỏng vấn khác của C|Net News cũng quan tâm đến cùng đề tài. Giáo sư David Patterson, president của ACM, là người trả lời phỏng vấn. (Giáo sư Patterson là nhà nghiên cứu chủ đạo thiết kế cấu hình RISC và hệ thống RAID. RISC là nền tảng của cấu hình SPARC của hãng Sun Microsystems.) Trong bài, giáo sư Patterson quy kết quả yếu của các đại học Mỹ cho các lý do: (a) sự thiếu quan tâm tầm quốc gia [ví dụ các trường ở Nga đoạt giải thì được chính tổng thống Putin khen thưởng], (b) các trường ở Đông Âu và Trung Quốc coi trọng cuộc thi này hơn các trường ở Mỹ, nhưng ông cũng nghĩ đó không phải là lý do cốt yếu, (c) người Mỹ biếng nhác hơn vì họ đã thống trị KHMT quá lâu, (d) sự giảm sút của đầu tư vào giáo dục và nghiên cứu KHMT những năm gần đây ở Mỹ, và (e) chất lượng đầu vào của sinh viên giảm sút sau bùng nổ dot-com.

    Gần đây, Bill Gates làm một tour nói chuyện ở vài trường đại học lớn để kêu gọi sinh viên giỏi vào học KHMT và kêu gọi các trường tìm cách thu hút thêm sinh viên giởi từ nước ngoài. Lý do cho chuyến “du Giang Nam” này của Bill chính là sự giảm sút chất lượng và số lượng sinh viên KHMT mà Microsoft đang và sẽ bị ảnh hưởng lớn. Việc xin visa sinh viên vào Mỹ khó khăn trong những năm gần đây làm giảm đáng kể số sinh viên ngoại quốc ở Mỹ. Sau khi ra trường thì bị vụ giới hạn H1B, dù USCIS vừa thông báo cho thêm 20000 H1B nữa cho trong năm nay (giới hạn trước đó là 65000 visas đã hết veo trong vòng … 1 ngày). Out-sourcing, off-shoring làm cho sinh viên KHMT ở Mỹ tìm việc khó khăn hơn, do đó họ không lao vào KHMT nhiều như những năm 90.

  • Kết quả thi này có phản ánh chính xác trình độ sinh viên và chất lượng của đại học đoạt giải hay không?

    Giáo sư Norm Matloff lý luận là không. Norm cho rằng, cũng như chuyện “luyện gà chọi” thi Olympics thể dục dụng cụ, Trung Quốc và các nước Đông Âu đầu tư rất nhiều vào các kỳ thi loại này. Kết quả thi không phản ánh đúng trình độ của học sinh và chất lương giáo dục. Ví dụ, ở ngay tại Trung Quốc thì hai trường đại học Peking University và Tsinghua University là hai trường hơn hẳn Shanghai Jiaotong University, thế nhưng cả Peking lẫn Tsinghua đều không nằm trong top 10. Ta có thể thêm vào các IIT của Ấn Độ – chất lượng sinh viên và chất lượng giáo dục ccác ngành kỹ thuật rất cao – nhưng họ không có mặt trong top 10.

  • Các trường đại học ở Việt Nam có thể học được gì từ kết quả này?

    Các trường đại học Mỹ có tham gia kỳ thi này hay không thì cũng không ảnh hưởng mấy đến giáo dục đại học của họ. Việt Nam thì khác. Tôi nghĩ ta nên tích cực tham gia kỳ thi này. Có vài cái lợi trước mắt và lâu dài:

    • Đầu tư vào một kỳ thi như vậy không nhiều (từ thời gian đến tiền bạc), lại có thể tiến hành độc lập từ các trường đại học, không cần quản lý tầm quốc gia. Bản chất kỳ thi là giữa các trường với nhau, không phải là giữa các nước với nhau như kỳ thi toán quốc tế. Mỗi trường chỉ cần 3 sinh viên và một huấn luyện viên và chẳng cần thiết bị gì ngoài một cái máy tính và một số sách vở.
    • Một đại học ở VN có thể cải thiện danh tiếng tầm quốc tế ngay lập tức nếu đạt thứ hạng kha khá. Các sinh viên tốt nghiệp đại học này sẽ được xem xét với một ánh mắt khác khi xin học masters/Ph.D ở nước ngoài. Các sinh viên đoạt giải trong kỳ thi sẽ có tương lai sáng láng khi xin học sau đại học.
    • Tạo được thêm động cơ học tập lập trình cho sinh viên KHMT. Việc giải quyết các vấn đề kỹ thuật nhanh với lời giải đẹp như trong kỳ thi ACM-ICPC là chất lượng rất quan trọng của kỹ sư máy tính.

    Có không ít các tranh cãi về chuyện “luyện gà chọi” thi học sinh giỏi ở Việt Nam. Các bạn có thể nghĩ rằng thêm một nhóm “gà chọi” nữa sẽ làm cho vấn đề tệ hơn. Tôi cần nghiên cứu kỹ về đề tài này và xin hẹn các bạn một dịp khác sẽ bàn thêm. Tuy nhiên, tôi muốn nêu một thực tế rất đáng chú ý là có rất rất nhiều những khoa học gia của Việt Nam thành công ở nước ngoài, hoặc đang giữ các vị trí quan trọng trong nước hiện nay, là cựu sinh viên chuyên Toán. Nhóm bloggers của blog KHMT này là một ví dụ sinh động.

Lần khác tôi sẽ bàn thêm về nội dung và các kiến thức nền cần có cho cuộc thi này.

Chuyên mục: Giáo dục | Bình luận (1) »

Rắc rối hóa chương trình

Ngô Quang Hưng | 12 tháng 05, 2005 | Bản để in Bản để in

Trong bài về các chương trình đẹp xấu, vân vân, tôi có nhắc đến các chương trình C được rắc rối hóa (obfuscated C code) và cả một cuộc thi quốc tế hàng năm cho các chương trình này. Sau đây là một ví dụ:

#include <stdio.h> int O,o,i;char*I="";main(l){O&=l&1?*I:~*I,*I++||(l=2*getchar(),i+=O>8\
?o:O?0:o+1,o=O>9,O=-1,I="t8B~pq`",l>0)?main(l/2):printf("%d\n",--i);}

Bạn thử bỏ vài phút nghĩ xem chương trình trên làm gì? Tôi chọn ví dụ này vì nó ngắn. Các ví dụ khác trông “ghê gớm” hơn nhiều: ví dụ 1, ví dụ 2, ví dụ 3.

Thế các chương trình loại này chỉ dùng để đố nhau cho vui, hay có ứng dụng gì khác?

Thử tưởng tượng ta tìm được một phương thức nào đó để viết một chương trình O làm công việc như sau: cho một chương trình P bất kỳ, O sẽ biến P thành chương trình O(P) với chức năng hệt như P, chỉ khác ở chỗ là đọc O(P) ta không thể hiểu được logic của nó, và vì thế ta không biết P thật sự chạy như thế nào. [Kể cả là đọc bằng máy tính hay đọc bằng mắt thường!]

Một chương trình O như vậy có rất nhiều ứng dụng trong mật mã hóa, đánh dấu mờ (watermark) phần mềm, bảo vệ phần mềm (software protection), vân vân.

Ví dụ tôi có một giải thuật tân kỳ nào đó và tôi muốn bán cho người khác để họ dùng giải thuật này trong một chương trình lớn. Tôi viết giải thuật này thành một đoạn mã gọi là P, sau đó tôi gửi O(P) cho người mua và họ có thể dùng O(P) trực tiếp mà tôi không bị tiết lộ giải thuật này. Nói chung, O có thể dùng để chống reverse-engineering. Đây là ứng dụng bảo vệ phần mềm của O.

Đánh dấu mờ phần mềm (wartermarking software) là một ứng dụng hay nếu ta có thể thực sự viết O. Ý nghĩa căn bản của cái gọi là “đánh dấu mờ” như sau:

  • Giả dụ ta có một chương trình P đem bán cho khách hàng, nhưng muốn tránh việc khách hàng copy P cho người khác, ta tìm cách, với mỗi khách hàng G, trộn vào trong P một đoạn mã C(G) nào đó, biến P thành P(G).
  • P(G) về mặt chức năng thì giống hệt P, và việc thêm C(G) vào P không ảnh hưởng nhiều đến hiệu suất của P.
  • C(G) còn có một thuộc tính toán học nào đó mà ta có thể kiểm tra bằng cách kiểm tra P(G). Thuộc tính toán học này có thể dùng để chứng minh rằng P(G) thuộc về khách hàng G. Như vậy, hai khách hàng G1 và G2 khác nhau sẽ có hai chương trình P(G1) và P(G2) khác nhau [và ta kiểm tra được điều đó], dù là chúng giống hệt nhau về mặt chức năng.
  • C(G) có thể xem như con dấu hay chữ ký của khách hàng G đã đóng vào P. Như thế G sẽ không đem bản của mình cho người khác được.
  • Dĩ nhiên là cả hệ thống phải được thiết kế sao cho việc lấy C(G) ra khỏi P(G) là cực kỳ khó làm. Ngoài ra, bất kể người ta biến đổi P(G) như thế nào (rắc rối hóa nó, dịch nó sang ngôn ngữ khác, vân vân), thì “con dấu” C(G) vẫn bị dính kèm.

Những điều trên có khả năng hiện thực hóa được nếu ta có bộ rắc rối hóa O. Ta bỏ vào trong P một đoạn mã C(G) nào đó để nhận dạng khách hàng G. (C(G) không làm gì cả, chỉ dùng để nhận dạng G.) Sau đó ta đưa cho khách hàng chương trình O(P). Chương trình O(P) giống hệt P+C(G), nhưng đã bị rắc rối đến mức khách hàng không thể hiểu được logic của nó, và vì thế không thể bỏ C(G) ra khỏi nó được. Dĩ nhiên còn nhiều chi tiết kỹ thuật và lý thuyết cần dùng cho việc này, nhưng về mặt trực quan thì có khả năng điều này có thể hiện thực hóa được nếu ta có O.

Hệ thống mật mã khóa công cộng (public key crypto-system, hay PKC) là ý tưởng đột phá của ngành mật mã học (cryptography). Các PKC như RSA hiện nay đóng vai trò thiết yếu trong các hoạt động cần bảo mật máy tính như thương mại điện tử (e-commerce), chữ ký điện tử (digital signature), vân vân. Whitfield Diffie, Martin Hellman, và Ralph Merkle có thể được coi là cha đẻ của ý tưởng mật mã hóa không cần bí mật này, mặc dù tổ chức GCHQ của Anh nói rằng họ có ý tưởng này trước đó vài năm, nhưng không đăng báo vì là bí mật quốc gia.

Bài báo đầu tiên về đề tài này của Diffie và Hellman đăng năm 1976 (W. Diffie and M. Hellman. New Directions in Cryptography. IEEE Trans. Info. Theory 22(6): 644-654 (1976)). Tuy nhiên họ đã trình bày ý tưởng này ở một hội nghị vào tháng 6 năm 1975.

“Mật mã hóa không cần bí mật” nghe có vẻ nghịch lý. Chính vì thế mà ý tưởng PKC là một đột phá của thế kỷ 20 trong ngành mật mã học. Trước khi có ý tưởng PKC, để gửi hay lưu trữ một tài liệu mật nào đó, ta cần một khóa bí mật (secret key – còn gọi là khóa riêng – private key). Khi mật mã hóa tài liệu, ta dùng khóa bí mật. Khi giải mã tài liệu, ta cũng cần nó. Mức độ bảo mật của hệ thống bằng với mức độ bảo mật của khóa này, và trong chừng mực nào đó, mức độ bảo mật của giải thuật mã hóa và giải mã. Hiển nhiên là một giải thuật tốt thì có nhiều người cần dùng, và vì thế ta chỉ có thể giữ bí mật cái khóa riêng thôi, còn giải thuật thì không phải là bí mật.

Khó khăn của hệ thống mật mã khóa riêng (private key crypto-system) kiểu này nằm ở việc phân phối khóa riêng. Nếu một người ở Mỹ muốn gửi tài liệu bí mật cho người ở Việt Nam mà phải mang cái khóa này sang Việt Nam thì mang luôn cái tài liệu mật cho xong. Như vậy, ta cần một hệ thống mật mã mà trong đó người gửi có thể mã hóa và gửi tài liệu bằng cách nào đó mà chỉ có người nhận mới giải mã được, ngoài ra người gửi không cần biết một bí mật nào đó thì mới làm được việc này. Đây là lý do tại sao ta gọi PKC là hệ thống mật mã không cần bí mật.

Ý tưởng của một hệ thống PKC như sau. Người nhận có một cặp khóa D (bí mật) và E (công cộng). Người nhận cho thiên hạ biết khóa E. Để đơn giản, bạn có thể hiểu E như một hàm số hay một chương trình mà cho một thông điệp M thì E(M) là thông điệp M đã được mật mã hóa. Dĩ nhiên việc giải mã ra M từ E(M) là cực kỳ khó, trừ khi ta có D. Ta chỉ cần D(E(M)) = M với mọi M là xong. (Chú ý rằng cả ED đều có thể xem như các chương trình máy tính. E là chương trình công cộng, còn D là chương trình bí mật.)

Vậy PKC thì liên quan gì đến rắc rối hóa chương trình?

Với bộ rắc rối hóa chương trình O, ta có thể biến một hệ thống mật mã khóa riêng thành hệ thống mật mã khóa công cộng. Hệ thống mật mã khóa riêng có thể được mô tả như sau: bên gửi và bên nhận dùng chung một khóa bí mật K cùng với một giải thuật mã hóa E và giải mã D. Gọi EK là chương trình mã hóa dùng E với khóa K, và DK là chương trình giải mã dùng D với khóa K. Để mã hóa một thông điệp M thì bên gửi sẽ gửi EK(M), và bên nhận giải mã với DK(EK(M)) = M.

Như ta đã nói trong các bài trước, việc làm thế nào để phân phối và đồng ý với khóa K là vấn đề khó giải quyết của hệ thống mật mã khóa riêng. Với bộ rắc rối hóa O, bên nhận có thể cho mọi người biết O(EK). Ai muốn gửi thông điệp M thì chỉ cần gửi O(EK)(M) là xong. Nhờ có O, không thể đoán được K từ O(EK).

Cho đến đây, ta vẫn chưa định nghĩa rõ ràng thế nào là một bộ rắc rối hóa chương trình bằng toán học. Bộ rắc rối hóa phải thỏa mãn những tính chất gì thì các ứng dụng nêu trên mới có thể thành hiện thực được? Tệ hơn nữa, nhỡ khi không tồn tại một bộ rắc rối hóa như ta mong muốn thì sao? Làm sao chứng minh được điều này?

Về mặt trực quan, một chương trình P sau khi được rắc rối hóa thành O(P) thì ta không thể hiểu được logic của O(P) nữa. Làm thế nào để mô tả điều này về mặt toán học?

Một bài báo của Barak, Goldreich, Impagliazzo, Rudich, Sahai, Vadhan, và Yang nghiên cứu định nghĩa như sau. Tôi chỉ mô tả lại đây ý tưởng chính đằng sau định nghĩa của họ. Định nghĩa cụ thể bằng toán học bạn có thể đọc trực tiếp.

Nếu O(P) cực kỳ khó hiểu, thì có O(P) cũng không khác gì có P như một hộp đen (blackbox). Hộp đen ở đây được hiểu là ta không biết P hoạt động thế nào, chỉ biết rằng cho bất kỳ input x nào thì ta biết output P(x) tương ứng của chương trình P, nhưng không có thông tin gì khác về việc làm thế nào mà P tính được P(x). Ví dụ, người ta có thể bán cho bạn một cái máy mà ta gõ vào tiếng Việt thì máy dịch sang tiếng Anh. Giả sử bạn không bao giờ mở máy ra xem thì bạn có truy cập theo kiểu hộp đen đến cái giải thuật dịch đấy. Nếu P là giải thuật dịch, việc bạn có O(P) cũng chẳng hơn gì có cái máy dịch không được tháo ra, dù O(P) vẫn là mã nguồn của P (chỉ bị rắc rối hóa đi thôi).

Cụ thể hơn về mặt toán học, thì O là bộ rắc rối hóa tốt nếu những gì ta tính toán được hay suy ra được từ O(P) cũng y như những gì ta tính toán được hay suy ra được từ truy cập kiểu hộp đen đến P.

Nếu ta chấp nhận định nghĩa này của bộ rắc rối hóa (định nghĩa có thể hơi mạnh quá), thì các tác giả bài báo trên chứng minh được rằng tồn tại một họ F các hàm số không thể rắc rối hóa được theo nghĩa như sau. Tồn tại một thuộc tính p: F –> {0,1} của các hàm số này thỏa mãn tính chất sau đây:

  1. Nếu có bất kỳ chương trình Q nào tính một hàm f thuộc F, thì thuộc tính p(f) có thể tính được một cách hiệu quả,
  2. Trong khi đó nếu ta chỉ có truy cập kiểu hộp đen đến một hàm f chọn ngẫu nhiên từ họ F, thì không có giải thuật hiệu quả nào để tính p(f) tốt hơn cách đoán bừa (random guessing).

Có lẽ cần giải thích chi tiết hơn một chút. Giả sử tồn tại một bộ rắc rối hóa O. Nếu O là bộ rắc rối hóa tốt thì, theo định nghĩa, nếu ta chọn một hàm f bất kỳ từ họ F thì việc có O(f) cũng không hơn gì việc có truy cập kiểu hộp đen đến f. Gọi Q = O(f). Theo tính chất (1) thì ta có thể tính p(f) một cách hiệu quả. Theo tính chất (2) thì ta không tính được p(f) một cách hiệu quả nếu chỉ có truy cập kiểu hộp đen đến f. Như vậy rõ ràng là O(f) chứa nhiều “thông tin” (trong trường hợp này là thuộc tính p của f) hơn là cái hộp đen tính f. Nói cách khác, O đã không hoàn toàn rắc rối hóa f.

Vài hướng nghiên cứu tiếp:

  • Tìm một định nghĩa có ý nghĩa về mặt thực tiễn (cho software protection, watermarking, vân vân) cho bộ rắc rối hóa sao cho việc rắc rối hóa này vẫn có thể làm được về mặt lý thuyết.
  • Giả sử ta vẫn dùng định nghĩa trên, có một lớp các hàm số nào hữu dụng mà lại có thể rắc rối hóa được hay không? (Bộ hàm số F như trên chỉ là một phản ví dụ không bao gồm hết các hàm hữu dụng trong thực tế.)

Chuyên mục: Bảo mật và mật mã học & Lý thuyết tính toán | Bình luận (2) »

Quả đất nhìn từ vệ tinh

Ngô Quang Hưng | 08 tháng 05, 2005 | Bản để in Bản để in

Chuyên mục: Trang web hay | Bình luận »

Công nghệ thông tin ở Trung Quốc

Ngô Quang Hưng | 03 tháng 05, 2005 | Bản để in Bản để in

Tờ Communications of the ACM tháng 4 (số 48) năm nay có nhiều bài viết về tình hình phát triển công nghệ thông tin ở Trung Quốc (TQ). Có nhiều bài học thiết thực cho Việt Nam. Tôi tóm tắt lại đây vài điểm quan trọng.

  • Bài viết của Richard P. Suttmeier nói về các chuẩn kỹ thuật và cái gọi là chủ nghĩa dân tộc kỹ thuật (technonationalism). Suttmeier bắt đầu bằng sự kiện TQ năm ngoái tìm cách đề bạt chuẩn WAPI (wireless authentication and privacy infrastructure) ra thế giới bằng cách yêu cầu tất cả các sản phẩm mạng cục bộ không dây (WLAN) bán ở TQ phải theo chuẩn này. Cuối cùng thì TQ bỏ ý định này do sức ép của các công ty lớn của Mỹ. Sau đó Suttmeier phân tích các mối tương quan phức tạp trong việc phát triển công nghệ ở một nước đang lên với tiềm năng kỹ thuật và thị trường khổng lồ như TQ. Ví dụ, các nhà làm chính sách và các khoa học gia tầm lãnh đạo dĩ nhiên là không muốn TQ bị phụ thuộc vào công nghệ và các chuẩn của nước ngoài, cho nên họ tìm cách thúc đẩy sáng tạo trong nước và tạo chuẩn cho riêng mình, với hy vọng dần dần tách khỏi sự phụ thuộc công nghệ vào các nước và tập đoàn phương Tây. Ngược lại, các công ty gia công thuê [có rất nhiều ở TQ] thì lại kiếm tiền trên chính sự phụ thuộc công nghệ này. Tìm giải pháp cân bằng hai hướng này là một vấn đề nhức đầu cho các nhà làm chính sách.
  • Bài viết của Jonathan J. H. Zhu và Enhai Wang có nhiều thống kê quan trọng về sử dụng Internet ở TQ.
    Cho đến tháng 12 năm 2004, TQ có khoảng 94 triệu người dùng Internet, biến TQ thành thị trường Internet lớn thứ nhì thế giới sau Mỹ. (Con số này lấy theo trung tâm thông tin Internet của TQ – còn gọi là CNNIC. Họ làm thống kê một năm 2 lần từ 1997 đến nay.)
    Bài báo cho biết, dù số người dùng bùng phát khá nhanh, nhưng vẫn chưa đến mức đáng lẽ có thể đạt được. Lý do chính không phải là dân TQ thiếu tiền kết nối Internet, mà do các lý do sau, từ quan trọng nhất trở xuống: (1) thiếu khả năng sử dụng máy tính, (2) thiếu trang thiết bị, (3) thiếu thời gian, và (4) thiếu hứng thú. Một trong những yếu tố quan trọng là tâm lý cho rằng máy tính chưa thật sự cần thiết. Trong khi đó, thị trường điện thoại di động có tổng số người dùng khoảng 330 triệu, cao gấp 3.5 lần tổng số người dùng Internet.
    Khoảng 56% truy cập Internet qua các dịch vụ dial-up, phần còn lại có broadband access. Tôi tự hỏi các con số này ở Việt Nam là bao nhiêu? Các số thống kê khác [phần trăm các loại dịch vụ dùng như emails, P2P, vân vân] cũng tương tự như ở các nước phát triển.
    Ảnh hưởng lớn nhất của Internet đến xã hội TQ là một thay đổi căn bản về truyền thông trong xã hội. Ví dụ như hồi bệnh SARS bùng phát năm 2003, chính phủ TQ cấm các báo chí chính thống đăng tin trong năm tháng đầu tiên, trong khi đó vài chục triệu dân TQ đã biết tin này qua điện thoại, thông điệp SMS, email, các trang web, và các kênh khác.
    Bài báo kết luận rằng lịch sử chuyển hóa xã hội của phương Tây (nhờ Internet và các phát kiến truyền thông kỹ thuật khác) đang lập lại ở TQ, dù là nhịp độ tiến triển khá chậm chạp.

Còn vài bài hay về TQ nữa trong số báo này của Communications of the ACM, bạn có thể tự tìm đọc thêm.

Tôi kết thúc bằng các thực tế sau đây:

  • Tháng 12 năm 2004, công ty Levono của TQ mua lại đơn vị IBM’s PC với giá 1.75 tỉ USD.
  • Năm 2004, sohu.com thu về khoảng 100 triệu USD. Charles Zhang, người sáng lập website này và thường được mệnh danh là Bill Gates của TQ, được báo Time chọn là một trong 15 Global Tech Gurus, và báo BusinessWeek chọn là một trong 25 CEOs tiêu biểu của các doanh nghiệp điện tử toàn cầu.
  • Năm 2004, giáo sư Andrew Yao (giải Turing năm 2000) đã về đại học Tsinghua. Các bạn bè người TQ cho tôi biết họ trả lương cho giáo sư Yao cao không kém lương ở Mỹ, và ông không phải là trường hợp cá biệt.

Chuyên mục: CNTT các nước và VN | Bình luận »