positive: Rijndael密码是一个迭代型分组密码,分组长度和密码长度都是可变的,分组长度和密码长度可以独立的指定为128比特,192比特或者256比特。AES的加密算法的数据处理单位是字节,128位的比特信息被分成16个字节,按顺序复制到一个4*4的矩阵中,称为状态(state),AES的所有变换都是基于状态矩阵的变换。<br>用Nr表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表一所示)。在轮函数的每一轮迭代中,包括四步变换,分别是字节代换运算(ByteSub())、行变换(ShiftRows())、列混合(MixColumns())以及轮密钥的添加变换AddRoundKey(),其作用就是通过重复简单的非线形变换、混合函数变换,将字节代换运算产生的非线性扩散,达到充分的混合,在每轮迭代中引入不同的密钥,从而实现加密的有效性。<br>表一是三种不同类型的AES加密密钥分组大小与相应的加密轮数的对照表。加密开始时,输入分组的各字节按<br>表二的方式装入矩阵state中。如输入ABCDEFGHIJKLMNOP,则输入块影射到如表2的状态矩阵中。<br>表一:<br>|AES类型| 密钥长度 | 分组长度 | 加密轮数| |AES-128| 4字|4字 | 10 | |AES-192| 6字|4字 | 12 | |AES-256| 8字|4字 | 14 |<br>表二:<br>| A | E | I | M | | B | F | J | N | | C | G | K | O | | D | H | L | P |<br>字节代换运算(ByteSub())<br>字节代换运算是一个可逆的非线形字节代换操作,对分组中的每个字节进行,对字节的操作遵循一个代换表,即S盒。S盒由有限域 GF(28)上的乘法取逆和GF(2)上的仿射变换两步组成。<br>行变换ShiftRows()<br>行变换是一种线性变换,其目的就是使密码信息达到充分的混乱,提高非线形度。行变换对状态的每行以字节为单位进行循环右移,移动字节数根据行数来确定,第0行不发生偏移,第一行循环右移一个字节,第二行移两个,依次类推。<br>列混合变换MixColumns()<br>列变换就是从状态中取出一列,表示成多项式的形式后,用它乘以一个固定的多项式a(x),然后将所得结果进行取模运算,模值为 x4+1。其中
negative: 衣柜是飞蛾最喜欢出没的场所之一。在衣柜里挂上一把粉笔就能吸收空气里的水分,赶走飞蛾了。[28]<br>吓走蟑螂。蟑螂喜欢的食物很多,但有一样东西它们却怕得要命,那就是黄瓜皮。下次削黄瓜的时候把皮留下,在厨房料理台上或者浴缸附近放一些,这样蟑螂就不敢靠近了。[29]如果发现黄瓜皮容易招来蚂蚁,那就用硼砂:在蟑螂经常出现的地方撒上一些硼砂,一个月之内,你就会发现蟑螂的数量大大减少了。虽然很多人对硼砂的安全性表示怀疑,但是它的毒性对人类和宠物来说真的很轻微。<br>消灭蜘蛛。蜘蛛总喜欢无缘无故地冒出来。除了消灭其它昆虫,断了蜘蛛的食物来源,还有一些方法能让它们不敢踏入你家半步:将所有和户外连通的缝隙填满,比如窗户缝和门缝。[30]