Symmetric Encryption

Prerequisite

平文(ひらぶん)として,簡単な文を書いたテキストファイルを作成します.慣れたらPDF等でも良いですが,初めはテキストファイル (rtfではなく,純粋なテキストファイル)を使います.

mi (see HWB) を使って himitsu.txt を作成しましょう. 作成したら,中身を確認しましょう.以下の両方で確認すると良いです.

  • Finder でファイルを見つけて,Google Chrome などのウェブブラウザにドラッグアンドドロップする
  • ターミナルで,cat コマンドで内容を確認する.cat に続けて,空白とファイルパスをタイプしてエンターを押す.ホームディレクトリに作った場合は,cat himitsu.txt となる.他の場所や他の名前のファイルの場合は,パスを指定するか,ファインダでドラッグアンドドロップして入力する. (この説明で分からなかった場合は,HWB も参照)

以後のコマンドでは,cat の代わりに gpg などのコマンドを使います.操作対象のファイルを指定する方法は,cat の時と同じです.

Encrypt

共通鍵暗号を用いて暗号化する手順は,gpg -ca ファイル名 です.

以下の例では,himitsu.txt という平文を gpg -ca というコマンドで暗号化して himitsu.txt.asc という暗号文ファイルを新たに作成しています.途中,「共通鍵」に相当する文字列を入力していますが,デモには録画されていません.ターミナルにタイプする際も表示されません.

暗号文を cat himitsu.txt.asc で表示すると,人には読めなさそうな雰囲気であることは分かります.

2022年7月4日現在,共通鍵を入力するための操作が難しいようです.当面のあいだ,gpg -ca の代わりに gpg --pinentry-mode loopback -ca とオプションを追加して対応してください.(コマンド入力はコピーペーストでも良いです)

Decrypt

暗号化されたファイルを復号するには,gpg -d himitsu.txt.asc のように,gpg -d の後に対象ファイルを指定してください.

パスフレーズを聞かれたら,暗号化の際に用いた文字列(共通鍵)を入れると復号できます.

例外として,暗号化直後に自分で復号した場合は,パスフレーズを聞かれません.gpg-agent という鍵を一時的に記憶する仕組みが働いているためです.ログアウト・ログインしなおしてから復号すると,パスフレーズを聞かれます.

暗号化で必要だった場合は,復号の際にも同様にgpg --pinentry-mode loopback -d とオプションを追加してください.

電子メールで友達に暗号化されたファイルを添付で送って復号してもらいましょう. 受け取った側は,添付ファイルを保存して,保存したファイルをファインダで開いてから,ターミナルにドラッグアンドドロップすると対象ファイルの指定を楽にできるでしょう.

PDFやワードファイルなどテキストファイル以外を暗号化して,復号する場合はgpg -d -o output.pdf などとと出力ファイル名を指定するオプションを追加すると良いです.復号後に適切なアプリケーションでそのファイルを開いてください.