我正在寻找某种三路加密算法。因此,您对三对数据(组件)进行了加密,并且一个加密组件可以通过从其他两个加密组件派生的密钥进行解密。我以为我在单身的时候读过这样的算法,但我似乎无法找到它。我很感激我能得到的任何指示。
因此,为了明白我的意思,假设我有值A,B,C。其中加密版本表示为A',B',C'。为了将A'解密为A,必须从B'和C'导出解密密钥。从这个意义上讲,组件存储了要隐藏的实际数据,但也存储了其他组件的解密密钥,因此当所有三个组件都已知时,可以解除加密。
最初我认为xor操作的累积性质可以用它完成。我的想法是通过创建A'= A ^ sha1(B)^ sha1(C),B'= B ^ sha1(A)^ sha1(C)。您可以组合键并取消sha1组件。但这似乎不起作用。所以我正在寻找一些可以像上面提到的那样工作的算法。
答案 0 :(得分:0)
要求:给定三个数据data_A
,data_B
和data_C
,在这样的庄园中对每个数据进行加密,它要求所有三个数据创建解密任何一个所需的加密密钥。< / p>
创建master_key
,分为三个组成部分(split_key_A
,split_key_B
和split_key_C
。
使用PBKDF2从encryption_key
导出master_key
。
使用data_
单独加密每个encryption_key
,并在加密数据前加上关联的split_key_
。
要解密,请获取所有三种加密,将split_keys
拆分并合并到master_key
。使用PBKDF2从encryption_key
导出master_key
。
使用data_
解密任何encryption_key
。
注意:我不是加密专家,不依赖于此进行生产工作,可能不安全。