positive: "伽罗华域上的多项式乘法,其结果需要mod 本原多项式P(x),在<br>中可以通过以下方式简化计算。<br>例子:<br>3. AES加密:<br>AES每轮的加密步骤可以分为字节代换(S-BOX, substitute bytes)、行移位(shift rows)、列混合(mix columns)。<br>AES的字节代换其实就是一个简单的查表操作。AES定义了一个S盒和一个逆S盒。S盒即状态矩阵中的元素按照以下方式映射为一个新的字节,把该字节的高4位作为行值,低4位作为列值,取出S盒或者逆S盒中对应的行的元素作为输出。例如,加密时,输出的字节S1为0x12,则查S盒的第0x01行和0x02列,得到值0xc9,然后替换S1原有的0x12为0xc9。<br>行移位是一个简单的左循环移位操作。当密钥长度为128比特时,状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节,如下图所示:<br>列混合变换是通过矩阵相乘来实现的,经行移位后的状态矩阵与固定的矩阵相乘,得到混淆后的状态矩阵,如下图的公式所示:<br>注:矩阵相乘等价于有限域内多项式相乘.,乘01相当于原多项式不变,乘2相当于多项式乘x,乘3相当于多项式乘x+1。<br>同时,针对乘x,x+1,有更快速的方法计算,例如:<br>对于一般形式的多项式<br>,两侧乘x得到:<br>这时有两种情况:<br>(1)a_7 == 0,此时结果是一个小于指数小于8的多项式,不需要取模计算。<br>(2)a_7 == 1,则直接将a7x8替换为<br>,而不用进行除法取模计算,即<br>其中,加一个多项式等价于异或一个二进制数<br>具体操作方式如下:<br>这就可以把列混淆过程完全转换为异或运算。<br>轮密钥加是将128位轮密钥Si与状态矩阵中的数据进行逐位异或操作,如下图所示。其中,密钥Ki中每个字W[4i],W[4i+1],W[4i+2],W[4i+3]为32位比特字,包含4个字节,轮密钥加过程可以看成是字逐位异或的结果,也可以看成字节级别或者位级别的操作。也就是说,可以看成S0 S1 S2 S3 组成的32位字与W[4i]的异或运算。<br>AES总体如下:<br>4. RSA加密<br>在对称加密算法中,由于加密和解密使用同样规则(简称""密钥"")。但这种加密模式有一个最大弱点:甲方必"
negative: <img><br><img><br>对于不同的X,Y,可以参见这个回答的推导:<br><img><br><img>