<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Khoa Học Máy Tính &#187; Toán Ứng Dụng</title>
	<atom:link href="http://www.procul.org/blog/category/toan-%e1%bb%a9ng-d%e1%bb%a5ng/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.procul.org/blog</link>
	<description>Tầm nhìn ta thật ngắn mà đã thấy bao thứ  để làm -- Alan Turing</description>
	<lastBuildDate>Wed, 08 Feb 2012 13:27:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Mật mã hiện đại (2)</title>
		<link>http://www.procul.org/blog/2011/10/27/m%e1%ba%adt-ma-hi%e1%bb%87n-d%e1%ba%a1i-2/</link>
		<comments>http://www.procul.org/blog/2011/10/27/m%e1%ba%adt-ma-hi%e1%bb%87n-d%e1%ba%a1i-2/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 06:04:10 +0000</pubDate>
		<dc:creator>thaidn</dc:creator>
				<category><![CDATA[Bảo mật và mật mã học]]></category>
		<category><![CDATA[Toán Ứng Dụng]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=3921</guid>
		<description><![CDATA[Mới đây mà đã gần 10 tháng kể từ ngày tôi viết phần 1 của loạt bài này. Tôi bắt đầu phần 2 này cách đây cũng khá lâu, nhưng gặp trở ngại khi viết mã LaTex trên Blogger nên cứ chần chừ rồi quên hẳn. Hồi tháng 4, anh Phan Dương Hiệu có viết một [...]]]></description>
			<content:encoded><![CDATA[<p>Mới đây mà đã gần 10 tháng kể từ ngày tôi viết <a href="http://vnhacker.blogspot.com/2010/05/mat-ma-hien-ai-1.html">phần 1</a> của loạt bài này. Tôi bắt đầu phần 2 này cách đây cũng khá lâu, nhưng gặp trở ngại khi viết mã LaTex trên Blogger nên cứ chần chừ rồi quên hẳn. Hồi tháng 4, anh Phan Dương Hiệu có viết một bài rất công phu về <a href="http://www.procul.org/blog/2011/04/12/m%E1%BA%ADt-ma-khoa-cong-khai-s%E1%BB%B1-phat-tri%E1%BB%83n-t%C6%B0%C6%A1ng-h%E1%BB%97-v%E1%BB%9Bi-cac-nganh-khoa-h%E1%BB%8Dc-khac/">hành trình 35 năm của mật mã khóa công khai.</a> Hôm nay ngồi đọc lại bài viết rất hay đó tự dưng tôi thấy&#8230; nao nao và quyết định là phải viết tiếp loạt bài này. Phần thứ 2 này tôi sẽ điểm lại lịch sử của mật mã. Bạn nào có cuốn KL thì có thể đọc chương 1 và chương 2. Trong hai phần tiếp theo tôi sẽ giới thiệu mã dòng (stream cipher) và mã khối (block cipher).</p>
<p>&#8212;-</p>
<p><span id="more-3921"></span></p>
<p><strong>II. Lịch sử</strong></p>
<blockquote><p>We stand today on the brink of a revolution in cryptography.</p></blockquote>
<p>Whitfield Diffie và Martin Hellman đã viết đầy hứng khởi như thế trong bài báo <a href="http://securespeech.cs.cmu.edu/reports/DiffieHellman.pdf">New Directions in Cryptography</a> công bố năm 1976. Quả đúng như vậy. Trước Diffie-Hellman, mật mã là sân chơi của quân đội, chính phủ và những tập đoàn lớn. Nếu tôi không lầm thì công trình nghiên cứu về mật mã duy nhất được phổ biến rộng rãi là cuốn <a href="http://www.amazon.com/Codebreakers-Comprehensive-History-Communication-Internet/dp/0684831309">The Codebreakers</a> xuất bản lần đầu năm 1967 của David Kahn. Bài báo của Diffie-Hellman vừa khai sinh ra mật mã khóa công khai, vừa đánh dấu sự bắt đầu của mật mã hiện đại. Trong vòng vài chục năm, mật mã từ một nghệ thuật đã trở thành một ngành khoa học được giảng dạy và nghiên cứu khắp nơi trên thế giới. Các ứng dụng của mật mã không chỉ còn gói gọn trong ngành công nghiệp quốc phòng mà đã hiện diện trong mọi mặt của đời sống hàng ngày (mời bạn xem thêm bài của anh Hiệu). Mật mã hiện đại cũng là đề tài của loạt bài viết này. Tuy vậy, mật mã là một trong những nghệ thuật cổ xưa nhất của loài người với lịch sử hàng ngàn năm và tôi không thể viết về mật mã mà không giới thiệu sơ qua về lịch sử phát triển của ngành. Dẫu vậy, tôi cũng lưu ý là phần giới thiệu dưới đây chỉ là &#8220;cưỡi ngựa xem hoa&#8221;, bạn nào muốn tìm hiểu ngọn ngành thì nên đọc cuốn The Codebreakers.</p>
<p>Từ xa xưa, mật mã là nghệ thuật giữ bí mật nhằm giải quyết vấn đề truyền thông tin an toàn giữa người gửi và người nhận. Chẳng hạn như nhà vua cần truyền mệnh lệnh cho tướng ngoài mặt trận. Một cách đơn giản là ông ấy viết mệnh lệnh vào một lá thư, rồi gửi cho người đưa tin và người này sẽ đi từ kinh thành ra mặt trận để trao thư. Với cách làm này, ông vua không có cách nào đảm bảo được rằng chỉ có tướng quân mới xem được thư. Người đưa thư có thể phản bội, trao thư cho kẻ thù, hoặc họ cũng có thể bị kẻ thù bắt trên đường đi từ kinh thành ra mặt trận. Để giải quyết vấn đề này, nhà vua có thể sử dụng <strong>mã (cipher). </strong>Một mã thường bao gồm 2 hàm:</p>
<ul>
<li><img src='http://s.wordpress.com/latex.php?latex=E&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='E' title='E' class='latex' />: lập mã. Hàm này nhận vào một <strong>bản rõ (plaintext)</strong> <img src='http://s.wordpress.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m' title='m' class='latex' /> và một <strong>khóa (key)</strong> <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> rồi xuất ra một <strong>bản mã (ciphertext) </strong><img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' />.</li>
</ul>
<ul>
<li><img src='http://s.wordpress.com/latex.php?latex=D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='D' title='D' class='latex' />: giải mã. Hàm này nhận vào một bản mã <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> và một khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> rồi xuất ra một bản rõ <img src='http://s.wordpress.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m' title='m' class='latex' />.</li>
</ul>
<p>Các tài liệu mật mã thường gọi ông vua, tướng quân và kẻ thù trong ví dụ ở trên lần lượt là Alice, Bob và Eve, nên tôi cũng sẽ gọi như thế ở đây. Alice và Bob muốn gửi thông điệp cho nhau và không muốn Eve coi trộm. Để sử dụng được một bộ mã, Alice và Bob phải thống nhất với nhau một khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> mà Eve không biết. Làm sao Alice và Bob làm được điều đó? Chúng ta sẽ cùng đi tìm câu trả lời khi bàn về mã hóa khóa công khai, còn bây giờ cứ giả sử là bằng cách nào đó Alice và Bob đã có chung một khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> như thế.</p>
<p><strong>1. Mã thay thế (substitution cipher)</strong></p>
<p><em>Lập mã &#8211; Giải mã</em></p>
<p>Ý tưởng của mã thay thế rất đơn giản: thay mỗi ký tự trong <img src='http://s.wordpress.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m' title='m' class='latex' /> bằng một ký tự khác. Quy tắc thay thế chính là khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' />, trong đó mỗi khóa là một hoán vị của bảng chữ cái. Ví dụ:</p>
<pre>Khóa:	(A -&gt; H, B -&gt; N, C -&gt; D, D -&gt; X,..., Z -&gt; Y)
Bản rõ:	ABCZ
Bản mã: HNDY</pre>
<p>Mã thay thế được sử dụng rộng rãi trong nhiều thế kỷ. Tương truyền rằng <a href="http://vi.wikipedia.org/wiki/Julius_Caesar">Julius Caesar</a>, vị lãnh tụ lừng danh của Đế Chế La Mã, đã sử dụng một loại <a href="http://en.wikipedia.org/wiki/Caesar_cipher">mã thay thế</a> để bảo vệ tính bí mật của các văn bản quân sự.</p>
<p><em>Thám mã</em></p>
<p>Người đầu tiên đưa ra phương pháp phá các mã thay thế là Al-Kindi, một người Ả Rập sống vào thế kỷ thứ 9. Sau khi nghiên cứu kỹ lưỡng cuốn kinh Koran, Al-Kindi đã có một quan sát rất thú vị rằng trong một văn bản đủ dài, mỗi ký tự trong bộ chữ cái Ả Rập sẽ xuất hiện với tần suất tương đương với tần suất mà chúng xuất hiện trong kinh Koran. Nói cách khác, tần suất xuất hiện của các ký tự trong một văn bản là ổn định và điều này đúng không chỉ với tiếng Ả Rập mà còn đúng với tiếng Anh và nhiều ngôn ngữ khác (kể cả tiếng Việt?). Ví dụ như trong tiếng Anh, các ký tự xuất hiện nhiều nhất là &#8220;e&#8221; (12.7%), &#8220;t&#8221; (9.1%) và &#8220;a&#8221; (8.1%). Ngoài ra, tần suất của các bộ hai ký tự (digram) và bộ ba ký tự (trigram) cũng ổn định. Ví dụ như trong tiếng Anh, các bộ hai ký tự xuất hiện nhiều nhất luôn là &#8220;th&#8221;, &#8220;he&#8221;, &#8220;an&#8221; và &#8220;in&#8221; và bộ ba ký tự phổ biến nhất là &#8220;tha&#8221;.</p>
<p>Dựa vào quan sát này, Al-Kindi đã đề ra phương pháp thám mã phân tích tần suất (<a href="http://en.wikipedia.org/wiki/Frequency_analysis">frequency analysis</a>). Ý tưởng là tính tần suất của từng ký tự, từng bộ hai ký tự và từng bộ ba ký tự trong bản mã rồi so sánh các tần suất đó với tần suất chuẩn trong ngôn ngữ của bản rõ. Ví dụ như bản rõ là tiếng Anh và sau khi tính tần suất của các ký tự trong bản mã chúng ta nhận thấy &#8220;x&#8221; và &#8220;m&#8221; xuất hiện nhiều nhất thì &#8220;x&#8221; rất có thể là &#8220;e&#8221; và &#8220;m&#8221; có thể là &#8220;t&#8221;. Bước tiếp theo là thử thay thế &#8220;x&#8221; bằng &#8220;e&#8221; và &#8220;m&#8221; bằng &#8220;t&#8221; (cũng như các thay thế thích hợp khác) trong bản mã, rồi xem có xác định được từ hoặc cụm từ có nghĩa nào hay không.</p>
<p>Ngoài phương pháp thủ công này, mục 1.3 cuốn KL có mô tả một thuật toán thực hiện thám mã bằng phân tích tần suất hoàn toàn tự động. Lưu ý rằng phân tích tần suất là dạng tấn công <strong>chỉ biết bản mã (ciphertext-only attack)</strong>, nghĩa là chỉ cần nhìn vào bản mã là có thể tìm được khóa và bản rõ. Đây là một tấn công rất yếu nhưng vẫn đủ mạnh để phá mã thay thế.</p>
<p><strong><em>Bài tập 1</em></strong>: Tính số lượng khóa có thể có của mã thay thế vừa mô tả. Hi vọng con số này sẽ giúp bạn hiểu rằng chiều dài khóa không đảm bảo được sự an toàn của mã và đừng bao giờ xài mã có khóa dài <a href="http://www.schneier.com/crypto-gram-9902.html#snakeoil">1 triệu bit</a> <img src='http://www.procul.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p><strong>2. Mã Vigenère</strong></p>
<p><em>Lập mã &#8211; Giải mã</em></p>
<p><em></em><a href="http://en.wikipedia.org/wiki/Vigen%C3%A8re_cipher">Mã Vigenère</a> được phát minh vào khoảng thế kỷ 16. Mục tiêu của mã Vigenère rất rõ ràng: chống thám mã bằng phương pháp phân tích tần suất. Nói cách khác, tần suất của các ký tự trong bản mã phải khác với tần suất của các ký tự trong bản rõ. Để đạt được mục tiêu này, những người phát minh ra mã Vigenère đã có một ý tưởng rất hay: chọn <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> sao cho <img src='http://s.wordpress.com/latex.php?latex=%7Ck%7C%20%3D%20%7Cm%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|k| = |m|' title='|k| = |m|' class='latex' /> (ký hiệu <img src='http://s.wordpress.com/latex.php?latex=%7Cx%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|x|' title='|x|' class='latex' /> chỉ chiều dài của x) và mỗi ký tự của <img src='http://s.wordpress.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m' title='m' class='latex' /> sẽ được mã hóa bằng một ký tự tương ứng của <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' />. Nếu xem mỗi ký tự A-Z tương đương với 0-25 thì lập mã bằng mã Vigenère sẽ là <img src='http://s.wordpress.com/latex.php?latex=c_i%20%3D%20E%28k%2C%20m_i%29%20%3D%20%28m_i%20%2B%20k_i%29%20%5Ctext%7B%20mod%2026%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c_i = E(k, m_i) = (m_i + k_i) \text{ mod 26}' title='c_i = E(k, m_i) = (m_i + k_i) \text{ mod 26}' class='latex' /> và giải mã sẽ là <img src='http://s.wordpress.com/latex.php?latex=m_i%20%3D%20D%28k%2C%20c_i%29%20%3D%20%28c_i%20-%20k_i%29%20%5Ctext%7B%20mod%2026%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_i = D(k, c_i) = (c_i - k_i) \text{ mod 26}' title='m_i = D(k, c_i) = (c_i - k_i) \text{ mod 26}' class='latex' />, trong đó <img src='http://s.wordpress.com/latex.php?latex=m%20%3D%20%7Bm_0%7D%5Ccdots%7Bm_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m = {m_0}\cdots{m_n}' title='m = {m_0}\cdots{m_n}' class='latex' /> là bản rõ, <img src='http://s.wordpress.com/latex.php?latex=c%20%3D%20%7Bc_0%7D%5Ccdots%7Bc_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c = {c_0}\cdots{c_n}' title='c = {c_0}\cdots{c_n}' class='latex' /> là bản mã và <img src='http://s.wordpress.com/latex.php?latex=k%3D%7Bk_0%7D%5Ccdots%7Bk_n%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k={k_0}\cdots{k_n}' title='k={k_0}\cdots{k_n}' class='latex' /> là khóa.</p>
<p>Thực tế thì mã Vigenère có khác một chút so với mô tả ở trên của tôi: thay vì dùng một khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> ngẫu nhiên với <img src='http://s.wordpress.com/latex.php?latex=%7Ck%7C%20%3D%20%7Cm%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|k| = |m|' title='|k| = |m|' class='latex' />, người ta dùng một khóa ngắn và lập đi lập lại khóa này cho đến khi dài bằng với bản rõ. Ví dụ như với <img src='http://s.wordpress.com/latex.php?latex=m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m' title='m' class='latex' /> là &#8220;TANCONGNGAY&#8221; và <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> là &#8220;KHMT&#8221; thì mã hóa bằng mã Vigenère sẽ như sau:</p>
<pre>Bản rõ:	TANCONGNGAY
Khóa:	KHMTKHMTKHM
Bản mã: DHZVYUSGQHK</pre>
<p><strong><em>Bài tập 2</em></strong>: Tìm hiểu cách phá mã Vigenère bằng phương pháp phân tích tần suất.</p>
<pre><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 14px; line-height: 19px; white-space: normal;"><strong>3. Mã máy rôtơ (rotor machines cipher)</strong></span></pre>
<p>Việc phát hiện ra điện năng vào thế kỷ thứ 19 đã dẫn đến sự ra đời của vô vàn máy móc, thiết bị chạy bằng điện và mã máy rôtơ là một trong số đó. Mã máy rôtơ là tên gọi chung của các loại mã mà quá trình lập mã và giải mã được thực hiện bởi các máy rôtơ điện. Mã máy rôtơ nổi tiếng nhất là <a href="http://en.wikipedia.org/wiki/Enigma_machine">máy Enigma</a>, được Đức quốc xã sử dụng trong chiến tranh thế giới thứ II. Tôi sẽ không giải thích cơ chế hoạt động của mã máy rô tơ vì chúng ta sẽ không gặp lại mã này. Thay vào đó, chúng ta sẽ cùng điểm lại một chút thành tựu phá mã Enigma của phe Đồng Minh, mà người đóng góp lớn nhất chính là Alan Turing có-tầm-nhìn-thật-ngắn của chúng ta.</p>
<p>Quay lại năm 1940. Lúc này Pháp đã bị quân Hitler chiếm đóng và Anh là quốc gia duy nhất chống lại Phát Xít ở Tây Âu. Khả năng chiến đấu của Anh phụ thuộc vào nguồn hàng viện trợ từ Mỹ và phe Đồng Minh, được chuyển đến đảo quốc bằng những đoàn tàu hộ tống xuyên Bắc Đại Tây Dương. Những đoàn tàu này thường xuyên phải chơi trò &#8220;trốn tìm&#8221; với đám <a href="http://en.wikipedia.org/wiki/U-boat">tàu ngầm U-boat</a> của Hilter, vốn có nhiệm vụ định vị và đánh chìm tất cả những con tàu viện trợ, hòng làm cho Anh kiệt quệ rồi đầu hàng. Ai thắng ai thua trong trò &#8220;mèo vờn chuột&#8221; này rốt cuộc xoay quanh kết quả của cuộc chiến thông tin: liệu Đức quốc xã có thể định vị tàu hộ tống tốt hơn phe Đồng Minh định vị U-boat hay ngược lại?</p>
<p>Đức thua.</p>
<p>Nhưng lý do chính khiến Đức thất bại chỉ được công bố vào năm 1974: mã của hải quân Đức, chính là một loại mã Enigma, đã bị phá bởi <a href="http://en.wikipedia.org/wiki/Polish_Cipher_Bureau">Cục Mật Mã Ba Lan</a> và phương pháp phá mã đã được chuyển đến Anh quốc chỉ vài tuần trước khi Phát Xít xâm lược Ba Lan vào năm 1939. Trong suốt cuộc chiến, quân Đồng Minh luôn định vị được tàu ngầm của Đức rồi hướng các đoàn tàu viện trợ đi vòng qua. Dẫu vậy chính phủ Anh không tiết lộ làm cách nào họ phá được các phiên bản mới của mã Enigma, vốn được điều chỉnh nhiều lần trong suốt cuộc chiến, cho đến tận năm 1996. Thông tin mà chính phủ Mỹ công bố vào năm đó cho thấy ngay khi chiến tranh vừa xảy ra, Alan Turing đã tham gia vào nỗ lực phá mã của Anh quốc ở <a href="http://en.wikipedia.org/wiki/Bletchley_Park">Bletchley Party</a>, nơi ông trở thành người có đóng góp lớn nhất cho sự phát triển của các kỹ thuật phá mã Engima nhanh và hiệu quả, dựa trên phương pháp của người Ba Lan. Cho đến năm 1945, tất cả các loại mã Enigma của Đức đều có thể bị giải mã trong vòng một hoặc hai ngày. Thành tựu này của Alan Turing và đồng nghiệp được tướng năm sao <a href="Dwight D. Eisenhower">Dwight D. Eisenhower</a>, chỉ huy tối cao của quân Đồng Minh ở Châu Âu, đánh giá là <a href="en.wikipedia.org/wiki/Cryptanalysis_of_the_Enigma">yếu tố quyết định</a> dẫn đến chiến thắng cuối cùng của quân Đồng Minh.</p>
<p><strong>4. Mã máy tính</strong></p>
<p>Có một chi tiết thú vị mà bây giờ tôi mới nhận ra: giới làm mật mã rất nhạy bén với các phát minh quan trọng của nhân loại. Nếu như thế kỷ 19 họ tạo ra mã máy rôtơ để tận dụng điện năng thì từ giữa thế kỷ 20, họ sáng chế ra các loại mã máy tính để tận dụng&#8230; máy tính. Ba loại mã máy tính quan trọng nhất mà chúng ta sẽ tìm hiểu chi tiết trong hai phần tiếp theo là DES, RC4 và AES. Ở đây chúng ta sẽ bàn một chút về lịch sử của DES.</p>
<p>Trong những năm 1970, nhận thấy cần phải có một mã tiêu chuẩn để mã hóa dữ liệu của chính phủ cũng như dùng trong thương mại, <a href="http://nist.gov">Viện Công Nghệ và Tiêu Chuẩn Quốc Gia</a> (NIST) của Mỹ, với sự tư vấn của <a href="http://nsa.gov">Cục An Ninh Quốc Gia</a> (NSA), tổ chức một cuộc thi để tìm ra loại mã phù hợp nhất. Cuộc thi lần thứ nhất thất bại thảm hại khi không có mã nào đạt tiêu chuẩn và NIST phải tổ chức thêm một cuộc thi khác vào mùa thu năm 1974. Lần này IBM nộp mã Lucifer, một loại mã được phát triển bởi Horst Fiestel, Don Coppersmith và đồng nghiệp trong thời gian đó. Lucifer là một mã khối, có chiều dài khóa là 128-bit và chiều dài khối là 128-bit, nhưng NSA chỉ chấp nhận Lucifer sau khi thực hiện hai điều chỉnh:</p>
<ul>
<li>NSA muốn giảm chiều dài khóa từ 128-bit xuống còn 48-bit. IBM không đồng ý, họ nghĩ tối thiểu phải là 64-bit. Cuối cùng hai bên đều nhượng bộ và chấp nhận khóa có chiều dài 56-bit.</li>
</ul>
<ul>
<li>NSA điều chỉnh lại các <strong>hộp thay thế (S-box)</strong>, một thành phần rất quan trọng trong cấu trúc của Lucifer. Lúc bấy giờ nhiều cryptographer tên tuổi, kể cả bộ đôi ma thuật Whitfield Diffie và Martin Hellman đều lên tiếng phản đối sự điều chỉnh này, vì họ ngờ rằng NSA đã cài một &#8220;cửa hậu&#8221; vào Lucifer, làm giảm đi sự an toàn của Lucifer. Sự thật về những hộp S-box bí ẩn này chỉ được phơi bày khi phương pháp thám mã vi phân được công bố vào những năm 90 của thế kỷ trước. Lúc bấy giờ người ta mới nhận ra rằng, sự điều chỉnh của NSA thật ra đã làm gia tăng sức mạnh của Lucifer, khiến cho mã này không bị phá vỡ dễ dàng bởi thám mã vi phân.</li>
</ul>
<p>Với hai điều chỉnh này, Lucifer được NIST chuẩn hóa thành DES. DES và phiên bản cải tiến Triple-DES được sử dụng rất rộng rãi. Hạn chế lớn nhất của DES là khóa quá ngắn và hạn chế lớn nhất của Triple-DES là tốc độ thực thi. Năm 1997, NIST lại tổ chức một cuộc thi để tìm một mã thay thế DES và kết quả là Rijndael, một mã của hai cryptographer người Bỉ chiến thắng và sau đó được chuẩn hóa thành AES. Chúng ta sẽ tìm hiểu chi tiết về AES khi nói về mã khối.</p>
<p><strong>III. Khoa học mật mã</strong></p>
<p>Như chúng ta đã thấy, mật mã có lịch sử kéo dài ngàn hàng năm và đã được sử dụng trong nhiều sự kiện quan trọng của nhân loại. Tuy vậy cho đến tận chiến tranh thế giới II, hầu hết các loại mã mà con người tạo ra đều đã bị phá vỡ hoàn toàn, trừ mã One-Time Pad (OTP), được phát minh năm 1917 bởi Gilbert Vernam, một kỹ sư làm việc ở Bell Labs thuộc AT&amp;T. Dẫu vậy, trong nhiều năm liền, không một ai biết OTP thực sự an toàn đến mức nào, cho đến năm 1949, khi công trình <a href="http://netlab.cs.ucla.edu/wiki/files/shannon1949.pdf">Communication Theory of Secrecy Systems</a> của Claude Shannon được công bố rộng rãi. Trong bài báo đó, Claude Shannon đã đặt nền móng cho lý thuyết mật mã hiện đại khi lần đầu tiên đưa ra định nghĩa toán học của khái niệm an toàn và chứng minh được OTP an toàn theo định nghĩa đó.</p>
<p>Để hiểu công trình của Shannon, trước tiên chúng ta cần định nghĩa khái niệm mã.</p>
<p><strong>1. Định nghĩa mã</strong></p>
<p>Một mã xác định trên <img src='http://s.wordpress.com/latex.php?latex=%28K%2C%20M%2C%20C%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(K, M, C)' title='(K, M, C)' class='latex' /> là một cặp hai thuật toán &#8220;hiệu quả&#8221; <img src='http://s.wordpress.com/latex.php?latex=%28E%2C%20D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(E, D)' title='(E, D)' class='latex' /> trong đó:</p>
<p><img src='http://s.wordpress.com/latex.php?latex=%7BE%7D%3A%20%7BK%7D%20%5Ctimes%20%7BM%7D%20%5Crightarrow%20%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{E}: {K} \times {M} \rightarrow {C}' title='{E}: {K} \times {M} \rightarrow {C}' class='latex' />,</p>
<img src='http://s.wordpress.com/latex.php?latex=%7BD%7D%3A%20%7BK%7D%20%5Ctimes%20%7BC%7D%20%5Crightarrow%20%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D}: {K} \times {C} \rightarrow {M}' title='{D}: {K} \times {C} \rightarrow {M}' class='latex' />
<p>thỏa điều kiện <img src='http://s.wordpress.com/latex.php?latex=%5Cforall%7Bm%7D%20%5Cin%20%7BM%7D%2C%20%5Cforall%7Bk%7D%20%5Cin%20%7BK%7D%3A%20%7BD_k%28E_k%28m%29%29%20%3D%20m%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall{m} \in {M}, \forall{k} \in {K}: {D_k(E_k(m)) = m}' title='\forall{m} \in {M}, \forall{k} \in {K}: {D_k(E_k(m)) = m}' class='latex' /> (gọi là điều kiện nhất quán). Có hai điểm cần lưu ý:</p>
<ul>
<li>Tôi để chữ &#8220;hiệu quả&#8221; trong ngoặc kép vì từ này có nghĩa khác nhau với những người khác nhau. Trong định nghĩa này, một thuật toán có thể được xem là &#8220;hiệu quả&#8221; khi nó có thời gian thực thi và yêu cầu bộ nhớ tương đương với DES.</li>
</ul>
<ul>
<li>Nếu như <img src='http://s.wordpress.com/latex.php?latex=D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='D' title='D' class='latex' /> luôn là thuật toán xác định (deterministic algorithm) thì <img src='http://s.wordpress.com/latex.php?latex=E&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='E' title='E' class='latex' /> thường là một thuật toán ngẫu nhiên (randomized algorithm). Nghĩa là <img src='http://s.wordpress.com/latex.php?latex=E&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='E' title='E' class='latex' /> thường sử dụng yếu tố ngẫu nhiên như một phần của thuật toán để đảm bảo rằng khi mã hóa hai lần một bản rõ giống nhau, chúng ta sẽ thu được hai bản mã hoàn toàn khác nhau.</li>
</ul>
<p><strong>Bài tập 3</strong>: Quân ta đang ở chiến trường. Mỗi ngày bộ chỉ huy sẽ gửi ra một lệnh cho biết hôm đó quân ta sẽ làm gì. Chỉ có hai lệnh: “TAN CONG” hoặc “PHONG THU”. Do quân địch cũng có thể nghe lén sóng radio, nên để cho an toàn, bộ chỉ huy sử dụng một mã <img src='http://s.wordpress.com/latex.php?latex=X&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X' title='X' class='latex' /> để bảo vệ quá trình gửi và nhận lệnh. Mã <img src='http://s.wordpress.com/latex.php?latex=X&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X' title='X' class='latex' /> này có thuật toán lập mã <img src='http://s.wordpress.com/latex.php?latex=E&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='E' title='E' class='latex' /> hoàn toàn xác định, nghĩa là bản rõ giống nhau sẽ tạo ra bản mã giống nhau. Tất cả các lệnh đều được mã hóa bằng cùng một khóa duy nhất. Chứng minh rằng ngay trong ngày thứ hai, quân địch đã có thể đoán trước chiến thuật của quân ta.</p>
<p><strong>2. One-Time Pad (OTP)</strong></p>
<p>Vernam tạo ra mã OTP khi tìm cách cải tiến mã Vigenère, nên ý tưởng của OTP khá giống với ý tưởng của Vigenère mà tôi mô tả ở trên, cụ thể như sau:</p>
<ul>
<li><img src='http://s.wordpress.com/latex.php?latex=%7BM%7D%20%3D%20%7BC%7D%20%3D%20%7BK%7D%20%3D%20%5C%7B0%2C%201%5C%7D%5E%7Bn%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{M} = {C} = {K} = \{0, 1\}^{n}' title='{M} = {C} = {K} = \{0, 1\}^{n}' class='latex' />. OTP xem bản rõ là một chuỗi bit &#8220;0101010101&#8230;&#8221; và mỗi khóa là một chuỗi bit ngẫu nhiên có chiều dài bằng với bản rõ.</li>
</ul>
<ul>
<li>Lập mã: <img src='http://s.wordpress.com/latex.php?latex=%7BC%7D%20%3A%3D%20E%28k%2C%20m%29%20%3D%20%7Bk%7D%20%5Coplus%20%7Bm%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{C} := E(k, m) = {k} \oplus {m}' title='{C} := E(k, m) = {k} \oplus {m}' class='latex' />. Phép XOR thực chất là phép cộng modulo 2 khi thực hiện trên các chuỗi bit.</li>
</ul>
<ul>
<li>Giải mã: <img src='http://s.wordpress.com/latex.php?latex=%7BD%7D%20%3A%3D%20D%28k%2C%20c%29%20%3D%20%7Bk%7D%20%5Coplus%20%7Bc%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{D} := D(k, c) = {k} \oplus {c}' title='{D} := D(k, c) = {k} \oplus {c}' class='latex' />.</li>
</ul>
<p>Ví dụ:</p>
<pre>Bản rõ:	10110010010
Khóa:	01101010101
Bản mã: 11011000111</pre>
<p>Chúng ta có thể dễ dàng kiểm chứng rằng OTP thỏa yêu cầu nhất quán của một mã. Một trong những lợi thế của OTP là tốc độ thực thi rất nhanh, còn bất lợi duy nhất là chiều dài khóa phải bằng chiều dài của bản rõ. Bất lợi này làm cho OTP gần như trở thành vô dụng, bởi vì nếu như Alice và Bob đã có một cách để trao đổi khóa an toàn, thì họ đã có thể dùng ngay cách đó để trao đổi bản rõ luôn. Tuy vậy OTP vẫn được sử dụng trong thực tế và chúng ta sẽ còn gặp lại mã này trong bài sau khi bàn về mã dòng. Như đã nói ở trên, trong nhiều năm liền không ai phá được mã OTP nhưng cũng không ai chứng minh được rằng OTP là an toàn. Nhưng&#8230; an toàn là gì? Chúng ta đề cập nhiều đến khái niệm này mà không có một định nghĩa cụ thể. Đây là một thiếu sót rất lớn, bởi lẽ chỉ khi nào chúng ta định nghĩa được khái niệm an toàn của mã thì khi đó mật mã mới có thể trở thành một ngành khoa học.</p>
<p><strong>3. Định nghĩa mã an toàn:</strong></p>
<p>Muốn định nghĩa được mã an toàn, trước tiên chúng ta phải xác định được khả năng của kẻ tấn công Eve, nghĩa là xác định Eve có thể thực hiện được dạng tấn công nào. Có nhiều dạng tấn công và chúng ta sẽ tìm hiểu chi tiết về chúng trong các bài tới. Từ đây đến cuối bài, chúng ta sẽ giả định là kẻ tấn công chỉ thực hiện được dạng tấn công yếu nhất là tấn công biết bản mã (ciphertext-only attack) bằng cách nghe lén (eavesdropping). Quay lại câu hỏi chính, thế nào là một mã an toàn? Sau đây là một vài ý kiến phổ biến:</p>
<ol>
<li>Mã an toàn là mã mà Eve không thể lấy được khóa.</li>
<li>Mã an toàn là mã mà Eve không thể giải mã toàn bộ bản rõ.</li>
<li>Mã an toàn là mã mà Eve không thể giải mã được bất kỳ bit nào của bản rõ.</li>
</ol>
<p>Định nghĩa thứ nhất là một ngộ nhận thường gặp khi sử dụng mã. Mục tiêu tối thượng của mã là bảo vệ bản rõ, chứ không phải để bảo vệ khóa (bảo vệ khóa cũng chỉ là để bảo vệ bản rõ). Ví dụ như xét <img src='http://s.wordpress.com/latex.php?latex=I&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='I' title='I' class='latex' /> là mã cơ sở (identity cipher) với <img src='http://s.wordpress.com/latex.php?latex=E%28k%2C%20m%29%20%3D%20m&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='E(k, m) = m' title='E(k, m) = m' class='latex' />, nghĩa là <img src='http://s.wordpress.com/latex.php?latex=I&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='I' title='I' class='latex' /> không làm gì cả, nhưng <img src='http://s.wordpress.com/latex.php?latex=I&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='I' title='I' class='latex' /> vẫn an toàn theo định nghĩa thứ nhất vì không có cách nào lấy được khóa.</p>
<p>Định nghĩa thứ hai tốt hơn định nghĩa thứ nhất nhưng rõ ràng vẫn không đạt yêu cầu. Không ai muốn sử dụng một mã <img src='http://s.wordpress.com/latex.php?latex=X&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='X' title='X' class='latex' /> khiến kẻ tấn công giải mã được dầu chỉ một bit thông tin. Vậy định nghĩa thứ ba có đạt yêu cầu hay không? Đây là một định nghĩa tốt, dẫu vậy có nhiều trường hợp kẻ tấn công không thu được bất kỳ bit nào của bản rõ nhưng vẫn tính toán được một thuộc tính nào đó của bản rõ và như thế là đủ để phá hủy tính bí mật của bản rõ, ví dụ như ở trường hợp ở bài tập số 3. Nói cách khác,<strong> mã an toàn là mã mà kẻ tấn công không tính được bất kỳ hàm nào của bản rõ.</strong> Đây là một định nghĩa rất mạnh và chúng ta sẽ còn trở lại định nghĩa này trong thời gian tới. Trong phần tiếp theo chúng ta sẽ tìm hiểu định nghĩa an toàn theo cách của Claude Shannon.</p>
<p><strong>4. An toàn tuyệt đối (perfect secrecy)</strong></p>
<p>Claude Shannon là cha đẻ của lý thuyết thông tin nên định nghĩa mã an toàn của ông cũng mang &#8220;màu sắc&#8221; lý thuyết này. Shannon cho rằng một mã là an toàn tuyệt đối nếu như bản mã không tiết lộ bất kỳ &#8220;thông tin&#8221; nào về bản rõ. Để hiểu ý tưởng của Shannon, chúng ta hãy giả định rằng Eve biết được phân bố xác suất trên <img src='http://s.wordpress.com/latex.php?latex=M&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='M' title='M' class='latex' />, nghĩa là Eve biết rõ xác suất được gửi ra ngoài của các bản rõ khác nhau. Ví dụ như Eve biết Alice chỉ gửi một trong hai bản rõ <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' /> là &#8220;TAN CONG&#8221; và <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' /> là &#8220;PHONG THU&#8221;. Ngoài ra Eve còn biết xác suất mà Alice gửi <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' /> là 0.6 và xác suất gửi <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' /> là 0.4. Rồi Eve thấy một bản mã <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> được gửi từ Alice đến cho Bob. Shannon nói rằng mã mà Alice và Bob sử dụng là an toàn tuyệt đối nếu như việc biết thêm <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> không làm thay đổi khả năng của Eve. Nói cách khác, <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> không tiết lộ bất kỳ thông tin gì về bản rõ được gửi đi, bởi vì có biết <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> hay không thì Eve vẫn chỉ biết xác suất Alice gửi <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' /> là 0.6 và <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' /> là 0.4.</p>
<p>Để tiện việc chứng minh các bổ đề, chúng ta sẽ không dùng định nghĩa nguyên thủy của Shannon mà sẽ sử dụng một định nghĩa tương đương như sau (xem bổ đề 2.3 cuốn KL):</p>
<blockquote><p><em>An toàn tuyệt đối</em></p>
<p>Một mã <img src='http://s.wordpress.com/latex.php?latex=%28E%2C%20D%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(E, D)' title='(E, D)' class='latex' /> trên <img src='http://s.wordpress.com/latex.php?latex=%28K%2C%20M%2C%20C%29&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='(K, M, C)' title='(K, M, C)' class='latex' /> là an toàn tuyệt đối nếu và chỉ nếu <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cforall%7D%20%7Bm_0%7D%2C%20%7Bm_1%7D%20%5Cin%20%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\forall} {m_0}, {m_1} \in {M}' title='{\forall} {m_0}, {m_1} \in {M}' class='latex' /> thỏa <img src='http://s.wordpress.com/latex.php?latex=%7C%7Bm_0%7D%7C%20%3D%20%7C%7Bm_1%7D%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|{m_0}| = |{m_1}|' title='|{m_0}| = |{m_1}|' class='latex' /> và <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cforall%7D%20%7Bc%7D%20%5Cin%20%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\forall} {c} \in {C}' title='{\forall} {c} \in {C}' class='latex' />, ta có Pr[E(k, <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' />) = c] = Pr[E(k, <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' />) = c], trong đó <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> được chọn ngẫu nhiên (uniformly) từ <img src='http://s.wordpress.com/latex.php?latex=K&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='K' title='K' class='latex' /> (ký hiệu là <img src='http://s.wordpress.com/latex.php?latex=%7Bk%7D%20%5Coverset%7BR%7D%7B%5Cleftarrow%7D%20%7BK%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{k} \overset{R}{\leftarrow} {K}' title='{k} \overset{R}{\leftarrow} {K}' class='latex' />).</p></blockquote>
<p>Chúng ta cần điều kiện <img src='http://s.wordpress.com/latex.php?latex=%7C%7Bm_0%7D%7C%20%3D%20%7C%7Bm_1%7D%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|{m_0}| = |{m_1}|' title='|{m_0}| = |{m_1}|' class='latex' /> vì các mã thường tiết lộ chiều dài của bản rõ. Định nghĩa này có thể hiểu như sau: nếu khóa <img src='http://s.wordpress.com/latex.php?latex=k&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='k' title='k' class='latex' /> được chọn ngẫu nhiên thì xác suất để <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' /> mã hóa thành một bản mã <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> nào đó sẽ bằng với xác suất để <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' /> mã hóa thành chính bản mã đó. Nghĩa là nếu chỉ nhìn vào một bản mã thì không có cách nào biết được nguồn gốc của nó. Nói cách khác, việc quan sát được <img src='http://s.wordpress.com/latex.php?latex=c&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='c' title='c' class='latex' /> không giúp cho Eve biết được bản rõ là <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' /> hay <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' /> hay <img src='http://s.wordpress.com/latex.php?latex=m_i&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_i' title='m_i' class='latex' /> với <img src='http://s.wordpress.com/latex.php?latex=i&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='i' title='i' class='latex' /> bất kỳ.</p>
<p>Như vậy, định nghĩa của Shannon chỉ ra rằng một mã an toàn tuyệt đối sẽ không thể bị phá bằng tấn công chỉ biết bản mã, bất chấp kẻ tấn công có sức mạnh như thế nào. Đây cũng là một điểm thú vị cho thấy các mã được sử dụng trong các bộ phim Hollywood thường không phải là mã an toàn tuyệt đối, vì nhân vật chính thường giải mã thành công chỉ bằng cách nhìn chằm chằm vào bản mã (ví dụ như John Nash trong phim A Beautiful Mind).</p>
<p>Câu hỏi hiển nhiển bây giờ là: có mã nào là an toàn tuyệt đối hay không? Rất may câu trả lời là có.</p>
<p><em>4.1 Bổ đề &#8220;tin tốt&#8221;</em></p>
<blockquote><p>OTP là an toàn tuyệt đối.</p></blockquote>
<p><em>Chứng minh:</em></p>
<p>Xét một bản rõ bất kỳ <img src='http://s.wordpress.com/latex.php?latex=%7Bm%7D%20%5Cin%20%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{m} \in {M}' title='{m} \in {M}' class='latex' />. Với mọi bản mã <img src='http://s.wordpress.com/latex.php?latex=%7Bc%7D%20%5Cin%20%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{c} \in {C}' title='{c} \in {C}' class='latex' />, ta có <img src='http://s.wordpress.com/latex.php?latex=Pr%5BOTP%28k%2C%20%7Bm%7D%29%20%3D%20%7Bc%7D%5D%20%3D%20Pr%5B%7Bk%7D%20%5Coplus%20%7Bm%7D%20%3D%20%7Bc%7D%5D%20%3D%20Pr%5B%7Bk%7D%20%3D%20%7Bm%7D%20%5Coplus%20%7Bc%7D%5D%20%3D%20%5Cfrac%7B1%7D%7B%7CK%7C%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='Pr[OTP(k, {m}) = {c}] = Pr[{k} \oplus {m} = {c}] = Pr[{k} = {m} \oplus {c}] = \frac{1}{|K|}' title='Pr[OTP(k, {m}) = {c}] = Pr[{k} \oplus {m} = {c}] = Pr[{k} = {m} \oplus {c}] = \frac{1}{|K|}' class='latex' />. Điều này đúng với <img src='http://s.wordpress.com/latex.php?latex=%5Cforall%7Bm%7D%20%5Cin%20%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall{m} \in {M}' title='\forall{m} \in {M}' class='latex' /> nên <img src='http://s.wordpress.com/latex.php?latex=%5Cforall%20%7Bm_0%7D%2C%20%7Bm_1%7D%20%5Cin%20%7BM%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\forall {m_0}, {m_1} \in {M}' title='\forall {m_0}, {m_1} \in {M}' class='latex' /> và <img src='http://s.wordpress.com/latex.php?latex=%7B%5Cforall%7D%20%7Bc%7D%20%5Cin%20%7BC%7D&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='{\forall} {c} \in {C}' title='{\forall} {c} \in {C}' class='latex' />, ta có Pr[E(k, <img src='http://s.wordpress.com/latex.php?latex=m_0&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_0' title='m_0' class='latex' />) = c] = Pr[E(k, <img src='http://s.wordpress.com/latex.php?latex=m_1&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='m_1' title='m_1' class='latex' />) = c]. Vậy OTP là an toàn tuyệt đối theo định nghĩa.</p>
<p>Như vậy chúng ta đã tìm được một mã an toàn tuyệt đối, loạt bài này coi như đã &#8220;thành công tốt đẹp&#8221; rồi. Chưa đâu! Còn nhớ ở trên chúng ta nói OTP có một vấn đề làm cho nó trở nên vô dụng đó là chiều dài khóa lớn hơn hoặc bằng chiều dài bản rõ. Shannon chứng minh rằng không chỉ OTP mà tất cả mã an toàn tuyệt đối đều có tính chất này. Tôi gọi đây là bổ đề &#8220;tin xấu&#8221; bởi lẽ nó làm tiêu tan hi vọng về một sự an toàn tuyệt đối của tất cả chúng ta <img src='http://www.procul.org/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> .</p>
<p><em>4.2 Bổ đề &#8220;tin xấu&#8221;</em></p>
<blockquote><p>Một mã là an toàn tuyệt đối phải có <img src='http://s.wordpress.com/latex.php?latex=%7CK%7C%20%5Cgeq%20%7CM%7C&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='|K| \geq |M|' title='|K| \geq |M|' class='latex' />. Nói cách khác chiều dài khóa phải lớn hơn hoặc bằng chiều dài bản rõ.</p></blockquote>
<p><strong>Bài tập 5</strong>: chứng minh bổ đề &#8220;tin xấu&#8221;.</p>
<p>Câu hỏi bây giờ là: có cách nào giải quyết khuyết điểm của OTP hay không? Chúng ta sẽ tìm câu trả lời trong phần kế tiếp khi bàn về mã dòng (đọc KL 61-77).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2011/10/27/m%e1%ba%adt-ma-hi%e1%bb%87n-d%e1%ba%a1i-2/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Polytime và polydata</title>
		<link>http://www.procul.org/blog/2011/10/25/polytime-va-polydata/</link>
		<comments>http://www.procul.org/blog/2011/10/25/polytime-va-polydata/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 16:51:54 +0000</pubDate>
		<dc:creator>Nguyễn Xuân Long</dc:creator>
				<category><![CDATA[Lý thuyết tính toán]]></category>
		<category><![CDATA[Lý thuyết thông tin]]></category>
		<category><![CDATA[Thuật Toán]]></category>
		<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Xác suất & thống kê]]></category>
		<category><![CDATA[học máy]]></category>
		<category><![CDATA[lỗi xấp xỉ]]></category>
		<category><![CDATA[lỗi ước lượng]]></category>
		<category><![CDATA[thống kê]]></category>
		<category><![CDATA[xác suất]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=3929</guid>
		<description><![CDATA[Mấy hôm nay đọc một số bài viết về việc học mô hình hỗn hợp (mixture models). Đây là lĩnh vực kinh điển trong thống kê, nhưng vẫn tiếp tục là một lĩnh vực mở đang được quan tâm trong thống kê, học máy cũng như thuật toán. [Tôi cũng vừa upload bài mới trên [...]]]></description>
			<content:encoded><![CDATA[<p>Mấy hôm nay đọc một số bài viết về việc học mô hình hỗn hợp (mixture models). Đây là lĩnh vực kinh điển trong thống kê, nhưng vẫn tiếp tục là một lĩnh vực mở đang được quan tâm trong thống kê, học máy cũng như thuật toán. [Tôi cũng vừa upload <a href= "http://arxiv.org/abs/1109.3250"> bài mới trên arxiv</a> về lĩnh vực này.]</p>
<p>Có một số khác biệt thú vị về tiêu chuẩn học/ước lượng bởi các cộng đồng khác nhau. Dân khmt đặc biệt là về thuật toán thì quan tâm đến làm sao tìm ra được thuật toán chạy có thời gian đa thức, và cần số lượng mẫu <img src='http://s.wordpress.com/latex.php?latex=%20n%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' n ' title=' n ' class='latex' /> cũng là đa thức. Đa thức đối với kích cỡ của đầu vào của bài toán (ở đây sẽ là chiều của mô hình = số lượng tham số), và đa thức đối với <img src='http://s.wordpress.com/latex.php?latex=%201%2F%5Cepsilon%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' 1/\epsilon ' title=' 1/\epsilon ' class='latex' />. Epsilon ở đây là lỗi ước lượng cho phép. Ví dụ như <a href= "http://research.microsoft.com/en-us/um/people/adum/publications/2010-Efficiently_Learning_Mixtures_of_Two_Gaussians.pdf"> bài báo này </a>, <a href="http://projecteuclid.org/DPubS?service=UI&#038;version=1.0&#038;verb=Display&#038;handle=euclid.aoap/1106922321"> bài này </a>.</p>
<p>Tôi không hiểu tại sao <img src='http://s.wordpress.com/latex.php?latex=%201%2F%5Cepsilon%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' 1/\epsilon ' title=' 1/\epsilon ' class='latex' /> và số lượng tham số lại &#8220;nghiễm nhiên&#8221; để ngang hàng nhau trong việc phân tích asymptotic. Nếu giới hạn cho polynomial asymptotic một cách chung chung thì chắc không sao &#8212; có nhiều ví dụ cho ta thấy điều đó. Phân biệt giữa độ phức tạp exponential và phức tạp polynomial là vấn đề truyền thống trong KHMT. Điều này cũng có nghĩa là trong khmt sự phân biệt giữa các tốc độ đa thức còn chưa được chú ý nhiều (<img src='http://s.wordpress.com/latex.php?latex=%20%281%2F%5Cepsilon%29%5E2%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' (1/\epsilon)^2 ' title=' (1/\epsilon)^2 ' class='latex' /> vs. <img src='http://s.wordpress.com/latex.php?latex=%20%281%2F%5Cepsilon%29%5E3&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' (1/\epsilon)^3' title=' (1/\epsilon)^3' class='latex' /> chẳng hạn.) Kỳ thực so với thống kê thì các kết quả về phức tạp mẫu bên computational learning theory còn khá đơn giản, vì họ chưa chú trọng đến độ đa thức. </p>
<p>Trong thống kê hay học máy thống kê thì quan tâm chính là độ hội tụ của ước lượng (convergence of estimation error) đối với số mẫu. <img src='http://s.wordpress.com/latex.php?latex=%20%5Cepsilon%20%3D%20O%28n%5E%7B-1%2F2%7D%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' \epsilon = O(n^{-1/2}) ' title=' \epsilon = O(n^{-1/2}) ' class='latex' /> là một tốc độ kinh điển trong thống kê tham số hữu hạn chiều (khi đó, ta cũng có <img src='http://s.wordpress.com/latex.php?latex=%20n%20%3D%20%281%2F%5Cepsilon%29%5E%7B2%7D%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' n = (1/\epsilon)^{2} ' title=' n = (1/\epsilon)^{2} ' class='latex' />). Trong các vấn đề ước lượng khác thì tốc độ hội tụ có thể rất khác, <img src='http://s.wordpress.com/latex.php?latex=%20n%5E%7B-%5Cdelta%7D%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt=' n^{-\delta} ' title=' n^{-\delta} ' class='latex' /> hoặc rất chậm theo tốc độ logarithm, <img src='http://s.wordpress.com/latex.php?latex=%5Blog%281%2Fn%29%5D%5E%7B%5Cdelta%7D%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='[log(1/n)]^{\delta} ' title='[log(1/n)]^{\delta} ' class='latex' />, chẳng hạn. Lý thuyết minimax, nếu có, cho ta biết giá trị tốt nhất có thể của delta đạt được bởi một thuật toán tốt nhất có thể được. </p>
<p>Tuy nhiên bên thống kê chưa quan tâm đến sự phức tạp về thời gian của thuật toán. Có thể nói các kết quả về sự phức tạp của thuật toán ở bên thống kê hầu như không tồn tại.</p>
<p>Có thể tiếp cận vấn đề này theo hai hướng.</p>
<p>Một là tạm thời tách rời hai sự phức tạp khác nhau này ra. Thực ra cái này đã được làm ở một chừng mực nào đó: Đây chính là sự tách rời giữa lỗi xấp xỉ (approximation error) và lỗi ước lượng thống kê (estimation error). Thông thường lỗi xấp xỉ cũng cho ta biết tốc độ tốt nhất của một giải thuật tính xấp xỉ một đại lượng nào đó (không ngẫu nhiên), tuy điều này không phải luôn rõ ràng. Dân thống kê mới chỉ chú tâm đến cái thứ hai (lỗi ước lượng thống kê). Còn phân tích về lỗi xấp xỉ thì là địa hạt của những người nghiên cứu về lý thuyết xấp xỉ. Chỉ việc bê kết quả bên lý thuyết xấp xỉ sang áp dụng là xong. </p>
<p>Hướng này hay ở chỗ nó tách ra hai khái niệm mà bản thân chúng đều không đơn giản. Nhưng nếu không có kết quả về xấp xỉ cho một lớp mô hình cần quan tâm thì chịu. Điều này không phải là hy hữu, vì sự chú ý và động cơ của các ngành có nhiều khác nhau. Ví dụ, đân làm xấp xỉ có vẻ không quan tâm nhiều đến các biến rời rạc hoặc các dạng hàm số định nghĩa cho tập hợp (như hàm phân bố xác suất).</p>
<p>Hướng thứ hai là không tách rời hai dạng lỗi kể trên. Qua đó ta có thể nghiên cứu về sự tương tác giữa phức tạp về mẫu và phức tạp về thuật toán. Đặc biệt, sự tương tác giữa các mức phức tạp đa thức của cả mẫu và thời gian thuật toán. Tôi nghĩ đây là một trong những vấn đề thú vị trong lý thuyết học máy hiện nay. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2011/10/25/polytime-va-polydata/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ceres</title>
		<link>http://www.procul.org/blog/2011/08/11/ceres/</link>
		<comments>http://www.procul.org/blog/2011/08/11/ceres/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 20:58:00 +0000</pubDate>
		<dc:creator>NQH</dc:creator>
				<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Vượt định kiến]]></category>
		<category><![CDATA[Ceres]]></category>
		<category><![CDATA[Gauss]]></category>
		<category><![CDATA[Lý thuyết và thực tế]]></category>
		<category><![CDATA[Piazzi]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=3532</guid>
		<description><![CDATA[Ngày 1 tháng 1 năm 1801, nhà thiên văn người Ý Giuseppe Piazzi khám phá ra một thiên thể mới, chuyển động và hơi giống một ngôi sao. Lúc đầu ông nghĩ nó là sao chổi. Ông quan sát nó 24 lần cho đến ngày 21 tháng 2 cùng năm. Sau đó ông bị bệnh [...]]]></description>
			<content:encoded><![CDATA[<p>Ngày 1 tháng 1 năm 1801, nhà thiên văn người Ý Giuseppe Piazzi khám phá ra một thiên thể mới, chuyển động và hơi giống một ngôi sao. Lúc đầu ông nghĩ nó là sao chổi. Ông quan sát nó 24 lần cho đến ngày 21 tháng 2 cùng năm. Sau đó ông bị bệnh và phải ngừng. Ông cũng đã báo khám phá này cho Johann Bode, người khởi xướng phong trào &#8220;tìm hành tinh thứ 8&#8243; trong gần 30 năm. Lý do Bode tin là có hành tinh thứ 8 là vì ông tin vào <a href="http://en.wikipedia.org/wiki/Titius%E2%80%93Bode_law">luật Titius-Bode</a>. Luật này tính khoảng cách từ các hành tinh đến mặt trời. Khi luật ra đời năm 1772 thì nhân loại mới biết có 6 hành tinh. Sau đó Friedrich Herschel tìm ra hành tinh thứ 7 &#8212; Uranus &#8212; khớp vào luật. </p>
<p>Bode thông báo cho các nhà thiên văn khác nhưng do đã &#8220;mất liên lạc&#8221; với hành tinh mới nhiều tháng liên, và quỹ đạo của nó lại đang gần mặt trời, người ta không còn biết chĩa kính đi đâu mà tìm. Gauss vĩ đại, khi đó mới 24 tuổi, đã dùng một phương pháp riêng để tính quỹ đạo của thiên thể nọ. Cuối cùng đến cuối năm người ta tìm lại được thiên thể theo dự đoán của Gauss. Phương pháp của Gauss là phương pháp bình phương tối thiểu (least squares) mà ông khám phá năm ông 18 tuổi. Phải đến 8 năm sau ông mới công bố phương pháp này. Gã Gauss ích kỷ <img src='http://www.procul.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Thiên thể nọ được xác định là hành tinh thứ 8, <a href="http://en.wikipedia.org/wiki/Ceres_(dwarf_planet)">hành tinh lùn Ceres</a>. Khoảng cách khớp với luật Titius-Bode.</p>
<p>Trước khi Ceres được khám phá, triết gia <a href="http://en.wikipedia.org/wiki/Georg_Wilhelm_Friedrich_Hegel">Georg Hegel</a> tấn công các nhà thiên văn và dùng &#8220;lý luận triết học&#8221; để cho rằng chỉ có 7 hành tinh. Hegel đã &#8220;duy ý chí&#8221; và sai bét nhè.</p>
<p>Sau đó, luật Titius-Bode cũng biến thành một chú thích trong lịch sử thiên văn học, vì nó đã không tính đúng khoảng cách của Neptune.</p>
<p>Lý thuyết, bất kể &#8220;sang trọng&#8221; cỡ nào và nói bởi ai, đều sẽ phải đối mặt với thực tế. Bám víu vào những lý thuyết không những thiếu thực chứng mà còn mâu thuẫn nội tại là một sự ngu xuẩn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2011/08/11/ceres/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mật mã khóa công khai: hành trình 35 năm</title>
		<link>http://www.procul.org/blog/2011/04/12/m%e1%ba%adt-ma-khoa-cong-khai-s%e1%bb%b1-phat-tri%e1%bb%83n-t%c6%b0%c6%a1ng-h%e1%bb%97-v%e1%bb%9bi-cac-nganh-khoa-h%e1%bb%8dc-khac/</link>
		<comments>http://www.procul.org/blog/2011/04/12/m%e1%ba%adt-ma-khoa-cong-khai-s%e1%bb%b1-phat-tri%e1%bb%83n-t%c6%b0%c6%a1ng-h%e1%bb%97-v%e1%bb%9bi-cac-nganh-khoa-h%e1%bb%8dc-khac/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 22:40:32 +0000</pubDate>
		<dc:creator>Phan Dương Hiệu</dc:creator>
				<category><![CDATA[Ảnh hưởng của CNTT]]></category>
		<category><![CDATA[Bảo mật và mật mã học]]></category>
		<category><![CDATA[Lý thuyết tính toán]]></category>
		<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Hàm cửa lật]]></category>
		<category><![CDATA[Khóa công khai]]></category>
		<category><![CDATA[Mật mã]]></category>
		<category><![CDATA[Mật mã học]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[xác suất]]></category>
		<category><![CDATA[Độ phức tạp tính toán]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=3250</guid>
		<description><![CDATA[(Một phiên bản ngắn hơn của bài  này sẽ đăng trong số kỷ niệm 20 năm báo Tia Sáng. Các bạn có thể xem tại đây) Mã hóa khóa công khai ra đời cách đây 35 năm, đánh dấu bởi công trình khoa học của Whitfield Diffie và Martin Hellman. Đó thực sự là một [...]]]></description>
			<content:encoded><![CDATA[<p><em>(Một phiên bản ngắn hơn của bài  này sẽ đăng trong số kỷ niệm 20 năm báo Tia Sáng. Các bạn có thể xem <a href="http://dl.dropbox.com/u/15421912/Tiasang_Matma.pdf">tại đây</a>)</em></p>
<p>Mã hóa khóa công khai ra đời cách đây 35 năm, đánh dấu bởi công trình khoa học của Whitfield Diffie và Martin Hellman. Đó thực sự là một bước ngoặt đưa mật mã từ một nghệ thuật thành một ngành khoa học. Trong quá trình 35 năm phát triển, những phát kiến trong mật mã hầu hết rất phản trực quan, và do đó càng bất ngờ thú vị, đã có ảnh hưởng lớn đến nhiều ngành khoa học khác: áp dụng những kết quả trừu tượng trong lý thuyết số vào thực tế; thúc đẩy sự phát triển của các thuật toán xác suất; đưa ra những khái niệm quan trọng trong lý thuyết tính toán mà điển hình là khái niệm chứng minh tương tác; tạo cầu nối giữa lý thuyết số và khoa học máy tính thông qua lý thuyết số tính toán… Trong bài này, chúng tôi sẽ điểm sơ qua sự phát triển của mật mã trong mối liên hệ với các ngành khoa học khác, và thảo luận về những hướng phát triển của mật mã trong những năm tới.</p>
<p><span id="more-3250"></span></p>
<p><strong>Thay đổi trong cách tiếp cận tính an toàn.</strong></p>
<p>Từ ngàn xưa con người ta đã có nhu cầu trao đổi bí mật: từ những mệnh lệnh trong các cuộc chiến tranh cho đến những hẹn hò thường nhật. Ta tìm thấy vết tích của mật mã từ thời Ai cập cổ đại, cho tới hệ mã nổi tiếng mà Ceasar dùng trong thời La mã, cho tới bức thư tình mà <a href="http://5ko.free.fr/fr/sand.html">George Sand gửi cho Alfred de Musset</a>… Ở thời kỳ sơ khai, mật mã có thể coi như nghệ thuật che giấu thông tin mà độ an toàn đạt được là nhờ có sự thống nhất một qui ước bí mật chung. Như vậy, thuật toán lập mã và giải mã là bí mật. Nhưng khi tầm ứng dụng càng rộng thì yêu cầu bí mật cơ chế mã lại càng không hợp lý vì nhiều người sử dụng nên tất yếu sẽ rất dễ bị lộ. Cuối thế kỷ 19, Kerckhoffs đề nghị một nguyên tắc xem xét độ an toàn chỉ dựa trên khóa bí mật còn thuật toán lập mã/giải mã không cần phải giữ kín. Qui tắc này đến nay vẫn còn là rất cơ bản. Xuyên suốt thế kỷ vừa qua, người ta đã xây dựng được rất nhiều các cơ chế mã tốt, với độ an toàn dựa trên sự bảo mật của khóa chung giữa người gửi và người nhận. Tuy vậy, sự cần thiết chia sẻ khóa bí mật là một điểm bất thuận lợi, nó là rào cản lớn cho việc trao đổi thông tin trên diện rộng: ví dụ để thiết lập kênh bí mật đôi mội giữa một nghìn người thì cần tới cả nửa triệu khóa bí mật.</p>
<p>Mật mã khóa công khai đã vượt qua rào cản đó và đưa đến một bước ngoặt trong sự phát triển ngành mật mã. Ý tưởng chính của nó khá giản đơn: lập mã và giải mã là hai quá trình có bản chất khác nhau, nếu như giải mã nhất thiết phải dùng khóa bí mật (nếu không ai cũng giải được) thì lập mã lại không nhất thiết như vậy, và thậm chí sẽ càng tốt hơn khi ai cũng có thể lập mã. Do vậy, nếu ta có thể sinh ra một khóa bí mật cho giải mã và một khóa công khai tương ứng cho lập mã thì quá trình lập mã không còn cần bất kỳ bí mật nào. Tuy có vẻ tự nhiên nhưng việc mã hóa sử dụng khóa công khai làm thay đổi hoàn toàn yêu cầu về sự an toàn: khóa bí mật không cần chia sẻ nữa, mỗi người có khóa bí mật của riêng mình và chỉ cần giữ kín nó, không cần thiết phải chia sẻ nó với bất kỳ ai khác. Sự đảm bảo an toàn không còn cần dựa trên sự tin tưởng lẫn nhau giữa người gửi và người nhận.</p>
<p>Mật mã khóa công khai còn làm thay đổi hoàn toàn phạm vi ứng dụng, cho phép mật mã được sử dụng rộng rãi trong thực tế: việc thiết lập kênh bí mật giữa một nghìn hay một triệu người thì cũng chỉ yêu cầu mỗi người cần giữ một khóa bí mật và công bố một khóa công khai, không cần phải thống nhất khóa chung nào. Áp dụng vào thực tế, một cửa hàng trực tuyến có thể thu hút hàng triệu khách hàng mà chỉ cần công khai duy nhất một khóa để ai mua hàng cũng chỉ cần dùng khóa công khai đó để gửi thông tin bảo mật về thẻ thanh toán.<strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Mật mã với lý thuyết độ phức tạp tính toán</strong></p>
<p>Bên cạnh những ưu điểm mang tính bước ngoặt, mã hóa khóa công khai ẩn chứa một điều đáng lo ngại về tính an toàn: khi công bố khóa công khai tương ứng với khóa bí mật sẽ có thể dẫn tới việc khóa bí mật không còn … hoàn toàn bí mật! Điều lo ngại đó hoàn toàn có cơ sở bởi một kẻ tấn công có thể thử hết các trường hợp có thể để tìm ra khóa bí mật tương ứng với khóa công khai. Do đó, về nguyên tắc, kẻ tấn công có thể phá được sơ đồ mã hóa, tìm ra khóa bí mật mà không cần quan sát bất kể bản mã nào! Chính vì thế mà độ an toàn của mật mã khóa công khai sẽ không thể chỉ dựa trên sự giữ bí mật khóa nữa. Muốn đảm bảo sự an toàn, ta phải chứng tỏ làm sao, dù về nguyên tắc, kẻ tấn công có thể tìm ra khóa bí mật, nhưng thời gian để đạt được mục đích đó phải là rất lớn, cỡ hàng triệu năm trên một máy tính nhanh nhất chẳng hạn. Hay nói cách khác, độ phức tạp mà kẻ tấn công có thể tìm lại khóa bí mật là lớn phi thực tế.</p>
<p>Một cách rất tự nhiên, nghiên cứu độ an toàn của mật mã khóa công khai đã nằm gọn trong lý thuyết độ phức tạp tính toán (<em>Computational Complexity</em>). Trong lý thuyết độ phức tạp, ta không chỉ quan tâm xem một bài toán có thể giải được hay không, mà điều quan trọng nhất là nghiên cứu xem để giải bài toán đó thì độ khó khăn lớn đến đâu. Độ phức tạp được phân cấp theo các lớp, trong đó hai lớp quan trọng nhất là lớp P và lớp NP. Lớp P bao gồm những bài toán giải được trong thời gian đa thức, và nó được coi là lớp các bài toán có thể giải được trong thực tế. Chẳng hạn các bài toán sắp xếp dữ liệu theo một thứ tự định sẵn, tìm đường đi ngắn nhất giữa hai thành phố, biến đổi Fourrier rời rạc (đều có thể thực hiện được với cỡ <em>nlog(n) </em>bước cho <em>n</em> đối tượng, tức là bị chặn bên bởi một đa thức <img src='http://s.wordpress.com/latex.php?latex=p%28n%29%3Dn%5E2&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='p(n)=n^2' title='p(n)=n^2' class='latex' />) là những bài toán trong P. Lớp NP là lớp các bài toán có thể kiểm tra được lời giải đúng hay sai trong thời gian đa thức. Chẳng hạn trò chơi Sudoku thuộc lớp NP vì để giải nó có thể rất khó (thậm chí nó được chứng minh là một trong những bài toán thuộc <a href="http://en.wikipedia.org/wiki/Mathematics_of_Sudoku">lớp khó giải nhất trong NP</a>) nhưng để kiểm tra một phương án có là lời giải không thì có lẽ chỉ cần đến một cậu bé biết phân biệt các con số với nhau và duyệt qua tất cả các ô. Rõ ràng chỉ khi lời giải có thể kiểm tra được trong thực tế thì bài toán mới được quan tâm, do vậy mà lớp NP có vai trò quan trọng. Câu hỏi trọng tâm của lý thuyết độ phức tạp là liệu các bài toán trong NP có thể có lời giải thực tế (tức trong thời gian đa thức) hay không, tức liệu P có bằng NP? Nếu P=NP thì điều đó đem lại một sự bất ngờ cho nhận thức của chúng ta: việc tìm ra lời giải cũng chỉ khó như việc kiểm tra lời giải. Điều khó tin đó làm người ta thường giả thuyết rằng P khác NP. Sự quan trọng của câu hỏi “P chọi NP?” là lý do để nó được viện Clay xếp vào một trong bảy bài toán thiên niên kỷ.</p>
<p>Quay trở lại với lý thuyết mật mã và xem xét nó dưới góc nhìn của lý thuyết độ phức tạp. Giờ đây ta có thể định nghĩa hệ mã bị phá nếu như có thuật toán phá mã (tìm lại khóa bí mật từ khóa công khai, hay đơn giản hơn, tìm lại bản rõ từ bản mã) trong thời gian đa thức. Vậy độ phức tạp của thuật toán phá mã liệu có thể đánh giá trong trường hợp chung? Câu trả lời là có và với mọi sơ đồ mã hóa khóa công khai đều có thuật toán phá mã thuộc lớp NP: do điều kiện cần của hệ mã là khi giải mã ta phải tìm lại đúng bản rõ, bài toán kiểm tra xem 1 khóa bí mật có tương ứng với 1 khóa công khai hay không là dễ dàng (chỉ cần chọn 1 bản rõ, mã nó dùng khóa công khai rồi giải mã nó với khóa bí mật xem có thu lại được đúng bản rõ hay không). Bài toán “P chọi NP” trở nên có tầm quan trọng sống còn tới lý thuyết mật mã: nếu hai lớp này tương đương thì toàn bộ lý thuyết nghiên cứu mật mã dưới góc nhìn độ phức tạp sẽ hoàn toàn sụp đổ vì việc phá mã, vốn thuộc NP, khi đó sẽ có thể thực hiện được trong thời gian đa thức. Và cũng do vậy, nghiên cứu độ phức tạp trong mật mã cần phải dựa trên giả thuyết “P khác NP”.</p>
<p><strong>Hàm cửa lật một chiều và sự phát triển của lý thuyết số tính toán </strong></p>
<p>Khi tính an toàn chia tay với nghệ thuật che giấu bí mật để chuyển sang dựa trên lý thuyết độ phức tạp thì cũng là lúc mật mã bất ngờ tìm đến và làm những nghiên cứu trừu tượng trong lý thuyết số bỗng có những áp dụng đầy ý nghĩa trong thực tế. Nó cũng đưa lý thuyết số tính toán (<em>computational number theory</em>) trở thành một nhánh nghiên cứu quan trọng, nằm giữa vùng giao thoa của toán học và tin học.</p>
<p>Tựu chung yêu cầu để xây dựng mật mã khóa công khai là: hàm lập mã thì dễ (với khóa công khai), nhưng hàm giải mã thì khó khi không có khóa bí mật. Đó là các hàm cửa lật một chiều (<em>trapdoor oneway functions</em>): tính xuôi thì dễ, tính ngược lại phải khó, nhưng với cửa lật là khóa bí mật thì tính ngược, tức giải mã, cũng phải dễ. Yêu cầu trông có vẻ đơn giản đó nhưng thực tế là sau rất nhiều năm tìm kiếm vẫn chỉ có rất ít hàm có thể thỏa mãn. Các bài toán trong lớp NP-đầy đủ (là lớp các bài khó nhất trong NP, trò chơi Sudoku là một trong số đó; ta chỉ cần giải được 1 bài trong lớp NP-đầy đủ trong thời gian đa thức là đủ để chứng tỏ P=NP) rõ ràng là những ứng cử viên tiềm năng để xây dựng hàm cửa lật một chiều. Nhưng thực tế không hề dễ như ban đầu người ta hình dung, vì hai lý do: thứ nhất là bởi các bài toán NP chỉ quan tâm đến độ khó trong trường hợp xấu nhất, trong khi mã hóa cần mã an toàn cho mọi bản rõ nên cần ít nhất độ khó trong trường hợp trung bình; thứ hai là bởi tính chất cửa lật, bài toán cần khó nhưng với một số thông tin thì nó lại phải trở nên dễ giải, và chính yêu cầu về tính chất cửa lật đó đã khiến nhiều hệ mã dựa trên bài toán NP-đầy đủ (như hệ mã Chor-Rivest dựa trên bài toán xếp ba lô) bị phá vỡ.</p>
<p>Những hàm cửa lật thông dụng trong mật mã đã đến từ những bài toán rất cổ điển của lý thuyết số! Đó là bài toán phân tích số (cho một số <em>N = pq</em> là tích của hai số nguyên tố, phân tích nó ra thừa số nguyên tố <em>p,q</em>) và bài toán logarit rời rạc trong trường hữu hạn (cho một phần tử sinh <em>g</em> của một nhóm con của một trường hữu hạn, và một phần tử nhóm <em>u=g<sup>a</sup></em>, bài toán là phải tìm lại <em>a</em>). Cả hai bài toán này, tuy về mặt toán học là giải được, nhưng cho đến nay không thể giải được trong thời gian đa thức. Bài toán phân tích số là nền tảng cho độ an toàn của hệ mã nổi tiếng RSA, và bài toán logarit rời rạc là cơ sở cho hệ mã Elgamal. Chính vì tính phổ dụng của hai hệ mã này mà một cách tất nhiên, bài toán phân tích số và bài toán logarit rời rạc trở thành đối tượng nghiên cứu rất được quan tâm. Việc nghiên cứu tính phức tạp của việc tìm ra lời giải cho các bài toán lý thuyết số đã đưa tới sự phát triển sâu rộng của lý thuyết số tính toán.</p>
<p>Sau nhiều công trình nghiên cứu quan trọng thì các bài toán bài toán phân tích số và bài toán logarit rời rạc tuy chưa giải được trong thời gian đa thức nhưng cũng không cần đến thời gian hàm mũ để giải nó, mà đã có các thuật toán dưới mũ (<em>sub-exponention</em>) như thuật toán dùng tính chỉ số (<em>index calculus</em>) và thuật toán dùng <em>đường cong</em> <em>elliptic</em> của Lenstra, được giới thiệu năm 1985. Dù cho những công trình này không làm các hệ mã sụp đổ, nhưng nó buộc phép xây dựng các hệ mã phải giảm hiệu quả vì phải dùng các khóa dài hơn để đảm bảo an toàn. Công trình của Lenstra cũng đánh dấu lần đầu tiên lý thuyết các đường cong elliptic được sử dụng vào mật mã, ở đây có vai trò như phá mã. Điều thú vị là ngay sau đó thì lý thuyết các đường cong elliptic đã được sử dụng cho việc lập mã. Koblitz và Miller cùng độc lập đề nghị thay thế việc sử dụng nhóm trong trường hữu hạn bằng nhóm các điểm trên đường cong elliptic vì ở đó, các thuật toán dưới mũ đã biết để giải quyết bài toán logarit rời rạc có vẻ như không thể áp dụng được. Từ đó việc sử dụng đường cong elliptic dẫn tới dẫn đến những hệ mã hiệu quả hơn (do không cần phải chọn khóa quá dài để chống lại các thuật toán dưới mũ).</p>
<p>Các kết quả lý thuyết sâu sắc trong lý thuyết số tiếp tục được áp dụng vào mật mã. Việc sử dụng đường cong elliptic dẫn tới yêu cầu cần phải lựa chọn những đường cong phù hợp. Tấn công MOV (đưa ra bởi Menezes, Okamoto, và Vanstone) chỉ ra không phải loại đường cong elliptic nào cũng có thể được sử dụng, bằng cách đưa việc giải quyết bài toán logarit rời rạc trên đường cong elliptic trở lại bài toán logarit rời rạc trên một trường hữu hạn mở rộng với độ mở rộng tùy thuộc vào loại đường cong. Do đó, các đường cong siêu lạ (<em>supersingular</em>) rất được ưa dùng ở giai đoạn đầu lại trở nên rất yếu vì ở đó độ mở rộng chỉ cao nhất là 6. Nét đặc biệt trong tấn công MOV là việc sử dụng phép ghép cặp (<em>pairings</em>) trên các đường cong elliptic, với những kết quả khá mới mẻ trong lý thuyết số. Không chỉ phục vụ cho việc phá mã, việc sử dụng phép ghép cặp sau đó đã trở nên cực kỳ hữu hiệu trong việc xây dựng mã. Khởi đầu là Joux đã dùng phép ghép cặp để xây dựng sơ đồ  trao đổi khóa 3 bên, nhưng sự kiện nổi bật là việc dùng phép ghép cặp để giải quyết vấn đề mở về xây dựng mã hóa dựa trên danh tính-<em>Identity based Encryption</em>. Một cách giản đơn, mã hóa dựa trên danh tính cho phép ta sử dụng một khóa công khai duy nhất cho tất cả mọi người (từ đó giải quyết được vấn đề quản lý khóa của mã hóa khóa công khai, tuy vậy nhược điểm của nó là lại cần có thêm người quản trị đáng tin cậy để sinh ra khóa công khai chung và khóa bí mật cho từng người) và hàm lập mã dựa trên khóa công khai chung và danh tính của người nhận như địa chỉ email.  Sau khi Sakai-Ohgishi-Kasahara và Boneh-Franklin đưa ra lời giải cho bài toán mã hóa dựa trên danh tính vào những năm 2000, phép ghép cặp đã được sử dụng hầu khắp trong mọi lĩnh vực của mật mã (mã hóa, chứa ký điện tử, sơ đồ định danh&#8230;) để nâng cao tính an toàn và hiệu quả và đôi khi là giải quyết những bài toán mở đã bế tắc trong thời gian dài (chẳng hạn như trong việc xây dựng chữ ký nhóm). Đến cách đây vài năm người ta đã tổ chức hẳn một hội nghị (Pairing-based Cryptograhy) dành cho các nghiên cứu liên quan đến các thuật toán xây dựng và phân tích các phép ghép cặp trên các đường cong elliptic hay hyperelliptic và các phương pháp mã và tấn công mã dựa trên phép ghép cặp.</p>
<p>Nhìn lại các phát triển của lý thuyết số tính toán, ta nhận thấy các phương pháp mới thường được đề nghị đầu tiên cho phá mã, nhưng rồi sau đó lại được sử dụng rất hiệu quả cho việc lập mã. Điều đó cũng phần nào chứng tỏ vai trò tương hỗ giữa cộng đồng những người thám mã và lập mã: trong rất nhiều trường hợp, chính những người say mê tìm cách phá tính an toàn của các hệ thống mật mã, sẽ là những người đem tới những phát kiến mới mẻ để xây dựng những hệ mã an toàn hơn.</p>
<p><strong> </strong></p>
<p><strong>Đảm bảo tính an toàn và sự phát triển của lý thuyết các thuật toán xác suất</strong></p>
<p>Để có thể cài đặt được hệ mã RSA, một phần tất yếu là sự cần thiết phải tìm được những số nguyên tố lớn để có thể đảm bảo yêu cầu an toàn tối thiểu (khóa công khai chứa tích của hai số nguyên tố, và nếu một trong hai số nguyên tố là nhỏ thì bài toán phân tích số sẽ là dễ). Từ đó mà yêu cầu tìm các số nguyên tố lớn trở nên rất cần thiết.</p>
<p>Cho tới nay, các phương pháp tìm số nguyên tố lớn đều theo nguyên tắc hai bước: bước 1 là chọn một số tự nhiên đủ lớn và bước 2 là kiểm tra xem số được chọn có là số nguyên tố hay không. Do các số nguyên tố có cấu trúc rất bí hiểm và ta chưa hiểu được quy luật tường minh của chúng nên bước 1 chưa có cách nào khác là chọn một số ngẫu nhiên. Bước thứ 2 là bước kiểm tra tính nguyên tố. Chính những thuật toán kiểm tra tính nguyên tố, mà điển hình là những thuật toán được sử dụng rộng rãi của của Rabin và Solovay, Strassen,  đã khởi đầu cho việc dùng xác suất để thiết kế các thuật toán (chú ý rằng trước đó khá lâu phương pháp xác suất đã được Erd ̋os sử dụng trong việc chỉ ra <em>sự tồn tại</em> của các đối tượng tổ hợp). Các thuật toán xác suất cho ta lời giải không hoàn toàn chính xác, nhưng độ không chính xác có thể làm nhỏ tới bao nhiêu cũng được, với điều kiện đầu vào của thuật toán có một nguồn ngẫu nhiên đủ lớn.</p>
<p>Việc phát triển các thuật toán xác suất dẫn tới sự cần thiết tìm nguồn ngẫu nhiên đủ lớn. Điều đó dẫn tới việc nghiên cứu những bài toán sau đó đã trở nên rất có ý nghĩa trong khoa học máy tính như bài toán trích nguồn ngẫu nhiên (<em>randomness extractor</em>, nhằm từ một nguồn không hoàn toàn ngẫu nhiên ta phải trích ra từ đó một lượng tin có độ ngẫu nhiên cao)  và bài toán sinh dãy giả ngẫu nhiên (<em>pseudo-random generator</em> &#8211; từ một nguồn ngẫu nhiên nhỏ làm sao sinh ra một nguồn gần như ngẫu nhiên lớn hơn rất nhiều, nó không hoàn toàn ngẫu nhiên nhưng không có thuật toán nào trong thời gian đa thức có thể chỉ ra tính không ngẫu nhiên của nó)</p>
<p>Sau nhiều phát triển quan trọng của lý thuyết thuật toán xác suất, người ta quay lại hoài nghi “liệu độ ngẫu nhiên có thực sự mang tới sự hiệu quả?”. Bài toán “BPP chọi P” (ở đó BPP là lớp các bài toán giải được theo nghĩa xác suất) là một bài toán mở trọng tâm của lý thuyết độ phức tạp. Cũng như bài toán “P vs. NP”, nếu câu trả lời là hai lớp tương đương thì nó sẽ dẫn tới một khẳng định bất ngờ: mọi thuật toán xác suât đều có thể có thuật toán tất định tương đương. Bên cạnh câu hỏi tổng quan này, các nhà nghiên cứu quay lại với bài toán tìm số nguyên tố nhằm đưa ra một lời giải tất định cho nó. Công trình lý thuyết đột phá của Agrawal–Kayal–Saxena đưa ra năm 2000, đã chỉ ra một thuật toán tất định để kiểm thử tính nguyên tố trong thời gian đa thức, giải quyết trọng vẹn bước thứ 2 một cách tất định. Sự hấp dẫn của một lời giải hoàn chỉnh cho bài toán tất định tìm số nguyên tố chính là nguồn cảm hứng chung rất lớn của các nhà toán-tin học và nó được chọn là bài toán khởi đầu cho một kế hoạch đầy tham vọng nhằm thay đổi tư duy trong hợp tác nghiên cứu khoa học: hợp tác mở thông qua đóng góp, trao đổi mở trên mạng. Với sự nhiệt tình của Timothy Gower, Terence Tao  (cả hai đều đạt giải thưởng Fields), đã có rất nhiều nhà khoa học tham gia vào dự án mở Polymath để cùng trao đổi nhằm tìm kiếm lời giải cho bài toán này. Tuy chưa thể đưa ra lời giải toàn phần, họ đã có một số kết quả dẫn tới một <a href="http://arxiv.org/abs/1009.3956">bài báo khoa học</a> dưới tên tác giả Polymath. Rất có thể đây sẽ là một hình thức cộng tác khoa học xuyên biên giới có sức mạnh tổng hợp lớn trong tương lai.</p>
<p><strong>Chứng minh tương tác không để lộ tri thức </strong></p>
<p><strong> </strong></p>
<p>Trong mật mã, mọi trao đổi thông tin đều giả thiết có sự hiện diện của kẻ xấu. Mục đích của ta là vừa có thể thuyết phục người đối thoại về tính đúng đắn của một mệnh đề nào đó, lại vừa không cần tin tưởng anh ta, và không muốn sau khi trao đổi anh ta cũng có khả năng chứng minh mệnh đề đó với người khác. Chẳng hạn, một thành viên của một câu lạc bộ bí mật muốn chứng minh danh tính của mình cho người gác cổng, nhưng lại không muốn nói mật khẩu của mình vì sợ chính người gác cổng sẽ bán nó cho kẻ khác. Trong ngữ cảnh đó, một trong những khái niệm thú vị nhất của khoa học máy tính đã được đề nghị: chứng minh tương tác (<em>interactive proofs</em>). Khái niệm này được đưa ra bởi Goldwasser, Micali và Rackof vào đầu những năm 80 và nhờ đó họ đã được trao giải Godel đầu tiên trong lịch sử (giải thưởng hàng năm cho công trình lý thuyết xuất sắc nhất trong khoa học máy tính).</p>
<p>Dưới góc độ toán học, ta thường quan niệm chứng minh là một dãy các lập luận lô gíc có thể trình bày tường minh trên giấy. Liệu chăng yếu tố đối thoại, tương tác giữa người chứng minh và người kiểm tra có mang đến điều mới mẻ? Để trả lời câu hỏi đó, trước hết khái niệm về một chứng minh sẽ phải thay đổi. Goldreich thường trích lời thầy giáo Simon của mình khi giảng về các chứng minh tương tác:</p>
<p style="text-align: center;"><em>“chứng minh là bất kể cách gì có thể thuyết phục được tôi” </em><em>(“ A proof is whatever convinces me”).</em></p>
<p><em> </em></p>
<p>Theo nghĩa đó, một chứng minh tương tác là một chuỗi các chất vấn, cho tới khi người hỏi bị thuyết phục hoàn toàn bởi người chứng minh. Một câu chuyện vui kể rằng, rằng, một cậu bé cho rằng mình có câu thần chú để mở vách ngăn giữa hai nhánh của một hang động. Tất nhiên cậu ta không muốn lộ câu thần chú của mình, nhưng lại muốn chứng minh khả năng đó.  Trò chơi đuổi bắt có thể là một chứng minh tương tác hiệu quả: chú bé chạy vào 1 trong hai ngã, một người đuổi chon một hướng nhằm dồn chú vào ngách ngăn nhưng cuối cùng không lần nào bắt được chú. Nếu đuổi một lần ta có thể cho là chú đã chọn ngã khác, nhưng lặp đi lặp lại trò chơi tới 100 lần mà không lần nào đuổi được thì có lẽ ta bị thuyết phục là chú đúng là có câu thần chú (ví dụ lấy từ <a href="http://en.wikipedia.org/wiki/Zero-knowledge_proof">Wikipedia</a>). Các chứng minh tương tác hầu hết dựa trên một tinh thần như thế.</p>
<p><a href="http://www.procul.org/blog/wp-content/uploads/2011/04/ZK2.png"><img class="alignright size-medium wp-image-3263" title="ZK" src="http://www.procul.org/blog/wp-content/uploads/2011/04/ZK2-300x209.png" alt="" width="300" height="209" /></a></p>
<p>Có những bài toán mà người ta chưa biết cách nào chứng minh trong thời gian đa thức, nhưng lại chứng minh được thông qua tương tác, chẳng hạn bài toán chứng minh hai đồ thị không đồng cấu với nhau.  Hơn thế nữa, trong nhiều bài toán, người chứng minh có thể không cần để lộ ra bất kể tri thức nào anh ta có về cái chứng minh đó (<em>zero-knowledge proofs</em>).</p>
<p><em> </em></p>
<p>Kết quả rất đẹp của Goldreich, Micali và Wigderson cho ta kết quả bất ngờ: dựa trên giả thuyết tồn tại các hàm một chiều, tất cả những gì ta có thể chứng minh trong thực tế (theo nghĩa trong thời gian đa thức), đều có thể chứng minh mà không để lộ tri thức! Bài toán chứng minh danh tính phía trên là một trong số đó.</p>
<p>Các chứng minh không để lộ tri thức đặc biệt quan trọng trong mật mã, là thành phần cơ bản trong việc xây dựng các sơ đồ mã hóa, chữ ký điện tử. Chứng minh không để lộ tri thức cũng là thành phần không thể thiếu trong một sơ đồ bầu cử điện tử, cho phép mỗi cử tri kiểm tra được lá phiếu của mình đã được tính đến mà việc kiểm phiếu lại không cần phải công bố nội dung từng lá phiếu, đảm bảo quyền lựa chọn bí mật của cử tri.</p>
<p>Ở một khía cạnh khác, chứng minh tương tác cũng là phần hồn của nhánh khoa học «chứng minh tính bảo mật » (<em>provable security</em>), nơi ta cố gắng chứng minh tính an toàn của hệ thống trong một thế giới tương tác rất phức tạp (với sự hiện diện của kẻ tấn công luôn muốn lừa hệ thống thông qua quan sát, nghe trộm, đóng giả người tốt để tương tác với hệ thống) dựa trên những giả thuyết tĩnh, giản đơn của toán học.</p>
<p><strong>Một số h</strong><strong>ướng đi tương lai của mật mã </strong></p>
<p><strong> </strong></p>
<p><em>Bảo mật trong điện toán đám mây (cloud computing)</em></p>
<p>Điện toán đám mây cho phép ta lưu trữ những khối lượng thông tin khổng lồ trên mạng và thực hiện các thao tác trên nó một cách dễ dàng. Nó có thể giúp ta giải quyết những bài toán lớn mà trước đây khó có thể giải quyết trên một mạng lưới các máy tính mang tính chất cục bộ. Tuy nhiên, điều đó mang tới một thách thức vô cùng lớn về tính bảo mật. Có hai điều có vẻ như mâu thuẫn nhau: lưu trữ dữ liệu lớn trên các hệ thống xa lạ rõ ràng rất dễ bị đánh cắp thông tin, nhưng nếu ta mã hóa toàn bộ dữ liệu thì sẽ khó có thể tận dụng sức mạnh của tính toán đám mây để thao tác dữ liệu đó.</p>
<p>Nhưng gần đây, vấn đề tưởng khó có thể giải quyết này đã có chút tia hy vọng, với công trình của Gentry năm 2009 về mật mã đẳng cấu theo cả phép nhân và phép cộng (<em>fully homomorphic encryption</em>). Hệ mã này cho phép, từ hai bản mã của hai bản rõ <em>m</em> và <em>m’</em>, ta có thể tính được bản mã nhân của <em> mm’</em> và bản mã cộng của <em>m+m’</em>. Vấn đề với bề ngoài đơn giản nhưng chứa đựng không ít nghịch lý trong đó: hệ mã vừa phải đảm bảo an toàn cho dữ liệu (không thể biết thông tin về bản rõ <em>m, m’</em>), mà lại vẫn thao tác được trên dữ liệu đó. Và cũng với bề ngoài giản đơn như vậy, nó lại mang đến một ý nghĩa rất bao quát: do mọi tính toán đều có thể qui về các phép toán cơ bản là cộng và nhân, một hệ mã như thế sẽ cho ta khả năng làm mọi tính toán trên dự liệu được mã hóa! Điều đó có nghĩa ta có thể để tất cả dữ liệu bảo mật trên những máy mạng không an toàn mà vẫn có thể tận dụng được sức tính toán lớn của điện toán đám mây để thao tác trên dữ liệu được mã hóa. Tuy nhiên, hiện tại, hệ mã Gentry và một số hệ mã cải tiến còn có hiệu quả vô cùng thấp, hầu như chỉ mang tính lý thuyết. Một hệ mã hiệu quả sẽ là lời giải tuyệt vời cho bài toán an toàn thông tin trong điện toán đám mây.</p>
<p><em>Mở rộng mô hình mã hóa: cho đối tượng nhóm và cho việc giải mã bộ phận</em></p>
<p><strong> </strong></p>
<p>Mã hóa thường cho ta thiết lập kênh trao đổi thông tin giữa một người với một người. Tuy nhiên, những ứng dụng thực tế đòi hỏi khả năng ta mã một lần sao cho nhiều người cùng có thể giải mã. Một ví dụ điển hình là việc phát chương trình truyền hình mã hóa sao cho hàng triệu thuê bao đều giải được mã. Nhưng một ứng dụng như vậy sẽ đặt ra hai vấn đề: mã một lần cho nhiều người (<em>broadcast encryption</em>) và ngăn chặn một người hay một nhóm người thuê bao cấu kết nhau để làm một bộ giải mã giả (<em>tracing traitor</em>). Hiện tại các thuật toán được sử dụng trong truyền hình thuê bao hầu hết đang còn ở thời nguyên thủy: độ an toàn buộc phải dựa trên tính bí mật của thuật toán. Nhưng cũng bởi vậy nên khi một nhóm phá mã có thể phá được nguyên lý bằng kỹ nghệ đảo ngược (<em>reverse engineering</em>) thì thị trường chợ đen có thể bán tràn lan các bộ giải mã giả mà không có cách gì truy lại được ai là thủ phạm.</p>
<p>Hai năm trở lại đây, một hướng nghiên cứu khá mới là về một kiểu mã tổng quát có thể bao quát hết các khái niệm về mã hóa công khai, mã hóa dựa trên danh tính, hay mã hóa một lần cho nhiều người. Đó là loại mã hàm (<em>functional encryption</em>) ở đó nó cho phép người lập mã định nghĩa một cơ chế giải mã<em> </em>để đối với mỗi người nhận, tùy vào thuộc tính được gán có mà có thể truy cập sâu vào bản rõ tới đâu. Cho tới nay, đối với những cơ chế mã với các cấu trúc tương đối phức tạp, các phương án lập mã còn rất hạn chế về hiệu quả. Những kết quả trong tương lai chắc chắn sẽ mang tới những ứng dụng rất hiệu quả, đặc biệt là cho việc truy cập các cơ sở dữ liệu mã hóa lớn.</p>
<p><em>An toàn trước các tấn công vật lý</em></p>
<p><em> </em></p>
<p>Mật mã thường phân tích tính an toàn dựa trên giả thuyết là khóa bí mật được bảo vệ tốt. Tuy nhiên, những tấn công vật lý đôi khi lại có thể tìm ra những thông tin về khóa (chẳng hạn bằng cách đo năng lượng tiêu thụ của máy giải mã trên các bản mã khác nhau). Do vậy, một trong các mục đích của mật mã là tìm cách hình thức hóa các khái niệm tấn công vật lý và tiếp sau đó là thiết kế các sơ đồ mã hóa mà tính an toàn có thể đảm bảo chỉ duy nhất dựa trên các giả thiết toán học. Hướng nghiên cứu an toàn trong mô hình khóa bị lộ (<em>key leakage resilient cryptography</em>) đang khá được quan tâm trong cộng đồng mật mã.</p>
<p><strong> </strong></p>
<p><em>An toàn trước sự tấn công của máy tính lượng tử </em></p>
<p>Cuối cùng, chúng ta không thể bỏ qua sự hiện diện tiềm tàng của máy tính lượng tử, dù rằng cho tới nay các máy tính lượng tử mới chỉ phân tích được số 21 ra thừa số nguyên tố. Nhưng về mặt lý thuyết, nó có tiềm năng to lớn không thể không kể tới. Công trình của Shor năm 94 đã chỉ ra rằng bài toán phân tích số có thể giải được trong thời gian đa thức bởi máy tính lượng tử.  Bài toán logarít rời rạc trong trường hữu hạn hay trên đường cong elliptic cũng có thể giải được trong thời gian đa thức bởi máy tính lượng tử. Điều đó có nghĩa là các hệ mã thông dụng hiện nay sẽ bị phá vỡ một khi máy tính lượng tử được thiết kế chạy được trên dữ liệu lớn. Để phòng ngừa trước điều đó (dù khả năng sớm xảy ra được đánh giá là rất nhỏ), nhiều nghiên cứu nhằm xây dựng các hệ mã có thể an toàn trước máy tính lượng tử được đề nghị. Hai hướng chính đang được quan tâm là các hệ mã dựa trên mã sửa sai (<em>error correcting codes</em>) và dựa trên lý thuyết lưới Euclid (<em>lattice based cryptography</em>), nơi sự hiện diện của máy tính lượng tử có vẻ như không đem lại hiệu quả đặc biệt.<br />
<!-- Start of StatCounter Code --><br />
<script type="text/javascript">// <![CDATA[
 var sc_project=5132594; var sc_invisible=1; var sc_partition=58; var sc_click_stat=1; var sc_security="b1a02981";
// ]]&gt;</script></p>
<p><script src="http://www.statcounter.com/counter/counter.js" type="text/javascript"></script><noscript></p>
<div class="statcounter"><a title="wordpress statistics" href="http://www.statcounter.com/wordpress.com/" target="_blank"><img class="statcounter" src="http://c.statcounter.com/5132594/0/b1a02981/1/" alt="wordpress statistics" ></a></div>
<p></noscript><br />
<!-- End of StatCounter Code --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2011/04/12/m%e1%ba%adt-ma-khoa-cong-khai-s%e1%bb%b1-phat-tri%e1%bb%83n-t%c6%b0%c6%a1ng-h%e1%bb%97-v%e1%bb%9bi-cac-nganh-khoa-h%e1%bb%8dc-khac/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Lexicon — xác suất thống kê và học máy</title>
		<link>http://www.procul.org/blog/2010/11/09/lexicon-xac-su%e1%ba%a5t-th%e1%bb%91ng-ke-va-h%e1%bb%8dc-may/</link>
		<comments>http://www.procul.org/blog/2010/11/09/lexicon-xac-su%e1%ba%a5t-th%e1%bb%91ng-ke-va-h%e1%bb%8dc-may/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 05:45:35 +0000</pubDate>
		<dc:creator>Nguyễn Xuân Long</dc:creator>
				<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Trí tuệ nhân tạo]]></category>
		<category><![CDATA[Xác suất & thống kê]]></category>
		<category><![CDATA[học máy]]></category>
		<category><![CDATA[thống kê]]></category>
		<category><![CDATA[Thuật ngữ]]></category>
		<category><![CDATA[xác suất]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=2532</guid>
		<description><![CDATA[Last Updated: 18/11/2010 Trang này lấy cảm hứng từ trang lexicon của chùa THT bắt đầu từ gợi ý của địa chủ blog này. Chủ đề trung tâm là suy diễn thống kê. Với nhãn quan này tôi bắt đầu từ lý thuyết xác suất, sau đó chuyển sang lexicon bên thống kê học và [...]]]></description>
			<content:encoded><![CDATA[<p>Last Updated: 18/11/2010</p>
<p>Trang này lấy cảm hứng từ trang <a href="http://thichhoctoan.wordpress.com/lexicon/">lexicon</a> của chùa THT bắt đầu từ gợi ý của địa chủ blog này.</p>
<p>Chủ đề trung tâm là suy diễn thống kê. Với nhãn quan này tôi bắt đầu từ lý thuyết xác suất, sau đó chuyển sang lexicon bên thống kê học và đảo qua học máy (machine learning) bên khmt rồi đến các giải thuật quy hoạch tối ưu.</p>
<p><span id="more-2532"></span></p>
<p>Số lượng lexicon tôi biết còn rất cám cảnh, mục tiêu chính (ích kỷ) ở đây sẽ là cơ hội (cho tôi) để học thêm. Có một số từ chuyên ngành sẽ khá là mới mẻ, đây sẽ là cơ hội để ta tự do sáng tác. Sẽ cố gắng thống nhất với các lexicon đã được xem là chuẩn, nhưng vẫn có thể xem lại một số chưa được sát nghĩa. Rất mong được sự góp ý của mọi người.</p>
<p>Khởi động với lý thuyết xác suất (có vẻ dễ dàng hơn cả, càng đi tiếp hình như càng cam go). Tôi sẽ tiếp tục cập nhật khi có thêm đóng góp.</p>
<p><strong>Mục lục.</strong></p>
<blockquote style="text-align: left;"><p><strong>1. Lý thuyết xác suất</strong></p>
<p>1.1 Căn bản<br />
1.2 Độc lập và hội tụ<br />
1.3 Quá trình ngẫu nhiên</p>
<p><strong>2. Mô hình thống kê</strong></p>
<p>2.1 Căn bản<br />
2.2 Tham số<br />
2.3 Đầy đủ và thông tin<br />
2.4 Nhãn quan Bayes và Tần suất<br />
2.5 Phân lớp các mô hình và cách tham số hóa<br />
2.6 Dao cạo của Occam</p>
<p><strong>3. Suy diễn thống kê</strong></p>
<p>3.1 Tổng quan<br />
3.2 Lý thuyết quyết định<br />
3.3 Các cách ước lượng/ học thống kê<br />
3.4 Các suy diễn thống kê cụ thể<br />
3.5 Thống kê vô hạn, lý thuyết học và lý thuyết thông tin<br />
3.6 Lựa chọn mô hình<br />
3.7 Thiết kế thí nghiệm</p>
<p><strong>4. Giải thuật thống kê/ học giả </strong></p>
<p>4.1 Tổng quan</p>
<p>&#8230;.</p></blockquote>
<p><strong>1. Lý thuyết xác suất:</strong></p>
<p><strong>1.1 Căn bản</strong>: Lý thuyết xác suất cho chúng ta một ngôn ngữ để mô tả sự <strong><em>ngẫu nhiên</em></strong> (randomness). Đối tượng cơ bản nhất của LTXS là các <em>biến ngẫu nhiên</em> (random variables).  Để định nghĩa một biến ngẫu nhiên thì cần một <em><strong>hàm phân bố</strong> </em>(distribution function), qua đó có thể định nghĩa được các khái niệm như <em>trung bình</em> (mean) và <em><strong>phương sai</strong></em> (variance). Standard deviation gọi là <strong><em>độ lệch chuẩn</em></strong>. Mean và variance là các <em><strong>phiếm hàm</strong></em> (functionals), được áp dụng cho một hàm phân bố hoặc một biến ngẫu nhiên. Hàm phân bố nếu liên tực tuyệt đối với một độ đo chuẩn (?) như Lebesgue thì có thể được biểu diễn bởi <strong><em>hàm mật độ</em></strong> (density), theo định lý Radon-Nikodym.</p>
<p>Cơ sở toán học của lý thuyết xác suất là <em>thuyết độ đo</em> (measure theory), nhưng việc chính của các xác suất gia (?) (probablist) là xây dựng phát triển cáng nhiều loại đo đo xác suất càng tốt. Nói chuyện với một chuyên gia độ đo không thể không định nghĩa một <em>đại số sigma</em> (sigma-algebra). Nói chuyện với một chuyên gia xác suất thì rất nhiều khi khái niệm này ẩn rất kỹ. Công cụ chính của các XSG chính là khái niệm <em><strong>độc lập</strong> </em>(independence), và mạnh mẽ hơn là <em><strong>độc lập có điều kiện</strong></em> (conditional independence). Cho nên dân toán thường trêu LTXS chẳng qua là thuyết độ đo + độc lập. Vậy sự khác biệt giữa một độ đo xác suất và những biến ngẫu nhiên là gì? Theo David Aldous thì đó là sự khác biệt giữa recipe để làm bánh và những cái bánh. Hiểu được sự khác biệt này thì mới làm được bước nhảy từ lý thuyết độ đo khô khan sang lý thuyết xác suất tươi mát hơn.</p>
<p><strong>1.2 Độc lập và hội tụ:</strong> Khái niệm độc lập cho ta một loạt các định luật cơ bản của LTXS. Tất cả đều xoay quanh <em>hiện tượng <strong>tập trung của độ đo</strong></em> (concentration of measure). Bắt đầu là <strong><em>luật các số lớn</em></strong> (có phiên bản<em> luật mạnh</em> (strong law) và<em> luật yếu</em>). Luật <strong><em>giới hạn trung tâm</em> </strong>(Central limit theorem) nhắc rằng sample mean (<strong><em>mẫu trung bình</em></strong>)  có quy luật <strong><em>bình thường</em></strong> (normal/Gaussian) khi số mẫu tiến đến vô hạn. Các định luật này đều có sử dụng các khái niệm <em>hội tụ</em> (convergence) trong giải tích. Hội tụ <strong><em>gần chắc</em></strong> (almost sure), <em><strong>hội tụ về phân bố hoặc về luật</strong> </em>(convergence in distribution/ in law).  Ngoài luật số lớn còn có <strong><em>luật các số nhỏ</em> </strong>(hay luật các hiện tượng hiếm có &#8212; law of rare events), cho ta biết khi nào thì mẫu trung bình có quy luật Poisson. Không phải ngẫu nhiên, Gaussian và Poisson là hai hàm phân bố căn bản nhất &#8212; là những viên gạch cho toàn bộ lâu đài XS.</p>
<p>Khái niệm độc lập và độc lập có điều kiện là những chất keo để gắn kết các biến xác suất với nhau, qua đó cho ta các hàm xác suất cho các vật thể toán học có cấu trúc phức tạp hơn. Một dạng độc lập có điều kiện hay dùng là tính chất Markov. Ngoài chất keo độc lập, còn có một chất keo nữa rất hữu dụng, đó là <strong><em>tính hoán chuyển được</em></strong> (exchangeability).  Nếu tính độc lập là nền tảng cho các phương pháp <strong><em>suy diễn tần số</em></strong> (frequentist) , thì tính hoán chuyển được lại là cơ sở nền tảng cho các phương pháp<strong> suy diễn Bayesian</strong>. Tính hoán chuyển được đang được mở rộng ra thành <em><strong>hoán chuyển từng phần</strong></em> (partial exchangeability), một khái niệm quan trọng để phái triển các độ đo cho các <em><strong>vật thể tổ hợp </strong></em>(combinatorial object) rời rạc và phức tạp.</p>
<p><strong>1.3 Quá trình ngẫu nhiên:</strong> LTXS phát triển rất nhiều hàm phân bố không chỉ cho các biến xác suất scalar (?) đơn giản, mà người ta còn sáng tạo ra các hàm phân bố cho các cấu trúc toán học phức tạp, nhiều chiều hơn. Chúng ta bắt đầu nói chuyện đến hàm phân bố cho những <em>tập các hàm số đo được</em> (measurable functions), và hàm phân bố cho các <em><strong>độ đo ngẫu nhiên</strong></em> (random measures). Hàm phân bố cho các vật thể vô hạn chiều này gọi chung là các <strong><em>quá trình ngẫu nhiên</em></strong> (stochastic processes). Cách thức khẳng định sự tồn tại là qua định lý của bác Kolmogorov, cho phép ta hiểu về các hàm phân bố cho không gian vô hạn chiều từ các điều kiện <strong><em>nhất quán</em></strong> (consistency) của độ đo cho các <em>cylinder sets</em>. Đây là cách để chúng ta xây dựng được các hàm phân bố cho <em>quá trình Gauss</em> (Gaussian processes), <em>quá trình Dirichlet</em> (Dirichlet process), v.v.</p>
<p>Một cách hữu hiệu để xây dựng một quá trình stochastic là quay lại với khái niệm độc lập, và đẩy khái niệm này đến giới hạn. Công cụ ở đây là nhìn vào <em>phép biến đổi Fourier</em> (Fourier transform) của các hàm phân bố.  Theo ngôn ngữ XS thì khái niệm này gọi là <strong><em>hàm tính cách</em></strong> (characteristic function). Để đẩy khái niệm độc lập tới giới hạn thì ta cần khái niệm các hàm phân bố <strong><em>khả phân vô hạn</em></strong> (infinitely divisible). Khái niệm tiếp theo là các hàm <strong><em>phân bố ổn định</em> </strong>(stable distribution). Gauss và Poisson chính là hai hàm phân bố ổn định &#8212; không phải là &#8220;ngẫu nhiên&#8221; nếu chúng ta quay về các luật số lớn và số nhỏ nhắc ở trên. Max-stable là một họ<strong><em> phân bố cực đại ổn định</em></strong>.</p>
<p>Các quá trình ngẫu nhiên có tính chất <strong><em>gia tăng độc lập</em></strong> (independent increment) gọi là quá trình Lévy. Tổng quát hơn một chút là các <strong><em>độ đo hoàn toàn độc lập</em></strong> (completely random measures). Định lý biểu diễn Lévy-Khintchine cho chúng ta biết rõ hàm tính cách của các quá trính stochastic này là gì, thông qua <em>độ đo Lévy </em>(Levy measure). Chọn độ đo Lévy thích hợp (beta, gamma, v.v.) thì ta sẽ có một quá trính stochastic tương ứng. Định lý này cho ta thấy tại sao Gauss và Poisson lại trở thành các viên gạch chỉ của các lâu đài xác suất đồ sộ:  Theo định lý Lévy-Itó, dựa trên biểu diễn L-K thì tất cả các quá trính Lévy đều có thể được decompose <em>(<span style="text-decoration: line-through;">phân rã</span>) (phân tách) </em>thành tổng của ba quá trình stochastic độc lập, một là quá trình Wiener (một dạng quá trình Gauss), với quá trình <strong><em>phức hợp</em></strong> (compound) Poisson, và một là quá trình martingale.</p>
<p>Rất khó tưởng tượng các tập con đo được của sigma đại số đối với các quá trính ngẫu nhiên. Thay vì hình dung sigma đại số (recipe làm bánh) thì ta có thể mô tả những cái bánh. Nếu quá trình được liệt kê bởi tham số thởi gian, thì một cái bánh ở đây có thể hiểu là một <em>lối mẫu</em> (sample path). Với một số quá trình ngẫu nhiên thì có thể mô tả cách tạo mẫu từ một quá trình ngẫu nhiên bằng phương pháp <em>nhặt mẫu từ giỏ Pólya</em> (Pólya&#8217;s urn).  Rất nhiều quá trình ngẫu nhiên có thể được mô tả bằng <strong><em>biểu diễn bẻ gậy</em></strong> (stick-breaking representation). Theo biểu diễn này thì cần các <em>nguyên tử</em> (atom) và các <em>mẩu gậy</em> (stick-breaking weight). Cách thức bẻ gậy và nhặt nguyên tử đều dựa theo cơ sở của độc lập có điều kiện, một chất keo kỳ diệu cho phép ta mô tả các cấu trúc phức tạp bằng các nguyên liệu giản đơn hơn.</p>
<p>Được quan tâm hàng đầu là biểu hiện của giá trị <em>kỳ vọng</em> (expectation) của một vật thể xác suất. Liên quan là khái niệm kỳ vọng điều kiện (conditional expectation), bản thân nó cũng là một biến ngẫu nhiên. Một công cụ quan trọng là khái niệm martingale. Martingale có thể được mô tả dưới dạng một quá trình NN, tạm gọi là <em><strong>quá trình đánh bạc</strong></em>(?). Cần khái niệm filtration (<em><strong>hệ thống lọc</strong></em>). Ngoải ra ta còn có submartingale, supermartingale và semimartingale (?). Nhờ các công cụ này mà ta có thể tìm hiểu các khái niệm xác suất hữu ích như<strong> <em>thời điểm dừng</em></strong> (stopping time), <strong><em>thời điểm chạm</em></strong> (hitting time), <strong><em>thời gian/thởi điểm vượt biên</em></strong> (boundary crossing time).</p>
<p>Một họ quá trình NN rất thông dụng là <em>quá trình Markov</em> (Markov process). Định nghĩa trên cơ sở <strong><em>hạch xác suất chuyển dịch</em></strong> (transition probability kernel), và khái niệm hệ thống lọc. Cần khái niệm subordinator (?), một dạng quá trình Lévy quan trọng. Local time được dịch là <strong><em>thời gian địa phương</em></strong>. Quá trình Markov cho thời gian rời rạc còn gọi là <em><strong>chuỗi Markov</strong> (hoặc<strong> xích Markov</strong>).</em> Liên qua đến chuỗi Markov là lý thuyết ergodic (?). Irreducibility dịch là <strong><em>bất khả quy</em></strong>.  Một vấn đề được quan tâm là <em>thời gian <strong>hòa tan</strong></em> (mixing time) của chuỗi Markov.  Điều kiện cần cho chuỗi Markov được hòa tan về một trạng thái <em>phân bố bất dịch (phân bố dừng)</em> (stationary distribution)  là ergodicity, thỏa mãn phương trính<strong> c<em>ân bằng chi tiết</em></strong> (detailed balance). Chuỗi Markov định nghĩa cho không gian rởi rạc (<em><strong>dàn</strong></em> lattice chẳng hạn) thì sẽ trở thành quá trình<strong> <em>đi bộ ngẫu nhiên</em></strong> (random walk).  Gọi lattice là dàn thiên lý rất hay, thế phải phân biệt với dàn nho thế nào đây. Khái niệm coupling trong chuỗi Markov dịch là sự <strong>cặp đôi</strong>. Coupling from the past? Quá đơn giản, <strong>cặp nhau từ quá khứ</strong>! Time-homogeneous Markov process gọi là <strong><em>quá trình Markov đồng biến</em></strong>.</p>
<p>Nói đến quá trình ta thường nghĩ đến thời gian &#8212; cụ thể là các quá trình NN thường được hiểu là tập hợp các hàm phân bố nhất quán (consistent) được liệt kê bởi một tham số chỉ thời gian. Không nhất thiết phải như vậy. Mở rộng khái niệm tham số thời gian ra một không gian bất kỳ (ví dụ không gian Euclidean, dàn, hoặc không gian phi-Euclidean), thì ta có quá trình NN tổng quát hơn. Markov random fields sẽ được gọi là <strong><em>trường ngẫu nhiên Markov</em></strong>. Gaussian random field là <strong><em>trường ngẫu nhiên Gauss</em></strong>. Poisson point process gọi là <strong><em>quá trình điểm Poisson</em></strong> (lại quá trình, nhưng kỳ thực phải gọi là trường Poisson mời phải!) . Spatial process là quá trình không gian (?). Spatiotemporal process gọi là quá trình không-thời gian. Khái niệm phase transition rất hay trong trường ngẫu nhiên Markov của một dàn vô hạn, ta sẽ dịch là <em><strong>hiện tượng chuyển pha</strong></em>.</p>
<p>Một dạng quá trình NN khá hay ho gọi là empirical process (<strong><em>quá trình thực nghiệm</em></strong>). Thường được nghiên cứu để tìm hiểu về tính hiệu quả của các phương pháp suy diễn thống kê, thay vì dùng để mô tả một quá trình ngẫu nhiên trong tự nhiên. Sẽ nói  ở mục sau.</p>
<p>Các khái niệm quan trọng khác: percolation, excursion, optional stopping</p>
<p><!--more--></p>
<p><strong>2. Mô hình thống kê</strong></p>
<p><strong>2.1 Căn bản. </strong><em><strong>Mô hình thống kê</strong></em> (statistical model) cũng là mô hình xác suất, sử dụng từ các nguyên liệu được phát triến cho các hàm phân bố vá các quá trình NN trong LTXS. Cái khác ở đây là trong mô hình thống kê có một số biến ngẫu nhiên được gán nhãn là <em><strong>dữ liệu</strong></em> (data), những biến số ngẫu nhiên mà chúng ta có thể quan sát, hoặc thu thập được giá trị bằng thực nghiệm và các thiết bị công nghệ. Cho nên trọng tâm của việc xây dựng mô hình thống kê là làm sao <em><strong>ước lượng</strong></em> (estimate) /<em><strong>học</strong></em> (learn) được mô hình này từ dữ liệu, làm sao có thể đánh giá được tính <em><strong>hiệu quả</strong></em> (efficiency) hoặc tính <em><strong>phổ quát</strong></em> (generalization) của mô hình, làm sao có thể <em><strong>chọn ra được mô hình</strong></em> hữu ích (model selection/model choice).</p>
<p><strong>2.2 Tham số.</strong> Để kiểm soát được độ phức tạp của mô hình thì công cụ chính ở đây là phải <strong>tham số</strong> hóa (parameterization) mô hình. Các <strong><em>tham số</em></strong> (parameter) là phần còn lại của mô hình xác suất mà chúng ta phải ước lượng, học. Đến đây có một vấn đề nho nhỏ, các tham số là một giá trị không biết nhưng không ngẫu nhiên, hay bản thân chúng là ngẫu nhiên. Có hai cách tiếp cận vấn đề này, <strong><em>trường phái tần suất</em></strong> giả dụ cách đẩu, còn <em><strong>trường phái Bayes</strong></em> thì giả dụ cách sau. Nếu các tham số là có số chiều hữu hạn, ta có một <strong><em>mô hình tham số</em></strong> (parametric model), nếu số chiều là vô hạn thì ta có <em><strong>mô hình phi tham số</strong></em> (nonparametric model). Như vậy, gọi là phi tham số không có nghĩa là không có tham số. Nếu tham số là ngẫu nhiên mà lại vô hạn chiều thì người ta gọi mô hình là <strong><em>mô hình phi tham số Bayes</em></strong> (Bayesian nonparametric model). Điều này không có nghĩa làm việc với các mô hình dạng này là theo trường phái Bayes, mặc dù trên thực tế thì phần lớn những người phát triến mô hình phức tạp nói chung và mô hình phi tham số Bayes nói riêng lại có nhãn quan Bayes. Song không nhất thiết phải vậy.</p>
<p><strong>2.3 Đầy đủ và thông tin</strong>. Một công cụ quan trọng trong việc tham số hóa là khái niệm<em><strong> thống kê đầy đủ</strong></em> (sufficient statistics). Để hiểu khái niệm này phải hiểu khái niệm <em><strong>thống kê</strong></em> là gì. Một thống kê là một hàm số được áp dụng vào các dữ liệu (cộng trừ nhân chia kiểu gì cũng được). Liên hệ với khmt thì thống kê chính là <em><strong>đầu ra</strong></em> (output) của một <em><strong>giải thuật</strong></em> sử dụng dữ liệu như là <em><strong>đầu vào</strong></em>.  Còn thống kê đầy đủ đối với một mô hình là những thống kê chứa đựng mọi thông tin có thể có được từ dữ liệu về các tham số của mô hình. Nghĩa là nếu vứt hết dữ liệu đi, chỉ cần giữa lại các thống kê đầy đủ, vẫn không bị mất thông tin gì về mô hình. Đây có lẽ là một trong những khái niệm đẹp đẽ nhất của toàn bộ thống kê học. Sau khi quyết định được thống kê đầy đủ rồi người ta có thể biết được rằng dữ liệu phải là mẫu của một hàm phân bố có một cách tham số hóa nhất định, qua một định lý <em><strong>biểu diễn phân tích Fisher-Neyman</strong></em> (Fisher-Neyman factorization theorem). Nhắc thêm khái niệm thống kê đầy đủ là một khái niệm có tính lý thuyết <strong>thông tin</strong> (information-theoretic), có thể phát biểu bằng tính <em>độc lập có điều kiện</em> và các khái niệm entropy.</p>
<p>Một loạt các mô hình đẹp có thể được động viên từ khái niệm cần và đủ kiểu này. Mô hình <em><strong>họ mũ</strong></em> (exponential family) là mô hình tạo ra dữ liệu ngẫu nhiên nhất có thể được, nếu các thống kê đầy đủ đã được cho. <em><strong>Mô hình xác suất đồ thị </strong></em>(probabilistic graphical model) là mô hình duy nhất thỏa mãn các ràng buộc về độc lập có điều kiện cho các biến ngẫu nhiên, theo định lý Hammersley-Clifford. Nếu các biến ngẫu nhiên được giả dụ là hoán chuyển được, thì chúng bắt buộc phải được mô tả bởi một <em><strong>mô hình trộn/ mô hình hỗn hợp </strong></em>(mixture model), theo định lý nổi tiếng của de Finetti. Nếu các biến ngẫu nhiên có hàm phân bố không thay đổi kể cả khi bị <em><strong>biến đổi trực chuẩn</strong></em> (orthornomal transformation) thì chúng bắt buộc phải được mô tả bởi một elliptically contoured distribution (<em><strong>phân bố có đường cong ê líp</strong></em>), kiểu như Gauss đa biến vậy.</p>
<p><strong>2.4 </strong><strong>Nhãn quan Bayes và tần suất</strong>. Các mô hình thống kê cho ta keo dính để gắn kết các dữ liệu với nhau, và là đối tượng trung tâm của ngành thống kê. Nhưng trong lịch sử và đến tận bây giờ, các mô hình vẫn được trường phái Bayes chào đón nồng nhiệt hơn là trường phái tần suất, bởi vì sự lệ thuộc vào một mô hình thống kê làm cho người ta liên tưởng đến sự lệ thuộc vào <em><strong>tiên nghiệm</strong></em> (prior knowledge) quá nhiều, và do đó thiếu đi sự &#8220;khách quan&#8221;. Đặc biệt trong trường phái Bayes có một nhánh gọi là <strong><em>Bayes chủ quan</em></strong> (subjective Bayes) và <em><strong>Bayes khách quan</strong></em>. Những người theo Bayes chủ quan cho rằng, nếu ta có những <em><strong>niềm tin chủ quan </strong></em>(subjective belief) nhất định về dữ liệu, thì ta sẽ sử dụng một mô hình xác suất tương ứng, do các định lý kiểu như của de Finetti và Hammersley-Clifford kể trên. Một mảng không nhỏ của ngành thống kê học, thuộc trường phái tấn suất, tập trung vào các phương pháp <em><strong>mô hình tự do</strong></em> (distribution free), qua đó không sử dụng một mô hình xác suất cụ thể nào, mặc dù họ có giả sử là tộn tại một hàm phân bố để tạo ra các mẫu dữ liệu một cách độc lập.  Chú ý rằng điều này không có nghĩa là các nhà tần suất là khách quan hơn các nhà Bayes chủ quan, vì sự giả dụ tính độc lập nói chung là mạnh hơn sự giả dụ tính độc lập điều kiện, hay tính hoán chuyển được. Cả hai cách nhìn Bayes và tần suất đều hữu ích trong các ngữ cảnh khác nhau, và về nhiều mặt không có phe hoàn toàn đúng. Cả hai cách nhìn này đều chứa chất mâu thuẫn trong mình, có sự đối chọi nhau, nhưng cũng có sự tương hỗ nhau giống như bức tranh âm-dương trong Kinh Dịch vậy. Ta sẽ tiếp tục soi lại quan hệ này mỗi khi có dịp.</p>
<p><strong>2.5 Phân lớp các mô hình cụ thể và cách tham số hóa</strong>.  Các mô hình thống kê giống như các sinh vật trong thế giới tự nhiên, rất đa dạng và có thể được phân lớp, và có thể quan sát sự phức tạp tăng dần với quá trình phát triển của ngành. Trong ngành học máy thì một số người còn gọi một mô hình là một cái máy (machine), nghe công nghệ, hiện đại và mới mẻ hơn. Để mô tả một mô hình thì cần phải nói cách tham số hóa của chúng thế nào, nên cần rất nhiều khái niệm và lexicon. Tham số hóa thế nào chính là vấn đề cơm và nước mắm của người học thống kê.</p>
<p>Với rất nhiều biến ngẫu nhiên, cần phải định ra joint distribution (<em><strong>phân bố liên hợp</strong></em>). Marginal distribution gọi là ? Conditional distribution gọi là phân bố điều kiện. Covariates gọi là <em><strong>đồng biến</strong></em>. Trong công nghệ thường là đầu vào. Features thực ra cũng là đồng biến, nhưng xuất xứ từ học máy, và sẽ gọi là <em><strong>đặc trưng</strong></em>.</p>
<p>Trong họ mũ, có hai cách tham số hóa. Natural parameterization gọi là cách<strong><em> tham số hóa tự nhiên</em></strong>. Canonical parameterization gọi là <strong><em>tham số hóa chính tắc</em></strong>? Còn gọi là <strong><em>tham số hóa trung bình</em></strong> (mean parameterization). Hai hệ tham số kể trên có liên hệ mất thiết với nhau qua quan hệ<strong><em> đối ngẫu liên hợp</em></strong> (conjugate duality), một khái niệm của giải tích lồi (convex analysis). Trong <em><strong>hình học thông tin</strong></em> (information geometry) thì hai hệ tham số này có thể hiểu qua khái niệm e-flat manifold và m-flat manifold (?). Normalizing constant gọi là <em><strong>hắng số chuẩn hóa</strong></em>. trong vật lý thống kê thì khái niệm này còn gọi là partition function &#8212; <strong><em>hàm ngăn phần</em></strong>. Các mô hình thông dụng trong vật lý lý thuyết như mô hình Ising, spin glass (?), đều là trường hợp đặc biệt của họ mũ. Rất nhiều hàm phân bố là trường hợp đặc biệt của họ mũ. Đặc biệt quan trọng là multivariate Gaussian dịch là <strong><em>Gauss đa biến</em></strong>. Mean vector và covariance matrix gọi là <strong><em>vector trung bình</em></strong> và ma trận <em><strong>hiệp phương sai</strong></em>.</p>
<p>Mô hình họ mũ lại là trường hợp đặc biệt của họ <strong><em>mô hình xác suất đồ thị </em></strong>(graphical model). Phân biệt graphical và graph và graphics thể nào đây? Để định nghĩa mô hình này cần potential function (<strong><em>hàm tiềm năng</em></strong>), được định nghĩa trên clique (?) của các biến ngẫu nhiên. Có hai loại mô hình XSDT. Một là <strong><em>mô hình đồ thị vô hướng</em></strong> (undirected graphical model), cũng đồng nghĩa với trường ngẫu nhiên Markov (Markov random fields). Một là <strong><em>mô hình đồ thị có hướng</em></strong> (directed graphical model), còn gọi là <em><strong>mạng Bayes</strong></em> (Bayesian network) của Pearl. Trong mạng Bayes có khái niệm <strong><em>nốt cha</em></strong> và <strong><em>nốt con</em></strong>. Khái niệm moralization gọi là <em><strong>lấy nhau</strong></em>. Một số trường hợp thông dụng của mạng Bayes có thể kể đến mô hình <strong><em>cây xác suất ĐT</em></strong> (tree-structured graphical model), mô <strong><em>hình đa  cây</em></strong> (polytree) nhưng có lẽ gọi là <strong><em>cây đa</em></strong> cũng thích hợp, mô hình <strong><em>Markov ẩn</em></strong> (hidden Markov), mô hình <em><strong>lọc Kalman</strong></em> (Kalman filter), <strong><em>mài trơn Kalman</em></strong> (Kalman smoothing) &#8230; Latent/hidden variables gọi là các <em><strong>biến ẩn</strong></em>. Naive Bayes tạm gọi là <em><strong>Bayes thơ ngây</strong></em>, hoặc Bây ngô. Mạng Bayes cho các dạng dữ liệu tuần tự (sequential data) còn gọi là dynamic Bayes net (?).</p>
<p>Một số mô hình tham số khác phải kể đến: Mô hình <em><strong>hổi quy tuyến tính</strong></em>,<em><strong> mạng nơ ron</strong></em> (neural network), mô hình <strong><em>cây quyết định</em></strong> (decision tree), mô hình<em><strong> hợp xướng</strong></em> (ensemble), mô hình <em><strong>hổi quy logit</strong></em> (logistic regression), mô hình <strong><em>tuyến tính tổng quát</em></strong> (generalized linear model), mô hình<strong><em> mạng tin, mạng tin sâu</em></strong> (deep belief net). v.v. Những mô hình kiểu này thường áp dụng vào các vấn đề suy diễn cụ thể hơn, đặc biệt trong bài toán phân lớp (classification) và hồi quy (regression). Có một số cách phân loại nữa: Trong học máy thì các mô hình dự trên hàm phân bố xác suất liên hợp thường gọi là <em><strong>mô hình sinh mẫu</strong></em> (generative model), nhưng cũng có một số mô hình áp dụng cho các vẫn đề liên quan đến xác suất điều kiện thì gọi là <em><strong>mô hình phân biệt</strong></em> (discriminative model). Cái sau hay được dùng cho các kiểu suy diễn đặc biệt hơn như bài toán phân lớp, bài toán phân hạng, v.v.</p>
<p>Một mô hình bao gồm cả tham số có số chiều hữu hạn và tham số có số chiều vô hạn thường gọi là <em><strong>mô hình bán tham số</strong></em> (semiparametric model).  Một ví dụ tiêu biểu là <strong><em>mô hình hồi quy Cox</em></strong> (Cox regression model) trong bài toán <em><strong>phân tích sống sót</strong></em> và <strong><em>phân tích sự kiện lịch sử</em></strong> (survival analysis/ event history analysis). Time to event data dịch là dữ liệu sự kiện. Trong mô hình này, thành phần tham số hữu hạn gắn liền với những đồng biến (covariates) quan tâm,  thành phần tham số vô hạn là <strong><em>c</em><em>ường độ tử vong/lỗi cơ bản</em></strong> (baseline hazard intensity). Đôi khi họ các mô hình bán tham số được gộp chung vào họ các mô hình phi tham số.</p>
<p>Họ các mô hình phi tham số Bayes được lấy từ các quá trình ngẫu nhiên kể trên. Infinite mixture model gọi là <strong><em>mô hình trộn/ hỗn hợp vô hạn</em></strong>. Có các quá trình đậm chất ẩm thực: Quá trình <strong><em>nhà hàng Tàu</em></strong> (Chinese restaurant process), <em>q</em><strong><em>uá trình búp phê Ấn độ </em></strong>(Indian buffet process). Quá trình coelescence gọi là gì? Với dân tần suất thì nhiều khi các mô hình phi tham số chỉ là tập các hàm quen thuộc trong giải tích hàm. Ví dụ <em><strong>lớp Sobolev</strong></em> (Sobolev class), <em><strong>lớp Besov</strong></em>, <strong><em>không gian Hilbert</em></strong> <em><strong>nhân tự sinh</strong></em> (reproducing kernel Hilbert space), lớp smoothing splines (?), v.v.  Dân Bayes sẽ luôn luôn nói về các hàm phân bố (độ đo) cho các hàm số kiểu này.</p>
<p>Dân Bayes còn có một việc là phải tham số hóa các tham số. Theo cách nhìn Bayes, các tham số cũng ngẫu nhiên, phải được giả dụ bởi một hàm phân bố khác. Các tham số của hàm này sẽ là hyperparameter (<strong><em>tham số tầng trên/ tham số thượng tầng?</em></strong>). Nếu là người theo Bayes cuồng tín, thì các tham số thượng tầng này cũng phải ngẫu nhiên&#8230; và phải tiếp tục quá trình tham số này đến tận Big Bang. Điều này dẫn đến một họ <strong><em>mô hình đa tầng</em></strong> (hierarchical model/ multi-level model), rất mạnh và rất giàu. Tuy có thể coi là một trường hợp của mô hình XSDT, nhưng trọng tâm và nguổn gốc rất khác, nên ta không nên gộp làm một. (Chú ý là ta không thể đi đến tận Big Bang, nên sau vài tầng của hierarchy thì các nhà thống kê Bayes cũng sẽ  mệt và dửng lại. Trên thực tế, khi đó vai trò của các tham số tầng rất cao không còn ý nhiều trong chuyện chi phối các biểu hiện của mô hình nữa). Việc định ra cách tham số hóa các tham số còn gọi là sự định ra các prior distribution <strong><em>(phân bố tiên nghiệm</em></strong>) cho các tham số ngẫu nhiên. Áp dụng  <em><strong>công thức </strong><strong>Bayes</strong></em> (Bayes rule) thì tính được posterior distribution, dịch là <em><strong>phân bố hậu nghiệm</strong></em>. Conjugate prior thì gọi là <em><strong>phân bố tiên nghiệm liên hợp</strong></em>. Tham số hóa cho các tham số hyper còn gọi là sự định ra các hyperprior (<em><strong>phân bố tiên nghiệm thượng tầng</strong></em>). Quyết định lựa chọn prior nào (<strong><em>sự chỉ định tiên nghiệm</em></strong>) phụ thuộc vào sự giằng co giữa tiên nghiệm (prior knowledge), thực nghiệm từ dữ liệu (empirical data), và sự thuận tiện về tính toán (computational convenience). Sử dụng các phân bố tiên nghiệm liên hợp (phát âm đầy mồm!) là một ví dụ của sự thuận tiện. Sự giẳng co giữa tiên nghiệm và thực nghiệm chẳng qua là một thể hiện của dao cạo Occam, dưới nhãn quan của trường phái Bayes.</p>
<p>Dân tần suất thì không thích khái niệm tham số hyper chút nào, mà cho rằng các tham số phải là không ngẫu nhiên. Về mặt mô hình mà nói thì cách nhìn này là cái trói vô hình, theo quan điểm Bayes những tham số kiểu này là vẫn có thể coi là ngẫu nhiên theo <em>một độ đo Dirac</em> (<em><strong>độ đo nguyên tử </strong></em>&#8211; atomic measure), một sự ràng buộc rất chặt không cần thiết. Cho nên, trong lịch sử mô hình của các nhà tần suất thường không giàu có bằng mô hình của các nhà Bayes. Tuy không nhất thiết phải là như vậy.</p>
<p><strong>2.6 Dao cạo của Occam.</strong> Như ông Gớt nói là mọi chân lý đều màu xám, còn cây đời thì mãi mãi xanh tươi. Thay chữ chân lý bằng chữ mô hình, thay chữ cây đời bằng chữ dữ liệu quan sát được, ta có một biên phản cho các nhà thống kê. Bác George Box có một câu nổi tiếng tương tự &#8212; mọi mô hình đều sai, chỉ có những mô hình hữu ích hay không. Cho nên ta phải nhìn nhận các mô hình là cách chúng ta <em><strong>xấp xỉ </strong></em>thế giới thực nghiệm. Vì vậy ngoài <em><strong>sai số ước lượng</strong></em> (estimation error) của các tham số, còn có một dạng sai số gọi là <em><strong>sai số xấp xỉ </strong></em>(approximation error). Mô hình dùng ngôn ngữ thống kê và các cấu trúc toán học (như các quá trình stochastic) làm viên gạch, nhưng lại được ước lượng, điều chỉnh (update), và đánh giá, phân tích bằng dữ liệu thật.  Công cụ toán học càng mạnh thì<em><strong> tính phức tạp mô hình</strong></em> (model complexity) càng lớn, dẫn đến khả năng biểu diễn của một mô hình càng lớn, khi đó sai số xấp xỉ sẽ nhỏ, song việc ước lượng (estimation) từ dữ liệu cũng có thể lớn lên.  Đây chính là <em><strong>giằng co</strong></em> (tradeoff ) giữa sai số xấp xỉ và sai số ước lượng. Hiện tượng này gọi là cái <strong><em>dao cạo của Occam</em></strong> (Occam&#8217;s razor),  luôn luôn ám ảnh và xuyên suốt mọi quyết định trong việc thiết kế và đánh giá một mô hình học. Sợ nhất là mô hình overfit dữ liệu (<strong><em>quá rộng</em></strong>) Một đánh giá khách quan đối với sự hiệu quả và tích hữu ích của một mô hình là tính dự báo của nó, và nói chung thì lỗi dự báo thường được chặn bởi hai dạng sai số nói trên. Liên quan đến các khái niệm xấp xỉ: Model misspecification gọi là sự <em><strong>chỉ định mô hình không chuẩn</strong></em>. Khái niệm model identifiability gọi là <em><strong>tính khả nhận diện mô hình</strong></em>. Parameter identifiability là <strong><em>tính khả nhận diện của tham số</em></strong>.</p>
<p>Tóm tắt: joint probability, marginal probability, conditional probability, model identifiability, model mis-specification, model choice, model selection, parameter identifiability, consistency, parametric model, nonparametric, exponential family, curved exponential family, graphical model, hierarchical model, mixture model, hidden markov model, copula model, latent/hidden variables, nonparametric Bayesian model, density, intensity measure, analysis of variance, functional data, curve data, prior distribution, posterior distribution, a priori, a posteriori, sufficient statistics, order statistics, mean parameterization, canonical parameterization, normalizing constant, log-partition function, mean function, covariance function, covariates, features, conjugate prior, conjugacy</p>
<p><strong><!--more-->3. Các phương pháp suy diễn thống kê </strong></p>
<p><strong>3.1 Tổng quan. </strong>Cần phân biệt <em><strong>suy diễn thống kê</strong></em> (statistical inference) với <strong><em>suy diễn xác suất</em></strong> (probabilistic inference). Cái sau chỉ là sự tính toán các xác suất điều kiện trên cơ sở mô hình xác suất. Còn SDTK là suy diễn trên cơ sở mô hình thống kê với sự hiện diện của số liệu. Có hai vấn đề chính, một là <strong><em>suy diễn về tham số</em></strong>, hay còn gọi là <strong><em>ước lượng về tham số</em></strong> (parameter estimation), và <strong><em>dự báo</em></strong> (prediction). Với nhãn quan Bayes thì suy diễn thống kê còn gọi là <em><strong>suy diễn Bayes</strong></em>, về mặt toán học thì không khác gì suy diễn xác suất vì cả tham số và dữ liệu đều được mô tả bằng biến ngẫu nhiên. Cho nên về mặt khái niệm thì đơn giản, mẫu mực. Với nhãn quan tấn suất thì cách tiếp cận đến các vấn đề suy diễn thống kê khó khăn hơn về mặt khái niệm, và đòi hỏi các cách tiếp cận không mẫu mực. Trong học máy thì vấn đề ước lượng về tham số còn gọi là <strong><em>học. </em></strong></p>
<p>Nếu như trong vấn đề xác định mô hình thì quan điểm Bayes và quan điểm tần suất có tính tương hỗ nhau (ví dụ, anh Bây nói với với anh Tần: Tôi mệt rồi, cho phép cái tham số hyper của tôi là không ngẫu nhiên nhá &#8212; và anh Tần nói với anh Bây: Cho tôi gọi tham số của anh là biến ẩn nhá), thì trong vấn đề suy diễn, hai quan điểm này xung khắc nhau quyết liệt bất phân thắng bại. Quan điểm của Bây là: đối với vấn đề ước lượng tham số thì chỉ suy diễn điều kiện vào dữ liệu có sẵn (conditioning on data), và &#8220;<strong><em>marginalize out/ integrate out</em></strong>&#8221; (?) các tham số ngẫu nhiên trong việc dự báo. Quan điểm của Tần là: đồi với vấn đề ước lượng tham số thì phải suy diễn cho cả <em><strong>dữ liệu tưởng tượng</strong></em> (imaginary data, và dùng ước lượng &#8220;<strong><em>plug-in</em></strong>&#8221; (?) trong việc dự báo. Tiêu chuẩn của Bây là lạc quan, quan tâm nhiều đến <strong><em>phân tích trường hợp trung bình</em></strong> (average-case analysis). Tiêu chuẩn của Tần rất bi quan, chú trọng nhiều hơn đến <em><strong>phân tích tình huống xấu nhất</strong></em> (worst-case analysis). Đây chỉ là hai thái cực để cho thấy sự khác biệt. Trên thực tế có thể  kết hợp cả hai cách tiếp cận trong việc suy diễn từ dữ liệu.</p>
<p>Có một số vấn đề suy diễn cụ thể hơn, và do đó có một số lexicon riêng: Point estimation gọi là<em><strong> ước lượng điểm</strong></em> (một khái niệm của TK Tần). Hypothesis testing gọi là <strong><em>kiểm định lý thuyết </em></strong>(phép thử lý thuyết?).  Classification gọi là <strong><em>vấn đề phân lớp</em></strong>. Clustering gọi là <strong><em>vấn đề chia nhóm</em></strong>. Bài toán ranking trong học máy gọi là <strong><em>vấn đề phân hạng</em></strong>.  <em><strong>Supervised learning</strong></em> gọi là <strong><em>học có nhãn, học có hướng dẫn</em></strong>. Unsupervised learning gọi là <em><strong>học không nhãn (học không có hướng dẫn, học không thầy)</strong></em>. Sequential analysis gọi là <strong><em>phân tích chuỗi/ phân tích tuần tự</em></strong> (?), mà cụ thể có bài toán optimal stopping dịch là bài toán <em><strong>dừng tối ưu</strong></em>. Survival analysis gọi là <strong><em>phân tích sự sống sót</em></strong> (?). Vấn đề change point detection gọi là bài toán <em><strong>phát hiện điểm thay đổi</strong></em>. Chú ý là tất cả các vẫn đề suy diễn cụ thể này đều có thể hiểu tổng quát theo một trong hai vấn đề suy diễn (ước lượng tham số, hoặc dự báo), đều có thể tiếp cận theo cách nhìn Tần hay Bây, nhưng có thể sự điểu chỉnh một chút về cách đánh giá của suy diễn.</p>
<p><strong>3.2 Lý thuyết quyết định</strong>. Nền tảng lý thuyết của suy diễn thống kê chính là <em><strong>lý thuyết quyết định</strong></em> của Abraham Wald. Cần khái niệm rủi ro (risk). Rủi ro Bayes là Bayes risk. Rủi ro là kỳ vọng của <em><strong>hàm thiệt hại/tổn thất/thiệt/mất </strong></em>(loss function). Dân kinh tế sẽ dùng hàm utility (<strong><em>hàm tiện ích</em><em>/thỏa dụng</em></strong>) thay vì dùng hàm thiệt hại. Một khái niệm tương tự là hàm reward (?)  trong môn học reinforcement learning(?), và quá trình quyết định Markov.</p>
<p>Lý thuyết quyết định là cái ô chung cho cả hai trường phái Bây và Tần, nhưng với dân Tần thì có nhiều việc phải lo hơn. <em><strong>Estimator</strong></em> dịch là <em><strong>cách ước lượng</strong></em> cho một tham số, và là một hàm số áp dụng vào dữ liệu. Như vậy cũng giống một thống kê, như vậy có thể coi một thống kê là một cách ước lượng thô sơ.  Estimate là <em><strong>một ước lượng</strong></em> cụ thể cho một tham số nào đó. Trong bài toán phân lớp thì estimator còn gọi là một learning machine (<em><strong>máy học</strong></em>), estimate sẽ là <em><strong>hàm số phân lớp</strong></em> (classifier).  Trong vấn đề kiểm định lý thuyết (hypothesis testing) thì cái phải ước lượng là một<em><strong> hàm số quyết định</strong></em> (decision function).  Dù theo nhãn quan nào thì đều cần tìm ước lượng theo tiêu chuẩn có <em><strong>giá trị rủi ro tối thiểu</strong></em> (minimum risk criterion).  Nhưng rủi ro của anh Bây thì khác với anh Tần.  <em><strong>Kỳ vọng tần suất</strong></em> (frequentist expectation) là kỳ vọng của hàm mất đối với phân bố của dữ liệu (ảo tưởng) trên cơ sở một mô hình với một tham số có sẵn. <em><strong>Kỳ vọng Bayes</strong></em> là giá trị kỳ vọng của hàm mất đối với phân bố điều kiện của tham số trên cơ sở dữ liệu có sẵn. Nói cách khác, với anh Tần thì dữ liệu là ngẫu nhiên, với anh Bây thì tham số là ngẫu nhiên. Nếu lấy kỳ vọng của kỳ vọng tần suất đối với phân bố của tham số, hoặc lấy kỳ vọng của kỳ vọng Bayes đối với phân bố của dữ liệu thì ta cùng nhận được Rủi ro Bayes!</p>
<p>Một số hàm thiệt hại thông dụng: <strong><em>Hàm thiệt  0-1</em></strong>. Khi đó Rủi ro Bayes gọi là <em><strong>Lỗi Bayes </strong></em>(Bayes error).  <em><strong>Hàm thiệt bình phương</strong></em> (square loss). <em><strong>Hàm thiệt mũ</strong></em> (exponential loss). <strong>Hàm thiệt logit</strong> (logistic loss). Surrogate loss sẽ được dịch là <em><strong>hàm thiệt thế chỗ</strong></em> (?). Để so sánh các cách ước lượng (estimator) khác nhau người ta có thể dùng tiêu chuẩn Bayes (thông qua việc so sánh <em><strong>Rủi ro Bayes</strong></em>). Dân tần suất sẽ hay dùng <strong><em>tiêu chuẩn minimax</em></strong>, mượn từ lý thuyết trò chơi (mà cuộc chơi ở đây là giữa nhà thống kê và Trời &#8212; chỉ Ông Trời biết chân lý (mô hình đúng là gì, và ông trời mỗi lần ra tay sẽ nhả ra một mẫu dữ liệu). Cần một số phẩm chất cho các cách ước lượng, như khái niệm unbiasedness (?), admissibility (?), consistency (<strong><em>nhất quán</em></strong>), invariance (<em><strong>bất biến phương sai</strong></em>), efficiency (<strong><em>hiệu quả</em></strong>), superefficiency (<strong><em>siêu hiệu quả</em></strong>). Dân Bayes chủ quan không quan tâm đến mấy cái chuẩn này, vì họ đã có niềm tin son sắt vào tiên nghiệm rồi, và suy diễn Bayes bằng cách tính phân bố hậu nghiệm là xong. Tuy vậy phương pháp suy diễn Bayes chủ quan có nhiều tính chất lý thuyết rất tốt. Suy diễn dựa trên cơ sở của phân bố hậu nghiệm được chứng minh là tối ưu theo tiêu chuẩn Rủi ro Bayes. Dân Bayes khách quan thì không quá tự tin như dân Bayes chủ quan, nên họ muốn phân bố tiên nghiệm phải có những phẩm chất tốt. <em><strong>Tính nhất quán hậu nghiệm</strong></em> (posterior consistency) là một phẩm chất quan trọng.</p>
<p><strong>3.3 Các cách ước lượng/học thống kê.</strong> Tôi đặt vài viên gạch ở đây. Khi nào rỗi sẽ viết dần dần. Bạn nào có nhã hứng đóng góp từng paragraph vào các mục sau (hoặc các mục chưa ghi) xin cho biết. Ước lượng hay học ở đây vẫn trên cơ sở một họ mô hình định sẵn. Còn vấn đề khó hơn là chọn mô hình (model selection), so sánh các mô hình, đặc biệt giữa các mô hình có độ phức tạp khác hẳn nhau. Kiểm định giả thuyết  là một dạng rất đặc biệt của lựa chọn giữa các mô hình, song vẫn có thể hiểu gọn trong phạm vi ước lượng.</p>
<p><strong>Empirical risk minimization</strong>. Rủi ro được định nghĩa trên cơ sở hàm phân bố của mô hình (chân lý &#8212; chỉ có Trời mới biết). Chỉ có thể tiếp cận đến mô hình này thông qua <em><strong>quá trình thực nghiệm </strong></em>(empirical process). Nói cách khác, rủi ro phải được ước lượng bẳng <strong><em>rủi ro thực nghiệm</em></strong> (empirical risk). Hầu hết các cách ước lượng của phe Tần suất đều ở dạng tính rủi ro thực nghiệm cực tiểu (empirical risk minimization (ERM)). Một lexicon đồng nghĩa là <em><strong>M-estimation</strong></em> (ước lượng M), M có nghĩa là maximization hoặc minimization. Cách <em><strong>ước lượng dựa vào moment </strong></em>(moment-based estimation/ moment matching) thực ra cũng có thể được động viên và liên hệ với cách ước lượng rủi ro thực nghiệm cực đại. Một vấn đề đau đầu cho cách ước lượng rủi ro cực tiểu là phải chọn hàm mất gì? Có một số tên riêng: Nếu hàm mất là hàm bình phương, thì ta có phương pháp <strong><em>bình phương cực tiểu</em></strong> (least square) rất thông dụng trong hồi quy.</p>
<p><strong>Maximum likelihood và nguyên tắc likelihood</strong>. Nếu mô hình thống kê chỉ định ra một hàm phân bố cho dữ liệu, thì ta có khái niệm <em><strong>likelihood (khả năng?</strong></em>). Đây là hàm số của tham số, nhưng được lại là ngẫu nhiên vì được định nghĩa trên cơ sở dữ liệu ngẫu nhiên. Likelihood chính là một ví dụ tiêu biểu (nhất) của rủi ro thực nghiệm. Hàm mất tương ứng ở đây là hàm logarithm của mật độ. Maximum likelihood dịch là cách <strong><em>ước lượng khả năng cực đại</em></strong> (?), một phát kiến vĩ đại của Ronald Fisher. Đây là cách ước lượng thông dụng, đa năng bậc nhất trong ngành thống kê (ít nhất là với nhãn quan tần suất). Với các mô hình tham số thì cách ước lượng này được đảm bảo bởi tính nhất quán (consistency) &#8212; mô hình sẽ được ước lượng chính xác nếu số dữ liệu tiến đến vô hạn. Tại sao hàm mất lại là hàm logarithm của mật độ mà không phải là một hàm số nào khác? Đây là một ví dụ của sự diệu kỳ bất ngờ của toán học &#8212; câu trả lởi truy ra khái niệm độc lập, khái niệm tập trung của độ đo trong xác suất, và tính lồi trong giải tích (và hình học). <strong><em>Nguyên tắc khả năng</em></strong> (likelihood principle) cho rẳng hàm khả năng là một thống kê đầy đủ (sufficient statistics). Nguyên tắc này phá sản trong ngữ cảnh phi tham số.</p>
<p><strong>Regularization/Penalization/Shrinkage. </strong>Với sự ước lượng các mô hình phi tham số thì chỉ dựa vào dữ liệu (thông qua hàm khả năng (likelihood) hoặc tổng quát hơn, hàm rủi ro thực nghiệm) không đủ. Cần phải có sự điều chỉnh trong việc lấy cực đại/cực tiểu thông qua khái niệm regularization (<strong><em>kiểm soát</em></strong>), còn gọi là penalization (<em><strong>soát phạt)</strong></em>. Regularized empirical risk gọi là <em><strong>rủi ro thực nghiệm có kiểm soát</strong></em>.  Khái niệm kiểm soát, soát phạt bắt nguổn từ một phát hiện bất ngờ của Charles Stein về shrinkage estimator (<strong><em>cách ước lượng co</em></strong>). Cho nên nhiều khi người ta cũng gọi nhóm ước lượng này là ước lượng co.  Để dùng một số lượng dữ liệu hữu hạn mà ước lượng các đại lượng (tham số) vô hạn hoặc có số chiều đủ lớn (cho dù số dữ liệu có lớn đến đâu và tiến dần đến vô hạn đi chăng nữa) thì vẫn phải có sự kiểm soát trong ước lượng, và không thể dựa hoàn toàn vào dữ liệu thực nghiệm được.  Theo nhãn quan Bayes thì điều này chính là sự giằng co giữa thực nghiệm và tiên nghiệm. Co (shrinkage) ở đây chính là co về tiên nghiệm.</p>
<p><strong>Phương pháp phân tích hậu nghiệm/ học Bayes. </strong>Phương pháp phân tích hậu nghiệm (a posteriori analysis), cụ thể là cách<strong><em> suy diễn hậu nghiệm</em></strong> (posterior inference), <strong><em>suy diễn Bayes</em></strong> (Bayesian inference),<em><strong> học Bayes</strong></em> (Bayesian learning),&#8230; đều mô tả cùng một cách ước lượng theo trường phái Bayes. Đó là thay vì người ta ước lượng tham số (không ngẫu nhiên) như trong trường phái tần suất, người ta sẽ tính hàm phân bố hậu nghiệm cho tham số thông qua công thức Bayes. Cách này mẫu mực &#8212; phần việc chính ở đây là chỉ định ra phân bố tiên nghiệm ra sao, và tính toán phân bố hậu nghiệm thế nào (vì phải tính tích phân rất phức tạp về mặt tính toán).  Chú ý rằng cách ước lượng maximum likelihood chẳng qua là tính <strong><em>mốt</em></strong> (mode) của phân bố hậu nghiệm, nếu phân bố tiên nghiệm được chọn là <strong><em>phân bố đề</em></strong>u (uniform distribution). Trong phân tích Bayes, đặc biệt là với mô hình tham số, thì không phải lo lắng gì về việc kiểm soát (regularization). Nhưng nếu phân bố tiên nghiệm là một quá trình ngẫu nhiên (trong mô hình phi tham số) thì vẫn phải lo lắng về chuyện kiểm soát tính phức tạp của tiên nghiệm (complexity of prior distribution). Một công cụ là sensitivity analysis (<strong><em>phân tích tính nhạy cảm</em></strong>) của phân bố cho tham số.</p>
<p><strong>Phương pháp Bayes thực nghiệm (empirical Bayes). </strong>Phương pháp này có thể xem cách ước lượng tần suất cho mô hình đa tầng. Mô hình đa tầng là một công cụ lý tưởng trong việc kiểm soát độ phức tạp của các mô hình cho tham số.</p>
<p><strong>3.4.</strong><strong> Các vấn để suy diễn cụ thể hơn</strong>.</p>
<p>Hypothesis testing. Trong kiểm định giả thuyết có một số khái niệm quan trọng: Null hypothesis gọi là ? Alternative hypothesis? Có hai loại lỗi: Lỗi loại một (type-1 error) và lỗi loại hai (type-2 error). Còn gọi là tỷ lệ lỗi dương tính (false positive) và lỗi âm tính (false negative) trong đánh giá các treatment (?) trong y học. Trong công nghệ thì type-1 error gọi là false alarm error rate (?), type-2 error chính là misdetection error rate (?). Tất cả các loại rỗi này đều là hàm rủi ro đối với hàm thiệt 0-1. Cách ước lượng trong kiểm định giả thuyết gọi là một hàm quyết định. Và người ta sử dụng hàm quyết định thực hiện phép thử (test) cho giả thuyết. Một phép thử được đánh giá thông qua các bảo đạm về giới hạn của các lỗi kể trên. Sự giẳng co giữa lỗi loại một và loại hai được biểu diễn bẳng ROC curve (<em><strong>đường cong ROC</strong></em>). Các khái niệm liên hệ còn có significance (?). Confidence interval dịch là ? p-value dịch là giá trị p. Power của phép thử gọi là <em><strong>sức mạnh</strong></em>.  Nếu chỉ có hai giả thuyết đẻ so sánh thì hàm quyết định tối ưu chính phải dựa vào likelihood ratio (<em><strong>phân số khả năng</strong></em>). Likelihood ratio test gọi là phép thử dựa vào phân số khả năng. Công cụ để đánh giá sức mạnh của một phép thử là thống kê giới hạn (asymptotic statistics).</p>
<p>Kiểm định giả thuyết xuất phát từ thống kê tấn suất, do công của Neyman và Pearson. Khái niệm này rất phản trực quan, và phải đợi đến Wald mới thống nhất cách suy diễn này với cách hình thức suy diễn kiểu khác trong thống kê.  Nếu tiếp cận theo nhãn quan Bayes thì KDGT khá là đơn giản, không khác gì việc ước lượng một mô hình là bao. Cần khái niệm phân bố tiên nghiệm cho các giả thuyết. Khái niệm Bayes factor sẽ được dịch là ?</p>
<p>Sequential analysis. Trong phân tích tuần tự (sequential analysis) thì có sự giẳng co của lỗi Bayes và thời gian trễ (delay time) của quyết định về giả thuyết. Khái niệm thử thông dụng là sequential likelihood ratio test (<strong><em>phép thử dựa theo chuỗi phân số khả năng</em></strong>). Công cụ lý thuyết đẻ đánh giá sức mạnh của phép thử là các phân tích về thời gian dừng, phân tích các loại thời điểm vượt biên, v.v. trong lý thuyết xác suất về quá trình Markov.</p>
<p>Classification/regression/ranking. Trong bài toán phân lớp thì người ta gọi một cách ước lượng để phân lớp là một <em><strong>máy họ</strong></em>c (learning machine). Tham số cần ước lượng ở đây gọi là một <em><strong>hàm phân loại</strong></em> (classifier). Có thể tiếp cận vấn đề này trên cơ sở mô hình tham số hoặc mô hình phi tham số. Để học được máy (mô hình) thường đòi hỏi nhiều tính toán,  chứ không phải các thống kê đơn giản như trong kiểm định giả thuyết cổ điển. Cho nên dẫn đến những quan tâm về vấn đề hiệu quả của các giải thuật học/ ước lượng.  Cách học/ ước lượng, về mặt tính toán, có lexicon riêng là training (<strong><em>việc huấn luyện</em></strong>).  Dữ liệu cần cho việc huấn luyện gọi là<strong><em> dữ liệu huấn luyện</em></strong> (training data). <strong><em>Phép thử</em></strong> một hàm phân loại với dữ liệu mới gọi là testing. <strong><em>Dữ liệu thử</em></strong> chính là test data. Nếu có hai lớp để phân loại thì hàm phân loại tối ưu phải dựa vào likelihood ratio, rất giống như trong kiểm định giả thuyết. Một khác biệt căn bản giữa bài toán phân lớp với bài toán kiểm định lý thuyết là chỗ này: Cái đầu phải thử giả thuyết cho từng mẫu một. Cái sau chỉ phải thử giả thuyết một lần cho cả đám đông. Có rất nhiều phương pháp phân lớp, với các mô hình tham số và phi tham số, và các giải thuật học/ước lượng rất phong phú. Kinh điển thì có linear discriminant analysis (<strong><em>phân tích phân biệt tuyến tính</em></strong>), logistic regression (<em><strong>hồi quy logit)</strong></em>. Hiện đại hơn thì có <em><strong>mạng nơ ron</strong></em> (neural network), radiant basis network (?), support vector machines (?),&#8230;</p>
<p><strong><em>Bài toán hồi quy</em></strong> (regression analysis) tương tự như bài toán phân lớp, khác ở đây là cần phải ước lượng/học phương trình hồi quy (thay vì hàm phân loại). Hàm phân lớp chỉ có giá trị rởi rạc, còn phương trình hồi quy thường tính ra các giá trị liên tục. Bài toán phân cấp gần giống bài toán phân cấp ở chỗ hàm phân loại cũng có giá trị rời rạc (và không phải nhị phân), nhưng dữ liệu huấn luyện các mẫu về sự so sánh giữa các cấp chứ không phải nhãn lớp (cấp).</p>
<p>Dimensionality reduction/ exploratory data analysis. <em><strong>Phân tích khám phá</strong></em> với dữ liệu là một mảng quan trọng. Principle component analysis dịch là <strong><em>phân tích thành phần chủ yếu</em></strong>. Multidimensional scaling dịch là ?. Independence component analysis gọi là <strong><em>phân tích thành phần độc lập</em></strong>. Vấn đề chia nhóm (clustering) cũng có thể đặt vào đây, nhưng các phương pháp chia nhóm dựa vào mô hình (model-based clustering) đã phát triển đến mức độ rất tinh xảo, và nên đặt nó vào nhóm suy diễn dựa vào mô hình.</p>
<p><strong>3.5 Thống kê  ở vô hạn, lý thuyết học, và lý thuyết thông tin (asymptotic statistics, learning theory, information theory)</strong></p>
<p>Thống kê ở asymptotic chính là cơ sở lý thuyết giả thích sự hiệu quả và giới hạn của các suy diễn thống kê.  Thống kê ở vô hạn nghiên cứu tính chất của các phép ước lượng khi lượng mẫu (sample size) tiến đến vô hạn. Một vấn đề người ta cần quan tâm là các tiêu chuẩn dựa vào rủi ro phải tiến về 0. Tính chất này gọi là<em><strong> tính nhất quán</strong></em> (consistency) của một cách ước lượng. Nếu đã nhất quán rồi thì còn quan tâm rate of convergence &#8211;<em><strong> tốc độ hội tụ </strong></em>&#8211; của các rủi ro. Ngoải ra ta còn quan tâm đến tính chất về phân bố của sự hội tụ. Một tính chất quan trọng thường gặp là asymptotic normality (<strong><em>sự bình thường ở giới hạn</em></strong>). Với trường phái Bayes khách quan thì có khái niệm <em><strong>nhất quán hậu nghiệm</strong></em> (posterior consistency) &#8212; khi số mẫu tiến đến giới hạn thì phân bố hậu nghiện phải tập trung về một điểm, điểm đó chính là giá trị chân lý của tham số cần ước lượng. Tính chất này mang tính tấn suất, vì nó vẫn giả sử tham số là không ngẫu nhiên, mặc dù ta có thể định ra phân bố tiên nghiệm và làm phân tích hậu nghiệm. (Các nhà Bayes chủ quan cuồng tín sẽ ngoảnh mặt quay gót khi ai nó nói đến khái niệm này).</p>
<p>Một vấn đề khác người ta cũng quan tâm là tính chất về phân bố của các thống kê được sử dụng trong các phép suy diễn cụ thể, như trong kiểm định giả thuyết chẳng hạn. Nhờ tính chất phân bố của thống kê (ở điều kiện mẫu vô hạn) mà ta có thể có những đảm bảo nhất định về các rủi ro của suy diễn.</p>
<p>Công cụ toán học của phân tích thống kê asymptotic là tính chất<strong><em> tập trung của độ đo</em></strong> (concentration of measure), đặc biệt trong ngữ cảnh của <em><strong>quá trình thực nghiệm</strong></em> (empirical process). Empirical process theory là tên thường gọi. Công cụ quan trọng có symmetrization argument (<strong><em>mẹo cân đối hóa</em></strong>). Chaining method dịch là <strong><em>phương pháp chuỗ</em></strong>i, một phương pháp mẫu mực để chứng minh các chặn trên cho tiếm hàm rủi ro (định nghĩa trên quá trình thực nghiệm) bởi các đại lượng mô tả <strong><em>sự phức tạp của mô hình</em></strong> (model complexity). Khái niệm sự phức tạp của mô hình đến từ <strong><em>lý thuyết xấp xỉ</em></strong> (approximation theory).  Các khái niệm chính gồm có covering number (<strong><em>số đĩa phủ</em></strong>), packing number (<strong><em>số đĩa chèn</em></strong>?). Khái niệm entropy (Kolmogorov entropy chứ không phải Shannon entropy) được giữ nguyên trong lexicon. Ngoài các chặn trên, còn có thể chứng minh các chặn dưới, gọi chung là <em><strong>chặn minimax</strong></em>. Chặn này cho biết tốc độ hội tụ của rủi ro tốt nhất có thể được (trong mọi cách ước lượng) đối với một lớp mô hình cho sẵn. Đối với lớp mô hình tuyến tính thì độ phức tạp của mô hình có thể mô ta bằng một khái niệm tổ hợp nổi tiếng trong lý thuyết học (learning theory) của Vapnik và Chervonenkis,  <em><strong>số chiều VC </strong></em>(VC dimension).</p>
<p>Lý thuyết thông tin (information theory) của Shannon chính là lý thuyết thống kê giới hạn cho một số bài toán suy diễn cụ thể trong công nghệ thông tin, công nghệ nén và truyền tải dữ liệu. LTTT cũng tập trung nhiều vào đại lượng có thể dùng để mô ta sự hiệu quả của một giải thuật suy diễn. Các đại lượng này xuất hiện trên exponent của các chặn trên và chặn dưới của các rủi ro của suy diễn, không chỉ trong các bài toán cụ thể trong công nghệ thông tin, mà còn trong các ngữ cảnh suy diễn thống kê tổng quát. Các khái niệm quan trọng gồm có: Shannon entropy, conditional entropy (<strong><em>entropy điều kiện</em></strong>), Kullback-Leibler divergence (<strong><em>độ phân kỳ Kullback-Leibler</em></strong>), mutual information (<strong><em>thông tin chung)</em></strong>. Do đó, các khái niệm về thông tin này còn có vai trò quan trọng trong các vấn đề về sự lựa chọn mô hình (model selection), thiết kế thí nghiệm (experimental design) và trong các phân tích khám phá. Về mặt toán học, các khái niệm thông tin này đều là các phiếm hàm mô tả sự ngẫu nhiên và quan hệ của một hay nhiều hàm phân bố xác suất. Các khái niệm liên hệ có thể kể đến: Fisher information (<strong><em>thông tin Fisher</em></strong>), phương sai.</p>
<p><strong>3.5 Lựa chọn mô hình (model selection).</strong></p>
<p><strong>3.6 Thiết kế thí nghiệm (experiment design). <em>Tôi không biết đủ sâu/rộng để viết về phần này. Hy vọng bác nào là chuyên gia xắn tay vào viết giúp một vài paragraph.<br />
</em></strong></p>
<p>Tóm tắt: Bayesian learning, Bayesian inference, posterior inference, maximum likelihood, posterior consistency, asymptotic consistency, asymptotic normality, sensitivity analysis, stability analysis, heat map,  efficiency, superefficiency, estimator, estimate, learning algorithm, learner, chaining method, symmetrization, covering number, free probability</p>
<p>ROC, hypothesis test, Bayes error, approximation error, estimation error, null hypothesis, alternative hypothesis, type-1 error, type-2 error, power, significance, p-value, Bayesfactor, nested design, empirical Bayes method, shrinkage, sequential analysis, sequential change point analysis, online analysis, distributed algorithm</p>
<p><strong><!--more-->4. Các giải thuật thống kê, học giả</strong></p>
<p><strong><em>4.1 Tổng quan.</em></strong> Thống kê cổ điển không có khái niệm về giải thuật. Khi chưa có công cụ máy tính người ta chỉ có thể nghiên cứu tính chất và áp dụng các cách ước lượng khá giản đơn về mặt tính toán. Sự ra đời của máy tính và thông qua đó phát triển của lĩnh vực giải thuật và học máy thổi một làn gió mới vào vấn đề suy diễn từ dữ liệu. Làn gió này bắt đầu rất nhỏ từ thập niên 60, mạnh dần lên vào thập niên 80, đến thập niên 90 và những năm đầu thế kỷ này có lẽ nó đã trở thành bão. Cơn bão của khoa học tính toán đang làm thay đổi hoàn toàn khung cảnh của thống kê hiện đại, hứa hẹn những bước phát triến ngoạn mục trong tương lai. Về mặt lý thuyết, trước kia, ta chỉ quan tâm quan hệ giữa lượng mẫu và độ hiệu quả của suy diễn thống kê thông qua sự chính xác của các phép ước lượng.  Nay, ta còn phải quan tâm đến hai đại lượng mới: đó là <em><strong>sự phức tạp về tính toán</strong></em> &#8212; computational complexity (về mặt thời gian và bộ nhớ), và <strong>s</strong><em><strong>ự xấp xỉ của mô hình</strong></em> (approximation error) , vì bây giờ chúng ta đã có thể phát triến và nghiên cứu các dạng mô hình mạnh hơn trước, các phép ước lượng phức tạp hơn trước. Đại lượng đầu tiên, sự phức tạp về tính toán, đến từ khoa học máy tính. Đại lượng thứ hai, tính xấp xỉ của mô hình, đến từ thuyết xấp xỉ của toán ứng dụng, và lý thuyết xác suất. Một sự thay đổi rõ nét nhất trong sự phát triển của các phương pháp suy diễn thống kê hiện đại chính là sự lên ngôi của trường phái Bayes, vì các công cụ giải thuật ngày nay cho phép thực hiện phân tích Bayes một các hiệu quả hơn về mặt tính toán. Các mô hình Bayes còn nối lại quan hệ mật thiết giữa những người xây dựng mô hình thống kê với những người nghiên cứu về quá trình ngẫu nhiên trong lý thuyết xác suất.  Với sự hiện diện của khái niệm phức tạp tính toán và khái niệm xấp xỉ trong suy diễn thống kê, sự đối nghịch giữa hai trường phái Bayes và Tần suất bị loãng đi và mất dần tính cực đoan cuồng tín của thế kỷ 20. Người ta bắt đầu có cái nhìn cân bằng hơn về vai trò và quan hệ giữa hai trường phái này.</p>
<p>expectation-maximization algorithm, variational inference, message-passing algorithm, belief propagation, back propagation, training, testing, classification, clustering, hierarchical clustering, linear regression, kernel method, sparsity<br />
, regularization, penalization, cross-validation, leave-one-out, boosting, bagging, bootstrap, compressed sensing, quantization, heteroscedasticity, multi-modality,</p>
<p><strong>5. Các phương pháp tối ưu trong suy diễn thống kê</strong></p>
<p>simulated annealing, local search, global search, heuristic search, restart, hill-climbing, saddle point, sampling, importance sampling, proposal distribution, acceptance probability, heat bath method, particle filtering, filtering, smoothing</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2010/11/09/lexicon-xac-su%e1%ba%a5t-th%e1%bb%91ng-ke-va-h%e1%bb%8dc-may/feed/</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>Sự hữu hiệu quá thể của toán học trong …</title>
		<link>http://www.procul.org/blog/2010/10/31/the-unreasonable-effectiveness-of-mathematics-in-the-natural-sciences/</link>
		<comments>http://www.procul.org/blog/2010/10/31/the-unreasonable-effectiveness-of-mathematics-in-the-natural-sciences/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 03:27:26 +0000</pubDate>
		<dc:creator>Nguyễn Xuân Long</dc:creator>
				<category><![CDATA[Chưa phân loại]]></category>
		<category><![CDATA[Dành cho du học sinh]]></category>
		<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Xác suất & thống kê]]></category>
		<category><![CDATA[Toán]]></category>
		<category><![CDATA[vượt định kiến]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=2487</guid>
		<description><![CDATA[Không biết blog KHMT hay một blog nào khác đã dịch bài viết nổi tiếng của Wigner ra tiếng Việt chưa,  &#8220;The unreasonable effectiveness of mathematics in natural sciences&#8221;, mà tôi xin nôm na gọi là &#8220;Sự hữu hiệu quá thể của toán học trong khoa học tự nhiên&#8221;. Nguyên văn bài viết này ở [...]]]></description>
			<content:encoded><![CDATA[<p>Không biết blog KHMT hay một blog nào khác đã dịch bài viết nổi tiếng của Wigner ra tiếng Việt chưa,  &#8220;The unreasonable effectiveness of mathematics in natural sciences&#8221;, mà tôi xin nôm na gọi là &#8220;Sự hữu hiệu quá thể của toán học trong khoa học tự nhiên&#8221;. Nguyên văn bài viết này <a href="http://www.dartmouth.edu/~matc/MathDrama/reading/Wigner.html"> ở đây </a>. Wikipedia cũng có một <a href="http://en.wikipedia.org/wiki/The_Unreasonable_Effectiveness_of_Mathematics_in_the_Natural_Sciences"> entry riêng </a> về bài này, trong đó có tóm tắt một số ý chính thú vị trong bài viết của Wigner, và các tranh luận sau đó. Khoa học tự nhiên ở đây chủ yếu là lấy thí dụ từ vật lý. Chỉ cần kiến thức năm hai về toán và lý là có thể hiểu hết được phần lớn các ví dụ của ông.  Rất đáng đọc và suy ngẫm.</p>
<p>Wigner viết bài này năm 60, khi Vật lý đang ở thời kỳ hoàng kim: Thuyết tương đối đã phát triến đầy đủ ở đầu thế kỷ 20, thuyết lượng tử sau đó vài thập niên. Các nhà vật lý <strong>vẫn</strong> còn đang rất tin tưởng sẽ có một lý thuyết mới khái quát được cả hai.  Viết chữ &#8220;vẫn&#8221; nhưng rất run với các bác vật lý, hehe. Nhưng tôi đoán trong bụng các bác ấy rất cảm tạ trời đất là các bác ấy vẫn còn việc. Nếu có một lý thuyết cho mọi thứ ra đời thì thật là tai hại &#8212; các nhà Vật lý học phải chuyển hướng nghiên cứu sang các vấn đề ngoại cảm hết rồi.</p>
<p>Những <span style="text-decoration: line-through;">lập luận</span> quan sát của Wigner vẫn có giá trị đến tận ngày nay, dù khung cảnh của khoa học đã có nhiều thay đổi. Sự lên ngôi của sinh học, sinh học phân tử, genetics. Công nghệ, đặc biệt là công nghệ thông tin, cho phép chúng ta thu thập được dữ liệu với số lượng khổng lồ, và độ chính xác cao độ. Điều này, trong rất nhiều lĩnh vực, như trong sinh học phân tử và astronomy, làm thay đổi căn bản cách mà người ta làm khoa học.</p>
<p>Toán học là công cụ để chúng ta mô tả các quan hệ, các quy luật một cách chặt chẽ. Từ chối vai trò của toán học là từ chối một ngôn ngữ chung để nói chuyện một cách nghiêm túc. Toán của những năm 60 để mô tả các hiện tượng vật lý là giải tích hàm, giải tích phức và hình học Riemann. Ngày nay, vật lý đòi hỏi nhiều công cụ toán học đa dạng và sâu sắc hơn nữa.  Với các ngành khoa học dựa vào dữ liệu, như sinh học, môi trường, v.v.  thì xác suất thống kê  trở thành ngôn ngữ không thể thiếu được. Không chỉ khoa học tự nhiên, mà cả khoa học xã hội và triết học cũng bắt đầu áp dụng các mô hình xác suất và các phương pháp học thống kê trong viêc thiết kế thí nghiệm, phân tích và dự báo cho các lý thuyết của mình.</p>
<p>Bài viết của Wigner tiếp tục có ý nghĩa, nếu &#8220;Natural sciences&#8221; được nới rộng ra thành &#8220;sciences&#8221;. Cái này thì chắc không có gì phải bàn. Nên chăng là nới rộng sciences theo &#8220;định hướng dân tộc&#8221; ra các môn khác như ngoại cảm, tướng số, phong thủy hay không. Toán học ngày nay, ngoài những thử mà Wigner đã nhắc, thì còn nhiều mảng khác, và do thiên vị nghề nghiệp, tôi không thể không nhắc lại vai trò to lớn của xác suất và thống kê, và khoa học máy tính &#8212; tất cả đều có thể là các công cụ quan trọng trong việc mô tả và đánh giá các hiện tượng trong tự nhiên, xã hội (và trong công nghệ nữa). Tách bạch toán và thống kê và KHMT ra để thấy vai trò tương hỗ của cả ba ngành này trong mọi lĩnh vực khoa học dựa vào nhiều dữ liệu: Toán học cho ta các cấu trúc để mô hình các quan hệ một cách chặt chẽ; lý thuyết thống kê cho ta gắn kết mô hình toán học với dữ liệu và giải thích tại sao điều đó có thể thực hiện được, còn KHMT cho công cụ để giải quyết vấn đề tìm tỏi mô hình như thể nào. Đây là công thức chung cho mọi ngành khoa học dự vào nhiều dữ liệu.</p>
<p>Bài viết này của Wigner tất nhiên có thể được thưởng thức từ góc độ của phái tự sướng trong toán học. Nó toát ra trong nhiều đoạn viết rất hùng hồn, và ngay cả ở cái tiêu đề của bài viết. Ví dụ (tô đậm là của NXL):</p>
<blockquote><p>In fact, the definition of these (mathematical) concepts, with a realization that interesting and ingenious considerations could be applied to them, is the first demonstration of the ingeniousness of the mathematician who defines them. The depth of thought which goes into the formulation of the mathematical concepts is later justified by the skill with which these concepts are used. The great mathematician fully, almost ruthlessly, exploits the domain of permissible reasoning and skirts the impermissible. <strong>That his recklessness does not lead him into a morass of contradictions is a miracle in itself: certainly it is hard to believe that our reasoning power was brought, by Darwin&#8217;s process of natural selection, to the perfection which it seems to possess</strong>. However, this is not our present subject. The principal point which will have to be recalled later is that the mathematician could formulate only a handful of interesting theorems without defining concepts beyond those contained in the axioms and <strong>that the concepts outside those contained in the axioms are defined with a view of permitting ingenious logical operations which appeal to our aesthetic sense both as operations and also in their results of great generality and simplicity</strong>.</p></blockquote>
<p>Nhưng cái nhìn đầy đủ nhất vẫn là ở góc độ của tính ứng dụng hữu hiệu đến kỳ diệu của toán học trong một lính vực khoa học cụ thể, ở đây là vật lý, dù tất cả chúng ta đều khiêm tốn ý thức được giới hạn của trí tuệ loài người trong việc khám phá tự nhiên. Ví dụ:</p>
<blockquote><p>The world around us is of baffling complexity and the most obvious fact about it is that we cannot predict the future. Although the joke attributes only to the optimist the view that the future is uncertain, the optimist is right in this case: the future is unpredictable. It is, as Schrodinger has remarked, a miracle that in spite of the baffling complexity of the world, certain regularities in the events could be discovered. One such regularity, discovered by Galileo, is that two rocks, dropped at the same time from the same height, reach the ground at the same time. The laws of nature are concerned with such regularities. Galileo&#8217;s regularity is a prototype of a large class of regularities. It is a surprising regularity for three reasons&#8230;.</p>
<p><span style="font-family: Arial;">&#8230;.The preceding discussion is intended to remind us, first, that it is not at all natural that &#8220;laws of nature&#8221; exist, much less that man is able to discover them.</span> [6 E. Schrodinger, in his What Is Life? (Cambridge: Cambridge University Press, 1945), p. 31, says that this second miracle may well be beyond human understanding.] <span style="font-family: Arial;">The present writer had occasion, some time ago, to call attention to <strong>the succession of layers of &#8220;laws of nature,&#8221; each layer containing more general and more encompassing laws than the previous one and its discovery constituting a deeper penetration into the structure of the universe than the layers recognized before</strong>. However, the point which is most significant in the present context is that all these laws of nature contain, in even their remotest consequences, only a small part of our knowledge of the inanimate world. <strong>All the laws of nature are conditional statements which permit a prediction of some future events on the basis of the knowledge of the present, except that some aspects of the present state of the world, in practice the overwhelming majority of the determinants of the present state of the world, are irrelevant from the point of view of the prediction</strong>. The irrelevancy is meant in the sense of the second point in the discussion of Galileo&#8217;s theorem.</span></p></blockquote>
<p>Đọc Wigner với nhãn quan của một người làm thống kê rất thú vị, vì chỉ thay đổi vài câu chữ là ta có thể có những nhận xét tinh tế về cách thể hiện các mô hình xác suất, cách suy diễn thống kê, về vai trò của prior probability distributions. Ví dụ, đoạn trích đầu tiên ở trên ca ngợi sự sáng tạo đậm chất nghệ thuật của một nhà toán học, nhưng nó cũng có thể tìm được đồng cảm với những statistical modeler, những người tìm tòi sáng tạo ra các mô hình, các loại prior thú vị, dấu chưa biết cái prior này có thiết thức cho dữ liệu cụ thể nào. Một điều làm tôi rất kinh ngạc đến thích thú vì đã gặp phải nhiều lần, là hầu như bất kỳ một mô hình hay ho nào, nếu rất tinh tế và đẹp đẽ về mặt toán học, thì hầu như luôn có một ngữ cãnh thực tế mà chúng rất hữu dụng.  Theo nghĩa nào đó, trí óc sáng tạo của chúng ta cũng khó lòng thoát khỏi ranh giời mà đấng sáng tạo đã định ra và cho hiện hữu. Chỉ có điều chúng ta chưa thấy và không bao giờ thấy được hết những hiện hữu ấy mà thôi. Còn trích dẫn thứ hai ở trên cũng gợi ra lý do tại sao ta có thể học được mô hình từ dữ liệu và dự báo tương lai, tại sao ta có thể cải thiện bởi kinh nghiệm&#8230;</p>
<p>Vài câu trích nổi tiếng cũng có những ý tương tự như trên:</p>
<blockquote><p>The most incomprehensible thing about the universe is that it is comprehensible. — Albert Einstein</p>
<p>How can it be that mathematics, being after all a product of human thought which is independent of experience, is so admirably appropriate to the objects of reality? — Albert Einstein</p>
<p>&#8220;&#8230; if nature is really structured with a mathematical language and mathematics invented by man can manage to understand it, this demonstrates something extraordinary. The objective structure of the universe and the intellectual structure of the human being coincide.&#8221; &#8211; Pope Benedict XVI</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2010/10/31/the-unreasonable-effectiveness-of-mathematics-in-the-natural-sciences/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Toán ứng dụng và Toán lý thuyết (Nguyễn Tiến Dũng)</title>
		<link>http://www.procul.org/blog/2010/08/24/toan-%e1%bb%a9ng-d%e1%bb%a5ng-va-toan-ly-thuy%e1%ba%bft-nguy%e1%bb%85n-ti%e1%ba%bfn-dung/</link>
		<comments>http://www.procul.org/blog/2010/08/24/toan-%e1%bb%a9ng-d%e1%bb%a5ng-va-toan-ly-thuy%e1%ba%bft-nguy%e1%bb%85n-ti%e1%ba%bfn-dung/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 21:42:50 +0000</pubDate>
		<dc:creator>NQH</dc:creator>
				<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Tản toán]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=2243</guid>
		<description><![CDATA[Bác Nguyễn Tiến Dũng có bài rất hay. Xin trích một paragraph nhỏ: Những phần phía trên tôi viết không có nghĩa là Việt Nam không cần đến toán lý thuyết, hay còn gọi là toán cơ bản. Vì có cơ bản thì mới có ứng dụng. Ý tôi muốn nói là, mục đích chính [...]]]></description>
			<content:encoded><![CDATA[<p>Bác Nguyễn Tiến Dũng có <a href="http://zung.zetamu.com/?p=1879">bài rất hay</a>. Xin trích một paragraph nhỏ:</p>
<blockquote><p>Những phần phía trên tôi viết không có nghĩa là Việt Nam không cần đến toán lý thuyết, hay còn gọi là toán cơ bản. Vì có cơ bản thì mới có ứng dụng. Ý tôi muốn nói là, mục đích chính của việc học toán cơ bản, không phải là để tiếp tục sản sinh ra toán cơ bản, rồi lại tiếp tục sản sinh ra toán cơ bản, theo kiểu «toán học vị toán học», để cho đẹp. Toán học tuy đẹp thật, nhưng rất ít ai thưởng thức được cái đẹp xa xỉ phẩm đó. Vai trò chính của toán học trong xã hội không phải là để «làm đẹp», mà là làm công cụ giải quyết các vấn đề khác. Đối với các cá nhân, ai thích cái gì nhất, có khiếu cái gì nhất, thì nên đi làm cái đấy nếu tìm được hạnh phúc trong đó. Từ quan điểm chiến lược của tập thể lớn, trong việc chia nguồn lực có hạn, thì phải phân bổ lực lượng sao cho đạt hiệu quả chung cao nhất. Trong việc phân bổ lực lượng đó, trung bình mỗi lý thuyết cần có được nhiều ứng dụng. Tỷ lệ giữa lý thuyết và ứng dụng phải là 1:10, hay như các cụ có nói, học một hiểu mười, biết được 1 cái áp dụng được vào 10 cái, chứ không phải ngược lại.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2010/08/24/toan-%e1%bb%a9ng-d%e1%bb%a5ng-va-toan-ly-thuy%e1%ba%bft-nguy%e1%bb%85n-ti%e1%ba%bfn-dung/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bayesian or Frequentist, which are you?</title>
		<link>http://www.procul.org/blog/2010/04/07/bayesian-or-frequentist-which-are-you/</link>
		<comments>http://www.procul.org/blog/2010/04/07/bayesian-or-frequentist-which-are-you/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 11:09:57 +0000</pubDate>
		<dc:creator>Nguyễn Xuân Long</dc:creator>
				<category><![CDATA[Toán Ứng Dụng]]></category>
		<category><![CDATA[Trí tuệ nhân tạo]]></category>
		<category><![CDATA[Xác suất & thống kê]]></category>
		<category><![CDATA[Bayesian]]></category>
		<category><![CDATA[Frequentist]]></category>
		<category><![CDATA[học máy]]></category>
		<category><![CDATA[thống kê]]></category>
		<category><![CDATA[xác suất]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/?p=2026</guid>
		<description><![CDATA[Giới thiệu với bạn đọc blog KHMT video bài giảng của GS Michael Jordan ở ML summer school (ở Cambridge tháng 9 năm ngoái) về đề tài thú vị này: http://videolectures.net/mlss09uk_jordan_bfway/ Có cả một số bình luận về machine learning trong không gian chung của các nghiên cứu về thống kê. Còn đây là concluding [...]]]></description>
			<content:encoded><![CDATA[<p>Giới thiệu với bạn đọc blog KHMT video bài giảng của GS Michael Jordan ở ML summer school (ở Cambridge tháng 9 năm ngoái) về đề tài thú vị này:</p>
<p><a href="http://videolectures.net/mlss09uk_jordan_bfway/">http://videolectures.net/mlss09uk_jordan_bfway/</a></p>
<p>Có cả một số bình luận về machine learning trong không gian chung của các nghiên cứu về thống kê.</p>
<p>Còn đây là concluding slide:</p>
<ul>
<li>Are you a Bayesian or a frequentist?
<li>My own answer is &#8220;both&#8221;, but there days where I&#8217;m much more clearly one than other<br />
(and it&#8217;s an ongoing intellectual challenge to try to understand the ramifications of this distinction)</p>
<li>I view them as complementary perspectives, but there is a wave/particle (of) uncomfortableness at times
<li>A main conclusion: machine learning is a part of statistics; don&#8217;t just read the machine learning literature &#8212; read, ponder and contribute to the broad statistical literature
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2010/04/07/bayesian-or-frequentist-which-are-you/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Trị đặc trưng và vector đặc trưng</title>
		<link>http://www.procul.org/blog/2007/10/23/eigen/</link>
		<comments>http://www.procul.org/blog/2007/10/23/eigen/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 04:07:05 +0000</pubDate>
		<dc:creator>NQH</dc:creator>
				<category><![CDATA[Toán Ứng Dụng]]></category>

		<guid isPermaLink="false">http://www.procul.org/blog/2007/10/23/eigen/</guid>
		<description><![CDATA[Eigenvalues và eigenvectors xuất hiện cực kỳ nhiều trong các ngành khoa học và kỹ thuật: Vật Lý, xác suất thống kê, KHMT, lý thuyết đồ thị, v.v. Để hiểu ý nghĩa của chúng, có hai hướng nhìn thông dụng, áp dụng được trong rất nhiều trường hợp. 1. Loại động cơ (motivation) thứ nhất. [...]]]></description>
			<content:encoded><![CDATA[<p>Eigenvalues và eigenvectors xuất hiện cực kỳ nhiều trong các ngành khoa học và kỹ thuật: Vật Lý, xác suất thống kê, KHMT, lý thuyết đồ thị, v.v. Để hiểu ý nghĩa của chúng, có hai hướng nhìn thông dụng, áp dụng được trong rất nhiều trường hợp.</p>
<p><strong>1. Loại động cơ (motivation) thứ  nhất.</strong></p>
<p>Trong nhiều ứng dụng ta thường phải làm phép tính sau đây: cho trước một ma trận A và nhiều vectors x, tính
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> với nhiều giá trị khác nhau của số mũ
<pre class="brush: latex; title: ; notranslate">k</pre>
<p>. <em>Ví dụ 1</em>: nếu A là ma trận của một phép biến đổi tuyến tính (linear transformation) nào đó, như phép quay và co dãn trong computer graphics chẳng hạn, thì
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> cho ra kết quả của phép BĐTT này áp dụng k lần vào x. Các games máy tính hay các annimations trong phim của Hollywood có vô vàn các phép biến đổi kiểu này. Mỗi một object trong computer graphics là một bộ rất nhiều các vector x. Quay một object nhiều lần là làm phép nhân
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> với từng vectors x biểu diễn object đó. Khối lượng tính toán là khổng lồ, dù chỉ trong không gian 3 chiều. <em>Ví dụ 2</em>: nếu A là transition matrix của một <a href="http://www.stanford.edu/class/ee384x/Handouts/rev3_v4.pdf">chuỗi Markov rời rạc</a> và x là distribution của trạng thái hiện tại, thì
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> chính là distribution của chuỗi Markov sau k bước. <em>Ví dụ 3:</em> các phương trình sai phân (difference equation) như kiểu phương trình
<pre class="brush: latex; title: ; notranslate">a_n = 4a_{n-1} + 3a_{n-2} - a_{n-3}</pre>
<p> cũng có thể được viết thành dạng
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> để tính
<pre class="brush: latex; title: ; notranslate">a_k</pre>
<p> với k tùy ý. <em>Ví dụ 4:</em> lũy thừa của một ma trận xuất hiện tự nhiên khi giải các phương trình vi phân, xuất hiện trong khai triển Taylor của ma trận
<pre class="brush: latex; title: ; notranslate">e^{At}</pre>
<p> chẳng hạn.</p>
<p><span id="more-759"></span></p>
<p><em>Tóm lại, trong rất nhiều ứng dụng thì ta cần tính toán rất nhanh lũy thừa của một ma trận vuông, hoặc lũy thừa nhân một vector.</em> </p>
<p>Mỗi ma trận vuông đại diện cho một phép BĐTT nào đó. Lũy thừa bậc k của ma trận đại diện cho phép biến đổi này áp dụng k lần. Ngược lại, bất kỳ phép BĐTT nào cũng có thể được đại diện bằng một ma trận. Có rất nhiều ma trận đại diện cho cùng một BĐTT, tùy theo ta chọn hệ cơ sở nào. Mỗi khi ta viết một vector dưới dạng
<pre class="brush: latex; title: ; notranslate">x = (3, -2, 5)^T</pre>
<p> là ta đã ngầm định một hệ cơ sở nào đó, thường là hệ cơ sở trực chuẩn
<pre class="brush: latex; title: ; notranslate">e_1 = (1,0,0)^T</pre>
<p>,
<pre class="brush: latex; title: ; notranslate">e_2 = (0,1,0)^T</pre>
<p>, và
<pre class="brush: latex; title: ; notranslate">e_3 = (0,0,1)^T</pre>
<p>. Các tọa độ 3, -2, 5 của x là tương ứng với tọa độ của x trong hệ cơ sở ngầm định này.</p>
<p>Hệ cơ sở
<pre class="brush: latex; title: ; notranslate">e_1, \dots, e_n</pre>
<p> như trên thường được dùng vì ta &#8220;dễ&#8221; hình dùng chúng trong không gian n chiều, chúng là sản phẩm phụ của hệ tọa đồ Descartes cổ điển hay dùng trong không gian 2 chiều. Tuy nhiên, khi áp dụng một phép BĐTT thì các vectors
<pre class="brush: latex; title: ; notranslate">e_1, \dots, e_n</pre>
<p> thường cũng bị biến đổi theo luôn, rất bất tiện nếu ta phải tính
<pre class="brush: latex; title: ; notranslate">A^kx</pre>
<p> cho nhiều giá trị k và x khác nhau.</p>
<p>Bây giờ, giả sử ta tìm được
<pre class="brush: latex; title: ; notranslate">n</pre>
<p> hướng độc lập tuyến tính và bất biến qua phép BĐTT đại diện bởi A. (<font color=#800>Đây là giả sử rất mạnh, may mà nó lại thường đúng trong các ứng dụng kể trên.</font>) Dùng vector
<pre class="brush: latex; title: ; notranslate">u_i</pre>
<p> để biểu diễn hướng thứ
<pre class="brush: latex; title: ; notranslate">i</pre>
<p>. Bất biến có nghĩa là áp dụng A vào hướng nọ thì hướng không đổi. Cụ thể hơn, BĐTT A làm hướng
<pre class="brush: latex; title: ; notranslate">u_i</pre>
<p> &#8220;bất biến&#8221; nếu
<pre class="brush: latex; title: ; notranslate">Au_i = \lambda_i u_i</pre>
<p> với
<pre class="brush: latex; title: ; notranslate">\lambda_i</pre>
<p> là một con số (scalar) thực hoặc phức nào đó (dù ta giả sử A là thực). Do các hướng này độc lập tuyến tính, một vector x bất kỳ đều viết được dưới dạng<br />
<center>
<pre class="brush: latex; title: ; notranslate">x = x_1u_1 + x_2u_2 + \dots + x_nu_n</pre>
<p></center><br />
Nếu ta lấy
<pre class="brush: latex; title: ; notranslate">u_1,\dots, u_n</pre>
<p> làm hệ cơ sở thì cái hay là có áp dụng A bao nhiêu lần thì cũng không đổi hướng của các vectors trong hệ cơ sở! Điều này rất tiện lợi, bởi vì<br />
<center>
<pre class="brush: latex; title: ; notranslate">A^kx = x_1A^ku_1 + \dots + x_nA^ku_n = x_1\lambda_1^ku_1 + \dots + x_n\lambda_n^ku_n </pre>
<p></center><br />
Như vậy, thay vì tính lũy thừa bậc cao của một ma trận, ta chỉ cần tính lũy thừa của n con số và làm một phép cộng vectors đơn giản. Các giá trị
<pre class="brush: latex; title: ; notranslate">\lambda_i</pre>
<p> là các trị đặc trưng (eigenvalues) của A, và các vectors
<pre class="brush: latex; title: ; notranslate">u_i</pre>
<p> là các vector đặc trưng (eigenvectors).</p>
<p>Tiếp tục với giả thiết rất mạnh là n eigenvectors độc lập tuyến tính với nhau. Nếu ta bỏ các vectors này vào các cột của một ma trận
<pre class="brush: latex; title: ; notranslate">U</pre>
<p>, và các eigenvalues lên đường chéo của một ma trận
<pre class="brush: latex; title: ; notranslate">\Lambda</pre>
<p> thì ta có
<pre class="brush: latex; title: ; notranslate">\Lambda = U^{-1}AU</pre>
<p>. Trong trường hợp này ma trận A có tính diagonalizable (chéo hóa được). Diagonalizability và sự độc lập tuyến tính của n eigenvectors là hai thuộc tính tương đương của một ma trận. Ngược lại, ta cũng có
<pre class="brush: latex; title: ; notranslate">A = U\Lambda U^{-1}</pre>
<p>, và vì thế lũy thừa của A rất dễ tính:
<pre class="brush: latex; title: ; notranslate">A^k = U\Lambda^k U^{-1}</pre>
<p> do lũy thừa của một ma trận đường chéo rất dễ tính.</p>
<p><em>Cụm từ  &#8220;khả năng đường chéo hóa được&#8221; (diagonalizability) nghe ghê răng quá, có bạn nào biết tiếng Việt là gì không?</em></p>
<p>Nếu ta biết được các eigenvectors và eigenvalues của một ma trận thì &#8212; ngoài việc tính lũy thừa của ma trận &#8212; ta còn dùng chúng vào <strong>rất</strong> nhiều việc khác, tùy theo ứng dụng ta đang xét. Ví dụ: tích các eigenvalues bằng với định thức, tổng bằng với trace, khoảng cách giữa eigenvalue lớn nhất và lớn nhì của transition matrix của một chuỗi Markov đo tốc độ hội tụ đến equilibrium (mixing rate) và eigenvector đầu tiên là steady state distribution, vân vân.</p>
<p>Quay lại với cái &#8220;giả thiết rất mạnh&#8221; ở trên. Có một loại ma trận mà giả thiết này đúng; và hơn thế nữa, ta có thể tìm được các eigenvectors vuông góc nhau, đó là <a href="http://en.wikipedia.org/wiki/Normal_matrix">các normal matrices</a>. Rất nhiều ứng dụng trong khoa học và kỹ thuật cho ta các normal matrices. Các trường hợp đặc biệt thường thấy là các ma trận (thực) đối xứng và các ma trận Hermitian (đối xứng theo nghĩa phức). </p>
<p>Còn các ma trận không thỏa mãn &#8220;giả thiết rất mạnh&#8221; này, nghĩa là không diagonalizable, thì làm gì với chúng? Ta có thể tìm cách làm cho chúng rất &#8220;gần&#8221; với một ma trận đường chéo bằng cách viết chúng thành <a href="http://en.wikipedia.org/wiki/Jordan_normal_form">dạng chuẩn Jordan</a>. Đề tài này nằm ngoài phạm vi bài đang viết.</p>
<p><strong>2. Loại động cơ (motivation) thứ  hai.</strong></p>
<p>Trong rất nhiều ứng dụng, ta &#8220;được&#8221; làm việc với một ma trận đối xứng: nó có đủ bộ eigenvectors, do đó diagonalizable và vì thế có thể thiết kế các thuật toán hiệu quả cho các bài toán tương ứng. Không những đối xứng, chúng còn có một thuộc tính mạnh hơn nữa gọi là <a href="http://en.wikipedia.org/wiki/Positive-definite_matrix">positive (semi) definite</a>, nghĩa là các eigenvalues đều không âm. <em>Ví dụ 1:</em> bài toán least squares
<pre class="brush: latex; title: ; notranslate">Ax \approx b</pre>
<p> có ứng dụng khắp nơi (linear regression trong statistics chẳng hạn) dẫn đến ma trận symmetric positive (semi) definite
<pre class="brush: latex; title: ; notranslate">A^TA</pre>
<p>. <em>Ví dụ 2:</em> bài toán xác định xem một một <a href="http://en.wikipedia.org/wiki/Critical_point_%28mathematics%29">điểm tới hạn</a> của một hàm đa biến bất kỳ có phải là điểm cực tiểu hay không tương đương với xác định xem <a href="http://en.wikipedia.org/wiki/Hessian_matrix">ma trận đối xứng Hessian</a> của các đạo hàm bậc hai tại điểm này là positive definite. <em>Ví dụ 3:</em> <a href="http://en.wikipedia.org/wiki/Covariance_matrix">ma trận covariance</a> của một random vector (hoặc một tập hợp rất nhiều sample vectors) cũng là positive (semi) definite.</p>
<p>Nếu A là một ma trận symmetric positive definite thì ta có thể hiểu các eigenvectors và eigenvalues theo cách khác. Bất phương trình<br />
<center>
<pre class="brush: latex; title: ; notranslate">x^TAx \leq c</pre>
<p></center><br />
trong đó c là một hằng số dương là một bất phương trình bậc 2 với n biến
<pre class="brush: latex; title: ; notranslate">x_1, \dots, x_n</pre>
<p> (các tọa độ của vector x). Nghiệm của nó là các điểm nằm trong một hình e-líp trong không gian n chiều (<a href="http://en.wikipedia.org/wiki/Ellipsoid">Ellipsoid</a>) mà n trục của ellipsoid chính là hướng của các eigenvectors của A, và chiều dài các trục tỉ lệ nghịch với eigenvalue tương ứng (tỉ lệ với nghịch đảo của căn của eigenvalue). Đây là trực quan hình học phổ biến thứ hai của eigenvectors và eigenvalues.</p>
<p>Trong trường hợp của Principal Component Analysis (PCA) như có bạn đã hỏi trong <a href="http://www.procul.org/blog/2006/09/20/t%c6%b0-duy-tr%e1%bb%abu-t%c6%b0%e1%bb%a3ng/">phần bình luận bài tư  duy trừu tượng</a>, thì ta có thể hiểu nôm na về sự xuất hiện của eigen-vectors/values như  sau. Giả sử ta có một đống các sample vectors (data points) trên một không gian n chiều nào đó. Các tọa độ là exponentially distributed (Gaussian noise chẳng hạn). Thì đa số các vectors này tập trung trong một ellipsoid định nghĩa bởi covariance matrix (positive semi-definite). Trục dài nhất của ellipsoid là trục có variance cao nhất, nghĩa là SNR cao. Trục này chỉ cho ta hướng biến thiên quan trọng nhất của data. PCA lấy các trục của ellipsoid làm hệ cơ sở, sau đó lấy k trục dài nhất làm principal components để biểu diễn data. (Dĩ nhiên, ta phải shift cái mean về gốc tọa độ trước khi đổi hệ cơ sở.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.procul.org/blog/2007/10/23/eigen/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>

