| |

密碼學(1):古典密碼

前言:一點廢話

程序猿的博客好像都是用來寫技術文的,只有我一直在鍵政,所以心血來潮想寫技術文試一試。我對 WordPress 加上目前正在使用的前端主題的表現並沒有信心,像代碼高亮之類的操作也無法處理得很好,所以準備先談談比較理論少代碼的密碼學這個主題,這也是個人比較有興趣的一個領域。

古典密碼(Classical cipher),顧名思義,就是歷史上曾使用的一些加密方式,大多已不再使用。不過介紹它們有助於我們了解密碼學的發展歷史以及認識一些基本的加密思路。古典密碼主要有替換式密碼和移項式密碼兩大類。

替換式密碼

替換式密碼(Substitution ciphers),意指明文中的內容通過字母或字母群系統性地替換為其他內容,形成密文。

凱撒密碼

凱撒密碼(Caesar cipher)是最為人熟知的一種替換式密碼,最早出現在 Gallic wars 中用於軍事目的。它還有另一個名字叫 Caesar shift,意思就很明顯了——通過移位(shift)來達成替換的目的。比如一串明文”ABC”,用”D”替代”A”、”E”替代”B”、”F”替代”C”,則會得到密文”DEF”,我們可以理解為,明文「右」移了三位得到了密文。

多說無益,直接看一個例子:

Plain: I like zttofficial
Cipher: L olnh cwwriilfldo

原文中的每個字母都向右移動了三位,從而產生了密文,替換過程遵循下表:

基於此,我們可以用數學方式表達明文與密文之間的關係:

C = E(k, p) = (p + k) mod 26
p = D(k, C) = (C - k) mod 26

凱撒密碼總共只有 25 種移位方法,很容易通過暴力(Brute Force)破解,簡簡單單枚舉所有可能的情況便能得到明文。

單表加密

單表加密(monoalphabetic cipher)嚴格定義上是凱撒密碼的母集,即凱撒密碼也是單表加密的一種。不過此處語境下的單表加密,是指對凱撒密碼的一種改良方式,它對整個明文進行替換,而不是替換逐個字母,這意味著單表加密需要一個與明文相同長度的密鑰。

Plain: if we wish to replace letters
Key: dkvqfibjwpescxhtmyauolrgznwi
Cipher: wi rf rwaj uh yftsdvf sfuufya

雖然排列組合的可能性變得非常多,但仍然是風險很高的一種加密方式,因為在自然語言中一些詞的頻率必然會高於另外的詞,可以通過頻率分析(frequency analysis)進行破解。

維吉尼亞密碼

相較之下,維吉尼亞密碼(Vigenère Cipher)則是多表加密(polyalphabetic cipher)的一個典型例子,可以視之為多個凱撒密碼的組合,以下這個被稱為維吉尼亞方格的表格被應用在這種加密方法中:

此處簡單引用一下維基中使用到的例子:

Plain: I LOVE CRYPTOGRAPHY
Key: W ORDW ORDWORDWORDW
Cipher: E ZFYA QIBLHFJNOGKU

波雷費密碼

波雷費密碼(Playfair cipher)是最為著名的一種多字母加密方法。它將明文視為單個整體的單元放在一幅圖中,並將整個單元轉換為密文圖,此處的「圖」通常是指一個 5×5 的矩陣。

選擇密鑰之後,將密鑰的字母逐個填入該 5×5 的矩陣內,字母不能重複,若遇重複則跳過。填完密鑰之後將剩餘的英文字母依順序填入,因為一共只有 25 個空間,一般會將 Q 去除或將 I 和 J 視作同一字(例子使用後者)。

加密時,應該把所有字母分為兩個一組,如果最後有一個字母落單,則添上 X 作為搭配。然後按以下規則,尋找每兩個字母對應的密文以實現加密:

  1. 如果兩個字母並非同行同列,將四個字母組成矩形,取明文對角處的字母作為密文。
  2. 如果兩個字母在同一橫列,取這兩個字母右方的字母(若字母在最右方則取最左方的字母)。
  3. 如果兩個字母在同一直行,取這兩個字母下方的字母(若字母在最下方則取最上方的字母)。

現在假設明文是”Nice to meet you”,首先兩兩分組,得到”NI CE TO ME ET YO UX”。假設用 Monarchy 一詞作為密鑰,按上述規則填入:

我們就能得到密文:AGELPRCLKLHNVZ。

移項式密碼

移項式密碼不改變明文本身,而是依照某種規則改變明文中的排列。

中國式密碼

中國式密碼(Chinese cipher)的規則是將明文按從右往左、上下交替寫出一段新的字母排列。例如明文是:THE DOG RAN FAR,則按此規則可以寫為:

 R R G T
 A A O H  
 F N D E  

密文則按照慣用的從左往右、從上往下的閲讀順序寫作:RRGT AAOH FNDE。

下一篇:密碼學(2): Modern Block Ciphers

Similar Posts

  • |

    「反韓憤青」重新審視了K-pop

    我也許不算是一名典型的「反韓憤青」。 但我一定和網上那些不屑於韓劇,幾乎沒看過韓國電影,從來不聽韓語歌,常常發表諸如「中日友好靠韓國」言論,一提起韓國就露出鄙夷眼神的人,是一丘之貉。 我不玩電競遊戲,對韓國比較出名的電競圈也是一無所知。甚至我在電子產品界也很討厭韓國產品,是屬於常把三喪掛在嘴邊的三星黑。 不過自打「我佛了」(我是真的佛了)以後,心態變得平靜了,也對這些無聊的紛爭失去了興趣,於是好多東西有了新的認知。就像以前我常諷刺無腦反日時所說一樣,這種人送他們兩張往返日本的機票,樂得屁顛屁顛就去旅遊了。現在告訴我韓國有什麼活動,我是很樂意去的。 即使這麼說,現狀依舊是並沒受過韓國文化輸出的輻射的我,對韓國的認識是非常淺的。我在以前曾告訴過別人我最喜歡的韓國人是 ESTi,小時候最喜歡的網遊就是A社的 Latale,ESTi 是主要作曲人,他的作品至今還常常被我拿來回味。推特和 ins 上我唯一關注的韓國人是 yurisa,畢竟美少女是不分國界的啊!偶爾會在油管聽一聽 J.Fla 的翻唱歌曲。以上大概就是我第一時刻能想到的稍微與 K-pop 有一點點關係的韓國人的全部印象。 說起來有好幾個星期 Oricon 上的第一位都是 Twice,防彈少年團也經常出現在榜單上。不過一般我也就附和一下評論中的「抗韓失敗」,然後選擇性地略過這些歌。這幾天突然又重新對周子瑜產生了興趣, 畢竟美少女是不分國界的啊! 就想著去聽一聽 Twice 的歌,於是連續播放了二十幾部 MV。另外是朋友推薦的 (G)I-DLE 和 IU,各看了十來部 MV。這就是近來幾天的主要瀏覽內容了,量肯定不夠,不過還是說說基本看法。因為本來是 pop,不會有很多嚴格的標準,所以我基本上會去拿他們同 jpop 或者 cpop 做個對比,而不是下主觀斷言。 常有人以韓國人長得都一樣這一點來黑韓國的整容,不過十幾部 MV 看下來給我最直觀的感受就是,我真的臉盲了……看了十幾部還是分不清誰是誰,有點區別又說不出來,也許是有看得不夠多的原因,但對比之下,還是沒有像日團一樣有極高辨識度,飛鳥白石我都是第一遍看了就沒忘過,但在韓團缺乏這樣的辨識度。整容整成一樣肯定是無稽之談,不過個人認為韓團妝容風格是趨於一致性的,這姑且是原因之一。 說到長相,由此衍生的一個很重要的點是,高顏值催生了大量的顏粉,有些低素質的顏粉的行為恰恰是把 kpop 名聲搞壞或者是令我生厭的原因所在。而單單對這些狂熱顏粉,也沒辦法繼續過渡到下文,很帥,很帥,我承認,大家散了吧。 MV 本身的拍攝質量不得不說非常好,電影級別的製作名不虛傳,也與韓國本身作為一個新晉先進國的消費市場水平吻合。不過敘事的 MV 似乎比較少,我瀏覽量有偏差,這只是大體感受。但好的 MV 理應配合一個好的故事並且切合音樂,否則有點花瓶之意,我見到的少有的幾部敘事 MV 還是符合我的標準,算得上優秀作品。 再者拋開敘事,談談主流的舞蹈內容。我以前認為 kpop 的舞蹈充滿性暗示,是很不願意去看的。後來看有人把韓國 mv 中的舞蹈稱之為性感舞蹈,我也改用這個比較中性的名詞。就功底來說動作是很有力的,團隊協調規整,沒得可黑。而所謂賣肉在近幾年中也有所改變,我沒去了解也自然沒跟上時代,只能說明或多或少存在過。而性感舞蹈這詞的運用的目的,更像是為了強調在氣質和舞臺效果等方面的體現,這從字面上就跟純屬搔首弄姿和以穿得少吸引眼球的做法劃清界限。而舞臺效果恰恰是 kpop 粉絲很看重的一點(聽朋友提到,補充於此),追演唱會的粉絲很大一部分就是為了這個舞臺效果,很多時候韓舞的魅力能夠體現在一個細微動作上,這樣一來也可以解釋上一段 MV…

  • |

    PTE Core Guide 2026: CLB Score Chart, Every Question Type, Tips & Resources

    Last updated: September 2026. This guide was first published in 2024, after I sat PTE Core twice and used my score in a provincial nomination application. For this update I re-checked the CLB score chart, the PGWP language rules and provincial recognition, and corrected what had gone stale. The question-type tips are my original test…

  • |

    心得

    1. 為什麼消磨不掉?(4C) 2. 言多必失 QQ 那個火花標誌就是一個遊戲,所以我決定直接棄掉這種東西。已換用 TIM,一個 IM 本應簡潔。 即本不需要成天膩在一起(p.s. 膩 ≠ 甜,point 3 細講) 從 Common Goals 一點就可以得知自己要有自己的事情做。一定要有事可做。 和 Stanley 在自己期盼的要求中的「有B數」一個道理,不過這個表述不太好聽,此處意思到位即可。 避免日常是一個很重要的因素,因為它會快速消磨雙方的興趣。 我以前就會反駁,不談日常談什麼?難道還談學術? 自然是沒人讓你談學術,但比起談一些無關緊要甚至難以回答的日常,反倒各自做事為好。言多必失,根本不需膩在一起。 知道要留出空間了,就已經進入一個新的階段。 前晚在 CCM 門口想到這樣一個問題,是區分異地和不異地時講日常的影響。 設想一個男孩子在等他家妹子下課,然後妹子到的時候「無意」說了一句「惱人,今天老師又拖堂了」。 這樣一種情景中,所謂的「日常」並不擊中要害。 但異地者要是講這樣日常,便是在消磨雙方的興趣。或者一方面也跟 Common Connections 有關,此教授的角色我壓根不知道是誰,你對我講完全沒用。但前一種情況下,男方可能會「無意」回答「我也上過那個老師的課,是這樣子的」或「每週這節課都這樣吧?早就習慣了。(笑)」,但依舊是不擊中要害的對話。而作為有其他媒介代替直接交流的異地,就得避免這個問題。 曾經逼乎見過這樣一個女性視角的回答:「就是一棵歪了脖子的樹,也想拍下來發給你。」是否聽起來像童話而不像我的理論了呢?關鍵在於這個東西具有新鮮度。如果你明天還是說這個,後天依然說這個,那就是故意找話題,已經走遠了。 所謂言多必失,預防的本就是消磨新鮮度,消磨興趣。 這東西不需要言多來維持,當你在思考該怎麼維持的時候,就已經不對了。 3. 甜 單獨列出,是因為這曾是我抓錯的一個點。 某種意義上講,「甜」本身並不存在。會把這種提到表層的詞拿出來講,就真的很 naive 了。 不管是自稱「和小年輕有代溝的老阿姨」的我姐,還是 Stanley,都在其言論中說過類似的話。 所以即使膩在一起,也不能營造「甜」的效果,反而增加言多必失的風險,違背「有B數」原則。 曾有人提及「他要找一個不是初戀的妹子,被前男友甜膩過,這樣才會心中有數」,亦是同樣的觀點 「數」在這裡指的是即將要對事物進行處理的辦法或是對已經發生的事件要採取的對策。 想來我實在是沒數。 4. 牽掛 在一些教科書式的範本中,常常會提到「安全感」「陪伴」這類詞彙。 但有時就是得因地制宜,因人而異。 她什麼都不缺。我討論需求問題,想到就是有一份牽掛。甚至可以將此物類比為信仰,言過了。…

  • |

    共產年代遺產:三線建設與我的童年

    填一個之前留的坑——有關三線建設環境下,我的童年背景。 突然想談這件事還有一個契機,是看了最近很熱門的《你好,李煥英》這部電影,電影本身我就不評頭論足了,留下最深的印象就是電影中的場景特徵過於鮮明,以至於一眼就能看出是拍攝於一個三線廠——果不其然,取景點是位於襄陽市的湖北衛東機械化有限公司,正是屬於三線建設的遺產。 三線建設是什麼呢?說白了就是北部灣事件之後越戰升溫,中蘇關係亦交惡,中國感覺很可能要開戰了,於是重要的工業、國防、科技等企業,趕緊從沿海往內陸搬,配套興起的新基建也都放置在三線地區。「三線」則是一個軍事地理概念,對應沿海、近沿海的「一線」「二線」,和今天口頭所說的西部地區大致吻合。 基於這樣的背景,三線建設中軍工廠或是為軍事配套的企業,佔了絕大多數。包括我成長的廠區,以前也是一個軍工廠。這些軍工廠在那個年代往往都使用代號指稱,很多正式的公司名字都是後來才有的,詳見這一份中國軍工廠代號大全。這些代號後來慢慢演變為了地名,比如上次我就是看見了「這裡曾是 208 的庫房和 845 的臨時職工宿舍」這樣的文字,頓覺饒有趣味,也促使我想整理一下三線遺產怎樣留存在我的生活中的各個細節。我相信不熟悉背景的人,比如我現在港臺的朋友要是看見這種話,一定是一頭霧水。 同時為了軍事的隱蔽性,廠址往往要選擇靠山杳無人煙的地方,當時就有所謂「分散、隱蔽、靠山」的原則,所以這些三線遺產,也並不可能在當時西部大城市的市中心,而是在轄區內的一些偏僻角落。從上面的代號大全也能看出,像是分布在重慶的工廠,也往往都是江津、合川等地,離市中心有上一段距離,甚至離縣城都很遠,實際廠址一定是個偏僻的小地方——今天看來有些廠址也許不太偏僻,只是因為中國城市擴張得確實太快了。 回望那個共產年代,極為重要的一個口號就是「勞動最光榮」,工人階級算得上共產年代的小康階級,當時的平民們也確實以能夠成為一名工人為榮,工人的生活質量對比當時的農民階級確實也好很多。電影中電視播放的臺詞,足夠讓我高呼太有共產那味了。工人階級也迅速擴大,我相信這應該是很多人的集體回憶,並不一定要是三線廠,工廠遍布全國各地。 電影中80年代,對我來說都太久遠了,我想我還算得上叫年輕。電影中的情節譬如供銷社還在運營,買電視需要票,這些事件我從未經歷過,所以真真正正三線的氛圍,離我很遠很遠,我只能談「遺產」。80年代之後,因為改開等因素,三線建設其實已經走向結束了,這些諸多的軍工廠開始了所謂的「軍轉民」,我成長的廠區還算轉型成功了,現在是當地一個普普通通的製造業工廠。而很多沒有轉型成功的三線企業直接倒閉,也引發了不小的失業潮。90年代全國範圍內的「工人下崗」潮,其成因複雜很多,三線建設的結束造成崗位變少,我認為怎麼也算得上其中的一個小催化劑。 我想因此,我也幸運得多。因為那個共產年代沒有那麼美好,從一些三線建設的影視作品中,也能看出拍攝三線建設題材的導演思考和反應的是那個年代的衝突和矛盾,比如王小帥的三線建設三部曲。很幸運,我避開了那個年代,只是不再有資格去評論真正的三線建設是怎樣,而只能談談它的遺產,如何潛移默化地融入在我的生命當中。 那個年代最重要的特徵就是,廠區本身即是一個社會,即使到我童年的時候,也沒有改變很多。這句話的意思是,廠區內所有配套機構設施一應俱全,跟一個正常的城鎮沒有任何區別,更甚者,可能專門會為一個大廠設立單獨的行政區,基本算是特區,我那兒便是如此。我出生的醫院是以前職工醫院,我上的幼兒園、小學,其實都是以前廠區的職工子弟學校,只不過軍轉民之後,這些機構也都移交給了政府部門,掛上了像是人民醫院、實驗小學的其他名字。前幾年我都仍能在當地政府的公文中讀到像是「某某路幾十米的路燈,轉交給市政部門管理」這樣的事項,在一廠獨大的年代,所有的這些基礎設施,都是為工廠所有的。更多的像是過年時的遊園等活動,都是由工廠組織的,有種工廠實質等於地方政府的感覺,那時候和朋友一起玩,其樂融融。也難怪人們常說年味淡了,我已經很多年沒聽說過春節遊園為何物了,也不再有人會陪我一起去參加。 大家都住在家屬院,也是極具共鳴的回憶。網上常說高中同學往往最後才能成為人生中最好的朋友,說來我最好的朋友卻都是小學同學。因為大家從小都認識,住哪棟樓哪一層都瞭如指掌,每年過年回家時有很大機會碰面,乃至於這個小社會裡父母也互相認識,常常還會餐桌上提一嘴他們家怎麼樣了,想淡忘都不容易。不過隨著大廠的衰落,大家紛紛都搬走了,我家大概也是那個時候遷往了主城區,說起來中國城市化進程的大躍進和光速擴張,我也是參與者之一。現在再回那個廠區小城,除了過年以外,幾乎只剩下退休的老年人,一片蕭條之景。所以我在《Into The Tokyo》那篇文章提到的共鳴點,也正是這個:一塊地區由於大國企的衰落而變得十分蕭條,是充斥於全國各地的時代洪流。 三線建設大概還帶來了豐富的外來人口,重慶是一座移民城市,三線建設是歷史中一次大的移民潮。重慶也是一座本土文化強勢的城市,直到今天街上人談話也一定不是用的普通話,但小時候在我那個山旮旯,樓下小賣部阿姨竟然是講著普通話的北方人,可見當時外來人口真的不少。我很多小學同學的爺爺輩都是吳語區的人,大概也是當年奉旨西進的。小時候去他們家作客,也是對我們講的普通話,顯然是不會重慶話的,不過他們的後代居然都沒人再說吳語而全是講重慶話,也算是一個很有趣也值得深思的現象了。維基提及三線建設形成的重慶吳語很大程度上影響了重慶市區的語言,我倒是沒有明顯的感覺,我主觀上的感受就是傳一代竟然就傳丟了,也許一些詞彙的變化,就是學者口中所謂的影響之一吧。(BTW講到語言話題職業病就犯了,想多說一點,在討論頁也看見有維基人質疑吳語在當地的影響力,雖然也是基於經驗論的,但似乎這個結論確實缺乏更深一步的研究成果佐證。) 談及遺產,也應該談談物質方面吧。如前文所述,一些工廠仍在運作,一些工廠已經荒廢。有些荒廢的工廠近年來被文創熱席捲,搞成了一個個文創園區。紅磚廠房和牆體上的大白字是他們的標配,我記得在我故鄉那最老的幾棟60年代的廠房便是這樣,牆體上赫然寫有「毛主席萬歲」幾個大字,那大概就是一瞬間就能把我拉回共產年代的建築。那幾棟廠房甚至仍在投用,但一般居民已經習慣把五字真言當作地點的代稱而不是其本身的名字,他們要是想提到那個地方,就會說「毛主席萬歲那兒」,要說真名應該是某某車間吧,雖然我也不清楚那到底是個什麼車間。 前幾年有關 404 廠的消息浮現水面,真的就是 404 not found 的404,那是一個核工業相關的廠區,所以一度處於保密狀態。當時我在知乎上看到關於 404 的討論,巨大的興趣油然而生,借用這篇《我在404長大》做一個擴展閲讀。有機會真的很想去那個地方走一走,其實從照片中看來,那兒普通得不能太普通,一模一樣的共產小平樓,並無任何新鮮感。不過我想像著若是踏上那些小路,腦中對於冷戰時期的認知、以及世界局勢幾十年來的走馬燈都會一瞬閃過的樣子,便覺滿足。景觀是最不重要的一環,要的就是那種神秘感,近年來紛紛湧入北韓的外國遊客大概也是這種想法吧,我不認為那個地方有什麼壯麗山河或者別致的城市設計,有一種奇妙的感受足矣。 三線建設已經遠去,政府方面也在想如何利用這些物質上的遺產,我屢屢能看見關於如何傳承和保護三線建設遺產的文章,我們那兒聽說地方政府的策略是想建成一個博物館和工業旅遊園區。三線建設在很多國外學者的研究結論中,都是不成功的,倉促又盲目。積極意義大概只有縮小了東西差距,這沒說錯,重慶作為戰時首都的遺產早已所剩無幾,它真正的工業基礎其實是三線建設時期拉上去的。我還能看見我成長的工廠名字就寫在三線建設詞條下的部分建設成就中一欄,避免實名上網,就不點名道姓了。我不懷念那個年代,未曾經歷過真正的三線建設過程,更不喜歡 Communism,但也並非意味著我要去排斥它,它的遺產確確實實是我生命的一部分,有很多獨特的回憶——不乏美好的,有很多值得斟酌和品味的細節,有待娓娓道來……

Leave a Reply

Your email address will not be published. Required fields are marked *