随着信息化和数字化社会的发展,人们对信息安全的重要性认识不断提高,网络信息安全越来越受到重视。
其实在网络中相互传递的各种数据,大部分都是经过加密算法处理过的。数据加密的过程:密文 = (明文 + 密钥)经过 加密算法 处理得来的。
蒜头君和花椰妹最近正在学习加密算法,花椰妹刚刚想到一个小写英文字母的加密算法,形式为:y = (ax + b) % 26 + 'a'。
其中:
x = c - 'a',c 为未加密的小写英文字母(也就是明文);
y 为加密后的小写英文字母(也就是密文);
a, b 为正整数(密钥)。
例如:
a=1, b=1 时,若明文中一个字母 c = 'b',则 x = c - 'a' = 'b' - 'a' = 1,所以 y = (1 * 1 + 1) % 26 + 'a' = 'c'。则 c = 'b' 经过加密后得到的密文为 'c'。
现在花椰妹告诉蒜头君每一个小写字母对应的密文信息,想要让蒜头君求出密钥 a, b。
a, b 可能有多种组合答案,答案优先保证 a 最小,然后保证 b 最小。
假设(不保证 为合法组合,只是为说明 a,b 的优先级): 和 ,此时的正确答案为 a = 1, b = 4。