文件名称:feistel:Golang中的Feistel密码实现,用于(几乎)保留格式
文件大小:293KB
文件格式:ZIP
更新时间:2024-03-07 12:54:32
cryptography algorithm encryption format-preserving-encryption xor-operation
菲斯特尔 这是一个实现Feistel密码以“几乎”保留格式的加密的Golang库。 “几乎”是因为在使用实现的平衡版本时,我们需要输入字符串的长度均匀。 在这种情况下,将保留长度,否则输出将长一个字符。 动机 该库的主要目的不是提供安全的加密方案,而是提供安全的混淆工具。 形式描述 该库基于描述的Feistel密码的概念进行操作: Feistel网络分为几个回合或步骤。 在其平衡版本中,网络将数据分成两个大小相同的部分。 在每一轮中,将交换两个块,然后将其中一个块与另一个块的转换版本合并。 一半的数据用密钥编码,然后使用XOR操作将该操作的结果添加到另一半数据中。 然后在下一个回合中,我们进行相反的操作:将后半部分加密,然后将其异或为前半部分,只不过我们使用先前加密的数据。 下图显示了数据流( 表示XOR操作)。 每个回合使用中间密钥,通常通过称为密钥调度的一代从主密钥中获取密钥。 使
【文件预览】:
feistel-master
----.gitignore(311B)
----README.md(6KB)
----custom.go(3KB)
----documentation()
--------.gitignore(111B)
--------src()
----LICENSE(1KB)
----exception()
--------errors.go(403B)
----go.mod(132B)
----cipher_test.go(1KB)
----common()
--------utils()
--------padding()
----custom_test.go(2KB)
----go.sum(40KB)
----cipher.go(2KB)
----assets()
--------400px-Feistel_cipher_diagram_en.svg.png(80KB)