본문 바로가기

스터디스터디/정처기

[실기] 정보보안 - SW 보안 구현

최초 작성일: 2024-09-09

최종 작성일: 2024-09-09

목표 : 정처기 합격 및 CS 지식 쌓기

 

 

1.    암호 알고리즘

(1)   암호 알고리즘 용어

1)    평문(Plaintext) : 해독 가능한 형태의 메시지(암호화 전 메시지)

2)    암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지)

3)    암호화(Encryption) :평문을 암호문으로 변환하는 과정

4)    복호화(Decryption)  : 암호문을 평문으로 변환하는 과정

5)    전자 서명 : 인터넷 상에서 본인임을 증명하기 위해 서명을 하는 수단/ 송신자는 개인키로 메시지를 서명하여 전달/ 수신자는 송신자의 공개키를 이용하여 서명 값 검증

6)    양방향 암호화 : 평문을 암호문으로 암호문을 평문으로 변경할 수 있는 암호화

7)    단방향 암호화 : 해싱을 이용하여 암호화하고, 평문으로 복호화는 불가능한 암호화 ( 비밀 번호의 경우 사용함)

 

대칭키 : 잠그는 키 = 여는 키

많은 양을 암호화 시킬 수 있다

빠른 암호화 시간

Stream 방식, block 방식

비대칭키 : 다른 것

적은 양을 암호화 시킬 수 있다

대칭키에 비해 상대적으로 느림

인수분해, 이산대수, 타원곡선방정식

*대칭키와 비대치킹는 나누는 이유(비대치키는 사용하는 이유)

비대칭키 는 공개키 암호화, 두개의 키를 가지고 있음 (공개키, 개인키)

공개키로 적은 양의 키를 암호화 시킴

열쇠가 들어가 있는 통은 개인 키로만 열수 있음

많은 양의 데이터를 암호화 하기 어려우니 대칭키를 사용하고 헤당 대치키를 비대칭키중 하나인 개인키로 암호화 시킴

 

(2)   대칭키 암호화

1)    대칭키 암호 개념

암호화와 복호화에 동일한 키를 사용하는 암호화 방식

혼돈과 확산의 원리를 활용하여 평문을 암호화한다

2)    /단점

장점: 빠른 암호화 속도와 대용량 데이터 암호화에 적합

단점: 키 교환 문제/ 증가하는 사용자 수에 따른 키 관리의 어려움/ 키의 개수: n(n-1)/2

3)    블록암호 알고리즘(종류 기억 필요)

DES: 64비트 블록과 56 비트 키를 사용/ 평문을 32비트로 나누고 16라운드에 걸쳐 치환과 전치를 수행/  Feistel 네트워크 구조

3-DES : 두개의 키를 사용하여 순서대로 암호화, 복호화, 다시 암호화를 수행

AES : 128비트 블록을 128/192/256 비트 키로 암호화/ 키 크기에 따라 10/12/14 라운드를 수행/ SPN(Substitution-Permutation Network)구조

SEED: 한국에서 개발된 128비트 및 256 비트 대칭키 블록 암호 알고리즘

ARIA: 한국의 NSRI가 주도하여 개발한 국가 암호화 알고리즘/ AES와 마찬가지로 128/192/256 비트 키를 지원

IDEA : 스위스에서 개발된 PES를 개선한 알고리즘/ 128 비트 키와 64 비트 블록 크기, 8 라운드 구조/ FiestelSPN 구조의 중간 형태

LEA: 한국에서 개발된 128 비트 대칭 키 블록 암호 알고리즘/ 다양한 환경에서 사용

SKIPJACK : 미국의 NSA에서 개발한 CLIPPER 칩에 내장되는 블록 알고리즘/ 전화기와 같은 음성을 암호화 하는 데 사용

4)    스트림 암호 알고리즘(종류 기억 필요)

LFSR: 현재 상태에서 선형 연산을 통해 다음 상태를 생성하는 레지스터

RC4: 로널드 라이베스트가 개발/옷텐 단위 기반

A5 : 시프트 레지스터를 기반으로 사용/GSM 휴대폰 시스템에 사용

(3)   비대칭키 암호화

1)    개념

암호화와 복호화에서 서로 다른 키를 사용 하는 방식

공개 키 암호 방식이라도고 한다

2)    키의 종류

공개키 : 대중에서 공개된 키

개인키 : 개인이 관리하는 비밀 키

3)    /단점

장점: 키의 분배와 관리가 상대적으로 용이/ 사용자 수 증가에 따른 키 관리의 복잡성이 대칭키에 비해 상대적으로 낮다/ 기밀성, 인증, 무결성 지원 및 부인 방지 기능 제공

단점: 키 길이가 길고 연산 속도가 느리다/ 암호화 가능한 평문의 길이에 제한이 있다

4)    비대칭키 알고리즘

구분   설명
소인수 분해 기반 RSA  
  Rabin  
이산대수 기반 Diffie-Hellman  
  DSA  
  ELGamal  
타원곡선 ECC  

5)    전자 서명

인증서 형태로 발급되는 자신만의 디지털 인감 도장이며 안전한 디지털 서명

인터넷 환경에서 특정 사용자를 인증하기 위한 목적으로 사용

전자문서의 해시 값을 서명자의 개인키(전자서명 생성정보)로 변환(암호화)한 것

(4)   단방향 암호화 (고정 길이 암호화, 암호화는 가능하나 복호화는 불가)

1)    단방향 암호화 개념

해시를 이용한 암호화 과정/ 평문을 암호화할 수는 있지만 복호화는 불가능한 방식

2)    해시 함수 특성

특성 설명
역상 저항성 주어진 해시 값으로부터 원래의 입력값을 찾아내는 것이 실질적으로 불가능 해야한다
2 역상 저항성 (약한 충돌 저항성) 특정 입력값에 대해, 동일한 해시 값을 생성하는 다른 입력 값을 찾는 것이 어려워야 한다
충돌 저항성 두개의 다른 입력 값이 동일한 해시 값을 가지지 않도록 해야한다

3)    해시 함수 종류

종류 설명
MD5 128비트 암호화적 해시함수
1991년에 MD4를 대체하기 위해 고안
 
SHA  미국 국가 안보국(NAS)에 의해 설계 되었으며 미국의 국가 표준
HAS-160 국가 표준 전자 서명 알고리즘

4)    암호화적 해시 함수의 결점

무차별 대입 공격(Brute-force attack) : 정해진 범위내의 모든 가능한 문자열을 이용해 암호를 해독하는 공격 방식

Rainbow 테이블 공격 : 미리 계산된 해시 값들의 테이블을 이용하여 해시된 비밀번호를 역추적하는 공격방식

5)    암호화 해시 함수의 보완

키 스트레칭(key stretching) :  해시 과정을 여러 번 반복하여 암호화적 취약점을 줄이고 무차별 대입 공격에 대한 저항력을 강화

솔팅(salting): 데이터에 임의의 값을 추가하여 해시 값을 생성함으로써 rainbow table공격에 대한 저항력을 강화

(5)   전자우편보안

1)    전자우편에 대한 보안 위협 요소

Email 내용이 네트워크 전송 과정에서 외부에 유출

바이러스 프로그램이 첨부되어 전송

메일서버, 이메일 프로그램의 취약성을 이용해 시스템에 침입

2)    암호화 프로토콜

종류 설명
PGP(Pretty good privacy) Idea+rsa
Phil zimmermann
PEM(Privaty enhanced) 메시지 내용 보호
S/MIME 첨부 파일에 대한 암호화/ 첨부물 보안
DKIM 메일 발신자 인증, 발신 정보 위장 방지
   

2.    코드 오류

(1)   코드의 유형 : 순차 코드(Sequence code), 블록 코드, 10진 코드, 그룹 분류 코드, 연산 코드(코드 대상의 명칭과 관계있는 문자), 표의 숫자 코드( 코드화 대상 항목의 중량, 면적, 용량 등의 물리적 수치를 이용하여 만든 코드), 합성코드

(2)   코드 오류 발생 형태

생략 오류(omission error): 입력 시 한 자리를 빼놓고 기록하는 경우

필사 오류(transcription error): 입력 시 임의의 한 자리를 잘못 입력하는 경우

전위 오류(transposition error): 입력 시 좌우 자리를 바꾸어 기록한 경우

이중 오류(double transposition error): 전위 오류가 두가지 이상 발생한 경우

추가 오류 : 입력 시 한자리 추가로 기록한 경우

임의 오류(random error):위의 오류가 두가지 이상 결합하여 발생한 경우