GF(n) 두 가지의 경우로 나눌 수 있다.
GF의 조건
1. 두개의 원소에 대한 모든 연산의 결과는 반드시 그 GF 집합 속에 존재해야 한다.
2. 덧셈, 곱셈 연산에 대해 반드시 역원이 존재해야 한다.
위 조건을 맞추기 위해서는 GF(n)에서 n은 소수 일 것이다.
예를 들어 GF(2)에 대해 연산을 진행해 보겠다.
따라서 GF(2)는 조건을 만족한다.
그렇다면 이 때 다항식 연산을 해보자.
1. 덧셈
2. 뺄셈
곱셈과 나눗셈은 따로 해보도록 해야지
다음으로는 GF(n) 에서 n이 거듭제곱이라고 생각해보자.
이 때 n은 소수의 조건을 갖기 어렵기 때문에 원소들의 조건을 살짝 바꾼다.
예를들어 GF(2^3) 의 경우 -> 원소들은 원래 {0, 1, 2, 3, 4, 5, 6, 7} 이다 하지만 이 원소들은 GF의 조건을 만족하지 못하기 때문에 다음과 같이 바꾸어 준다.
{000, 001, 010, 011, 100, 101, 110, 111} -> {0, 1, x, x+1, x^2, x^2 + 1, x^2+x, x^2+x+1}
위와 같이 다항식으로 원소를 변환해 주면 GF의 조건을 충족시킬 수 있다.
+ 다항식을 원소로 사용할 경우 원소의 범위를 벗어날 수 있다. -> 이 때는 기약 다항식을 사용해 원소를 나누어 준다.
이제 GF(2^n) 의 다항식 연산을 보자.
1. 원래 다항식 연산을 사용하기
2. XOR 연산을 사용하기
3. Generator 연산을 사용하기
3가지 방법이 있다.
1번은 고등학교 때 배웠던거니까 패스
2번 계산 방법을 보자
1) 최고차항이 1인 경우 -> 왼쪽 1 시프트 연산 후 x^4+x^3+x+1와 XOR 연산
2) 최고차항이 0인 경우 -> 왼쪽 1시프트 연산
3번 계산 방법
1) 기약 다항식 m(x)를 정의
2) 기약 다항식에 대해 GF 원소를 정의
-> g^k = g^(k mod 7) 이 때 7은 계산해서 표를 봐야 정할 수 있는 숫자임.
'컴퓨터 공학 이론 > 컴퓨터 보안' 카테고리의 다른 글
RSA 키 암호화 복호화 과정 (0) | 2023.06.19 |
---|---|
RSA, MIT (2) | 2023.06.05 |