AES 편집하기
최신판 | 당신의 편집 | ||
14번째 줄: | 14번째 줄: | ||
*AES 알고리즘에서 8비트 곱셈 연산이 등장하는데, AES에서는 곱셈 연산을 (x2) 연산과 (+1) 연산을 통해 구한다. 이때 (x2) 연산을 AES에서는 보통 xtime 이라 부른다. 이때 xtime 연산은 8비트 입력값을 왼쪽으로 1비트 쉬프트하여 구현되는데, 이때 최상위 비트가 1인 경우 0x1b(00011011)를 XOR 한다. 이는 우선 2진수에서 왼쪽으로 1비트 쉬프트하면 곱하기2 연산이 된다는점과 AES에서 사용하는 기약다항식이 x^8+x^4+x^3+x+1이기 때문이다. 기약다항식을 최상위 비트인 x^8을 제외하고 8비트 바이너리로 표현하면 0x1b가 된다. | *AES 알고리즘에서 8비트 곱셈 연산이 등장하는데, AES에서는 곱셈 연산을 (x2) 연산과 (+1) 연산을 통해 구한다. 이때 (x2) 연산을 AES에서는 보통 xtime 이라 부른다. 이때 xtime 연산은 8비트 입력값을 왼쪽으로 1비트 쉬프트하여 구현되는데, 이때 최상위 비트가 1인 경우 0x1b(00011011)를 XOR 한다. 이는 우선 2진수에서 왼쪽으로 1비트 쉬프트하면 곱하기2 연산이 된다는점과 AES에서 사용하는 기약다항식이 x^8+x^4+x^3+x+1이기 때문이다. 기약다항식을 최상위 비트인 x^8을 제외하고 8비트 바이너리로 표현하면 0x1b가 된다. | ||
:AES 알고리즘에서 (x2) 연산과 (+1)을 통해 곱셈을 구현하는 법은 | :AES 알고리즘에서 (x2) 연산과 (+1)을 통해 곱셈을 구현하는 법은 | ||
− | :a 에 9를 곱한다고 가정하면 이는 a*(2^3) + a 로 쓸수있다.(x2)연산이 xtime이므로 a를 xtime에 3번 통과시킨 결과와 a를 XOR 하면 a에 9를 곱한 결과가 나오는 식이다. <ref name="티스토리2"> 감파고, 〈[https://newstein03.tistory.com/1 AES ( Advanced Encryption Standard ) 암/복호화 알고리즘]〉, 《티스토리》 | + | :a 에 9를 곱한다고 가정하면 이는 a*(2^3) + a 로 쓸수있다.(x2)연산이 xtime이므로 a를 xtime에 3번 통과시킨 결과와 a를 XOR 하면 a에 9를 곱한 결과가 나오는 식이다. <ref name="티스토리2"> 감파고, 〈[https://newstein03.tistory.com/1 AES ( Advanced Encryption Standard ) 암/복호화 알고리즘]〉, 《티스토리》</ref> |
AES 알고리즘은 안정성을 제공하기위해 대치(Substitution), 치환(Permutation), 섞음(Mixing), 키 덧셈(Key-adding) 4가지 형태의 변환을 제공하고 Add Round Key , Sub Byte, Shift Row, Mix Column 이 반복 되어 이루어진다. | AES 알고리즘은 안정성을 제공하기위해 대치(Substitution), 치환(Permutation), 섞음(Mixing), 키 덧셈(Key-adding) 4가지 형태의 변환을 제공하고 Add Round Key , Sub Byte, Shift Row, Mix Column 이 반복 되어 이루어진다. | ||