在讀密碼學英文文獻的時候,總是會遇到一些專業辭彙或短語搭配,但是上網查找又查不到,有什麼好辦法呢?

在讀密碼學英文文獻的時候,總是會遇到一些專業辭彙或短語搭配,實在是讀不懂,影響整個文章的理解,但是上網查找又查不到,有什麼好辦法呢?


年底了嘛,各種事情各種多,不過最近手裡急切需要趕出的一個稿件差不多寫完了,可以稍微回答一點問題了,嗯…

==========================================

1. 對英語本身的不熟悉

這個確實只能是多讀多看,似乎沒有什麼特別好的辦法。不過,其實密碼學論文裡面的語句是比較簡單的。如果題主耐著性子,從字面上面讀懂了1-2篇密碼學某個領域的論文,那麼再讀其他人論文的時候,就會發現辭彙什麼的都差不多,只不過每個人的說法都不太一樣而已。所以,首先要養成英文閱讀英文思維的習慣。值得注意的是,英文本身是一門比較注重邏輯性的語言,而中文的邏輯性要求並不高。所以如果仔細品味的話,中文的一些描述很容易產生歧義,而英文的表述一般來說會準確的多。據我師弟們的反映,一般閱讀2-3篇論文以後,就發現看英文文獻和論述變得越來越舒服,反過來中文的材料讀起來會比較費勁。到這個程度,英文思維的鍛煉就差不多了。當然了,這也是解決論文中常見辭彙熟練程度的一個過程。

2. 優先閱讀Self-Contained的論文

密碼學現在已經變成了一門稍顯綜合的學科。現在的密碼學論文中,不僅僅涉及到演算法複雜度、抽象代數、矩陣論、概率論等等的知識,有時還會涉及到諸如圖像處理等前沿學科的知識。在入門的時候,我們有必要閱讀一些Self-Contained的論文,否則一篇論文的閱讀會牽扯到一大堆論文的閱讀,得不償失。當然,這也是為什麼第一篇論文的選擇非常重要的原因了。加入題主開始看密碼學,上來就看"Candidate Multilinear Maps from Ideal Lattices"這類的論文,看一會就瘋掉了… 怎麼判斷這個論文自己能不能看懂呢?一般來說,頂級會議的論文(如CRYPTO,EUROCRYPT,ASIACRYPT)都並非是完整版本,很多背景知識、證明等都被略去了。密碼學家們解決問題的方法是把完整版本的論文發到IACR上面去,也就是前面回答者們推薦的Cryptology ePrint Archive。如果看到一個會議論文,想讀,不妨去IACR下載完整版,然後看一眼完整版論文的長度,如果完整版的長度大約在30頁以下,一般都比較適合閱讀。超過30頁的,要不意味著背景知識非常多,要不意味著證明很繁瑣,或者意味著複雜而詳細的數學分析。其實呢,密碼學領域中一些大牛們的文章是非常和藹可親的,他們盡量把數學相關的內容用很淺顯易懂的語言描述出來,並不增加太多閱讀障礙。這方面的提高,我建議題主看如下幾個人的論文:

  • Dan Boneh早期的論文(約2001年—2005年)。這5年是Dan Boneh大神在密碼學領域奠定大牛地位的5年。Boneh這5年的文章非常淺顯易懂,而且Boneh大神的英文非常好,這裡的好指的是文字準確,清晰,精鍊。如果你覺得Boneh的描述一般,你可以試試OKAMOTO的論文,絕對能讀瘋一個人。有興趣的話,可以讀一讀Boneh的"Hierarchical Identity-Based Encryption with Constant Size Ciphertext"(CRYPTO 2005),寫的真是沒話說。
  • Allison Lewko在博士期間的論文(約2010年—2013年)。Lewko是Waters的學生,而Waters是Boneh的Post-Doc,不得不說貴圈真亂… Waters的論文乍看起來很清楚,但是仔細閱讀的話,裡面的廢話比較多,寫作也遠沒有Boneh好。據稱之所以Waters前期的論文還不錯,那是因為在讀Post-Doc時Boneh幫他改的。Lewko雖然是Waters的學生,但我認為他的描述能力是強於Waters的。Lewko最大的貢獻是,他將一個叫做Dual System的東西從神壇上面拉了下來。就是說,他用非常精確的符號,恰當的描述,使得Dual System成為了大家都能看懂的一個密碼學證明工具。而這個工具的提出者Waters,在2009年那篇論文中並沒有描述的很清楚。推薦閱讀Lewko的"New Techniques for Dual System Encryption and Fully Secure HIBE with Short Ciphertexts"(TCC 2010),以及"Tools for Simulating Features of Composite Order Bilinear Groups in the Prime Order Setting"(EUROCRYPT 2012)。雖然符號很多,但是如果真看懂的話,會覺得寫的很清楚。

當然了,現在還有一些很棒的密碼學家,他們對密碼學做出了很多的貢獻。但是僅從寫作上說,我認為上面兩個人的寫作是值得推崇的。

3. 如果Self-Contained的論文仍有讀不懂的專業辭彙,那麼一定是缺知識

其實一般來說,大牛們會把論文寫得盡量讓不做密碼學的人也能看懂密碼學論文。但是有些東西是密碼學論文中約定俗成的,實在沒辦法解釋。如果仍有讀不懂的專業辭彙,恐怕只能夠閱讀背景文獻,或者用英文來理解英文了。我自己做公鑰密碼學,而且最近1年一直在做加密,我臨時只能舉一些典型的公鑰加密相關的專業辭彙,這些辭彙的意義確實需要背景知識的鋪墊。比如:

  • 安全模型,如Standard Model, Random Oracle Model, Polynomial Time Reduction, Chosen Plaintext Security, Chosen Ciphertext Security, Semantic Security, Lunch Time Attack, Indistinguishability等等.
  • 特定安全模型,如selective security, static security, semi-static security, full/adaptive security, selective opening security等等.

  • 安全性證明,如Challenger, Simulator, Adversary, negligible advantage, secret key query, decryption query.
  • 密碼學工具,如(Prime-Order / Composite-Order) Bilinear Map, Ideal Lattice, Multilinear Map, Dual System, Dual Pairing Vector Space等等

不得不說,有些很基礎很細節的東西,如果細究起來還是值得討論的。比如,什麼叫做negligible advantage,什麼叫做Selective secure without random oracle.這些東西的理解其實是需要討論的,在討論過程中逐漸擴充、完善自己的知識體系,這也是為何我和 @玄星 同學搞了個QQ群,討論密碼學問題的原因了。

3. 可能並不是英語本身的問題,而是定義沒看準確,或者符號沒讀懂

這裡我舉一個近期發生的事情。我最近趕稿的一個論文是有關Identity-Based Broadcast Encryption的。如果了解這個領域的朋友們肯定知道,只要說到IBBE,Delerablée的那篇開創論文"Identity-Based Broadcast Encryption with Constant Size Ciphertexts and Private Keys"是肯定要看的。我現在抽出其中的GDDHE實例定義,題主可以嘗試讀一下,能否理解這個假設呢?

Let mathcal{B} = (p, mathbb{G}_1, mathbb{G}_2, mathbb{G}_T, e) be a bilinear map group system and let f and g be two coprime polynomials with pairwise distinct roots, of respective orders t and n. Let g_0 be a generator of mathbb{G}_1 and h_0 a generator of mathbb{G}_2. Solving the (f, g, F)-	ext{GDDHE} problem consists, given

[egin{array}{*{20}{c}}
  {{g_0},g_0^gamma , ldots g_0^{{gamma ^{t - 1}}},}{g_0^{gamma  cdot fleft( gamma  
ight)},}{g_0^{k cdot gamma  cdot fleft( gamma  
ight)},} \
  {{h_0},h_0^gamma , ldots h_0^{{gamma ^{2n}}},}{}{h_0^{k cdot gleft( gamma  
ight)},}
end{array}]

and T in mathbb{G}_T, in deciding whether T is equal to e(g_0, h_0)^{k cdot f(gamma)} ro to some random element of mathbb{G}_T.

如果看懂了這個定義,我們來理解理解作者後面說的與之相關的定義

[egin{gathered}
  f(X) = prod
olimits_{i = 1}^t {left( {X + {x_i}} 
ight)} ,g(X) = prod
olimits_{i = t + 1}^{t + n} {left( {X + {x_i}} 
ight)}  hfill \
  {f_i}(X) = frac{{f(x)}}{{x + {x_i}}},i in left[ {1,t} 
ight] hfill \
  {g_i}(X) = frac{{g(x)}}{{x + {x_i}}},i in left[ {t + 1,t + n} 
ight] hfill \ 
end{gathered} ]

怎麼樣,前後能對應起來嗎?如果不能,或者覺得公式寫的有問題,可能確實是符號表述的理解不到位,而非英語問題。畢竟,定義中用到的辭彙都比較簡單,專業辭彙如果翻譯成為中文也基本停留在高中階段(比如coprime, pairwise distinct roots)。

4. 實在不行?先考慮如何通過英文,以密碼學研究者來思考問題

密碼學的研究有個切換的過程。以前我是做電磁場的,可見這中間隔了有多遠… 每一個領域都有自己思考問題的方法。如果這個方法沒掌握,可能論文閱讀就是很費勁。怎麼辦呢?我認為比較好的辦法只有兩個,這兩個任選其一即可:(1)看大牛的公開課,比如Dan Boneh的。(2)看入門書籍,要最經典的,大家廣泛推薦的。在此我建議題主看一下 @玄星 同學的回答:求大觸們推薦一些比較系統的關於密碼加密解密的書籍? - 密碼學,應有很大的幫助。

以上~~ 有問題歡迎交流!也歡迎大家一起研究密碼學~


根據個人經驗, 密碼學這塊有些前沿東西各說各話, 自己定義和略微修改的內容不少, 直接用google搜也鮮有結果. 用Scholar搜, 可能也就有一兩篇相關.

我的解決辦法就是這一兩篇多看幾下, 了解下提出的背景, 不要當它是約定俗成的用法, 而當成一個新定義的名詞, 再去挖挖場景, 一般就猜的八九不離十了. 還有, 也可以直接寫信給作者, 說出你自己的理解. 其實, 科研工作者不是特別大牛的話, 回復郵件啥的還是蠻及時的, 偶爾也不排除作者自己也不大清楚, 用的不準確的情況, 我也遇到過幾次.


主要還是搜文獻?dblp 和Cryptology ePrint Archive 都是極好的。


請使用https://www.google.com 如果你訪問不了,那麼請先學會順暢的訪問TA。

另外,請使用http://Google.com in english。


推薦閱讀:

密碼設置的很複雜有用嗎?
RSA 生成公私鑰時質數是怎麼選的?
究竟什麼才是隨機預言機(random oracle)呢?
如何看待雲舒對「可信計算」與「密碼學」的評價?
Sodium密碼學演算法庫手冊(中文版)

TAG:網路安全 | 密碼學 | 信息安全和密碼學 |