First off: I really like this idea. I've thought about it in the past but never started working on it due to fears that AES might be broken in the coming decades. (I currently use git-annex with encrypted remotes instead)
Basically: Freely distributed backups can be dangerous if the data should be protected for a longer period of time.
Some encryption software, such as Veracrypt (previously Truecrypt), enables the user to compose encryption functions such as AES, Serpent and Twofish (AES finalists). This could vastly improve security in case weaknesses are found in AES.
Basically, encryption would work like this:
key_aes, data_encrypted_aes := aes(data)
key_twofish, data_encrypted_twofish := twofish(data_crypted_aes)
key_serpent, data_encrypted_serpent := serpent(data_crypted_twofish)
keys := []bytes{key_aes, key_twofish, key_serpent}
data_encrypted := data_encrypted_serpent
return keys, data_encrypted
(Sorry if this isn't valid Go, it's been a while)
First off: I really like this idea. I've thought about it in the past but never started working on it due to fears that AES might be broken in the coming decades. (I currently use git-annex with encrypted remotes instead)
Basically: Freely distributed backups can be dangerous if the data should be protected for a longer period of time.
Some encryption software, such as Veracrypt (previously Truecrypt), enables the user to compose encryption functions such as AES, Serpent and Twofish (AES finalists). This could vastly improve security in case weaknesses are found in AES.
Basically, encryption would work like this:
(Sorry if this isn't valid Go, it's been a while)