分组密码使用自逆(f(f(x)) = x )操作,然后将其应用于纯文本,并且很可能包含一些可以基于键的常量。为了获得安全性,这些以不同方式解释输入的操作彼此对齐。此过程使用不同的键重复多次。在最优情况下,随机输入位于封闭周期内(如果分组密码一次又一次地应用),则具有随机循环大小(均匀,给定随机密钥)。
通过测试,我注意到这可能发生在一些非常简单的异或、位旋转和加法操作上。(称为ARX)
例如:输入m的第一轮:
m = XOR(m, R_i) \\ m = RotateBit(m,5) \\ m = m + K_i
R_i, K_i是圆形i的圆键。
单靠异或是不安全的,因为该操作只是在单个
首先,我要说我对密码学非常陌生。我正在尝试在中实现Node.js。
我的问题是,在没有解密的加密之后,它就停止了对一个解密函数的调用。这是我的密码:
var crypto = require('crypto');
var encryptionMethod = 'aes-256-cbc';
var vector = new Buffer([0xF1, 0x4C, 0xB6, 0xBD, 0x82, 0x93, 0x3C, 0x97, 0x6A, 0x4B, 0x4A, 0xD2, 0xAD, 0xD5, 0xA8, 0x6D]);
var key = new B