[정보보안기사 필기 정리] PART 02. 암호학
- -
SECTION 02. 암호학 개요
1️⃣ 암호학의 기본 개념
🌐 암호학의 정의
💠 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술
🌐 암호화와 복호화
💠 암호라는 기술을 사용해서 메일의 기밀성을 유지한다.
🌐 암호화와 복호화의 기호적 표현
💠 평문은 주로 M이나 P, 암호문은 C, 암호 알고리즘은 E, 복호화 알고리즘은 D, 키는 K로 표현한다.
평문 P를 키 K로 암호화하여(E) 암호문 C를 얻는다.
암호문 C를 키 K로 복호화하여 (D) 평문 P를 얻는다.
2️⃣ 암호기법의 분류
🌐 치환 암호와 전치 암호
💠 치환 암호 (대치 암호, Substitution Cipher)
✔️ 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.
✔️ 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다.
✔️ 교환 규칙은 일대일 대응이 아니어도 상관없다.
💠 전치 암호 (Transposition Cipher)
✔️ 원래 의미를 감추도록 재배열 한다.
✔️ 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하다.
✔️ 일대일 대응 규칙을 가진다.
🌐 블록 암호와 스트림 암호
💠 블록 암호 (Block Cipher)
✔️ 비트 수의 집합, 블록의 비트 수를 블록 길이라고 한다
✔️ 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트 (Unicode)에 비례
✔️ 스트림 암호화와는 다르게 Round를 사용하고 반복적으로 암호화 과정을 수행해 암호화 강도 상승
💠 스트림 암호 (Stream Cipher)
✔️ 암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.
✔️ 데이터의 흐름을 순차적으로 처리해 가기 때문에 내부 상태를 가지고 있다.
✔️ 군사 및 외교용으로 널리 사용
구분 | 스트림 암호 | 블록 암호 |
장점 | 암호화 속도가 빠름, 에러 전파 현상 없음 | 높은 확산, 기밀성, 해시함수 등 다양 |
단점 | 낮은 확산 | 느린 암호화, 에러 전달 |
사례 | LFSR, MUX generator | DES, IDEA, SEED, RC5, AES |
암호화 단위 | 비트 | 블록 |
주요 대상 | 음성, 오디오/비디오 스트리밍 | 일반 데이터 전송, 스토리지 저장 |
🌐 위치에 따른 암호화의 구분
💠 링크 암호화
✔️ 라우터는 패킷의 헤더 부분을 해독
✔️ 데이터 링크 또는 물리적 계층에서 일어나며 하드웨어 암호화 장치들은 물리적 계층과의 인터페이스를 가지고 그것을 통과하는 모든 데이터를 암호화
💠 종단간 암호화 (End-to-End Encryption)
✔️ 헤더와 트레일러가 암호화 되지 않는다
✔️ 근원지 컴퓨터의 사용자에 의해 시작되며 애플리케이션 계층에서 암호화 이루어진다.
🌐 하드웨어와 소프트웨어 암호 시스템
💠 하드웨어 암호시스템 : 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호 처리용 하드웨어 설치
💠 소프트웨어 암호 시스템 : 적당한 안전성과 처리속도
3️⃣ 주요 암호 기술에 대한 개괄
🌐 대칭키 암호와 비대칭키(공캐키) 암호
💠 대칭키 암호
✔️ 암호화 할 때 사용하는 키와 복호화 할 때 사용하는 키가 동일한 암호 알고리즘 방식
✔️ 공개키 암호화 보다 빠른 처리속도 제공, 암호키의 길이가 작아 기밀성 보장 가능
💠 비대칭키 암호
✔️ 암호화 할 때 사용하는 키와 복호화 할 때 사용하는 키가 서로 다른 암호 알고리즘 방식
✔️ 대칭키 암호화 방식에 비해 느리기 때문에 키 분배나 전자서명 또는 카드 번호와 같은 작은 크기의 데이터 암호화
💠 하이브리드 암호화 시스템
✔️ 대칭키 암호와 공개키 암호를 조합한 암호 방식을 하이브리드 암호 시스템
💠 일방향 해시 함수
✔️ 동일한 입력 메시지에 대한 항상 동일한 값을 생성하지만 해시 값만으로 입력메시지 유추 불가
✔️ 복호화 없이 입력값의 정확성 검증이 필요한 경우에 사용
💠 메시지 인증코드
✔️ 메시지가 전송 도중에 변조되지 않았다는 것과 생각했던 통신 상대로부터 왔다는것 확인 가능
✔️ 무결성과 인증 제공 암호기술
💠 전자서명
✔️ 거짓행세, 변경, 부인이라는 위협을 방지
✔️ 전자서명은 무결성을 확인하고, 인증과 부인 방지를 하기 위한 암호 기술
💠 의사난수 생성기
✔️ 난수열을 생성하는 알고리즘
✔️ 난수는 키 생성이라는 역할 담당
4️⃣ 암호 분석 (암호 해독)
🌐 개요
💠 제 3자가 암호문으로부터 평문을 찾으려는 시도를 암호해독 또는 공격이라 한다.
💠 암호학에서 암호해독자는 현재 사용되고 있는 암호 방식을 알고 있다는 전제하에 암호 해독을 시도하는 것으로 간주한다.(케르히호프의 원리)
🌐 암호 분석의 분류
💠 암호문 단독 공격 (COA, Ciphertext Only Attack)
✔️ Eve가 단지 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는것, Eve는 알고리즘을 알고 있고 암호문을 가로챌 수 있다고 가정
✔️ Eve는 이 공격을 위해 암호문만 필요
💠 기지평문 공격 (알려진 평문 공격, KPA, Known Plaintext Attack)
✔️ Eve는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 평문/암호문 쌍은 공격자에게 미리 주어진다
✔️ ex) Alice가 Bob에게 비밀 메시지를 보냈지만 나중에 그 메시지를 공개한다면 Eve는 공개된 평문/암호문 쌍을 사용하여 Alice가 Bob에게 보내려는 다음 비밀메시지를 알아내는데 사용
💠 선택평문공격 (CPA, Chosen Plaintext Attack)
✔️ 알려진 평문 공격과 유사하지만 공격자에게 주어지는 평문/암호문 쌍을 공격자가 선택
✔️ ex) Eve가 Alice의 컴퓨터에 접속할 수 있다면 이 공격 적용 가능, Eve는 어떤 평문을 선택하고 이에 대응되는 암호문 얻는다
✔️ COA, KPA와 달리 도청이 아닌 암호화 과정에 영향을 미친다는 점에서 능동적 공격자이다
💠 선택암호문공격 (CCA, Chosen Ciphertext Attack)
✔️ Eve가 어떤 암호문을 선택하고 그에 대응되는 평문을 얻는다는 점을 제외하면 선택 평문 공격과 유사, Eve가 Bob의 컴퓨터에 접속할 수 있다면 적용 가능
5️⃣ 암호 알고리즘의 안전성 평가
🌐 암호 기술 평가
💠 암호 알고리즘 평가, 암호 모듈 평가, 정보보호제품 평가, 응용시스템 평가
🌐 암호모듈의 안전성 평가 (CMVP)
6️⃣ 지적 재산권 보호
🌐 디지털 저작권 관리
💠 스테가노그래피
✔️ 다른 무언가로 감추어 메시지 자체를 은폐, 보통 사진파일에 인간이 인지하지 못할 정도의 미세한 부분에 변화를 주어 정보를 입력하는 방식
💠 디지털 워터마킹
✔️ 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술
✔️ 디지털 워터마킹의 분류
◾ 강한(강성) 워터마킹 : 공격을 받아도 쉽게 파괴되거나 손상을 입지 않음
◾ 약한(연성) 워터마킹 : 공격을 받으면 쉽게 파괴되거나 손상을 입음
💠 핑거프린팅 : 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법배포 발견 시 최초의 배포자 추적 기술
항목 | 스테가노그래피 | 워터마크 | 핑거프린트 |
은닉정보 | 메시지 | 판매자 정보 | 구매자 추적정보 |
관심 | 은닉메시지 검출 | 저작권 표시 | 구매자 추적 |
트래킹 | 불가 | 가능 | 가능 |
불법예방 효과 | 하 | 중 | 상 |
저작권증명 효과 | 하 | 중 | 상 |
공격 강인성 | 상대적 약함 | 상대적 강함 | 상대적 강함 |
💠 디지털 저작권 관리 (DRM, Degital Rights Management)
🌐 개요
💠 DRM 제어
✔️ 콘텐츠 접근 : 실행, 보기, 복제, 출력, 변경 등 포함
✔️ 디지털 콘텐츠 : 오디오, 비디오, 이미지, 텍스트, 멀티미디어, 컴퓨터 소프트웨어 등 포함
💠 DRM 구성 요소
✔️ 메타데이터, 패키저, 시큐어 컨테이너, 식별자, DRM 제어기
💠 DRM 모델
✔️ 콘텐츠 제공자, 콘텐츠 배포자, 콘텐츠 소비자, 클리어링하우스(디지털허가 발급)
SECTION 03. 대칭키 암호
1️⃣ 현대 대칭키 암호
🌐 현대 블록 암호
💠 현대 블록 암호의 구성요소
✔️ 개요
◾ 현대 블록암호는 확산과 혼돈과 같은 성질 만족을 위해 전치요소(P-box), 치환요소(S-box) 등이 결합하여 설계
◾ 공격 방지 암호를 제공하기 위해 현대의 블록 암호는 이동요소, 교환요소, 분할요소, 조합요소, 전치장치, 치환장치, XOR연산의 조합으로 만들어진다.
✔️ P-박스
◾ 축소 P-박스 : 비트를 치환하고 동시에 다음 단계를 위한 비트의 수를 줄이고자 할 때 사용
◾ 확장 P-박스 : 비트를 치환하고 동시에 다음 단계에서 비트의 양을 증가시키고자 할 때 사용
◾ 역함수의 존재성 : 단순 P-박스는 역함수 존재, 축소 및 확장 P-박스는 역함수가 존재하지 않는다.
✔️ S-박스
◾ 치환 암호의 축소모형, 입력과 출력의 개수가 달라도 된다
◾ 역함수의 존재성 : 수학적으로 정의되는 치환암호이며, 역함수가 존재할수도있고 존재하지 않을수도있다, 그러나 역함수가 존재하는 S-박스는 입력 비트와 출력 비트의 개수가 동일
✔️ 합성 암호
◾ 치환, 전치 그리고 그 밖의 구성요소를 결합한 복합적인 암호
◾ 확산과 혼돈 : 확산(암호문과 평문 사이의 관계 숨기기), 혼돈 (암호문과 키 사이의 관계 숨기기, 키의 단일 비트가 변하면 암호문의 거의 모든 비트가 변한다)
◾ 라운드 : 반복적으로 사용되는 합성 암호를 라운드라고 칭한다.
✔️ 두가지 종류의 합성 암호
◾ Feistel 암호 : 평문 블록 길이는 64비트 이상, 키의 길이는 64비트 내외(최근에는 키길이 128비트 권), 라운드는 16회 이상
- 복호화 과정은 암호화 과정과 동일하다
◾ Feistel 암호 특징 : MARS, RC6, Twofish에서 사용되고 있다.
✔️ SPN 구조
◾ 입력을 여러개의 소블록으로 나누고 각 소블록을 S-box로 입력하여 대치 시키고 S-box의 출력을 P-box로 전치하는 과정을 반복
Feistel | 그물을 짜듯이 | 역함수 존재, 비존재 요소 사용 | 암호화과정=복호화과정 | DES, SEED | 3라운드 이상 짝수 |
SPN | 치환암호+전치암호 | 역함수 존재, 비존재 요소 사용 | 암호화과정=/=복호화과정 | AES, ARIA | 병렬 처리 |
✔️ 블록 암호에 대한 공격
◾ 차분 분석 (차분 해독법) : Biham과 Shamir에 의하여 개발된 선택 평문 공격법, 두개의 평문 블록들의 비트의 차이에 대하여 대응되는 암호문 블록들의 비트의 차이를 이용하여 사용되는 암호키 찾아내는 방법 (DES에 대한 공격)
◾ 선형 분석 (선형 해독법) : 마츠이에 의해 개발된 기지평문 공격, 비선형 구조를 적당히 선형화 시켜 키를 찾는 방법, 암호화 과정에서 근사적 선형 관계식을 찾는것을 목적으로 한다. (기지평문공격에서 공격수행가능)
◾ 전수 공격법 : Diffie와 Hellman이 제안, 암호화 할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법
◾ 통계적 분석 : 암호문에 대한 평문의 각 단어별 빈도에 관한 자료와 더불어 알려진 모든 통계적인 자료를 이용해 해독
◾ 수학적 분석 : 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독
- 소인수 분해 : RSA, Rabin
- 이산대수 문제 : DH, Elgamal
🌐 현대 스트림 암호
💠 개요 : 현대 스트림암호는 동기식과 비동기식 두가지 종류로 분류된다.
✔️ 스트림 암호 설계 시 고려사항 : 암호화의 연속은 긴 주기를 가져야한다, 키 스트림은 진 난수 스트림과 최대한 비슷해야한다, 키가 충분히 길어야한다(무차별 공격에 대응, 적어도 128비트)
💠 동기식 스트림 암호
✔️ One-Time Pad : 동기식 스트림 암호 중 가장 간단하고 안전한 암호
✔️ 귀환 시프트 레지스터 (FSR) : 소프트웨어와 하드웨어 환경에서 모두 구현될 수 있지만 하드웨어 구현이 더욱 용이
✔️ 선형 귀환 시프트 레지스터 (LFSR) : 하드웨어로 쉽게 구현되며 모든 스트림 암호는 아니지만 많은 스트림 암호가 LFSR 사용
✔️ 비선형 귀환 시프트 레지스터 (LNFSR) : LFSR보다 안전한 스트림 암호를 설계 가능
💠 비동기식 스트림 암호 (자기동기식 스트림 암호)
✔️ 키스트림과 암호문의 종속성으로 인하여 해독되기 쉽다.
✔️ 블록 암호에서 다른 운영 모드를 생성하기 위해 사용되는 CFB 모드는 실제로 스트림암호 생성
2️⃣ DES (Data Encryption Standard)
🌐 개요
💠 역사
✔️ 대칭키 블록암호, DES를 세번 반복하는 3중 DES의 사용을 권고하는 새로운 표준 발표
✔️ 최신 블록암호 표준인 AES는 오랫동안 사용된 DES를 대체하기 위하여 표준으로 제정된 알고리즘
💠 개관
✔️ 평문의 길이는 64비트, 키의 길이는 56비트, 이보다 긴 평문은 64비트 블록
✔️ DES 구조는 Feistel 네트워크의 변형된 형태, 라운드 횟수는 16회
✔️ 56비트짜리 원래 키로부터 16개의 서브키를 생성하고 그 서브키를 각 라운드에서 사용
🌐 DES의 구조
💠 개요
✔️ 암호화 과정은 두 개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성 (두개의 P-박스 중 하나는 초기전치, 다른하나는 최종전치)
✔️ 각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48비트 라운드키 사용
💠 라운드 함수
✔️ P-박스, 키 XOR, 8개의 S-박스, 단순 P-박스의 4개 부분으로 구성
💠 암호화 알고리즘과 복호화 알고리즘
✔️ 라운드 키들이 역순으로 적용
🌐 DES 분석
💠 설계 기준
✔️ S-박스
◾ 각 라운드에서 그 다음 라운드까지 혼돈을 만족하도록 설계
◾ 비선형 함수
◾ 입력값의 한 비트를 바꾸면 출력값에서는 두 비트 이상이 바뀜
✔️ P-박스
◾ 32비트에서 32비트로 가는 하나의 단순 P-박스와 32비트에서 48비트로 가는 하나의 확장 P-박스 존재, 2개의 P-박스는 비트들을 동시에 확산
💠 DES의 취약점
✔️ 쇄도효과, 완비성
🌐 다중 DES
💠 3중 DES
✔️ TTA에서 블록암호 SEED를 국가 표준으로 정하고, 공동으로 개발한 블록 암호 ARIA 인증 획득
✔️ 3DES (블록암호) < DES (블록암호) < AES (블록암호) < RC3 (스트림암호)
구분 | DES | Triple DES | AES |
평문 블록 크기 (bits) | 64 | 64 | 128 |
암호문 블록 크기 (bits) | 64 | 64 | 128 |
키 크기 (bits) | 56 | 112 또는 168 | 128, 192 또는 256 |
3️⃣ AES
🌐 개요
💠 역사
✔️ NIST에서 AES 알고리즘으로 선택한 것은 레인달(Rijndael) > 경쟁 방식에 의한 표준화
💠 선정 기준 : 안전성, 비용(계산 효율성/저장공간), 구현 효율성(플랫폼 무권)
💠 라운드
✔️ 128비트 평문을 128비트 암호문으로 출력, non-Feistel 알고리즘
✔️ 10, 12, 14 라운드 사용, 각 라운드에 대응하는 키 크기는 128, 192, 256비트
🌐 암호
💠 개요 : SPN이라는 구조 사용
구분 | DES | AES |
년도 | 1976 | 1999 |
블록크기 | 64bits | 128bits |
키 길이 | 56bits | 128, 192, 256bits 이상 |
암호화 프리미티브 | 치환, 전치 | 치환, 시프트, 비트 혼합 |
암호학적 프리미티브 | 혼돈, 확산 | 혼돈, 확산 |
설계 | 공개 | 공개 |
설계 원칙 | 비공개 | 공개 |
선택 과정 | 비밀 | 비밀, 공모 |
출처 | IBM, NSA | 벨기에 암호학자 |
4️⃣ 기타 대칭키 암호 알고리즘
🌐 국제 암호 알고리즘
구분 | 개발 국가 | 개발 년도 | 특징 | 블록 크기 | 키의 길이 | 라운드수 |
DES | 미국 | 1972 | NIST에서 표준으로 공표 | 64 | 56 | 16 |
IDEA | 유럽 | 1990 | PGP 채택 | 64 | 128 | 8 |
Rijndael | 벨기에 | 1998 | AES 알고리즘 | 128 | 128, 192, 256 | 10, 12, 14 |
SEED | 한국 | 1999 | 한국 표준 블록암호 알고리즘 | 128 | 128, 256 | 16, 24 |
CRYPTON | 한국 | 1998 | AES 후보 | 128 | 128, 192, 256 | 12 |
RC5 | 미국 | 1994 | 알고리즘 간단, 속도 빠름 | 34, 64, 128 | 0 ~ 2040 | 1 ~ 255 |
FEAL | 일본 | 1987 | S/W 구현 적합 | 64, 128 | 64 | 4, 8, 32 |
MISTY | 일본 | 1996 | 차분/선형 공격에 안전성 증명 | 64 | 128 | 8 |
SKIPJACK | 미국 | 1990 | Fortezza 카드에 사용 | 64 | 80 | 32 |
5️⃣ 현대 대칭키 암호화를 이용한 암호화 기법
🌐 블록 암호의 사용 방식
💠 ECB(Electronic CodeBook) 모드 : 평문 N개는 n비트 블록으로 분할, 덧붙이기 필요 (padding)
✔️ 매우 많은 데이터 베이스 암호화 할 때 병렬적 처리 가능
✔️ 독립성이 유용
💠 CBC (Cipher Block Chaining) 모드
✔️ 평문 블록은 암호화 되기전에 이전 암호문 블록과 XOR 됨, 초기벡터 블록 사용
✔️ 복호화 할 때 CBC 모드의 암호문 블록이 1개 파손된 경우 , 암호문 블록의 길이가 바뀌지 않았다면 평문 블록에 미치는 영향은 2개 블록에 머문다.
✔️ 평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미친다.
✔️ IPSec(VPN)에서는 통신의 기밀성을 위해 CBC 모드 사용, Kerberos version(인증) 5에서도 사용
💠 CFB(Cipher Feedback) 모드
✔️ 어떤 블록 암호도 스트림 암호로 변경 가능
✔️ 암호화 기법과 복호화 기법에서 암호 함수는 DES나 AES를 사용한다 (복호화 시 복호화 함수가 아닌 암호화 함수 사용)
✔️ 키 스트림이 암호문에 의존하는 비동기식 스트림 암호
💠 OFB (Output FeedBack) 모드
✔️ 오류 전파가 발생하지 않으며, 초기화 벡터를 사용한다
✔️ 동기식으로 독립적이다.
💠 CTR (CounTeR) 모드
✔️ 암호화 시 피드백이 존재하지 않는다
✔️ 키 스트림의 의사 난수성은 카운터를 사용함으로써 성취 될 수 있다.
SECTION 04. 비대칭키 암호
1️⃣ 비대칭키 암호
🌐 키 배송 문제
💠 개요 : 키 배송 문제 해결 방법
✔️ 키의 사전 공유에 의한 해결
✔️ 키 배포센터에 의한 해결 (온라인 키 분배)
✔️ Diffie-Hellman 키 교환에 의한 해결
✔️ 공개키 암호에 의한 해결
💠 키 사전 공유에 의한 해결
✔️ 임의의 두 사용자에게 비밀 경로를 통하여 임의 키를 선택하여 전달하는 방법
✔️ n명의 사용자의 경우 각 사용자는 n-1(본인키제외)가지 키를 관리해야하며 TA는 n(n-1)/2가지 키를 관리
✔️ 매우 복잡하고 관리 비용 많이 지불
💠 키 배포센터에 의한 해결 (온라인 키 분배)
✔️ 암호통신이 필요해질때마다 통신용 키 > 키 배포센터에서 키 사전 공유
💠 Diffie-Hellman 키 교환에 의한 해결
✔️ 개요
◾ 1976년에 공개키 암호방식을 최초로 제안한 휘트필드 디피와 마틴 헬먼이 발명한 알고리즘
◾ 공개키 암호방식의 개념 이용, 최초의 비밀키 교환 프로토콜
◾ 이산대수 문제로 키교환을 뒷받침 한다.
✔️ Diffie-Hellman의 안전성
◾ 이산대수 공격 : 이산대수 문제를 풀기 어렵다는데 기반
◾ 서비스거부공격 (DoS) : 비밀키 과부화
◾ 중간자 공격 : 인증단계가 없기 때문에 취약, 전자서명과 공개키 인증서 이용
💠 공개키 암호에 의한 해결
송신자 (암호화) | 수신자 (복호화) | |
송신자 / 개인키 | 송신자 / 공개키 | → 인증/부인방지 |
송신자 / 공개키 | 송신자 / 개인키 | 원칙 3에 위배 |
수신자 / 개인키 | 수신자 / 공개키 | |
수신자 / 공개키 | 수신자 / 개인키 | → 기밀성 (암호모드) |
🌐 공개키 암호
💠 대칭키 vs 비대칭키
구분 | 대칭키 암호 시스템 | 공개키 암호 시스템 |
장점 | 암호화/복호화 속도가 빠름 키의 길이가 짧음 |
키의 분배가 용이 키 개수가 상대적으로 적음 키 변화의 빈도가 적음 |
단점 | 키 분배가 어려움 키 개수가 상대적으로 많음 키 변화의 빈도 많음 |
암호화/복호화 속도가 느림 키의 길이가 긺 |
🌐 RSA 암호 시스템
💠 개념
✔️ 공개키 암호 알고리즘 중의 하나이며 세계적으로 사실상의 표준이다.
✔️ 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 암호 알고리즘, 암호화 뿐 아니라 전자 서명의 용도로도 사용
✔️ 키 생성 알고리즘
◾ 두 소수 p = 17과 q=11을 선택한다.
◾ N = P x Q = 17 x 11 = 187을 계산한다.
◾ 0(N) = (p-1)(q-1) = 16 x 10 = 160을 계산한다.
◾ 0(N) = 160보다 작은 0(N)과 서로소인 수 e를 선택한다. 여기서는 e=7
◾ d < 160이면서 de mod 160 =1인 수 d를 결정한다. d=23 (23x7 = 161 = 1x160)
◾ 결과로 얻어지는 공개키 PU = {7,187} , 개인키 PR = {23, 187}이다.
💠 RSA에 대한 공격
✔️ 수학적 공격 (소인수분해 공격)
✔️ 타이밍 공격 (시간 공격)
✔️ 선택 암호문 공격 (CCA공격)
💠 최적 비대칭키 암호 패딩 (OAEP)
🌐 Rabin 암호 시스템
💠 암호화 복호화 : 암호화는 매우 간단하다, 오직 한번의 곱셈으로 이루어져 있다
✔️ 성능이 낮은 플랫폼에서 잘 활용 가능
✔️ p와 q가 충분히 크기만 하다면 안전하다.
🌐 ElGaml 방식
💠 이산대수 문제에 근거하여 만든 시스템
✔️ 디지털 서명, 암호화, 키교환에 사용될 수 있는 공개키 알고리즘(디피헬만 알고리즘의 확장)
🌐 타원 곡선 암호 (ECC)
💠 개요 : 키가 256비트인 ECC는 키가 4096비트인 RSA보다 강하다.
💠 특징 : 스마트 카드나 무선 통신 단말기 등과 같이 메모리와 처리능력이 제한된 응용분야에 효율적
✔️ 타원 곡선 상의 점들 간의 덧셈 연산을 통해 키를 산출
✔️ ECDLP 문제 (이산대수타원곡선문제)
2️⃣ 하이브리드 암호 시스템
🌐 대칭키 암호와 공개키 암호
💠 대칭키 암호를 사용하면 기밀성을 유지한 통신이 가능하지만 키 배송 문제 해결 필요
✔️ 공개키 암호를 사용해서 공개키에 대한 인증 필요
SECTION 05. 해시함수와 응용
1️⃣ 일방향 해시함수
🌐 일방향 해시함수의 개요
💠 기본 개념 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시 값 또는 해시 코드라 불리는 값을 출력하는 함수
💠 일방향 해시함수의 특징
✔️ 임의 길이의 메시지로부터 고정 길이의 해시값을 계산
✔️ 해시값을 고속으로 계산
✔️ 일방향성을 갖는다
✔️ 메시지가 다르면 해시값도 다르다
🌐 해시함수의 분류와 보안 요구사항
💠 해시함수의 보안 요구사항
✔️ 프리이미지 저항성 (역상 저항성) : 주어진 해시함수 h와 만족하는 메시지 m을 찾아낸다는것이 매우 힘들어야한다는 성질
✔️ 제 2프리이미지 저항성 (두번째 역상저항성, 약한 충돌 내성) : 메시지를 쉽게 위조할 수 없도록 하는 성질
✔️ 해시함수가 가져야 할 성질
◾ 역상 저항성 : 주어진 임의의 출력 값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는것이 계산적으로 불가능
◾ 두번째 역상 저항성 : 주어진 입력값 x에 대해 h(x)=h(x'), x=/=x'을 만족하는 다른 입력값 x'을 찾는 것이 계산적으로 불가능
◾ 충돌 저항성 : h(x)=h(x')을 만족하는 임의의 두 입력값 x,x'을 찾는 것이 계산적으로 불가능
🌐 키가 없는 해시 함수와 키를 사용하는 해시함수
💠 키가 없는 해시 함수
✔️ 기본 개념
◾ 블록 암호를 기초로 한 해시함수
◾ 전용 해시함수 (처음부터 새로 만드는 것)
◾ 모듈 연산을 기초로 한 해시함수
✔️ 전용 해시함수
◾ 메시지 다이제스트 (MD2 → MD4 → MD5) : 512비트로 된 블록들로 나누고 128비트 다이제스트를 출력
- MD5는 생일 공격에 노출되어 보안 요구사항이 높은 응용에는 사용이 권장되지 않고 있다.
◾ SHA : NSA가 설계하였고, NIST에 의해서 배포되었다.
구분 | SHA-1 | SHA-2 | |||
SHA-225 | SHA-256 | SHA-384 | SHA-512 | ||
MD 길이 | 160 | 224 | 256 | 384 | 512 |
최대 메시지 길이 | 2^64 -1 | 2^64 -1 | 2^64 -1 | 2^128 -1 | 2^128 -1 |
블록 길이 | 512 | 512 | 512 | 1024 | 1024 |
워드 길이 | 32 | 32 | 32 | 64 | 64 |
단계 수 | 80 | 64 | 64 | 80 | 80 |
◾ RIPEMD-160 : 비트코인에서 사용
◾ Tiger : MD5, SHA-1보다 더 속도가 빠르다
◾ HAVAL : 가변길이 해시 알고리즘, 사용되는 블록의 길이는 1024비트
🌐 암호학적 해시함수의 응용
💠 무결성 점검
💠 소프트웨어 변경 검출
💠 메시지 인증코드 : 메시지 인증은 키가 있는 해시 함수로 알려진 메시지 인증코드(MAC)를 사용하여 얻어진다.
💠 전자서명
🌐 랜덤 오라클 모델과 해시함수에 대한 공격
💠 0과 1로 이루어진 난수 스트링인 고정된 길이의 메시지 다이제스트를 생성해 제공
💠 비둘기집 원리 : n+1 마리의 비둘기가 n개의 비둘기집에 들어가 있다면 적어도 한 비둘기 집에는 두마리의 비둘기가 들어있다 → 충돌
💠 생일문제 : 같은 해시값을 생성하는 2개의 메시지를 구하는 것, 일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격
💠 랜덤 오라클 모델에 대한 공격 : 충돌 공격을 하는 것 보다 프리이미지 공격이나 제 2프리이미지 공격을 하는 것이 훨씬 어렵다.
2️⃣
3️⃣ 메시지 인증 코드 (MAC)
🌐 개요
💠 기본 개념
✔️ 메시지 인증코드란 무결성을 확인하고 메시지에 대한 인증하는 기술
✔️ MAC의 장점 : 블록암호나 해시 함수에 기반을 두기 때문에 전자서명보다 훨씬 빠르다
💠 변경 감지 코드 (MDC, Modification Detection Code) : 메시지의 무결성을 보장하는 메시지 다이제스트
💠 메시지 인증 코드 (MAC) : 데이터 출원지 인증을 보장
🌐 MAC의 구현 사례
💠 HMAC : SHA-1과 같은 일방향 해시함수를 이용하여 메시지 인증코드를 구성하는 방법 H는 hash를 의미
💠 CBC-MAC, CMAC : 대칭키 암호를 N번 사용하여 N개의 평문 블록에서 하나의 MAC을 생성해내는 아이디어
💠 CCM(Counter with CBC-MAC) : 기밀성과 무결성 제공, AES 암호 알고리즘, CTR 운용 모드, CBC-MAC 인증 알고리즘 구성
💠 GCM 모드 : 인증하는 정보 (인증자)를 만들어내는 구조
🌐 MAC에 대한 공격
💠 재전송 공격 : 순서번호, 타임스탬프, 비표(nonce, 난수), 시도/응답으로 공격을 방지 가능
🌐 MAC으로 해결할 수 없는 문제
💠 제 3자에 대한 증명, 부인방지(전자서명을 사용하면 부인방지 가능)
SECTION 06. 전자서명과 PKI
1️⃣ 전자서명
🌐 전자서명의 개요
💠 전자 서명의 형식 : 공개키 암호 방식을 이용한 공개키 서명방식, 관용 암호방식을 이용한 중재서명 방식
💠 전자서명 과정
✔️ 기본 개념 : 송신자는 서명 알고리즘을 이용해 메시지에 서명 → 메시지와 서명 수신자에게 전송 → 수신자는 검증 알고리즘 적용
✔️ 키의 필요성 : 전자서명에서 서명자는 자신의 개인키로 문서에 서명 (서명 알고리즘 사용), 검증하는 사람은 역으로 서명자의 공개키 이용문서 검증 (검증 알고리즘 이용)
💠 전자서명 서비스
✔️ 메시지 인증 : 안전한 전자서명구조는 메시지 인증 보장
✔️ 메시지 무결성 : 전체 메시지에 서명을 할 경우에도 보장
✔️ 부인방지
✔️ 기밀성 : 메시지와 서명에 비밀키 이용, 공개키를 이용해서 암호화
💠 전자서명의 주요 기능
✔️ 위조 불가 : 합법적인 서명자 만이 전자서명을 생성할 수 있어야한다.
✔️ 서명자 인증 : 전자서명의 서명자를 누구든지 검증할 수 있어야한다.
✔️ 부인방지 : 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야한다.
✔️ 변경 불가 : 서명한 문서의 내용을 변경할 수 없어야한다.
✔️ 재사용 불가 : 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야한다.
🌐 전자서명 구조
💠 RSA 전자서명 구조
✔️ 메시지에 서명을하고 검증을 할 수 있다.
✔️ 송신자의 개인키와 공개키를 사용한다.
💠 ElGamal 전자서명 구조
✔️ 이산대수 문제를 이용한 최초의 서명 방식
✔️ ElGamal 서명 알고리즘은 실제로 거의 사용되지 않고, DSA(변형)이 더 많이 사용
💠 Schnorr 전자서명
✔️ 권장되는 p의 크기는 1024비트 이상, 서명의 길이는 2048비트 넘어간다
💠 전자서명 표준 (DSS)
✔️ 계산량을 획기적으로 줄인 방식, 이산대수 문제를 기반으로 한다
💠 타원곡선 전자서명 구조
✔️ ECDSA라고 부른다, 짧은 비트 길이로 인해 짧은 처리시간에 짧은 서명 생성 가능
🌐 전자서명 방식
💠 메시지 복원형 전자서명 : 기존의 공개키 암호방식을 이용하므로 별도의 전자서명 프로토콜이 필요하지않다
💠 부가형 전자서명 : 해시 알고리즘을 이용하여 일정한 길이로 압축
🌐 특수 전자서명
💠 부인방지 전자서명 : 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 서명방식
💠 의뢰 부인방지 서명 : 부인과정을 수행할 수 있도록 만들어야한다.
💠 수신자 지정 서명 : 지정된 수신자만이 서명을 확인할 수 있다
💠 은닉 서명 (블라인드 서명) : 익명성을 유지해야한다.
💠 위임 서명 : 대리로 서명할 수 있도록 구성한 서명 방식
💠 다중 서명 : 동일한 전자 문서에 여러 사람이 서명하는 것
🌐 전자서명의 응용
💠 전자투표
✔️ 전자투표 시스템 구현을 위한 요구사항 : 완전성, 익명성, 건전성, 이중투표방지, 정당성, 적임성, 검증가능
✔️ 전자투표 방식
◾ 전자투표 (PSEV, Poll Site E-Voting) : 터치스크린 기표기
◾ 원격인터넷투표 (REV, Remote Internet E-Voting) : 투표소에 가지 않아도 투표할 수 있다.
◾ 키오스크방식 : 정해지지 않은 임의 투표소에서 전자 투표
💠 전자 입찰 시스템
✔️ 전자입찰 시스템의 요구사항 : 독립성, 비밀성, 무결성, 공평성, 안전성
2️⃣ PIK (공개키 기반 구조)
🌐 PKI(Public-Key Infrastructure)의 개요
💠 기본 개념
✔️ PKI는 공개키 알고리즘을 위한 키 관리 구조, RFC2822는 PKI(공개키 기반구조)를 비대칭키 암호시스템에 기초하여 디지털 인증서 생성관리하는데 필요한 H/W, S/W 절차라고 정의
✔️ 인증기관, 등록기관, 사용자, 신뢰 당사자, 저장소 등의 요소로 구성
✔️ 인증서의 발급, 사용 및 취소와 관련 서비스를 통하여 기밀성, 무결성, 접근제어, 인증, 부인방지의 보안 서비스를 제공
🌐 PKI의 주요 구성 요소
💠 인증 기관 (CA, Certification Authority)
✔️ 개요
◾ 인증정책 수립, 인증서 및 인증서 효력정지 및 폐기 목록 관리, 다른 CA와의 상호 인증 제공
✔️ 정책승인기관 (PPA, Policy Approving Authority)
◾ 공개키 기반 구조 전반에 사용되는 정책을 수립하고, 공개키 기반 구조의 루트 인증기관으로서의 역할
✔️ 정책 인증기관 (PCA, Policy Certification Authority)
◾ 인증기관의 공개키를 인증하고 인증서, 인증서 폐지 목록등을 관리
✔️ 인증기관 (CA, Certification Authority)
◾ PCA 아래 계층, 사용자의 공개키 인증서 발행, 폐지(CRL)
◾ 자신의 공개키와 상위 기관의 공개키 전달
◾ 등록기관의 요청에 의해 인증서 발행
◾ 소유자를 대신하여 공개키와 개인키 쌍을 생성할 수 있고 , 안전하게 소유자에게 전달
💠 검증기관 (VA, Validation Authority) : 거래의 유효성 확인, 신뢰 당사자에게 확인 시켜준다. 감사기관 역할
💠 사용자와 최종 개체 (Subjects And end Entities)
💠 등록기관 (RA, Registration Authority) : 사용자와 CA가 원거리에 위치해 있는 경우 인증기관과 사용자 사이에 둔다
💠 저장소(Repository, Directory) : 사용자의 인증서를 저장하는 일종의 데이터 베이스, LDAP, X.500 표준 형식
🌐 PKI의 형태
💠 계층 구조
✔️ 최상위의 루트 CA가 존재하고 그 아래에 하위의 CA가 계층적으로 존재하는 트리형태
✔️ 최상위 CA의 인증서는 모든 사용자에게 알려져야 하며, 모든 사용자의 인증서는 검증됨
💠 네트워크 구조
✔️ : 상위 인증기관의 영향없이 인증기관이 각각이 자신의 인증정책에 따라 독립적으로 존재하는 형태
💠 혼합형 구조 : 서로 효율적인 상호 연동을 보장하는 구조
구분 | 계층적 구조 | 네트워크형 구조 |
장점 | 정부, 관료조직 적합 인증경로 탐색 용이 모든 사용자가 최상위 CA 공개키 알고 있으므로 인증서 검증 용이 |
유연하며 실질적인 업무관계에 적합 CA 상호인증이 직접 이루어지므로 인증경로 단순 CA의 비밀키 노출 시 국소적 피해 |
단점 | 최상위 CA에 집중되는 오버헤드 발생가능 협동업무 관계에는 부적합 최상위 CA의 비밀키 노출 시 피해 규모 막대 |
인증경로 탐색이 복잡함 인증정책 수립 및 적용 어려움 |
🌐 PKI의 주요 관리 대상
💠 인증서(PKC, Public-Key Certificate) : 신분증
✔️ 해당키가 특정인의 것이라는 것을 보증해주는 것으로 증거로서의 기능을 수행
✔️ 인증기관(CA)의 개인키로 전자서명 되어있음
💠 인증서 폐지 목록 프로파일
✔️ CRL(Certificate Revocation List) : 폐지된 인증서들에 대한 목록, 각각의 폐기된 인증서는 인증서 일련번호에 의해서 확인
💠 인증서 운영 프로토콜
✔️ 온라인 인증서 상태 검증 프토코롤 (OCSP, Online Certificate Status Protocol)
◾ OCSP가 구현되면 작업은 백그라운드에서 자동으로 수행
◾ 구성요소 : OCSP 클라이언트, OCSP 서버, 인증서버로 구성
SECTION 07. 키, 난수
1️⃣ 키
🌐 개요
💠 암호기술을 사용하려면 키 라고 불리는 대단히 큰 수가 필요
💠 키 공간의 크기, 크면 클수록 무차별 공격에 강하며 , 키 공간의 크기는 키의 비트 길이로 정해진다.
🌐 다양한 키
💠 세션키와 마스터키
✔️ 세션키 : 통신할 때마다 한번만 사용되는 키
✔️ 마스터키 : 반복적으로 사용되는 키
💠 CEK(세션키)와 KEK(마스터키)
✔️ CEK : 사용자가 직접 이용하는 정보가 암호화의 대상
✔️ KEK : 키를 암호화하는 키
🌐 패스워드를 기초로 한 암호 (PBE)
💠 솔트 : 사전공격 또는 레인보우 테이블을 이용한 공격을 막기 위해 존재
💠 PBKDF(Password-based key derivation function) : 비밀번호, 반복횟수, 생성하고자 하는 비밀키의 길이를 입력으로 비밀키를 출력
💠 암호키의 저장 방법 : 하드웨어 토큰, 스마트 카드, USB토큰등의 보안 토큰(HSM)
2️⃣ 난수
🌐 난수의 용도
💠 키의 생성, 키쌍의 생성, 초기화 벡터의 생성, 비표(nonce)의 생성, 솔트의 생성, 일회용 패드
🌐 난수의 성질
💠 난수의 성질 분류 : 무작위성, 예측 불가능성, 재현 불가능성
🌐 의사난수 생성기
💠 하드웨어로 난수를 생성하는것 > 난수 생성기 (RNG, Random Number Generator)
💠 난수를 생성하는 소프트 웨어를 의사난수 생성기 (PRNG, pseudo random number generator)
💠 의사난수 생성기의 구조
✔️ 외부에서 주어진 종자(seed)를 기초로 의사난수열을 생성
✔️ 내부상태라고 하는것 = 메모리 값
'정보보안기사 > 필기' 카테고리의 다른 글
[정보보안기사 필기 정리] PART 01. 정보보호 개요 (0) | 2025.02.22 |
---|---|
[정보보안기사 필기 정리] PART 03. 접근통제 (0) | 2025.02.20 |
[정보보안기사 필기 정리] PART 04. 시스템 보안 (0) | 2025.02.19 |
[정보보안기사 필기 정리] PART 05. 네트워크 보안 (수정필요) (0) | 2025.02.19 |
[정보보안기사 필기 정리] PART 06. 애플리케이션 보안 (0) | 2025.02.17 |
소중한 공감 감사합니다