Primeiro, observe que, se seu amigo tiver acesso físico à máquina, provavelmente é possível que seu amigo instale um software ou hardware keylogger para simplesmente ler sua senha ou seu código fonte diretamente; outras possibilidades incluem modificar seu software de criptografia para salvar uma cópia de todos os arquivos que estão sendo criptografados em outro diretório.
Isso pode não ser um problema que pode ser resolvido.
Segundo, você já está usando algum software de criptografia e quer saber como gerar uma boa senha? Ou você está procurando recomendações de software?
Eu recomendaria usar o GnuPG para criptografar seus arquivos:
$ gpg -c -o /tmp/secret /etc/motd
gpg: gpg-agent is not available in this session
Enter passphrase:
Repeat passphrase:
$
$ gpg /tmp/secret
gpg: CAST5 encrypted data
gpg: gpg-agent is not available in this session
Enter passphrase:
gpg: encrypted with 1 passphrase
gpg: /tmp/secret: unknown suffix
Enter new filename [motd]:
gpg: WARNING: message was not integrity protected
$
Você pode digitar o que quiser para a senha, longa ou curta.
Em terceiro lugar, a senha em si, eu recomendo roubar o algoritmo usado na ferramenta Openwall Linux's pam_tcb : escolha duas ou três palavras aleatórias de /usr/share/dict/words
e coloque pontuações ou números (ou ambos) entre eles: Random*Word)Assortment
ou Ugly%banana7elements
ou assim por diante.
No meu sistema, com um arquivo de palavras de 98.000 linhas (16,5 bits de entropia por palavra) e os símbolos facilmente acessíveis no meu teclado (36 símbolos e números, 5,1 bits de entropia cada), isso permitiria gerar 59 bits de entropia com três palavras e dois símbolos - continue indo até que você esteja feliz com a força. Geralmente, essas senhas são muito mais fáceis de lembrar do que as senhas geradas de maneira estritamente aleatória, mas elas precisam ser significativamente mais longas para fornecer a mesma intensidade.