共通鍵暗号 #
準備 #
平文(ひらぶん)として,簡単な文を書いたテキストファイルを作成します.慣れたらPDF等でも良いですが,初めはテキストファイル (rtfではなく,純粋なテキストファイル)を使います.
mi
(see HWB) を使って himitsu.txt
を作成しましょう.
作成したら,中身を確認しましょう.以下の両方で確認すると良いです.
- Finder でファイルを見つけて,Google Chrome などのウェブブラウザにドラッグアンドドロップする
- ターミナルで,
cat
コマンドで内容を確認する.cat
に続けて,空白とファイルパスをタイプしてエンターを押す.ホームディレクトリに作った場合は,cat himitsu.txt
となる.他の場所や他の名前のファイルの場合は,パスを指定するか,ファインダでドラッグアンドドロップして入力する. (この説明で分からなかった場合は,HWB も参照)
以後のコマンドでは,cat
の代わりに gpg
などのコマンドを使います.操作対象のファイルを指定する方法は,cat
の時と同じです.
暗号化 #
共通鍵暗号を用いて暗号化する手順は,gpg -ca
ファイル名 です.
以下の例では,himitsu.txt
という平文を gpg -ca
というコマンドで暗号化して himitsu.txt.asc
という暗号文ファイルを新たに作成しています.途中,「共通鍵」に相当する文字列を入力していますが,デモには録画されていません.ターミナルにタイプする際も表示されません.
暗号文を cat himitsu.txt.asc
で表示すると,人には読めなさそうな雰囲気であることは分かります.
細かい解説
-ca
のc
は,共通鍵で暗号化するという意味です.a
は ASCII armor の意味で,出力をASCIIとして読める形式に整えます.- ファイル名の末尾の
.txt.asc
は見慣れないかもしれませんが,拡張子.txt
の末尾に,新たな拡張子.asc
を追加して,元のファイルとの関係を明瞭に表現する意図です.なおasc
は ASCII の頭文字ですが,内容を保証する者ではありません.
共通鍵の入力で何度も聞かれる場合は,8文字以上英数字記号を混ぜるなど複雑にすることで解決することがあります.あるいは,
gpg -ca
の代わりにgpg --pinentry-mode loopback -ca
とオプションを追加して対応してください.(コマンド入力はコピーペーストでも良いです)
復号 #
暗号化されたファイルを復号するには,gpg -o himitsu.txt -d himitsu.txt.asc
のように,gpg -d
の後に対象ファイルを指定してください.
暗号化後に自分で復号する場合は,
-o original.txt
などと復号後に生成するファイル名を変更しましょう
パスフレーズを聞かれたら,暗号化の際に用いた文字列(共通鍵)を入れると復号できます.
例外として,暗号化直後に自分で復号した場合は,パスフレーズを聞かれません.
gpg-agent
という鍵を一時的に記憶する仕組みが働いているためです.ログアウト・ログインしなおしてから復号すると,パスフレーズを聞かれます.
暗号化で必要だった場合は,復号の際にも同様に
gpg --pinentry-mode loopback -d
とオプションを追加してください.
電子メールで友達に暗号化されたファイルを添付で送って復号してもらいましょう. 受け取った側は,添付ファイルを保存して,保存したファイルをファインダで開いてから,ターミナルにドラッグアンドドロップすると対象ファイルの指定を楽にできるでしょう.
応用 #
テキストファイルだけでなく,PDFなども暗号化・復号できます.
その場合は,バイナリーファイルなので,cat
による確認はできません.復号後に GUI アプリケーションで開くことはできます.
復号の際は
gpg -d -o output.pdf
などとと出力ファイル名の拡張子を,想定するものに指定 してください.