본문 바로가기

보안 공부

(7)
chapter 4 대칭 키 암호 수학: 대수 구조 - 2절 GF(p^n) 체 1. GF(p^n) 체의 중요성 컴퓨터는 양의 정수를 n-비트 워드로 저장한다. 따라서 컴퓨터가 저장하는 모든 수는 모듈로 2^n이다. 컴퓨터에서는 원소의 개수가 2^n인 GF(2^n) 체를 사용해야 한다. 하지만 n-비트 워드들에는 일반적인 네 개의 연산들을 적용할 수 없기 때문에 새로운 두 개의 연산을 정의할 필요가 있다. 2. 다항식 n-비트 워드들을 차수 n - 1의 다항식(polymomial) 형태로 생각하면 다루기 편리하다. x의 지수승이 n-비트 워드에서 비트들의 위치를 정의한다. 가장 오른쪽에 있는 비트를 x^0, 가장 왼쪽에 있는 비트를 x^(n-1)위치에 놓는다. 항의 계수는 비트값을 나타낸다. 0 또는 1의 값을 갖는다. 1. 연산 다항식에 관한 연산은 계수에 관한 연산과 두 개의 다..
chapter 4 대칭 키 암호 수학: 대수 구조 - 1절 대수 구조 1. 대수 구조의 개념 한 집합과 그 집합에 포함된 원소들에 적용되는 연산들을 통틀어 대수 구조(algebraic structure)라고 한다. 일반적인 대수구조로는 군, 환, 체가 있다. 2. 군 군(groups, G)은 네 개의 성질을 만족하는 이항연산 "●"이 정의된 원소들의 집합이다. G = 로 표기한다. 특히, 군 중에서 교환 법칙을 만족하는 집합을 가환 군(commutative group) 또는 아벨 군(abelian group)이라고 한다. 닫힘(closure) 만약 a와 b가 G의 원소라면, c = a ● b 또한 G의 원소이다. 결합 법칙(associativity) 만약 a, b, c가 G의 원소라면, (a ● b) ● c = a ● (b ● c)를 만족한다. 항등원의 존재성(existe..
chapter 3 고전 대칭 키 암호 - 1절 대칭 키 암호 1. kerckhoff의 원리 공격자는 암호/복호 알고리즘을 알고 있다고 가정한다. 공격에 대한 암호의 안전성은 키의 비밀성에만 기반을 두어야 한다. 키를 추측하는 것이 매우 어려워서 암로/복호 알고리즘을 비공개로 할 필요가 없어야 한다. 2. 암호 해독 암호 해독(cryptanalysis)은 다름 사람의 코드를 해독하는 데에도 사용하지만, 암호 시스템의 취약성을 측정하는 데에도 도움이 된다. 1. 암호문 단독 공격 암호문 단독 공격(ciphertext-only attack)은 공격자가 암호/복호 알고리즘을 알고 있는 상태에서 암호문을 얻어 대응되는 평문과 키를 찾는 공격 방법이다. 2. 전수조사 공격 전수조사 공격(brute-force attack)은 가로챈 암호문을 모든 가능한 키를 사용하여 복호화하..
chapter 2 암호 수학 - 4절 선형 합동 1. 일변수 선형 방정식 변수가 하나인 방정식(single-variable linear equations), 즉 ax ≡ b (mod n) 형태의 방정식은 해가 없거나 유한개의 해를 갖는다. gcd(a,n) = d일 때 d|b일 때만 d개의 해가 존재한다. 2. 일차 연립 방정식 동일한 모듈로에 대한 일차 방정식들의 집합에서 변수의 계수로 구성된 행렬의 역행렬이 존재하면 주어진 방정식들의 공통 해를 구할 수 있다. 변수의 계수로 구성된 정방 행렬, 변수로 구성된 열 행렬, 등식의 우변에 있는 값으로 구성된 열 행렬을 사용하여 해를 구한다.
chapter 2 암호 수학 - 3절 행렬 1. 정의 행렬(matrices)은 l*m 개의 원소를 갖는 직사각형 배열이며, l은 행의 개수이고 m은 열의 개수이다. 하나의 행을 갖는 행렬을 행 행렬(row matrix)이라 하고, 하나의 열을 갖는 행렬을 열 행렬(column matrix)이라고 한다. 행의 개수와 열의 개수가 같은 행렬은 정방 행렬(square matrix)이라고 한다. 정방 행렬은 주대각선(main diagonal)을 형성한다. 주대각선이 1이고 나머지는 0인 정방 행렬을 항등행렬(identity matrix) I라고 한다. 2. 연산과 관계식 1. 등식 두 행렬의 행과 열의 개수와 대응되는 원소가 동일하다면 그 두 행렬은 동일하다. 2. 덧셈과 뺄셈 두 행렬의 행과 열의 개수가 같으면 두 행렬을 더하거나 뺄 수 있다. 3. ..
chapter 2 암호 수학 - 2절 모듈로 연산 1. 모듈로 연산자 모듈로 연산(modular arithmetic)은 나머지를 구하는 연산이다. 이 연산을 나타내는 연산자를 모듈로 연산자(modulo operator)라고 하며 mod라고 표기한다. 두 번째 입력 값을 모듈로(modulo)라고 하고, 결과 값을 나머지(residue)라고 한다. 2. 잉여류 잉여류(residue classes)는 모듈로 n으로 합동인 정수의 집합이다. 각각의 잉여류에는 최소 잉여(least residue)가 있고, 이들의 집합을 모듈로 n의 최소 잉여 집합(set of least residues modulo) 또는 Zn이라고 한다. 3. 합동 같은 모듈로 연산에 대해서 결과 값이 같은 수들을 서로 합동(congruence)이라고 한다. 합동과 등식(equality)의 가..
chapter 2 암호 수학 - 1절 정수 연산 1. 정수 집합 정수 집합(set of integers)Z는 음의 무한대에서 양의 무한대까지의 모든 정수로 구성된 집합이다. 2. 이항 연산 이항 연산(binary operations)이란 두 개의 입력 값으로부터 하나의 결과 값을 산출하는 연산이다. 가령, 더하기, 뺴기, 곱하기가 이항 연산에 포함된다. 나눗셈은 결과값이 두개이므로 이항 연산이 아니다. 3. 정수의 나눗셈 정수 연산에서 a를 n으로 나누면 q와 r을 얻는다. a를 피제수, q를 몫, n을 제수, r을 나머지라고 부른다. 나눗셈은 연산이 아니고, 나눗셈 관계식(division relation)이다. 암호에서 나눗셈 관계식을 이용할 때는 제수가 양의 정수(n>0)여야 하며, 나머지는 음이 아닌 정수(r>=0)여야 한다는 제약이 따른다. 또..