2010.06.16 00:53 Etc../Encryption
이 운영 모드는 각 블록들간의 연관성 또는 의존성을 주는 방식이라고 보면 되죠
-운영모드
DES (Data Encryption Standard) ; 데이터 암호 표준
블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호.
일반적인 DES는 현재 취약한 것으로 알려져 있습니다
Key Sizes : 56bits
Block Sizes : 64 bits
Rounds : 16
많은 회사들이 세개의 키가 잇달아 적용되는 'Triple DES' 사용
http://en.wikipedia.org/wiki/Data_Encryption_Standard
AES (advanced encryption standard) ; 고급 암호 표준
DES를 대체하기 위한 목적으로 등장. 미국정보 표준으로 지정된 암호 형식
Key Sizes : 128, 192 or 256 bits
Block Sizes : 128 bits
Rounds : 10, 12 or 14 [ depending on key size ]
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
High-level description of the algorithm
- KeyExpansion—round keys are derived from the cipher key using Rijndael's key schedule
- Initial Round
- AddRoundKey—each byte of the state is combined with the round key using bitwise xor
- Rounds
- SubBytes—a non-linear substitution step where each byte is replaced with another according to a lookup table.
- ShiftRows—a transposition step where each row of the state is shifted cyclically a certain number of steps.
- MixColumns—a mixing operation which operates on the columns of the state, combining the four bytes in each column.
- AddRoundKey
- Final Round (no MixColumns)
- SubBytes
- ShiftRows
- AddRoundKey
Blowfish
마찬가지로 DES를 대체하는데 사용될 수 있는 암호화 알고리즘. 32~ 488 비트까지 가변적인 길이의 키를 사용하는 대칭 블록.
미국 내 뿐만 아니라 수출용으로도 이상적으로 사용될 수 있다는군요.
http://en.wikipedia.org/wiki/Blowfish_(cipher)
Ex) A5/1, A5/2, RC4, SEAL,

같은 해시 값을 가진다면, 원래의 입력값이 같다는 것을 시사하지만 보장해주지는 않음.
원래 입력의 한 비트만 바뀌더라도 해시 함수의 성질로 인해 해시 값은 크게 달라집니다.
다음의 일을 하기 위해 ... |
누구 것을 사용? |
어떤 키를 사용? |
암호화된 메시지를 송신 |
수신자의 |
공개키 |
암호화된 서명을 송신 |
송신자의 |
개인키 |
암호화된 메시지의 해독 |
수신자의 |
개인키 |
암호화된 서명의 해독 (그리고 송신자의 인증) |
송신자의 |
공개키
|
와
라고 하는 두 개의 서로 다른 (
) 소수를 고른다.
- 두 수를 곱하여
을 찾는다.
를 구한다.
보단 작고,
와 서로 소인 정수 e 를 찾는다.
- 유클리드 호제법을 이용하여
을 만족시키는 d 를 구한다.
A의 공개키는 위에서 구한 두 개의 숫자로 이루어진 <N, e>이고, 개인키는 d 이다. A는 <N, e>만을 B에게 공개하고, B는 이 공개키를 사용하여 자신의 메시지를 암호화하게 된다. 여기서 p 와 q 의 보안은 매우 중요하다. 이를 가지고 d 와 e 의 계산이 가능하기 때문이다. 그리하여 공개키와 개인키가 생성이 된 후에는 이 두 숫자를 지워버리는 것이 안전하다.
- 유클리드 호제법
2개의 자연수의 최대공약수를 구하는 알고리즘의 하나
문제) 1071과 1029의 최대공약수를 구하라.
- 1071은 1029로 나누어 떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. => 42
- 1029는 42로 나누어 떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. => 21
- 42은 21로 나누어 떨어진다.
따라서, 최대공약수는 21이다.
- 확장된 유클리드 호제법
정수 m, n 의 최대공약수(Greatest Common Divisor)를 gcd(m,n)와 나타낼 때,
확장된 유클리드 호제법을 이용하여,
am + bn = gcd(m,n)의 해가 되는 정수 a, b 짝을 찾아낼 수 있다. 위에서 든 예의 경우,
1071 = 1 * 1029 + 42 1029 = 24 * 42 + 21 42 = 2 * 21
이므로
21 = 1029 - 24 * 42 = 1029 - 24 * (1071 - 1 * 1029) = -24 * 1071 + 25 * 1029
가 된다.
특히, m, n이 서로소(최대공약수가 1)인 경우, am + bn = c는 임의의 정수 c에 대해서 정수해 (a,b)가 존재한다.
'Etc.. > Encryption' 카테고리의 다른 글
Cryptography! (0) | 2010.06.16 |
---|---|
What is CRC? (0) | 2009.11.06 |
What is Padding? (0) | 2009.10.31 |