<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>數學、密碼學與量子 on kenji.blog</title><link>http://kenji.blog/zh-tw/categories/%E6%95%B8%E5%AD%B8%E5%AF%86%E7%A2%BC%E5%AD%B8%E8%88%87%E9%87%8F%E5%AD%90/</link><description>Recent content in 數學、密碼學與量子 on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>zh-tw</language><copyright>kenjinote</copyright><lastBuildDate>Wed, 16 Apr 2025 23:53:08 +0900</lastBuildDate><atom:link href="http://kenji.blog/zh-tw/categories/%E6%95%B8%E5%AD%B8%E5%AF%86%E7%A2%BC%E5%AD%B8%E8%88%87%E9%87%8F%E5%AD%90/index.xml" rel="self" type="application/rss+xml"/><item><title>柯克霍夫原則</title><link>http://kenji.blog/zh-tw/p/%E6%9F%AF%E5%85%8B%E9%9C%8D%E5%A4%AB%E5%8E%9F%E5%89%87/</link><pubDate>Wed, 16 Apr 2025 23:53:08 +0900</pubDate><guid>http://kenji.blog/zh-tw/p/%E6%9F%AF%E5%85%8B%E9%9C%8D%E5%A4%AB%E5%8E%9F%E5%89%87/</guid><description>&lt;img src="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_2.png" alt="Featured image of post 柯克霍夫原則" />&lt;h1 id="柯克霍夫原則">&amp;ldquo;柯克霍夫原則&amp;rdquo;
&lt;/h1>&lt;hr>
&lt;p>你好！&lt;/p>
&lt;p>今天我想談談一個有點有趣、實際上非常重要的東西，叫做「柯克霍夫原則」。&lt;/p>
&lt;p>啊，等等。&lt;br>
有些人可能會想：「我從來沒有聽過『柯克霍夫原則』，聽起來好像很難懂……」。請放心，這篇文章正是寫給有這種想法的你讀的。&lt;/p>
&lt;hr>
&lt;h2 id="什麼是安全的密碼">什麼是「安全的密碼」？
&lt;/h2>&lt;p>例如，假設有人說：「這個保險箱，只有知道秘密開啟方法的人才能打開。」&lt;/p>
&lt;p>乍看之下，這似乎非常安全，對吧？&lt;br>
但是，仔細想想，這不是有點令人不安嗎？&lt;/p>
&lt;p>像是「如果那個秘密被發現了，不就完蛋了？」&lt;/p>
&lt;p>事實上，這正是柯克霍夫原則出現的契機。&lt;/p>
&lt;hr>
&lt;h2 id="到底什麼是柯克霍夫原則">到底什麼是「柯克霍夫原則」？
&lt;/h2>&lt;p>簡單來說，這是一種概念：&lt;/p>
&lt;p>&lt;strong>「密碼應該在機制被公開的情況下依然安全。」&lt;/strong>&lt;/p>
&lt;p>更進一步說，「安全性應該只依賴『秘密的鑰匙』，密碼的方法本身公開也沒關係！」&lt;/p>
&lt;p>反過來說，「只把密碼的演算法（機制）保密的狀態，會被認為是可靠性很低的。」&lt;/p>
&lt;hr>
&lt;h2 id="機制保密就很安全可能有點危險">「機制保密就很安全」可能有點危險
&lt;/h2>&lt;p>這是常見的想法：&lt;/p>
&lt;blockquote>
&lt;p>「這個應用程式的內部沒有給任何人看過，所以安全性沒問題」&lt;/p>
&lt;/blockquote>
&lt;p>我了解這種感覺。&lt;br>
但這就等於在說：「因為沒有人看，所以不會發現缺點，沒問題的。」&lt;/p>
&lt;p>實際上，這種「沒有人看」的狀態本身可能就會成為一種風險。&lt;/p>
&lt;hr>
&lt;h2 id="但是為什麼這個原則這麼重要">但是，為什麼這個原則這麼重要？
&lt;/h2>&lt;p>因為，如果有人取得了這個機制，並且可以輕易解碼，那這個密碼就沒用了。&lt;/p>
&lt;p>打個比方，就像是一扇門的鎖機制非常複雜，但實際上卻可以用百元商店打的備用鑰匙打開。&lt;/p>
&lt;p>重要的不是「鑰匙是秘密的所以沒問題」，而是「即使公開所有的機制，沒有正確的鑰匙也打不開」。&lt;/p>
&lt;hr>
&lt;h2 id="但是這樣不會有點可怕嗎的心情">「但是，這樣不會有點可怕嗎？」的心情
&lt;/h2>&lt;p>很多人在這裡會感到不安：&lt;/p>
&lt;blockquote>
&lt;p>「把所有的機制都公開，不會有點可怕嗎？」&lt;/p>
&lt;/blockquote>
&lt;p>我懂。&lt;br>
因為你會想：「如果我把內部全部公開，不會被模仿或惡意利用嗎？」&lt;/p>
&lt;p>但這正是柯克霍夫原則的核心。&lt;br>
「即使讓人看到內部也不會崩潰的強度」才是真正的安全。&lt;/p>
&lt;hr>
&lt;h2 id="話雖如此一開始確實需要一點勇氣">話雖如此，一開始確實需要一點勇氣
&lt;/h2>&lt;p>站在開發者的角度來看，似乎「公開機制 = 暴露弱點」，這當然會讓人感到緊張。&lt;/p>
&lt;p>但是請想想看。&lt;/p>
&lt;p>能夠大方展示機制並說出「任何人都可以來驗證」的東西，結果反而更令人信賴。&lt;/p>
&lt;p>這跟人際關係很像。&lt;/p>
&lt;p>「在展現真實自我後還能好好相處的人」，終究是最讓人安心的。&lt;/p>
&lt;hr>
&lt;h2 id="總而言之">總而言之
&lt;/h2>&lt;p>柯克霍夫原則聽起來可能有點理論化，但本質上非常簡單。&lt;/p>
&lt;p>其實就是 &lt;strong>「讓我們建立一個不管給誰看都不會崩壞的機制」&lt;/strong> 而已。&lt;/p>
&lt;p>與其保持表面的秘密，不如有良好的設計。&lt;br>
與其寫出不想讓任何人看的程式碼，不如寫出展示給別人看也不會覺得丟臉的程式碼。&lt;/p>
&lt;p>或許，未來的時代會越來越需要這種「強度」。&lt;/p>
&lt;hr>
&lt;p>非常感謝您的閱讀！&lt;/p>
&lt;p>雖然安全性的話題有點困難，但也有些部分與「人際關係」或「日常的安心感」相連呢。&lt;br>
不用感到有壓力，只要一點一點地去了解，相信一定會有好事的。&lt;/p>
&lt;hr>
&lt;p>&lt;img src="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img.png"
width="189"
height="282"
srcset="http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_hu715032b7fe5224f655ebb7d29b676305_77325_480x0_resize_box_3.png 480w, http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_hu715032b7fe5224f655ebb7d29b676305_77325_1024x0_resize_box_3.png 1024w"
loading="lazy"
alt="Auguste Kerckhoffs"
class="gallery-image"
data-flex-grow="67"
data-flex-basis="160px"
>&lt;/p></description></item><item><title>蒙提霍爾問題</title><link>http://kenji.blog/zh-tw/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/</link><pubDate>Sun, 31 Mar 2024 23:41:51 +0900</pubDate><guid>http://kenji.blog/zh-tw/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/</guid><description>&lt;img src="http://kenji.blog/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/img_1.png" alt="Featured image of post 蒙提霍爾問題" />&lt;h2 id="什麼是蒙提霍爾問題">什麼是蒙提霍爾問題
&lt;/h2>&lt;p>蒙提霍爾問題是美國電視節目「Let&amp;rsquo;s Make a Deal」中進行的一個遊戲問題，內容如下：&lt;/p>
&lt;p>前提條件：3 扇門中有一扇後面有獎品，其餘 2 扇門後面是空的（銘謝惠顧）。&lt;/p>
&lt;ol>
&lt;li>參賽者從 3 扇門中選擇一扇。&lt;/li>
&lt;li>主持人在參賽者未選擇的 2 扇門中，打開一扇沒有獎品的門。&lt;/li>
&lt;li>詢問參賽者是否要改變選擇的門。&lt;/li>
&lt;/ol>
&lt;p>此問題在於探討參賽者換門比較好，還是不換門比較好。&lt;/p>
&lt;h2 id="解法">解法
&lt;/h2>&lt;p>蒙提霍爾問題的解法如下：&lt;/p>
&lt;ol>
&lt;li>
&lt;p>參賽者不改變最初選擇的門&lt;/p>
&lt;ul>
&lt;li>中獎機率：1/3&lt;/li>
&lt;li>沒中獎機率：2/3&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>主持人打開沒有獎品的門後&lt;/p>
&lt;ul>
&lt;li>若不換門，中獎機率：1/3（與 1. 的中獎機率相同）&lt;/li>
&lt;li>若換門，中獎機率：2/3（1. 中未中獎的機率總和）&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;p>因此，參賽者改變選擇的門，中獎的機率會比較高。&lt;/p>
&lt;h2 id="參考">參考
&lt;/h2>&lt;ul>
&lt;li>維基百科 &lt;a class="link" href="https://en.wikipedia.org/wiki/Monty_Hall_problem" target="_blank" rel="noopener"
>Monty Hall problem&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>