[Shielders] Rookies-14

Dong Jung·2022년 9월 19일
0

Rookies

목록 보기
15/24
post-thumbnail

2022.09.19

지난주는 감기 때문에 고생했던 한주였다.
이번주 암호학부터 공부를 시작한다

암호학

  • 대칭키 암호
  • 공개키 암호
  • 해시함수
  • 전자서명
  • 인증서

암호학

대칭키암호

  • 치환 방식

CaeSar가 사용한 최초의 암호화 방식

평문 : attack paris next friday -> shift +2
암호문 : cvvcem rctku pgzv htkfca

암호화키 : shift+2, 복화화키 : shift-2 -> 서로 대칭을 이룸( 대칭키)


(영화 베를린의 암호장면, SHIFT+1 시져암호가 사용되고있다.)

  • 치환

문자를 다른 문자로 바꾸는 것

  • 순열

알파벳 순서를 바꾸는 것
ex) 땅리독는도우 -> 독도는 우리땅
평문 : attac kpari snext frida y 12345 -> 41523
암호문 : aacttrkipaxstne
암호화키 : 12345 -> 41523, 복호화키 ; 41523-> 12345

  • 매트릭스

5x5 매트릭스
ATTAC
KPARI
SNEXT
FRIDA
YOKAY

평문 : attack paris nesxt friday okay
암호문 : aksfytpnrotaeikarxdacitay(세로)
암호화 : 가로로 쓰고 세로로 읽어들인다.
복호화 : 세로로 쓰고 가로로 읽어들인다.

  • 대칭키 방식 : 치환(S)와 순열(P) -> 현재 SPN방식을 사용(S:치환, P:순열, N:네트워크 -> 치환과 순열의 반복)

암호화키와 복호화키가 서로 대칭을 이룸 -> 대칭키(Symmetric Key)
암호화키를 알면 복호화키를 알 수 있음 -> 단일키(Single Key)
대칭키는 다른사람이 알면 안됨 -> 비밀키(Secret Key)
한번의 세션에서만 사용 -> 세션키(Session Key)

  • ROT13

알파벳 숫자가 26자인 특성을 이용하여 반절인 13개씩나눠 서로 대칭하여 만듬

ex) CVARNCCYR -> Pineapple, EBBXVRF -> ROOKIES

https://rot13.com/
해당 사이트에 접속하여 값을 입력하면 rot13으로 암호화가 가능하다.

  • ROT13방식의 단점

영어만 암호화됨
숫자, 특수문자는 암호화 안됨

  • ROT47

대/소/숫/특문 94개를 반으로 나누어서 섞어서 사용하는 방식

##python ROT47

def rot47(s):
	x = []
    for i in range(len(s)):
    	j = ord(s[i])
        if j >= 33 and j <= 126:
        	x.append(chr(33 + ((j+14)%94))
        else:
        	x.append(s[i])
return ''.join(x)  
        
  • DES

최초의 표준 대칭키, IBM의 Lucifer System 을 기반으로 만듦
NIST에서 표준으로 지정
1999년 RSA컨퍼런스에서DES를 크래킹시연 표준에서 제외
DES 암호화 사이트
https://www.flashbit.site/ko/des/

블록암호화 방식

  • AES

표준 대칭키(현재)
SPN(Substitution Permutation Network)
벨기에의 Rijndael을 AES로 채택
128bit, 192bit, 256bit 중에서 선택해서 사용

  • SEED
    우리나라에서 만듬
    소스코드 공개 이유, 백도어가 없는지 검증
    SEED(금융중앙망), HIGHT/ARIA/LEA는 경량 대칭키 -> 모바일/IoT시대에 적합하도록 만듦
  • RC 시리즈
    MIT공대의 Rivest교수팀
    RC4 : 무선공유기에서 많이 사용되었으나 키를 크래킹하는 방식이 알려져서 최근에는 사용하지 않음 (Kali Linux에서 40분 정도면 크래킹 가능)
    RC6은 AES선정할 때 최종라운드까지 갔다가 탈락

  • Fish 시리즈
    브루스 슈나이어라는 유명 암호학자가 만듦
    TwoFish : AES선정할 때 최종라운드까지 갔다가 탈락
    BlowFish : 안전하기로 유명함

공개키암호

  • Diffie-Hellman

이산대수의 어려움을 이용해서 공개키 방식을 인류 최초로 만듦(1976년)
누구나 개인키와 공개키 한쌍을 가짐(개인키로 공개키를 생성)

  • 개인키, 공개키의 특징

개인키는 나 혼자만 보는 것(600), 공개키는 상대방에게 제공하기 위한것(644)
공개키를 상대방에게 제공(평문으로 가도 상관없음, 이메일로 보내도됨, 딴사람이 가져도 상관 없음)
자신의 개인키와 상대방의 공개키를 이산대수 연산해서 생성된 키는 양쪽이 일치하게 됨 -> 대칭키로 사용하면 됨 ( 대칭키를 사용할 필요 없음)
대칭키 키 교환의 문제를 해결 (공개키만 제공했는데 대칭키가 생성되었음)
ID와 PW를 모두 대칭키로 암호화해서 상대방에게 제공하면 됨, 상대방도 같은 대칭키가 있기 때문에 복호화 가능함

ssh_host_ecdsa_key 개인키(Private Key) : 확장자 없음
ssh_host_ecdsa_key.pub 공개키(Public Key) : 확장자가 pub임

  • RSA

누구나 개인키와 공개키 한쌍을 가짐
하나의 키로 암호화 하면, 쌍이되는 다른 키로만 복호화됨
소인수분해의 어려움에 근거
양방향 암호화 가능 : 개인키로 암호화하면 공개키로 복호화, 공개키로 암호화하면 개인키로 복호화
특허가 2001년쯤 만료되어서 무료로 사용가능 -> 상당히 많이 사용 (사실상의 표준 De Facto)

해시함수

1) 고정길이 출력 : 원문의 길이와 관계없이 해쉬값은 항상 일정ㅇ한 길이로 출력됨

MD5(128bit), SHA-1(160bit), SHA-256(256bit)

2) 일방향 함수 : 해쉬함수와 해쉬값을 알아도 원문 복구는 불가능
3) 충돌 방지 ( 충돌 : 원문이 다른데 해쉬값이 같은 것)
ex) MD5가 충돌될 확률 : 1/(2의128승) >0에 수렴, SHA-1가 충돌될 확률 : 1/(2의160승) -> 0에 수렴

MD5와 SHA-1 은 더이상 안전하지 않다 -> ISMS-P, ISO27001에서 사용하면 안된다고 함(인증안됨)

  • 구글 보안팀( 프로젝트 제로)
    세계적인 해커들을 고용해서 각종 테스트, 크래킹 등을 해본다고 함
    목적은 제로데이 취약점을 알아내는 것(알려지지 않은 취약점을 알아내는 것)
  • https://shattered.io/ SHA-1의 충돌쌍을 공개함

전자서명

생성 : 원문의 해시값에 송신자의 개인키로 서명을하고 원문과 함께 보냄
검증 : 서명된 해시값을 송신자의 공개키로 복호화하고 원문의 해시값과 비교해서 일치하는지 확인
수신자와 송신자의 해시값이 일치하면 무결성 검증, 인증, 부인봉쇄 확인됨
무결성(내용변조 x), 인증(송신자 검증), 부인봉쇄(아니라고 하지 못함)

인증서

인증서
형식 : X.509v3
발급자, 주체, 주체의 공개키, 서명된 해시값 등
공개키가 올바른지 확인( 주체의 것이 맞는지 검증)
방법은 전자서명과 비슷함
생성 : 원문의 해시값을 구해서 송신자(CA)의 개인키로 서명
검증 : 송신자(CA)의 공개키로 서명된 해시값을 복호화한 후 , 원문(공개키)의 해시값을 구해서 비교해봄

PKI기관
RA : 인증서 신청 업체를 검증하고 등록을 대행하는 역할
CA : 인증서를 발행
RootCA 최상위 인증기관 : 인증기관을 검증
Repository : 인증서를 모아둠

  • 우리나라의 공인인증 체계

NPKI 미래부 -> KISA -> CA 5개 기관 -> 은행들
GPKI : 행자부
MPKI : 국방부
EPKI : 교육부

인증서 취소목록
-> 일반인들이 조회하기 전까지는 가짜 인증서 확인 어려움

OCSP
온라인에서 실시간으로 인증서의 유효성을 검증하는 프로토콜

PKI (공개키 기반 구조)

1) NPKI (National Public Key Infrastructure)

PAA(정책기관) : 미래부, 방송통신위원회
Root CA : KISA
CA(인증기관) : 금융결제원, 정보인증, 전자인증, Koscom, 무역정보협회
RA(등록기관) : 은행, 증권회사, 대행 업체 등등

2) GPKI, MPKI, EPKI 등등

  • 용어정리

평문 : 누구나 읽을 수 있는 글
암호문 : 아무도 읽을 수 없는 글
암호화 : 평문을 암호문으로 만드는 것
복호화 : 암호문을 평문으로 만드는 것
암호화키 : 평문을 암호문으로 만드는 규칙
복호화키 : 암호문을 평문으로 만드는 규칙


후기

정보보안기사와 같은 시험에서 자주 나오며, 보안 업무를 함에 있어 중요한 암호학에 대한 공부를 하였다. 중요한 파트이고 얼마 후에 산업기사 시험을 준비하는 입장에서 너무 좋은 학습시간이였던거같다.

profile
보안새내기

0개의 댓글