- 素因数分解に基づく(RSA)公開鍵と秘密鍵の生成や、共通鍵を持ち合うAES方式を実装したopensslパッケージ
- それのラッパーパッケージであるencryptrパッケージ
- AESについて
- 公開鍵暗号について
- encryptrパッケージの説明
- genkeys()の内部でopenssl::write_pem()を呼び出している。ウィンドウを立ち上げて「パスワード」のGUI入力を求め、それに基づいて(それを大きな整数とみなして)秘密鍵を作り、さらにそこから公開鍵を作っている(秘密鍵から公開鍵の生成は簡単な計算なので)
- 現れる公開鍵・秘密鍵は、凄く長い文字列として保管される
- 生成された鍵(大きな数字など)は以下のようなデータ構造で保管される
> str(key)
List of 4
$ type : chr "rsa"
$ size : int 2048
$ pubkey:List of 5
..$ type : chr "rsa"
..$ size : int 2048
..$ ssh : chr "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDyG/Ul/qY1PZzskwQxOp74JKT/vYydwx5ygRjJS8EastsrdmKN+kEu+z3M7HijycZXfRhoJWod ..."
..$ fingerprint: 'hash' raw [1:16] 5e 1c 70 cf ...
..$ data :List of 2
.. ..$ e: 'bignum' raw [1:3] 01 00 01
.. ..$ n: 'bignum' raw [1:257] 00 f2 1b f5 ...
$ data :List of 8
..$ e : 'bignum' raw [1:3] 01 00 01
..$ n : 'bignum' raw [1:257] 00 f2 1b f5 ...
..$ p : 'bignum' raw [1:129] 00 fa 52 2a ...
..$ q : 'bignum' raw [1:129] 00 f7 9a 19 ...
..$ d : 'bignum' raw [1:256] 45 30 7a 31 ...
..$ dp: 'bignum' raw [1:129] 00 93 9e 10 ...
..$ dq: 'bignum' raw [1:129] 00 a9 b3 ce ...
..$ qi: 'bignum' raw [1:129] 00 c6 eb 8f ...