정보보호론: 대칭키 암호화, 공개키 암호화, HASH, PKI 정리

Seung·2021년 11월 1일
1

정보 보호

목록 보기
1/1

1. 대칭키 암호 방식(비밀 키 암호)

암호화키와 복호화키가 같은 암호화 알고리즘

  • 공개키 암호에 비해 빠르다.
  • 데이터 변환의 방법에 따라 스트림 암호와 블록 암호로 나뉜다.
    • 스트림 암호
      • 연속적인 비트/바이트를 계속해서 입력받아, 그에 대응하는 암호화 비트/바이트를 생성하는 방식
      • 이진화된 평문 xor 스트림 키 = 암호문
      • 키 스트림이라고 불리는 키 이진수열의 특성과 발생 방법이 핵심
      • 동기식 스트림 암호 시스템과 자기 동기식 암호시스템으로 분류
    • 블록 암호
      • 정해진 단위를 입력 받아 그에 대응하는 암호화 블록을 생성하는 방식
      • 블록 단위보다 큰 입력 처리

블록 암호 알고리즘이란?

  • 고정된 크기의 블록 단위로 암 복호화 연산을 수행하며 각 블록의 연산에는 동일한 키를 사용
  • 암호문을 만들기 위해 평문을 일정한 단위로 나누어 각 단위마다 암호화를 수행하여 블록 단위로 암호문을 얻는 대칭 암호화 방식

블록 암호 알고리즘의 구조

  1. 파이스텔 구조

    • 암복호화 과정에서 역함수가 불필요
    • 스왑단계 때문에 연산량이 많음
    • 라운드 함수를 안전하게 설계해야함
    • ex) DES, SEED
  2. SPN 구조

    • 암복호화 과정에서 역함수가 필요
    • 한번에 암복호화가 가능하기 때문에 파이스텔 구조에 비해 효율적
    • ex) AES, ARIA

블록 암호의 특징

  • 특정 비트수의 집합을 한번에 처리
  • 평문을 일정한 크기의 블록 단위로 잘라 암호화 알고리즘을 처리
  • 소프트웨어적 구현이 쉬움
  • ROUND를 반복적으로 사용해서 암호화 강도를 높일 수 있음

블록 암호 모드

  1. ECB 모드
    • 간단, 고속, 병렬 처리가능
    • 암호문 블록의 삭제나 교체에 의한 평문의 조작이 가능하고 재전송 공격이 가능하여 사용하지 않음
  2. CBC 모드
    • 평문의 반복이 암호문에 반영되지 않음.
    • 선행 암호문 64비트와 다음 평문 64비트를 연결하여 xor하는 방식
  3. CFB모드
    • 패딩이 필요없고 병렬처리 가능
    • 현재는 사용하지 않음
    • 선행 암호문은 평문과 xor연산된 의사난수 출력을 만드는 암호 알고리즘의 입력으로 허요
  4. OFB모드
    • 패딩이 필요없고, 암호화/복호화의 사전 준비
    • 병렬 처리가 불가
    • 적극적 공격자가 암호문 블록을 비트 반전시키면 대응하는 평문 블록이 비트 반전
  5. CTR모드
    • 패딩이 필요없고, 암호화/복호화 사전 준비
    • 병렬 처리가 가능
    • 적극적 공격자가 암호문 블록을 비트 반전시키면 대응하는 평문 블록이 비트 반전
    • 권장 모드

블록 암호 알고리즘의 종류

  • DES
    • 64비트 블록 암호
    • 56비트 비밀키 사용
  • Triple DES
    • DES에 대한 전수 공격을 보완하기 위해 고안된 알고리즘
    • 3중 DES 암호화
  • AES
    • DES의 안전성에 문제가 제기되면서 채택된 128비트 블록 암호
  • IEDA
    • 블럭 초당 177Mbit 처리가 가능한 빠른 암호화 방법
  • ARIA
    • 우리나라에서 개발한 블록암호 체계
  • SEED
    • 전자 상거래, 금융, 무선 통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위함
    • 국내 암호 전문가들이 순수 국내 기술로 개발한 128비트 블록 암호
  • Hight
    • RFID, USN 등과 같이 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위함
    • 63 비트 블록 암호
  • LEA
    • AES보다 1.5~2배 빠름.

스트림 암호란?

블록 단위로 암호화가 아닌 이진화된 평문 스트림과 이진 키스트림 수열의 XOR 연산으로 암호문을 생성하는 방식

  • 동기식 스트림 암호 스트림 암호의 난수열을 입력값과 독립적으로 생성하는 경우
  • 비(자기) 동기식 스트림 암호 암호문이 전송도중 변경되어도 자기 동기화가 가능

DES란?

  • 64비트의 키를 적용하여 64비트의 평문을 64비트의 암호문으로 암호화
  • 대체와 치환이라는 암호화 함수가 반복적으로 16회 적용
    • 대체 ⇒ 혼돈(confusion): 변화에 대한 예측 불가능
    • 치환 ⇒ 확산(diffusion): 조금만 수정해도 많이 바뀌는 것

DES의 암호화 과정

  1. 초기치환(Initial permuation)
  2. 16회 반복
    • E-table
    • S-box
    • P-table
  3. 역 초기치환(Inverse IP)

3DES의 장점

  • DES의 전사적 공격에 대한 취약점을 168비트의 길이의 키를 사용해서 극복
  • DES와 같은 암호 알고리즘 방식을 사용

3DES의 단점

  • 상대적으로 느린 소프트웨어 상의 속도
  • 64비트 블록 길이를 사용함으로 인한 비효율성

AES란?

표준이 만료된 DES를 대처할 새로운 암호 알고리즘의 필요성

  • 가변 블록 길이를 사용(128비트, 192비트, 256비트) ⇒ 128로 결정
  • 3DES 보다 강력하고 로열티 없는 알고리즘
  • 모든 알려진 공격에 강함
  • 빠르고 코드가 간단하며 디자인이 단순
  • 3 레이어로 구성(SPN구조)
  • 스마트 카드나 모바일에서 사용할 수 있는 장점

AES 암호구조

  • add round key bitwise xor로 연산을 의미
  • round
    • substitute bytes: 바이트를 change
    • 마지막 라운드에서는 Mix column이 빠진다.
  • key
    • 매 라운드마다 4개의 워드를 만들며 이게 서브키가 된다.
    • w = word로 32비트이며 [0, 3]은 4개를 의미 즉, 32 x 4 = 128
  • 복호화 암호화의 역순으로 진행한다.

AES 암호

  • S-box
    • 16 x 16 행렬을 정의
    • 256가지의 모든 가능한 8비트 값의 순열을 포함
    • 가장 왼쪽 4비트는 행, 가장 오른쪽 4비트는 열 값
    • S-box 구성
      • 바이트 값으로 S-box를 행 별 오름차순으로 초기화
  • substitute byte 바이트를 변환
  • Shift row 행을 쉬프트하는 것 첫번째 행은 그대로, 두번째 행은 1바이트, 세번째는 2바이트, 4번째는 3바이트씩 왼쪽 순환이동
  • Mix Column 칼럼 단위로 변환 매트리스 함수를 곱해서 변환한다.
  • add round key 128비트의 키를 추가하여 xor하는 것
  • 키 확장 4워드를 입력으로 취하여 44워드(156바이트)의 선형 배열을 생성 w0 ~ w43까지 생성하여 4개씩 잘라서 4워드 라운드키와 10라운드의 각 암호화에 사용

2. 공개키 암호방식(비대칭 암호화)

공개키 암호 방식이란?

  • 공개키와 비밀키 존재
  • 공개키는 누구나 알 수 있지만, 비밀키는 키의 소유자만 알 수 있어야 함
  • 전자서명, 공개키 인증, 키 분배, 키 공유, 암호화에 사용
  • 비밀키 암호 방식보다 느리다.
  • 공개키 암호 방식은 두가지 종류로 나뉜다.
    • 공개키 암호: 비밀 키를 가지고 있는 사용자만 내용을 열어볼 수 있음.
    • 공개키 서명: 비밀 키를 가지고 있는 사람만 내용을 작성할 수 있음.
  • ex) RSA, ElGamal, ECC

공개키 암호 알고리즘의 종류

  • RSA

    • 소인수 분해의 어려움에 기반을 둔 공개키 암호
    • 소수 p, q의 선택 조건과 공개 암호화키와 비밀 복호화 키의 조건들이 필요
    • 암호화 암호문=[평문]EmodN암호문 = [평문]^E mod N E와 N이 중요
    • 복호화 평문=[암호문]DmodN평문 = [암호문]^D mod N D와 N이 중요
  • 엘가말(ElGamal)

    • 이산 대수 문제의 어려움에 기반을 둔 최초의 공개키 암호 알고리즘
    • 메시지 길이가 두 배로 늘어나는 특징
    • 암호화 할때 난수를 이용하므로 같은 메시지에 대해 암호화해도 서로 다른 암호문을 얻음
  • 타원 곡선 암호 시스템(ECC)

    • RSA 대안 암호화 방식으로 이산대수를 이용
    • 타원 곡선 상의 이산대수 문제를 통해 제안된 암호 시스템으로 RSA 알고리즘보다 작은 비트수를 가지고 동일한 암호의 강도를 지님
    • 스마트 카드, 휴대폰 등 길이가 제한적인 경우에 적합

HASH 함수

일방향 해시 알고리즘

  • 임의의 길이를 갖는 메시지를 입력 받아 고정된 길이의 출력값으로 압축시키는 함수
  • 같은 입력에 대해서는 같은 해시값이 나온다.

해시 함수의 성질

  • 해시 값을 고속으로 계산
  • 역상 저항성: 원래의 값을 추정하는 것을 불가능해야 함
  • 두번째 역상 저항성: 해시 값에 해당하는 또 다른 값을 구하는 것은 계산상으로 불가능해야 함
  • 충돌 저항성: 같은 해시 값을 갖는 두개의 입력 값을 찾는 것은 계산상으로 불가능해야 함

해시 알고리즘의 응용 분야

  • 소프트웨어 변경 검출
  • 패스워드를 기초한 암호화
  • 메시지 인증 코드
  • 전자 서명
  • 일회용 패스워드

해시 알고리즘의 종류

  • SHA

    • NSA가 설계
    • 다른 함수들과 구분하기 위해 SHA-0으로 불림
    • 2년 후, SHA-0의 압축 함수에 비트회전 연산을 하나 추가한 SHA-1 발표
    • 그 후 4종류의 변형, SHA-224, SHA-256, SHA-384, SHA-512
  • MD4, MD5

    • 128비트의 해시 값
    • MD4의 해시 값 충돌을 발견하는 방법이 고안
    • 128비트 해시 값을 갖는 MD5 개발
    • SHA-1 보다 속도가 빠르며 구현이 간단
  • RIPEMD-160

  • HAS-160

  • Hash-DRBG


해시함수를 이용한 기술

  • 스테가노그래피 메시지가 전송되고 있다는 사실을 숨기는 기술 이미지나 오디오 파일과 같은 다양한 디지털 매체를 통해 메시지를 숨겨 전송
  • 워터마크 빛을 비출때 더 발게보이는 종이의 무늬나 그림
  • 핑거프린팅 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술

은닉 채널과 부 채널 공격

  • 은닉채널
    • 기본 채널에 기생하는 통신 채널
    • 기본 채널의 신호 대 잡음비를 축소해서 기본 채널의 대역폭을 축소시킨 것으로, 은닉 메시지는 다른 사람이 눈으로 볼 수 없으며, 송신자와 수신자만이 알 수 있음.
    • 디지털 워터마크나 디지털 서명에 사용
  • 부채널 공격
    • 알고리즘의 약점을 무차별 공격을 하는 대신, 암호 체계의 물리적인 구현 과정의 정보를 기반으로 하는 공격 방법

3. PKI

비대칭키 알고리즘을 기반으로 만들어진 보안 인프라

PKI가 없어도 안전한 통신 채널을 만들 수 있지만 중간에 해커가 개입한다면 무결성이 손상될 수 있기 때문에 인증기관 제도를 도입함으로써 이를 해결하였다.

나의 공개키를 증명하기 위해 인증기관으로 부터 발급받은 인증서를 이용한다.

다음과 같은 과정으로 인증서를 발급한다.

나는 먼저 비밀키와 공개키를 만든 후, 인증기관을 거쳐 나의 키에 인증서를 요청한다.

인증기관은 인증서를 발행해준후, 나는 나의 인증서를 통해 내가 나임을 증명할 수 있게 된다.

참고로 인증기관이 인증서를 건네주는 과정에서

"나에게 인증서를 건네준 인증기관이 올바른 인증기관인가?" 라는 증명을 하기 위해

인증기관 증명이 필요한데 이 과정에서 나는 인증기관에 대한 인증서를 요청함으로써 이를 해결한다.

profile
인프라 마스터가 되고 싶어요

0개의 댓글