首頁>Club>
為什麼計算機科學如密碼學喜歡用Alice和Bob舉栗子?
10
回覆列表
  • 1 # 蟲子咬的洞

    我們舉例子不也是什麼張三啊,小明,小李嗎,都是一樣的,而且Bob,Tom,這些名字具有時代特徵,相當於我們的翠花等一些名字,現在的人也很少起這樣的名字,密碼學誕生也已經很多年了,所以舉的例子的名字也是很早的

  • 2 # byKnight

    Alice 和 Bob 的故事

    沒錯,這篇內容寫的就是上一篇開頭提到的那個“極其無聊的問題”。本來不打算寫的,既然研究過,還是整理出來紀念一下。

    不論是看艱深的論文,還是看 那 些 geek 漫畫,總能看到 Alice 和 Bob 這兩個名字出現。已經記不起來第一次見到這對名字是在哪裡了,總之從一開始就默默接受了這個慣例,直到前段時間才突然好奇起來,這兩個人到底有什麼來頭才能在這麼多地方做男女主角,這個慣例是從什麼年代才開始興起的呢?

    形影不離的學術情侶

    影視作品裡出現過的情侶叫熒屏情侶,那麼 Alice 和 Bob 就應該稱作學術情侶了。很多學術領域會用 Alice 和 Bob 做主人公,其中最經典最被人熟知的還是要數計算機安全,特別是密碼學。如果沒有 Alice 和 Bob,在講解密碼協議的時候,文字描述大約會變成這樣:

    A 與某個聲稱自己是 B 的人通訊。為了確保無誤,A 必須先看看 B 是否知道密碼 K。因此 A 向 B 傳送了一段隨機的 X,B 用 K 將 X 加密後得到 Y 並將 Y 回傳給 A。

    在這樣的一段話裡,協議雙方看上去像一段隨機碼一樣冰冷單薄。而引入 Alice 和 Bob 代替 A 和 B,協議雙方一下被賦予了人格,變得立體起來,讀起來很容易有畫面感,通訊過程也隨之變得更有劇情,更易理解。正因為如此,Alice 和 Bob 成為了學術討論中頻繁現身的一對好夥伴,課堂上、教科書裡、論文中…在他們的幫助下,一批又一批學生理解了新的知識,一個又一個新思路得到傳播,有人甚至在論文中向 Alice 和 Bob 致謝。

    Alice 和 Bob 的誕生

    其實 Alice 和 Bob 的誕生遠沒有我預想的那麼久遠,算起來他們也就比我大十歲,是七五後。還記得 RSA 演算法是如何提出的嗎,經歷了一番探究,某夜突然靈機一動的 RSA 之 R,Ron Rivest,徹夜寫了那篇著名的論文闡述 RSA 演算法的思想,而我們的 Alice 和 Bob 首次登臺就是在那裡。Rivest 不僅是 RSA 之父,也是 Alice 和 Bob 之父。就像他們沒有料到 RSA 演算法會得到如此廣泛的應用一樣,他也完全沒有料到 Alice 和 Bob 成為了行業慣例,知名度甚至超過了自己。

    Alice 和 Bob 的首登場 via

    在一次採訪中,Rivest 回憶起當初創造 Alice 和 Bob的情景。Alice 和 Bob 的誕生的確是為了避免在描述中使用 A 和 B,又因為他們分別以 A、B 開頭,所以在算式中,仍然可以簡潔地用 EA、EB 這樣的形式區分。而建立一男一女兩個角色,並不是為了給讀者什麼編羅曼史的機會(事實上無法避免地,很多人都這麼做了),而是為了在描述時,可以方便地用她(she)和他(he)來指代而不至於混淆。至於為什麼會是 Alice 和 Bob 這兩個名字跳了出來,Rivest 自己猜測可能因為自己比較痴迷《愛麗絲夢遊仙境》。

    Alice、Bob 和他們的朋友們

    RSA 演算法的論文發表後,掀起了用 Alice 和 Bob 進行講解的熱潮。在後續發表和出版的文字中,人們陸續開始學著用 Alice 和 Bob 代替 A 和 B,其中最為著名的便是 Bruce Schneier 的《應用密碼學》。Schneier 顯然非常推崇這種作法,以至於在書中,即便是講述 RSA 演算法誕生前的各種協議和密碼演算法,他也用到了 Alice 和 Bob。由於有些協議情況複雜,Alice 和 Bob 兩個人已經不能滿足劇情,Schneier 在書的最開始給出了一個長長的演員表,除了發起和響應的 Alice 和 Bob,還有第三、四方 Carol 和 Dave,以及臭名昭著的竊聽者 Eve,更為惡劣的主動攻擊者 Mallory 等等。

    一個有趣的細節是,在《Secret History: The Story of Cryptology》一書中提到了一個變動,主動攻擊者的名字從第一版的 Mallet 改成了第二版的 Mallory。儘管如此,Mallet 這個名字還是記錄在密碼學歷史中,書中說,還有一個美國密碼協會(American Cryptogram Association)的成員由此受啟發,以 Mallet 做筆名。

    糾纏不清的一對冤家

    慢慢地 Alice 和 Bob 的形象豐富起來,關係也就變得複雜起來,變成了一對糾纏不清的冤家。兩個人之間並沒有看上去那麼親密,雙方都不能信任對方,交流充滿了猜疑和防範。然而兩人卻又是那麼的密不可分,幾乎永遠成雙成對出現,不管發生了什麼,Alice 還總是想方設法地向 Bob 傳送訊息,Bob 則總是小心翼翼地接受它。Schneier 總結說,Alice 和 Bob 共享過秘密,嘗試過戀愛、結婚,甚至離婚。任何一件需要安全進行的事,Alice 和 Bob 都一定曾在某篇密碼學文章中做過。

    密碼學家 John Gordon 在他著名的餐後演說中,形象地描述出這其中的糾結:

    多數人處於 Alice 的境地時會選擇放棄,但 Alice 沒有。她有著驚人的勇氣。面對各種詭異的情況,充滿噪聲的電話線、稅務機關和秘密警察的竊聽,Alice 還是樂意去嘗試和一個她並不信任、也聽不清、還極有可能被別人冒充的人通訊,來進行退稅欺詐甚至策劃政變,同時還要儘可能地減少電話費。

    而編碼學家則是一群認為 Alice 沒瘋的人。

    這是 1984 年的演講,Gordon 已經將 Alice 和 Bob 這對誕生不到十年的名字稱作“longstanding tradition”了。不知道應該說是不出所料還是出人意料,這段通俗非正式的演講一下走紅。特別是文中八卦 Alice 和 Bob 的部分,更是被四處摘錄。Gordon 自嘲地說,現在沒人知道他在密碼學上的成就(強素數概念的提出),提起他都是說“那個八卦 Alice 和 Bob 的傢伙”。他幾次嘗試把演講稿從網頁上撤下來,但都在讀者的強烈抗議下重新放出。又是一個被 Alice 和 Bob 搶去風頭的大師。其實這篇演講相當有趣,除了 Alice 和 Bob 的問題,還用非常通俗的語言解釋了編碼學及其各個分支的基本概念,有興趣可以進一步閱讀。

    結局?

    Alice 和 Bob 最終會如何發展呢?他們會不會退休,會不會被新人代替?

    曾有印度學者提出用印度神話故事中的 Sita 和 Rama 代替 Alice 和 Bob(via),Sita 正好簡寫為 S,也就是 Sender,Rama 則代表 Receiver,同時這些人物所在的神話故事情節也正好是 Sita 要給 Rama 傳送訊息。這種思路類似於在互動式證明系統中,利用 Arthur(亞瑟王)和 Merlin(梅林)的歷史角色來闡述和命名的方式。

    但顯然這種精心策劃的解決方案不能撼動不經意興起的慣例,我們的 Alice 和 Bob 還是會作為這個領域的傳統傳承下去,短期不會被其他名字代替。祝福他們會終成眷屬,結束艱難的通訊,幸福地生活在一起,直到永遠。

  • 中秋節和大豐收的關聯?
  • 糖尿病患者運動,應注意哪些問題?