세션1. 암호학의 이해
암호가 뭔지 생각해보자, 떨어져있는 두 사람이 메시지를 주고받고자 할 때의 통신채널(인터넷), TCP.IP, 인터넷, 공중망 모두 같은 말임. 클라우드라고,(통신채널) 70년대에 TCPIP설계시엔 보안 자체를 아예 신경 안썼곘지, 해커가 없으니까, 그래서 안전하지가 않음. 누군가가 메시지를 가로채서 도청이 가능함. 그래서 이러한 도청을 막기 위해 평문을 다른 문자나 부호로 만드는 것을 암호화라고 함.
암호란 평문을 제 3자가 해독할 수 없도록 암호문으로 변화하는 것으로 생성된 암호문으로부터 의미를 알 수 있는 형태로 복원하기 위한 수단이나 방법을 다루는 기술을 말한다.
암호관련 용어
전산은 용어싸움임. 용어를 많이 알아야함
평문: 누구나 알 수있고, 누구나 볼 수 있ㄴㄴ 평문
평문을 암호화를 할 때 마치 우리가 자물쇠를 열쇠로 잠그는 걸 암호화를 한다고 할 수 있음 즉 암호화 할때는 키가 필요함 이 키가 암호화 키고 이 키를 가지고 잠그면 암호문이 만들어짐. 그리고 그 잠근걸 열어야지 이게 복호화. 복호화도 키가 필요하지. 자물쇠를 여는 거임. 그래서 열면 편문이 만들어 지겠지. 이게 정상적인 방법. 암호화키와 복호화키를 가지고 암호문과 평문을 만듦
해커는 키가 없이 암호문을 해독하는 것, 키가 없이 평문으로 만드는 걸 하는 것 -> 암호해독
암호화키와 복호화키가 같으면 대칭키 암호화 방식이라고 함.
다르면 비대칭키 암호화 방식이라고 함.
5페이지)
평문plaintext, 송신자와 수신자 간에 주고받고자 하는 내용을 적 일반적인 문장
암호해독, 복호화키를 모르는 적 또는 암호분석가가 복호화 키를 찾아내거나 평문 내용을 알아내는 비정상적인 과정
암호해독자(해커), 암호 방식에 정당한 참여자가 아닌 자로 암호문으로부터 평문을 해독하려는 제 3자
키(Key), 평문을 암호문으로 또는 암호문을 평문으로 변환하는데 사용되는 특정한 기호(메시지)로 평문의 암호화 과정이나 암호문의 복호화 과정에서 필요한 파라미터로 암호화키와 복호화키로 나누어진다.
암호화, 메시지를 공격자가 파악하지 못하도록 원래의 메시지와 다른 형태로 코드화 하는 방법, 송신자가 평문을 암호화 기술을 이용해서 제 3자가 알지 못하도록 바꾸는 과정
암호화 기능
메시지 송신자 신분인증(여기서는 패스워드, 아래 인증 참고)을 제공한다.
- 식별 ID(고유한 사람인지)
- 인증 Password
- 인가 권한부여
상호신뢰성을 보장한다, 암호화/복호화를 통해 서로 믿음
불법적 변조로부터 메시지를 보호한다. -> 무결성
- 내가 만원짜리샀는데 카드 결제하고나니 10만원이 결제 되었다면 중간에 정보가 바뀐 것이라 무결성이 파괴된 것.
메시지의 보안성을 전달매체의 보안성과 분리한다.
- 인터넷이있다. 공중망 TCP/IP라고도 하지. 인터넷자체는 보안성이 없음. 송수신자가 있는데 메시지의 보안성을 전당매체에 보안성을 전달 매채의 보안성, 인터넷 자체는 보안성이 없는데 분리한다는 것은 터널링이라는 기술이 있는데 터널을 뚫은 것 처럼 터넝링한다는 것임. 이게 바로 전달 매체의 보안성과 분리한다.
복호화
- 암호문을 평문으로 만듦. 송신자로부터 전달된 암호문을 주어진 복호화키를 이용하여 평문으로 바꾸는 과정
- 암호문을 일반인들이 이해할 수 있는 평문으로 변환하는 과정
대칭키(비밀키)암호화 방식: 암호화키와 복호화키가 같음, 송신자와 수신자가 같은 비밀키를 사용하는 시스템
- 대칭키 = 비밀키 = 관용키 = 세션키 = 비공개키
비대칭키(공개키) 암호화방식: 암호화와 복호키가 다른 경우, 공개키와 개인키를 이용해서 암호화와 복호화를 함.
- 비대칭키 = 공개키 = 사설
세션2. 암호기법의 종류
1. 전치와 대치
암호란 비밀을 유지하기 위하여 당사자끼리만 알 수 있도록 꾸민 약속기호로, 평문을 암호문으로 변형하거나 암호문을 평문으로 변환하기 위한 원리, 수단, 방법 등을 취급하는 기술 또는 과학을 뜻한다.
정보보호론 측면에서 암호는 비밀번호 같은 단순한 하나의 문자열을 지칭하기 보다는 암호학 측면에서의 암호로 메시지 암호화/ 복호화를 수행하는 알고리즘을 의미한다.
암호의원리는 크게 전치. 치환암호와 스트림.블록암호로 분류할 수 있다.
전치암호 : 선형 (1:1 자리를 바꾸는 규칙, 재배열) 예) ROT13(위치교환)
치환(대치) : 비선형(1:1 대응이 아니어도 상관 없다, 교환) 예) XOR연산(바꿔치기), 베타적 논리합
010110 - 평문
111000 - 키
둘을 베타적 논리합으로 계산하면
101110 - 암호문
이걸 인터넷으로 보내서 수신자가 받아서 같은 키(대칭키라 치고)로 복호화하면
101110 - 암호문
111000 - 키
둘을 베타적 논리합으로 계산하면
010110 - 평문
1의 갯수가 평문은 3갠데 암호문은 4개, 이래서 비선형임.
스트림 암호: 데이터의 흐름 암호, 데이터의 흐름(스트림)을 순자적으로 처리해가는 암호 알고리즘의 총칭
예) 오디오/비디오 스트리밍(넷플 등)
블록 암호: 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용
예) 데이터 전송, 스토리지 저장(하드에 백업 등)
대칭키 방식: 비밀키 이용
비대칭키 방식: 공개키-개인키
암호화 시스템 양방향과 일방향
평문이 있고 암호문이 있으면 평문을 암호화 하거나 암호문을 평문화 하거나 = 양향
평문을 암호문으로만 만들면 일방향임.
양방향은 대칭키 방식과 공개키 방식이 있음.
| 암호화 시스템 |
양방향 평문<-> 암호문 |
대칭키 | 스트림암호: XOR연산 |
동기식: 데이터를 보낼 때 클록을 맞추는 것 | ||
| 비동기식: 그냥 뭉태기씩 보내는 것 | ||||||
| 블록암호 | 블록단위로 쪼개서 보냄 대칭키 암호화 방식은 모두 블록암호화 방식임 |
Feistel(페이스): 암호화 과정과 복호화 과정이 같다. 암호화키 = 복호화 키 평문을 평문블록으로 쪼갬, 그리고 블록을 선형과 비선형으로 쪼갬 |
CFB OFB CTR |
|||
| SPN: 암호화 과정과 복호화 과정이 다름 평문을 평문블록으로 쪼개기만 함 |
ECB CBC |
|||||
| 공개키 (비대칭키) |
키 배송 문제 해결 | |||||
| 일방향(해시함수) | MDC(Modification Detection Code): 변경 감지 코드(무결성 검증) | |||||
| MAC(Message Authentication Code): 메시지인증코드(키를 사용해 무결성 +인증수행) -> 사용 불편해서 안씀; |
||||||
스트림 암호
- 평문을 암호화 키를 이용해 암호문으로 만드는 것, 쭈욱 만듦.
- 스트림 암호는 한 번에 한 바이트씩 암호화되는 형식을 말한다. 그래서 가장 처음에는 초기값을 필요로한다.(IV: 이니셜라이즈 백터) 평문을 키 생성 알고리즘 비밀키로 XOR연산하여 암호화하고 그 암호문을 기밀성과 무결성이 보장되는 채널을 통하여 받은 비밀키로 복호화하여 평문으로 만든다.
- 기밀성과 무결성이 보장되는 채널은 인터넷이 있으면 암호문을 보냄. 복호화하려면 키가 필요하지. 그때는 안전한 채널, 터널링을 통해서 안전한 채널을 통해 키를 보내야함.
- 스트림 암호화 방식은 입력을 한 번에 하나의 요소씩 처리한다.
- 인터넷이 있는데 평문이 0101이 있고 키가 1001이 있고 이걸 베타적 논리합을 하면 암호문이 1100이 됨. 이 암호문을 인터넷을 통해 수신자에게 보냄, 이 암호문을 받은 수신자는 이 키를 어떻게 안전하게 받았다고 치고, 이 키를 똑같이 같은 베타적 논리합 연산을 하면 0101평문값으로 돌아옴.
블록암호
대칭키 방식에는 스트림암호와 블록암호 방식이 있고, 블록암호는 블록 단위로 애를 쪼개는 것, 이건 페이스틀방식와 SPN방식이 있음. 페이스틀은 암호화과정과 복호화 과정이 같고, SPN은 암호화 방식과 복호화 방식이 다름
블록암호는 대칭키 방식에서 사용하는 비밀키를 이용하여 고정된 크기의 입력 블록을 고정된 크기의 출력블록으로 변형하는 알고리즘
이떄 출력 블록의 각 비트는 입력 블록과 키의 모든 비트에 영향을 받음.
블록 암호에는 페이스틀와 SPN방식이 있음.
암복호화 과정이 같다는 의미는 알고리즘 한개로 얘를 암호화와 복호화를 한다는 말임. =페이스틀
- 평문을 평문블록으로 나누고 선형과 비선형으로 나눔.
1. 평문을 각각의 블록으로 나눈 뒤 각각의 블록을 선형과 비선형으로 나눈다.
2. 암호알고리즘과 복호알고리즘이 같음.
3. 체이스틀 암호방식의 강도를 결정짓는 요소는 평문 블록의 길이, 키의 길이, 라운드 수이다.
* 라운드: 카드 섞기는 많이 섞으면 균열게 섞이겠지? 그런식으로 몇 번 섞느냐임.
암호화 과정이 다르다는 말은 암호문을 만드는 암호화 알고리즘과 평문을 만드는 알고리즘 2개가 필요하다 = SPN
- 알고리즘 두개, 암호화 알고리즘과 복호화 알고리즘.
1. 평문을 블록으로 나뉜 뒤 각각의 블록을 선형과 비선형으로 분할하지 않는다.
2. 암호, 복호알고리즘이 다르다. 분할과정이 없으므로페이스틀 구조보다 간단하다.
AES: 128bit 10라운드, 192bit 12라운드, 256bit 14라운드, 이렇게 평문 길이가 클 수록 라운드도 커지고
열혼합 과정(믹스 컬럼) 추가, 균일하게 난수를 퍼트리기 위해 사용함.
블록 암호 알고리즘 운영 모드
대칭키 암호 알고리즘의 블록암호 방식 문제를 해결하기 위한 운영모드이다.
암호화 != 복호화(알고리즘 2개): ECB, CBC
암호화 = 복호화(알고리즘 1개) CFB, OFB, CTR
CBC와 CFB는 오류 전파함
ECB(Electric Codebook)
1. 평문 블록을 그대로 암호화 하는 방식
2. 약점: 동일 편문에 동일 암호문
-> 시간이 지나서 한 두개 복호화하면 그 복호화를 기반으로 점점 새끼를 침
3. 코드북이라하며, 가장 간단하게 평문을 동일한 크기의 평문블록으로 나누고 키로 암호화하여 암호블록을 생산한다.
4. 한 평문 블록의 오류가 다른 평문 블록의 암호 결과에 영향을 미치는 오류 전파가 발생하지 않음.
CBC(Cipher BLock Chaining)
1. 암호문 블록을 체인처럼 연결, ECB 모드의 약점 회피, 각 평문 블록을 이전 암호문 블록과 XOR한 후 암호화 되어 안정성을 높이는 모드이다.
2. 현재 평문블록과 바로 직전의 암호블록을 XOR한 후 그 결과를 키로 암호화하여 암호블록을 생성한다.
3. 오류전이(오류전파)가 발생한다.
CFB(Cipher Feedback)
* 피드백: 출력을 다시 입력으로 넣는
1. 암호피드백모드, 한 단계 앞의 암호문 블록을 암호 알고리즘의 입력으로 사용
2. 오류전이가 발생한다(암호화 때 발생, 복호화 때는 발생하지 않는다).
OFB(Out Feedback Mode)
1. 암호 알고리즘의 출력을 암호 알고리즘의 입력으로 사용한다.
2. 평문 블록은 암호 알고리즘에 의해 직접 암호화되고 있는 것은 아니다.
3. 평문 블록과 암호 알고리즘의 출력을 XOR해서 암호문 블록을 생성한다.
4. 한 평문 블록의 오류가 다른 평문 블록의 암호 결과에 영향을 미치는 오류전이(error propagation)가 발생하지 않는다.
CTR(Counter Mode)
1. 1씩 증가해가는 카운터를 암호화해서 키 스트림을 만들어 내는 스트림 암호이다.
2. 각 평문블록별로 증가하는 서로 다른 카운터 값을 키로 암호화하고 평문블록과 XOR하여 암호블록을 생성한다.
'공무원 > 네트워크 보안' 카테고리의 다른 글
| 보안과 암호, 대칭키, 공개키(비대칭키) 암호화 (0) | 2026.06.17 |
|---|