#cryptography

LIVE
IBM 5 in 5: Lattice Cryptography will outwit hackersThe scale and sophistication of cyber-attacks es

IBM 5 in 5: Lattice Cryptography will outwit hackers

The scale and sophistication of cyber-attacks escalates every year. But within the next five years, a new security method called lattice cryptography will help create an intractable barrier for black hats. The key is hiding data inside complex math problems called lattices, designed to protect data from the threat of crypto-breaking quantum computers. Current encryption protocols are being outpaced by advances in computing technology, but with lattice cryptography, we’re working to get ahead of the problem. Hackers gonna hack—but we’re coming prepared.

See how lattice cryptography will future-proof data encryption within five years ->


Post link
A brief history of GnuPG: vital to online security but free and underfunded Most people have never h

A brief history of GnuPG: vital to online security but free and underfunded

Most people have never heard of the software that makes up the machinery of the internet. Outside developer circles, its authors receive little reward for their efforts, in terms of either money or public recognition.

One example is the encryption software GNU Privacy Guard (also known as GnuPG and GPG), and its authors are regularly forced to fundraise to continue the project.

GnuPG is part of the GNU collection of free and open source software, but its story is an interesting one, and it begins with software engineer Phil Zimmermann.

Keep reading


Post link

youzicha:

discoursedrome:

transgenderer:

transgenderer:

i wonder what it’s like, psychologically, to be a humanities academic. i feel like…in STEM, theres a clear understanding that even if youre not working on something with practical applications, pure STEM definitely leads to practical applications *sometimes*, often enough that society as a whole maybe net-benefits, on a material level, from funding it. but if youre studying literature or history or whatever, its just…fun? like thats the point of it. its fun. which isnt bad ofc. fun things are good! but i guess i would feel like i was…idk, getting away with something, something illicit

@youzichasaid:

When was the last time pure math led to society-benefitting practical applications though? I feel the whole field is coasting on its achievements from the 19th century and earlier…

hmm, yeah i mean thats a fair point, im not sure how much of that is like, an actual move towards less practical pure math and how much is that like. new modern engineering is based on really abstruse physics and maybe therefore based on obscure math? idk. lcd’s or something

the whole “pure math has no practical applications” discourse was ruined by RSA and later variations on public-key cryptography, now pure math is economically and technologically crucial. ghastly

Was it really though? The original RSA papersays

The Underlying Mathematics

We demonstrate the correctness of the deciphering algorithm using an identity due to Euler and Fermat

which was proved in 1640…

Like, maybe there’s somecontribution from 20th century math in e.g. factoring algorithms, but I definitely don’t get the feeling this connects significantly with the very fancy topics studied in modern math.

Far be it from me to taint pure math by associating it with practical applications

Actually, no, close be it to me. That first line is totally how I thought in undergrad and it’s stupid and it fucked me up. I’d be happier now if I hadn’t fallen to the cult of purity that happens in a lot of math undergrads.

But anyway, sure, you can build RSA specifically with older tools. But modern cryptography as it’s actually practiced depends on a lot of more modern stuff.

The best general attack on RSA is Pollard’s general number field sieve, which dates to between 1988 and 1990. It supplanted the quadratic sieve, which is from about 1981.

Because the general number field sieve is so good, we mostly don’t actually use RSA any more. Instead, we use elliptic curve cryptography. Elliptic curves have been a thing more or less since the mid-1800s, but the group law was first formlized in 1901, and a ton more development of the ideas was necessary before we could have built the encryption scheme.

In particular, elliptic curve cryptography depends on studying elliptic curves over finite fields, not over the rationals as they originally were. Understanding the security requires the Hasse bound which is from 1936. The whole setup is fundamentally a mid-20th-century approach.

But we’re currently in the process of trying to replace elliptic curve cryptography with more modern methods. This is driven by the threat of quantum computers employing Shor’s algorithm (1994) for factoring large numbers on a quantum computer.

To build post-quantum cryptography, we’re largely using lattice-based methods. This involves the study of lattices and rings, which are all fundamentally modern mathematics. The Learning with Errors scheme comes from 2005; it’s been updated to Ring Learning with Errors. Gentry introduced a homomorphic encryption scheme in 2009, which also fundamentally depends on modern mathematical ideas. (The word “homomorphism” itself only dates to 1892!)

well my night consisted of sitting on my bed at midnight researching cryptography and trying to become homies with the spirit in my room

16th-century book-shaped French cipher machine, with arms of Henri II of France

16th-century book-shaped French cipher machine, with arms of Henri II of France


Post link

這篇文章是加密通訊教學系列文第三篇。第一篇是基本原理介紹(務必要讀!),這一篇是教大家如何在 Windows 上使用加密軟體 gpg4winWebPG

在 Windows 上沒有像是 gpgtools 一樣那麼整合那麼完整的解決方案,變成說需要好幾個軟體拼裝一下。我以下介紹的 gpg4win 跟 WebPG 這個組合僅適用於 gmail 用戶。

註一:但是也不是非得這樣組合不可,例如說有在用Thunderbird收信的朋友可以用 gpg4win 和Enigmail 這個組合,如果還有在用 Outlook(現在是不是已經停止支援了?)就不必另外裝外掛了,gpg4win 本身就有支援。

gpg4win 是一套軟體,類似 gpgtools 一樣把很多功能整合進去,包括最核心的加解密服務、內建的加密 email 通訊軟體 Claws Mail 之類的。但是考量到我認識很多使用者是習慣用瀏覽器上網收信(gmail 尤其是大宗),為了不要讓大家改變太多的日常使用習慣會太痛苦,所以我建議使用 WebPG 這個瀏覽器外掛(適用於 Firefox/Chrome,註二)來協助加密郵件的傳送。

註二:IE 用戶抱歉啦,人家沒有開發給 IE 用的版本。可是說認真的,就一般的網路使用安全來說,Firefox、Chrome 或是其他瀏覽器都是比較好的選擇,而且網站顯示的效果也比較「正確」,所以如果真的要安全地通訊的話,忍痛換一下瀏覽器學一下真的很值得。

二、gpg4win 中文使用介紹

功能介紹

gpgtools 是一款 Windows 上的自由加密軟體,功能包括:

  • 金鑰與憑證管理(GPA/Kleopatra)
  • 文字或檔案加解密、簽章(GnuPG)
  • 電子郵件加解密、簽章(Claws Mail)

這套軟體是英文介面的,所以以下介紹如何安裝跟使用這套軟體,我會使用截圖並且加上中文註解。

安裝

  1. 先到網站下載安裝檔。我下載的是 2.1.1。
  2. 請按照一般安裝程式的步驟進行,直到最後一步:


    把那個框哭先打勾再按 Next 即可。
  3. 安裝完之後,會多出好幾個程式,我們會用到的是 “GPA"。

建立自己的金鑰

第一篇系列文已經交代什麼是金鑰,這一段要介紹怎麼建立屬於自己的金鑰。

請特別注意:建立金鑰之後,請好好維持電腦作業系統的安全,萬一電腦中毒、被入侵,讓外人取得你的金鑰,那基本上你的所有使用這對金鑰進行加密通訊都會被破解。

  1. 打開 GPA 這個程式(開始功能表那邊找一下,不然就去桌面上翻)
  2. 它剛打開來應該會問你要不要建立金鑰,可以按 yes。或者是點這個按鈕:

  3. 會跳出一個對話視窗,要求你陸續輸入你的全名(我不確定能不能輸入中文,保險起見我會建議使用英文拼音姓名)跟電子郵件信箱(選一個你會拿來做秘密通訊的信箱;如果你有好幾個信箱都會拿來做秘密通訊的話也有辦法解決,但是先選一個再說),輸入完之後都按 "Forward":

    到最後會問你說要不要建立一個密鑰備份,這點隨意,但是切記要保管好:

  4. 之後會要你自訂一個「密碼」(Passphrase)。這個密碼只是個認證身分的手續,你以後如果要使用這組金鑰,就必須輸入它,來確認是你本人。請務必牢記密碼,不然你就無法使用這組金鑰:

    然後決定一下你的密鑰備份存在哪裡:


  5. 完成啦,恭喜你:

最後,有一件很重要的事情:

因為安全起見,金鑰基本上都有使用期限。gpg4win 做的金鑰基本上設定是不會過期…….但是其實這樣做有點詭異。我自己是建議定期換一下啦。(然後就要重新交換或發佈一次公鑰,然後把已經交換的公鑰作廢)

交換公鑰

接下來就是要交換公鑰了(私鑰要自己留著不能給別人!!),如果要寄出加密訊息,你必須要有所有收信方的公鑰才能加密。通常有兩種方法可以做:

  • 直接匯出公鑰,然後附加在 email 裡面,給你要通訊的對象。反正公鑰這種東西不怕給人拿走,所以放在公開的 email 傳送無所謂。
  • 把公鑰貼到公布欄(精確地說,是上傳到公鑰交換伺服器),讓大家搜尋你的公鑰,讓程式自己下載下來

這兩種步驟也是在 GPA 裡面做:選擇你要匯出的金鑰,如果是要匯出檔案寄給朋友就按 "Export Keys"(後面跟上面備份的狀況一樣),如果是要貼在公鑰交換伺服器上就選 "Send Keys":

會出現一個確認視窗,不要按 No 就好了。

接下來是把別人的公鑰抓下來,這其實也很簡單:

  1. 在 "Server” 選單裡面選 “Retrieve Keys":

  2. 會跳出一個視窗要求你輸入金鑰的 ID(就是你金鑰做出來的時候,底下資訊欄會有個 "Key ID",後面一串八位英數,就是那東西),我以下輸入 gpgtools 官方的公鑰示範:

    之後就會跳出一個對話視窗告訴你它抓了幾筆資料下來,按 OK 就好。
  3. 然後要注意喔:如果你之後更動了金鑰(例如說把第二個電子信箱加進去),就需要更新一次金鑰。(就是重複貼一次,然後叫大家更新這樣)

安裝 WebPG 和傳送加密郵件

以下先介紹如何安裝 WebPG:

  1. 進到他們網站下載,選擇你的瀏覽器和作業系統版本,我之後操作會用 Chrome 示範:

  2. 安裝完之後,會在右上角出現 WebPG 的按鈕,按一下之後會出現三個選項,先選 Option 那個:

  3. 接下來進入這個畫面,請把所有的 Disabled 按鈕按一下,按成 Enabled:

  4. 再按一下 WebPG 的按鈕,選擇 "Key Management",進去那個畫面之後會先進到 "Private Key” 這個分頁,請選擇你慣用的私鑰,把 Disabled 的按鈕按成 Enabled:

設定完之後就是收發 email 了,Webpg 基本上有特別針對 gmail 做調整(至於其他信箱的朋友就抱歉了,可能要用 gpg4win 的其他服務手動來做了)

  1. 你的 gmail 撰寫介面會變成這樣:

    選擇你要的選項,基本上只要有簽章的功能,都會要求你輸入金鑰的密碼,來驗證是否是你本人:

  2. 你的訊息之後會變成密文,對方收到信會長這樣:


    開頭會有個 “BEGIN PGP MESSAGE",結尾會有個 "END PGP MESSAGE”
  3. 收到這種信的時候,解密的步驟是:拉到最底下,選擇 “Decrypt the Message":

    之後會要你輸入密碼,密碼輸入正確之後就可以解密了:

這篇文章是加密通訊教學系列文第二篇。第一篇是基本原理介紹(務必要讀!),這一篇是教大家如何在 Mac 上使用加密軟體 gpgtools。第三篇文章會介紹 Windows 上的加密軟體的使用方式。然後如果是習慣使用瀏覽器登入 gmail 的朋友,我會建議再搭配 WebPG 這個瀏覽器外掛(支援 Chrome/Firefox)一起使用。

二、gpgtools 中文使用介紹

功能介紹

gpgtools 是一款 Mac 上的自由加密軟體,功能很強大,包括:

  • 金鑰與憑證管理(GPG Keychain Access)
  • 文字或檔案加解密、簽章(GPG Service)
  • 電子郵件(使用 Mac 內建的 Mail.app)加解密、簽章(GPGMail)

不過,這套軟體什麼都好,就是一點不好:它是英文介面的,所以以下介紹如何安裝跟使用這套軟體,我會使用截圖並且加上中文註解。

安裝

  1. 先到網站上下載 .dmg 映像檔。請注意,gpgtools 目前支援 OSX 10.6-10.8,請注意你的系統版本。
  2. 點擊一下映像檔檔案,打開後會長這樣:

    image
    點擊 Install 那個檔案,之後一路按 Continue 和 Install 按鍵即可。過程中會跳出密碼視窗,要求你輸入密碼才能安裝軟體,請放心輸入。
  3. 安裝完之後,會多出幾個東西:"GPG keychain access"(在 Application 資料夾裡)、GPGPreferences(在系統設定裡)、GPG service(在 Finder 裡面按右鍵,選擇 “Services",底下出現 OpenPGP 開頭的都是)
    image

建立自己的金鑰

上一篇系列文已經交代什麼是金鑰,這一段要介紹怎麼建立屬於自己的金鑰。

請特別注意:建立金鑰之後,請好好維持電腦作業系統的安全,萬一電腦中毒、被入侵,讓外人取得你的金鑰,那基本上你的所有使用這對金鑰進行加密通訊都會被破解。

特別聲明:這一段的截圖,步驟 3. 開始都是直接取自 gpgtools 官網的入門介紹的附圖,我直接加上中文註解。

  1. 打開你的 Application 資料夾,找到 "GPG Keychain Access” 這個程式,打開它:

    image
  2. 點兩下打開來,會長得像這張圖,按一下左上角的 “New” 以新增金鑰:

    image
  3. 會跳出一個對話視窗,要求你輸入你的全名(我不確定能不能輸入中文,保險起見我會建議使用英文拼音姓名)跟電子郵件信箱(選一個你會拿來做秘密通訊的信箱;如果你有好幾個信箱都會拿來做秘密通訊的話也有辦法解決,但是先選一個再說),輸入完之後按 “Generate Key":

    image
  4. 輸入完之後會要你自訂一個「密碼」(Passphrase)。這個密碼只是個認證身分的手續,你以後如果要使用這組金鑰,就必須輸入它,來確認是你本人。請務必牢記密碼,不然你就無法使用這組金鑰(對於詳細的技術原因好奇的人請看註一):

    image
  5. 完成啦,恭喜你:

    image

註一:因為 GPG keychain access 是把「你的密碼餵進雜湊函數吐出來的字串」當做另一個金鑰,把你的金鑰再加密。

最後,有一件很重要的事情:

因為安全起見,金鑰基本上都有使用期限。一般設定是四年就會過期(但也可以在做金鑰的時候就調整久一點),如果快要過期的話,就要換一個新金鑰(其實也可以展期,但是我不建議這樣做),請大家要注意。

交換公鑰

接下來就是要交換公鑰了(私鑰要自己留著不能給別人!!),如果要寄出加密訊息,你必須要有所有收信方的公鑰才能加密。通常有兩種方法可以做:

  • 直接匯出公鑰,然後附加在 email 裡面,給你要通訊的對象。反正公鑰這種東西不怕給人拿走,所以放在公開的 email 傳送無所謂。
  • 把公鑰貼到公布欄(精確地說,是上傳到公鑰交換伺服器),讓大家搜尋你的公鑰,讓程式自己下載下來

這兩個步驟也是在 GPG Keychain Access 裡面做,首先,請你先把 GPG Keychain Access 打開。

以下介紹如何匯出公鑰,其實只有兩三步:

  1. 選擇你要匯出的金鑰,按 "Export” 就好:

    image
  2. 會出現存檔畫面如下。基本上軟體會幫你決定一個檔名,但是可以改掉。底下會有一個可以打勾的選項,千千萬萬不要打勾!!!再重複一次,千千萬萬不要打勾!!!!之後按 Save 就可以匯出了:

    image
  3. 之後會多出一個叫做「檔名.asc」的檔案,請把這個檔案 email 出去。

另一種我個人覺得比較方便的作法,是把公鑰貼到公布欄(公鑰交換伺服器),然後也可以在上面搜尋你朋友貼上去的公鑰。

  1. 打開 GPG Keychain Access,選擇你自己的公鑰,在上面按右鍵,點選 “Send public key to Keyserver",你的公鑰就會被貼到公布欄了:

    image
  2. 接下來是把別人的公鑰抓下來,這其實也很簡單,如圖示:

    image
  3. 在跳出的對話框裡,輸入你通信對象的 email 地址或姓名(請先確定他們都已經把公鑰貼上公布欄了):

    image
  4. 我直接拿官方的 email 示範,搜尋結果會長這樣:

    image

    按 "Retreive key” 把公鑰抓下來。(你會看到兩筆結果,是因為有兩個公鑰都有用這個信箱。然後呢,第二筆公鑰,內含多個信箱一起掛在這個公鑰裡,是給需要用多個信箱進行加密通訊的使用者用的)
  5. 然後要注意喔:如果你之後更動了金鑰(例如說把第二個電子信箱加進去),就需要更新一次金鑰。(就是重複貼一次,然後叫大家更新這樣)

傳送加密郵件

重頭戲來了:要怎麼傳送加密郵件呢?有兩種方法:

  • 如果你是用 Mail.app 的話,恭喜你,這非常好解決,因為你在一開始安裝的時候,就有安裝 GPGMail 這個外掛
  • 如果你還是偏好用網路瀏覽器上 gmail 或是 webmail 開信箱的話,手續會複雜一點點

以下先介紹如何用 Mail.app 傳送加密郵件(以下圖片還是取自 gpgtools 官網的介紹,感謝它們):

  1. 你現在進 Mail.app,寫一封新郵件,畫面會長這樣:

    image

    你會多出三個按鈕:加密按鈕(鎖頭打開是沒加密,鎖上是加密)、狀態按鈕(簽章有打開就是勾勾,沒打開就是打叉叉)跟狀態按鈕(視窗右上角綠色的那玩意,如果沒有作用會是灰色)。
  2. 先填入你的收件人(們),再按這兩個按鈕,就會長得跟上面那張圖一樣。通常這個步驟會要你輸入你的密碼來驗證你的身分。
  3. 接下來就繼續寫信、寄信,就完成啦。對方如果也有裝 GPGMail,然後是正確的收信人,對方看到的信會長這樣:

    image

接下來是有些朋友比較習慣用瀏覽器登入跟收發 email,那步驟瑣碎一些:

我強烈建議 gmail 用戶之間都使用這個作法,不然可能會因為一些程式的問題讓加解密出問題。

  1. 先安裝 WebPG:

    image


  2. (以下以 Chrome 示範。好吧,我承認有幾張圖是在 Windows 底下截的,但是差異不大)點一下右上角的外掛按鈕,會出現三個選項,請選擇 Options:

    image


  3. 進去之後一定會跳出錯誤訊息。別擔心,請按 “Advanced Options",在 "GPGCONF binary 那一欄,輸入 /usr/local/MacGPG2/bin/gpgconf",然後在 "Keyserver” 輸入 “hkp://keys.gnupg.net":


    然後再把上面所有的按鈕全部按成 Enabled。接下來,再點一下 WebPG 的按鈕,選擇 "Key Management",進去那個畫面之後會先進到 "Private Key” 這個分頁,請選擇你慣用的私鑰,把 Disabled 的按鈕按成 Enabled:

    image
  4. 設定差不多完成了,接下來的執行步驟,請直接參考本系列文第三篇(給 Windows 用戶)的最後一段,過程一模一樣。(請原諒我懶得寫兩次…)

結語

這篇簡單交代了最基本的使用方法,但是 gpgtools 的功能跟設定不只如此(例如說憑證的信任程度、金鑰展期、撤銷金鑰、加密檔案),我會建議大家還是可以去摸一下程式內容、看一下官網的 tutorial 跟討論區把這些摸清楚。

人們總是有各種加密通訊跟檔案的理由。我在這系列文章裡大概解釋一下現代加密技術基本原理,然後會交代在 Mac跟 Windows 上,哪些軟體可以達到加密 email 通訊的要求。

(至於 Linux 的朋友就抱歉了,但是大部分的 distro 都有支援 GnuPG 服務,我想精熟的用戶要搞懂,它甚至找到合適的 UI 應該不是問題)

另外,我後面的文章只會介紹「在電腦上做 email 通訊加密」,智慧型手機上面也有一些 App 有加解密 email 的功能,但我沒有用過無法推薦。如果讀者是想要在即時通訊聊天(e.g. Facebook/Google Talk 等等)加密通訊的話,可以參考這篇介紹 OTR 通訊軟體的文章,或是這篇介紹手機加密通訊 App Safeslinger 的文章

一、現代加密技術基本原理

我知道大家都討厭上技術課,但是相信我,知道一點基本原理對於正確、安全地使用加密軟體非常必要,所以請大家姑且耐點性子看過這段。

然後要先交代:這篇文章除了註一以外,其他註解不需要認真看,除非你真的對技術面很有好奇心。

前情提要

如果兩個人(下稱 A 跟 B)要秘密通訊,其中發送訊息的人(A)會把訊息(下稱「明文」),經過一些複雜的手續(加密),變成一堆外人看不懂的東西(密文),然後再傳送給對方(B)。B 收到密文後,會透過另一套複雜的手續(解密),把密文再轉換成明文,解讀 A 的訊息。

問題就在於,A 跟 B 玩的加密、解密手續,過程中會需要一些關鍵訊息(密碼學的人會叫它「金鑰」,另見註一)。傳統的加解密方法(例如凱撒法表格法)基本上都會有個問題:A 和 B 手上都要有同一個金鑰、要知道同樣的數學方法,才能正確加、解密。所以問題會變成:如何安全地把金鑰送到對方手上?想想看,在戰爭的過程中,我方的金鑰被敵方截走,所有的秘密通訊就會被看光光。這在密碼學發明千年以來一直都是一場惡夢,直到有人在二十世紀七零年代發展了所謂「非對稱加密法」(註二),這個問題才終於獲得(暫時的)解決(註三)。

註一:然後,金鑰 (key) 跟「密碼」(password/passphrase) 是不一樣的。密碼基本上可以想成像是「芝麻開門」一類的咒語,輸入驗證你的身分後,就可以使用某些服務和工具,像是登入你的 email 帳號之類的;金鑰基本上就只是加密、解密需要用到的關鍵資訊而已。在比較簡單的加密方法裡,密碼可以就是金鑰,但是在複雜的系統中,密碼只是一種驗證手續,讓你可以使用金鑰,做後續你想做的事情。

註二:好啦,其實在更早之前就有發明出類似的東西,但是真的普及推廣是七零年代的事情,有興趣自己去翻 wikipedia。

註三:所有的加密方式都會同樣的問題:我拿不到金鑰,大不了我就暴力去電腦把密文破解明文啊。凱撒法非常好破解,運氣最差就把所有字母試過一輪就好了;表格法其實也有一些統計的方法可以破解,需要費一點功夫。最登峰造極的成就大概就是英國計算科學家Alan Turing在二戰時為了對付德國的密碼機Enigma發展出來的方法。

電腦普及後,大概就是依照加密方法原理硬是暴力算出來(不過其實也可能因為演算法的「缺陷」有些竅門)。所以現在大概常見的狀況是,你電腦很快,那我就還是同樣的加密演算法,但是把金鑰的長度提高,提高一點就讓破解的時間拉長很多,看你有多少力氣跟時間去算(而且值不值得花這個成本去破解可能沒什麼重要性的密文)。

非對稱加解密基本原理

以下介紹的就是各種非對稱加密的最基本原理(至於真槍實彈的數學呢,去找密碼學家不要找我我也不懂)。

首先,這些新方法一次會產生一對金鑰:一個叫做公鑰、另一個叫做私鑰。公鑰顧名思義,就是要公開周知讓大家知道也無所謂,私鑰則是千千萬萬要收好不能弄丟也不能讓你個人以外的其他人知道的。

(因此大家平常還是注意自己的電腦安全喔!該裝的掃毒軟體跟防火牆要裝還要更新、定期掃描,不該裝的怪怪軟體要清理乾淨,平常不要上一些奇奇怪怪的網站,可能有讀,然後可以使用安全的瀏覽器──基本上其他的瀏覽器都比 IE 安全很多啦。)

那加密跟解密的操作概念如下:

image

當 A 想要寄訊息給 B 的時候,A 可以去一個布告欄上去找 B 公布在上面的公鑰(或者是 B 也可以把他自己的公鑰事先送給 A),然後 A 會透過這個公鑰和數學方法,把訊息變成密文。等到 B 收到密文的時候,就可以用 B 自己私藏的私鑰,把密文解密回明文。

大家可以很明顯地看到,任何人基本上都可以拿到 B 的公鑰,也可以寄送密文給 B,但是因為只有 B 有自己的私鑰,所以只有他本人可以把密文轉換成看得懂的東西,因此解決了我上面說的「要怎麼把金鑰送到對的人手上不會被偷走」的問題。

另外的重要用途:簽章

那除了加密跟解密以外,其實非對稱加密系統有另一個也很重要的功能:簽章。

簽章是什麼意思呢?任何通訊基本上會遇到另一個問題:「我怎麼知道這封訊息是你本人寫的,還是別人假造你名義寫的?」

這個難題,也可以用非對稱加密法解決,過程概念如下:

image

當 A 要發訊息給 B 的時候,為了要證明「這封信是 A 寫的」,所以,首先 A 會把他的訊息餵給一個電腦工具(叫做「雜湊函數」),生產出一串奇怪的字串,也就是所謂的「摘要」。雜湊函數的特性是,只要輸入的訊息有一點點不一樣(例如說被動過手腳),跑出來的字串就會差很多。

接下來,A 會把摘要,透過 A 自己的私鑰,加密成「簽章」這個東西。然後,他就會把他訊息的「密文」跟「簽章」,一道寄給 B。

B 收到密文跟簽章之後,一方面用 B 自己的私鑰解出訊息的明文,另一方面,B 會用 A 的公鑰把簽章還原成一串奇怪的字串(暫且稱為「摘要 X」好了)。這時候,B 還會把解出來的明文,再餵進雜湊函數裡。如果這次跑出來的「摘要 Y」,跟上面還原出來的「摘要 X」比對後內容一模一樣的話,B 就可以相信:

「這篇訊息的明文是 A 發給我的沒錯,而且內容沒有被更改過」。

小結,還有加解密軟體的任務

上面介紹了加、解密跟簽章這兩種用途,基本上通常是一起使用的:

  • 當 A 寄信給 B 時,A 會「拿 B 的公鑰對明文做加密變成密文」+「拿 A 自己的私鑰對明文簽章」
  • 當 B 收到 A 的信時,B 會「拿 B 自己的私鑰對密文解密變成明文」+「拿 A 的公鑰,對簽章做還原變成摘要,並且把上頭解出的明文餵進雜湊函數結果跟摘要比對」

image

好了,原理說完了。所以基本上大家下載加解密軟體,要做的事情就是:

  1. 生產出屬於自己的公鑰跟私鑰
  2. 把公鑰貼在公布欄上,私鑰留在自己電腦裡
  3. 去公布欄把好麻吉(和會通訊的對象)的公鑰抓下來
  4. 把訊息、檔案傳給別人時,用別人的公鑰加密內容,用自己的私鑰簽章
  5. 接收到別人的訊息、檔案時,用自己的私鑰把內容解密,用別人的公鑰還原簽章並且核對

好消息是,除了 1, 2, 3 以外,4, 5 程式大都可以幫你自動做好。接下來兩篇文章分別會介紹 gpgtools (Mac) 和 Windows 上幾個程式的使用方法。我基本上會盡量選擇開源軟體(換句話說:免費,而且程式碼是公開的,通常這也代表這些程式有點信用,不會被偷偷埋漏洞),操作要上手也不太困難──很不幸的是這些軟體操作介面大多都是英文的!我會附上中文的說明跟有中文註解的截圖,讓大家熟悉怎麼操作。

然後還是要提醒:如果你的電腦不乾淨,不管你使用再好的加密程式也是白搭。千萬不要在自己不信任的電腦上登入 email 或留下任何的個人資訊。至於如何安全地保護自己的電腦,可以參考Security in a Box(簡體中文)這篇文章(雖然說我覺得它有些建議有點太嚴格,在台灣不太需要啦),然後也要學會如何使用 email 或社群網站的兩階段驗證服務(據我所知 Google,facebook蘋果都有)。

spiritofally:Back in middle school, my friends and I used a very simple coded language for writing s

spiritofally:

Back in middle school, my friends and I used a very simple coded language for writing secret messages. I saw some posts about needing to hide one’s beliefs from partners/bosses/parents so I wanted to share it with you! These would also be great to incorporate into sigils since they are simple lines and dots.


Post link
Cryptography has been used for thousands of years to help to provide confidential communications betw

Cryptography has been used for thousands of years to help to provide confidential communications between mutually trusted parties. In its most basic form, two people, offend noted as Alice and Bob, have agreed on a particular secret key. At some later time, Alice may wish to send a secret message to Bob (or Bob might want to send a message to Alice).The key is used to transform the original message (which is usually termed the plain text) into a scrambled form that sun intelligible to anyone who does not possess the key. This process is called encryption and the scrambled message is called the cipher text. When Bob receives the cipher text, he can use the key to transform the cipher text back into the original plain text; this is thedecryptionprocess.Acryptosystemconstitutesacompletespecificationofthe keys and how they are used to encrypt and decry pt information.

https://archive.org/details/cryptography_202106


Post link

Learn what is Blockchain and how it works in just 5 minutes

They didn’t teach me how to encrypt my heart in Cryptography lessons. I wish I could. And wait for someone to decrypt it. Maybe it’s somewhat encrypted already, and the decryption time hasn’t come yet. Someone will come with the “key”, perhaps the “private key” I once used and forgot.

Sparkandashes

loading