An implementation and analysis: passphrase-based RSA keys in SSH
LE3 .A278 2019
Bachelor of Computer Science
Secure Shell (SSH) is a network protocol that allows a user to log into a remote computer securely over an unsecure channel. Before the user’s computer is granted access to the remote computer, it must first authenticate itself to the remote computer. One method of authentication involves utilizing special public and private “keys” in an algorithm called public key cryptography. Using Passphrase Based RSA Keys in SSH was a thesis published by Taisya A. Krivoruchko, a former student at Acadia University, in 2005. In her thesis, she described that an alternative method of storing a private key on the client computer is to use a user-supplied passphrase to generate a number, which in turn would be used to generate a prime used to make up a private key. This method posits that the essential tool for generating your private key can be stored in your head instead of the computer itself. This lends itself to the obvious security benefit: there is a chance that your computer may be hacked by a malicious person seeking your private key, however, there is no current method of hacking the human brain. Though Krivoruchko analyzed and tested the validity of her ideas, she did not implement them into the SSH package. Therefore, the purpose of this thesis was to implement Krivoruchko’s algorithm for private key generation using open source soft-ware, namely OpenSSH and OpenSSL, as well as to further analyze the functionality of this algorithm.
The author retains copyright in this thesis. Any substantial copying or any other actions that exceed fair dealing or other exceptions in the Copyright Act require the permission of the author.