滑动攻击中字符映射候选集缩减:相关方法与数学表示咨询
滑动密码密钥破解的数学/程序化方法咨询
攻击背景与已知信息
我正在针对一款密码系统执行滑动攻击以还原密钥,目前已通过多组输入输出对比整理出以下映射规则(->表示明文到密文的映射):
- 若
b->d,则必然有z->i且q->f;反之,若z->i且q->f,则必然有b->d。
字母表与示例密钥
Alphabet: 'abcdefghijklmnopqrstuvwxyz_' Example key: 'uwmsqbhkc_pgvtilnyfexjzarod' (即打乱后的字母表)
明文-密文映射表
每组明文对应两组密文对(c1/c2为第一组密文,c3/c4为第二组密文):
c1 c2 c3 c4 =============== a: t, g | o, t b: z, q | x, q c: w, t | c, _ d: i, h | i, f e: w, y | t, e f: u, e | e, d g: w, _ | y, m h: n, m | z, d i: i, j | h, f j: l, h | r, g k: w, b | t, v l: r, c | e, b m: l, u | z, e n: r, i | x, y o: g, s | e, a p: t, f | z, w q: u, r | z, r r: s, a | p, o s: t, _ | c, k t: n, t | y, c u: a, o | e, h v: y, l | g, x w: x, z | o, n x: z, n | u, i y: k, z | f, u z: t, x | a, o _: o, s | g, k
频率约束与频率表
密文的字符频率需满足以下约束:
len(c1[freq1]) == len(c3[freq1])(c1与c3的同频率字符组大小一致)len(c2[freq2]) == len(c4[freq2])(c2与c4的同频率字符组大小一致)
基于此生成的频率表如下:
c1: {4: {w, t}, 2: {u, i, r, l, z, n}, 1: {a, s, k, x, o, g, y}} c3: {4: {e, z}, 2: {c, x, t, o, g, y}, 1: {u, i, r, a, f, p, h}} c2: {2: {_, s, z, t, h}, 1: {n, m, q, b, u, i, r, a, c, f, l, x, e, j, o, g, y}} c4: {2: {d, f, k, e, o}, 1: {y, n, m, q, b, u, i, a, _, r, c, x, w, v, g, t, h}}
已采取的破解方法
目前已以频率表为起点,通过集合交集、差集运算缩减候选映射集,例如利用c1的4频率组与c3的4频率组的特征推导t->e,再基于此类确定的映射进一步推导其他关联映射。
需解答的问题
- 上述基于集合运算和频率约束的映射推导过程,是否有现成的数学或程序化表示方法?
- 这类破解方法的正式名称是什么?
- 除了当前用到的集合运算、频率匹配外,还有哪些可用于提取密钥信息的方法?
内容的提问来源于stack exchange,提问作者yuno
相关产品推荐
相关产品推荐

