2. 암호학

2025. 2. 26. 21:39자격증/정보보안기사

728x90

2. 암호학 개요

암호기법

  • 치환 암호 : 평문의 문자를 다른 문자로 교환, 일대일 대응이 아니어도 됨
  • 전치 암호 : 원문을 여기저기 움직여 일대일 대응을 가짐(자리바꾸기)
  • 블록 암호 : 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘
  • 스트림 암호 : 한번에 1비트 혹은 1바이트의 데이터 흐름을 순차적으로 처리하는 암호 알고리즘

위치에 따른 구분

  • 링크 암호화 : 데이터 링크 또는 물리적 계층에서 일어나는 암호화(헤더 포함)
  • 종단간 암호화 : 애플리케이션 계층에서 일어나는 암호화(헤더 암호화 X)
  • 하드웨어 암호시스템 : 전용 암호처리용 하드웨어 설치
  • 소프트웨어 암호시스템 : 암호처리용 소프트웨어를 사용한 데이터 암호화
  • 대칭키 암호화 : 암호화 키 == 복호화 키
  • 비대칭키 암호화 : 암호화 키 ≠ 복호화 키

→ 합치면 하이브리드 암호 시스템

일방향 해시함수 : 무결성 제공

메시지 인증코드 : 무결성, 인증 제공

전자서명 : 무결성, 인증, 부인방지

케르히호프의 원리 : 암호 알고리즘이 아닌 키의 비밀을 지켜야 한다는 원리

암호 분석의 종류

  • 암호문 단독 공격(COA) : 평문의 통계적 성질, 문장의 특성 등을 추정하여 해독(암호문만 가지고)
  • 기지 평문 공격(KPA) : 여러 개의 평문/암호문 쌍을 얻어 알아냄
  • 선택 평문 공격(CPA) : 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격
  • 선택 암호문 공격(CCA) : 암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격

암호 알고리즘의 안전성

  • 계산량이 너무 큼
  • 무한한 계산능력이 있어도 공격 못함

암호제품 평가체계 : CC(Common Criteria)

암호기술 평가체계

  • 암호 알고리즘 평가
  • 암호모듈 평가(CMVP)
  • 정보보호제품 평가
  • 응용시스템 평가

디지털 저작권 관리

  • 스테가노그래피 : 다른 무언가로 감추어 메시지 자체를 은폐(보통 사진, MP3 파일 등에 암호화
  • 디지털 워터마킹 : 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술
  • 핑거프린팅 : 디지털 콘텐츠를 구매할 때 구매자의 정보 삽입(불법 배포 추적 위함)
  • DRM : 디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 다양한 방식으로 제어할 수 있게 하는 기술적인 방법 또는 방법의 집합
    • 실행, 보기, 복제, 출력, 변경 모두 제어
    • 메타데이터 : 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보
    • 패키저 : 보호 대상 콘텐츠를 메타데이터와 함께 Secure Container포맷으로 패키징하는 모듈
    • 시큐어 컨테이너 : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위
    • 식별자 : 콘텐츠를 식별하기 위한 식별자
    • DRM 제어기 : 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이선스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스 제어
  • DRM 모델
    • 콘텐츠 제공자 : 디지털 권리를 가지고 권리 보호를 원하는 DRM 사용자
    • 콘텐츠 배포자 : 콘텐츠 유통 채널을 제공하는 DRM 사용자(클리어링하우스로부터 대금받음)
    • 콘텐츠 소비자 : 클리어링하우스를 통해 콘텐츠에 대한 권리를 요청하고 합당한 대금 지불
    • 클리어링 하우스 : 디지털허가를 소비자에게 발급해주고 콘텐츠 제공자에게 로열티 수수료 지불하며 배급자에게 배급 수수료 지불하는 재정적 거래 취급 → 모든 소비자에게 허가된 사용을 기록하는 책임 존재

3. 대칭키 암호

현대 대칭키 암호

블록 암호

P-박스

  • 축소 P-박스 : n비트를 입력받아 m비트 출력(n>m)
  • 확장 P-박스 : n비트를 입력받아 m비트 출력(n<m)

→ 역함수 존재 X. 단순 P-박스는 존재(1:1대응)

S-박스

  • 입력과 출력의 개수가 달라도 됨

합성암호

  • 확산 : 암호문과 평문 사이의 관계를 숨김
  • 혼돈 : 암호문과 키의 관계를 숨김
  • 라운드 : 반복적으로 사용되는 합성 암호
  • Feistel 암호 : 구성도가 그물을 짜는 것과 같이 교환되는 형태
  • SPN 구조 : 여러 개의 함수 중첩. 입력을 여러 개의 블록으로 나누고 각 블록을 S-box로 입력하여 대치시켜 P-box로 전치하는 과정 반복

<aside> 💡

대칭 블록 암호 구현

  • 블록 크기 : 크면 강하지만 암, 복호화 속도 떨어짐(128비트 보통 사용)
  • 키 길이 : 길면 강하지만 암, 복호화 속도 떨어짐(128비트 보통 사용)
  • 라운드 수 : 여러 번 수행하면 보안 강화(16 보통 사용)
  • 서브키 생성 알고리즘 : 복잡할 수록 어려워짐
  • 라운드 함수 : 복잡할 수록 어려워짐 </aside>

블록 암호 공격

  • 차분 분석 : 평문블록 <> 암호문 블록 비트 차이를 이용하여 암호키 찾아내는 방법
  • 선형 분석 : 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법
  • 전수공격법 : 가능한 모든 경우에 대해 조사하는 방법
  • 통계적 분석 : 각 단어별 빈도에 관한 자료와 알려진 모든 통계적인 자료를 이용하는 방법
  • 수학적 분석 : 통계적인 방법을 포함하여 수학적 이론을 이용하여 해독하는 방법

스트림 암호

설계 시 고려사항

  • 암호화의 연속은 긴 주기를 가져야 한다
  • 키 스트림은 진 난수 스트림과 최대한 비슷해야 한다
  • 전사적 공격에 대응하기 위해 키가 충분히 길어야 한다
  1. 동기식 스트림 암호
    1. One-Time Pad : 암호화 수행마다 랜덤한 키 스트림 사용, 무조건 안전하며 이론적으로 해독 불가능하다고 알려져 있음(배타적 논리합 사용)
    2. 귀환 시프트 레지스터(FSR) : 시프트 레지스터와 귀환 함수로 구성, 하드웨어 구현이 용이
    3. 선형 귀환 시프트 레지스터(LFSR) : 하드웨어로 쉽게 구현.
    4. 비선형 귀환 시프트 레지스터(NLFSR) : 주로 LFSR은 선형성 때문에 공격에 취약. 비교적 안전
  2. 암호문을 복호화하여 평문을 찾을 때 키 스트림과 암호문 사이 동기가 필요
  3. 비동기식 스트림 암호
    1. 키 스트림이 평문, 암호문으로부터 함수 관계에 의해 생성되는 방식

DES

대칭키 블록 암호

  • 평문 : 64비트
  • 키 길이 : 56비트
  • 라운드 횟수 : 16회

암호화 과정

P-박스 두 개(초기 전치, 최종 전치), Feistel 라운드 함수 16개(각각 48비트 라운드 키 사용)

각 라운드에 암호요소 존재 : 혼합기, 교환기 - 역연산 가능

복호화는 암호화의 역연산

라운드 키 생성 : 64 비트 → 56 + 8(패리티 비트), 제거됨 → 16개의 48비트 라운드 키 생성

DES 취약점

  • 쇄도효과 : 평문, 키의 작은 변화가 암호문에 큰 변화
  • 완비성 : 각 비트가 평문의 많은 비트들에 의존

→ 높아서 안전했지만 56비트 키 , 현대 전사 공격에 안전하지 못함

3중 DES

처리 속도가 빠르지 않아 과거 자료와의 호환성 중시하는 경우 제외하고는 잘 쓰지 않음

  • 두 개의 키를 갖는 3중 DES
    • 중간단계에서 복호화 알고리즘 사용(DES 암호화 알고리즘)
  • 세 개의 키를 갖는 3중 DES
    • 기지평문공격의 가능성때문에 사용
    • 복호화는 암호화의 역이 됨
    • DES와 상호 호환성(모든 키를 갖게 하면 DES와 같아짐)

AES

DES를 대체하기 위해 암호 알고리즘 공모 → 레인달(Rijndael) 선택됨

  • 128비트 평문 → 128비트 암호문
  • non-Feistel 알고리즘(블록 전체에 연산 적용)
  • 10, 12, 14 라운드 사용(128, 192, 256비트) AES-128, AES-192, AES-256 존재

암호

  • Feistel이 아닌 SPN 구조 사용
  • SubBytes() → ShiftRows → MixColumns → AddRoundKey
  • 암호화의 마지막 라운드에서는 MixColumns() 연산 수행 X

기타 대칭키 암호 알고리즘

국제

  • IDEA : 스위스
  • RC5 : 미국

국내

  • SEED
  • ARIA :
  • HIGHT : 저전력, 경량화
  • LEA : 금융분야에 강함, 저전력 암호화

현대 대칭키 암호를 이용한 암호화 기법

  • ECB
    • 가장 간단
    • 동일한 평문 → 동일한 암호문
    • 암호화 또는 복호화 키 동일
    • 평문의 마지막 블록에 다른 블록과 크기를 맞춰주기 위해 덧붙이기 사용
    • 블록 간의 독립성 : 오류가 다른 블록에 영향 X
  • CBC
    • XOR → 암호화하고 → 다음블록으로 보냄
    • 다음 블록에 사용되기 위해 메모리에 저장
    • 첫 번째 블록 암호화하기 위해 초기벡터(허구의 블록) 존재
    • 첫 번째 블록이 바뀌면 모두 바뀜 → 복호화를 위해서는 평문 순서대로 배열
  • CFB
    • 암호화하고 → XOR → 다음블록으로 보냄
  • OFB
    • 암호화하고 → 다음블록으로 보내고 → XOR
    • 초기치가 바뀌면 암호문은 모두 바뀜
    • 암호 알고리즘으 ㅣ출력은 평문과 무관
    • 전송 중의 비트 오류 전파 X
  • CTR
    • 암호화 시 피드백 X
    • 카운터값 사용, 다음 카운터값은 카운터값 + 1

4. 비대칭키 암호

키 배송 문제

도청자의 문제 존재 !

  • 키의 사전 공유에 의한 해결
    • 키 관리기관(TA)이 사전에 비밀 경로를 통해 전달
    • 네트워크 상 모든 사용자 사이에 안전한 통로가 필요하고, 사용자들도 많은 키 관리 필요
  • 키배포 센터에 의한 해결
    • 암호 통신이 필요해질 때마다 키배포 센터(KDC)라는 신뢰받는 제3자에 의해서 개인과 키배포센터 사이에서만 키 사전 공유
    • 회사 안에 키배포 센터 역할 컴퓨터 지정
  • 디피헬만 키 교환에 의한 해결
    • 각자 공유할 키를 계산하여 만들어냄
  • 공개키 암호에 의한 해결
    • 알려져도 괜찮은 ‘암호화키’ 공유, 복호화는 수신자가 가지고 있는 ‘복호화키’로만 가능

공개키 암호

암호화 키와 복호화 키 분리. 각 키는 수학적 관계 존재

  • 중간자 공격 취약 → 공개키 인증서 필요

RSA 암호시스템

인수분해 문제 해결의 높은 난이도를 이용, 가장 대표적인 공개키 암호 알고리즘

  • 수학적 공격(개인키 비트 수가 클 수록 안전)
  • 타이밍 공격(복호화 알고리즘의 실행 시간에 따라 달라짐, 랜덤 지체를 통해 방어)
  • 선택 암호문 공격(CCA) - 위조 암호문을 서버에 여러 차례 보내어 키나 평문 정보를 조금이라도 얻으려 함
    • 최적 비대칭키 암호 패딩(OAEP) : RSA 개량 알고리즘. 평문 해시값과 정해진 개수의 ‘0’등 ‘인증정보’를 평문의 앞에 추가하여 RSA 암호화. 올바른 ‘인증정보’가 나타나지 않으면 결과 X

Rabin 암호시스템

  • RSA 암호시스템의 변형. 2차 합동에 근거
  • 암호화 연산 오직 한번. 굉장히 뺘름. 성능이 낮은 플랫폼에서 활용하기 좋음
  • RSA만큼 안전(비슷)

ElGamel 방식

  • 이산대수에 근거. 디피헬만 알고리즘의 확장
  • 다른 알고리즘과 비교할 때 가장 느림
  • 암호문의 길이는 평문의 2배
  • 많은 메모리 공간 필요

타원 곡선 암호(ECC)

  • 키의 길이가 짧아도 되는 암호화 시스템
  • 타원곡선 군에서의 이산대수 문제에 기초한 공개키 암호 알고리즘
  • 속도 빠르고, 키 크기도 상대적으로 적음
  • 타원곡선 주기적으로 바꾸기 가능

대칭키 vs 비대칭키

항목 대칭키 비대칭키

키의 상호관계 암호화키=복호화키 암호화키≠복호화키
안전한 키길이 128비트 이상 2048비트 이상
암호화키 비밀 공개
복호화키 비밀 비밀
비밀키 전송 필요 불필요
키 개수 N(N-1)/2 2N
암호화 속도 고속 저속
경제성 높다 낮다
제공 서비스 기밀성 기밀성, 부인방지, 인증
목적 데이터 암호화 대칭키 교환
전자서명 복잡 간단
단점 키 교환 원리가 없다 중간자 공격에 취약
해당 알고리즘 DES,3DES,AES,IDEA RSA,ECC,DSA

하이브리드 암호시스템

공개키 암호의 문제점

  • 처리속도가 너무 느림
    • 하이브리드 암호시스템으로 해결
  • 중간자 공격
    • 인증 필요

하이브리드 암호 시스템

  • 대칭키 암호화 공개키 암호 2개의 방식 조합
  • 대칭키 암호로 암호화하고 대칭키 암호키를 공개키 암호로 암호화
  • SSL/TLS에서도 사용

5. 해시함수와 응용

일방향 해시함수

해시함수 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값을 출력하는 함수

  • 임의 길이의 메시지로부터 고정 길이의 해시값 계산
  • 해시값 고속 계산 가능
  • 일방향성(역산 불가)
  • 메시지가 다르면 해시값도 다름

보안요구사항

  • 프리이미지 저항성(역상 저항성)
    • 해시함수의 출력값을 알고 있어도 원본 데이터를 계산하기가 어렵다는 것
  • 제2프리이미지 저항성(두 번째 역상 저항성, 약한 충돌 내성)
    • 메시지를 쉽게 위조할 수 없도록 하는 성질
    • 주어진 입력값에 대해 입력값과 다른 두 번째 입력값이 동일한 해시값을 가지는 것이 어렵다는 것
  • 충돌 저항성(충돌 회피성, 강한 충돌 내성)
    • 동일한 출력을 가지는 다른 두 입력값을 찾는 것이 불가능하다는 것

키가 없는 해시함수와 키를 사용하는 해시함수

  • 반복 해시함수 : 고정 길이의 입력을 필요하는 함수를 만들고 필요한 만큼 반복
    • Merkle-Damgard 구조 : 많은 해시함수 구조의 기본 틀. 충돌 내성을 갖게 설계해야 함
  • 키가 없는 해시함수
    • 전용 해시함수
      • 오늘날 사용되고 있는 전용 해시함수들은 모두 MD4를 기초로 디자인
      • MD(메시지 다이제스트) - MD2, MD4, MD5 세 가지 존재, 현재는 생일 공격에 노출되어사용되지 않음
      • SHA - 가장 널리 사용되는 해시함수, SHA 256, SHA-384, SHA-512존재, 강한 충돌 내성이 깨졌다는 것을 안 후 SHA-3 표준화
      • RIPEMD-160 - 160비트 MD를 생성하는 해시 알고리즘. 비트코인에서 사용됨
      • TIGER - 64비트 시스템에서 해시 함수 수행하기 위해 설계. MD-5, SHA-1보다 빠름
      • HAVAL - MD를 출력하는 가변 길이 해시 알고리즘, 블록의 크기는 1024바이트
    • 블록암호 기반 해시함수
      • 반복 암호학적 해시함수 안에 사용되는 압축함수 자리에 대칭키 블록함수 사용 가능
    • 모듈 연산 기반 해시함수
      • 압축 함수의 기반을 모듈 연산의 반복적인 수행에 두고 있는 해시함수
      • 하드웨어나 소프트웨어 자체에 내장된 모듈 연산을 사용할 수 있다는 장점
      • 속도가 빠르지 않고 안전성 연구에 대한 역사가 짧다는 단점
  • 키를 사용하는 해시함수
    • 메시지 인증 기능을 가진 함수
    • 함수 자체의 안전성과 키의 비밀성에 안전성을 두고 있음

암호학적 해시함수의 응용

  • 무결성 점검 : 해시값이 동일하다면 원래의 메시지가 변경되지 않았다는 것
  • 소프트웨어 변경 검출 : 해시값 비교
  • 메시지 인증코드(MAC) : 상호 간에 교환되는 정보를 인증하기 위해, 비밀키를 공유하는 두 통신 상대자 간에 사용
  • 전자서명 : 현실 사회의 서명을 디지털 세계로 가져온 것

랜덤 오라클 모델과 해시함수에 대한 공격

  • 랜덤 오라클 모델 : 해시함수에 대한 이상적인 수학적 모델
  • 비둘기집 원리 : N+1마리의 비둘기가 N개의 비둘기집에 들어가 있다면 적어도 한 비둘기집에는 두 마리의 비둘기가 들어있다는 뜻
  • BIRTHDAY PARADOX : N명 중 적어도 2명의 생일이 일치할 확률이 2분의 1 이상이 되도록 하려면 N이 최저 몇 명이어야 할까? → 23명이면 됨.
    • 특정 해시값이 아닌 어쨌든 같은 해시값을 생성하는 2개의 메시지를 구하는 것. 일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격
  • 랜덤 오라클 모델에 대한 공격
    • N-비트 해시코드에 대한 공격 난이도
      • 프리이미지 저항성 : 2^n
      • 2차 프리이미지 저항성 : 2^n
      • 충돌 저항성 : 2^n/2
  • 무차별 공격 : 약한 충돌 내성을 깨고자 하는 공격
  • 일치블록 연쇄공격 : M’를 사전에 다양하게 만들어 놓았다가 공격하고자 하는 M의 h(M)과 같은 해시함수값을 갖는 것을 골라 사용하는 공격
  • 중간자 연쇄공격 : 해시 중간의 결과에 대한 충돌쌍을 찾음. 특정 포인트 공격
  • 고정점 연쇄공격 : 메시지 블록과 연쇄변수 쌍을 얻게 되면 연쇄변수가 발생하는 특정한 점에서 임의의 수의 동등한 블록들을 메시지의 중간에 삽입해도 전체 해시값이 변하지 않음
  • 차분 연쇄공격
    • 다중 라운드 블록암호의 공격 : 입력값과 출력값 사이 통계적 특성을 조사하는 기법
    • 해시함수의 공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을주로 찾아내는 방법

일방향 해시함수로 해결할 수 없는 문제

무결성은 보장할 수 있지만 이 파일이 정말로 엘리스의 것인지? 는 알 수 없음

→ 메시지 인증코드와 전자서명 필요

암호학적 해시함수의 예

SHA-512

  • 다중-블록 메시지로부터 512비트 MD를 생성. 각 블록은 1024비트 길이를 가짐
  • 메시지 길이가 2^128 비트를 넘으면 메시지 처리 불가(대부분 컴퓨터 저장 용량보다 큰 수치)
  • 메시지에 추가적으로 덧붙이는 128비트 부호 없는 정수 길이 필드 필요(메시지의 길이 - 패딩 하기 전 원래 메시지 길이)
  • 해시값이 같으면서 입력 값이 다른 메시지를 찾는 것을 어렵게 함

SHA-3

  • 새로운 표준이 된 일방향 해시 알고리즘

메시지 인증코드(MAC)

  • 무결성을 확인하고 메시지에 대한 인증을 하는 기술
  • 메시지, 송신자와 수신자가 공유하는 키 → 고정 비트길이의 출력 계산
  • 전자 서명보다 훨씬 빠름
  • MDC(변경 감지 코드) : 메시지 무결성을 보장하는 MD
  • MAC(메시지 인증 코드) : 변경 감지 코드를 메시지 인증코드로 바꾸어야 무결성 및 인증 보장
    • MAC에는 송신자와 수신자 사이의 키가 포함
  • ‘키 배송 문제’ 일어날 가능성

MAC의 구현 사례

  • 축소 MAC : 안전성을 높이기 위해 설계. 두 단계의 해시
    1. 키에 메시지를 이어 붙이고 해시하여 다이제스트 생성
    2. 다이제스트를 이어붙이고 최종 다이제스트 생성
  • HMAC : 일방향 해시함수를 이용하여 메시지 인증코드 구현
  • CBC-MAC, CMAC : 대칭키 암호를 N번 사용하여 N개의 평문블록에서 하나의 MAC을 생성해냄
    • CBC-MAC → CMAC
  • CCM : CTR과 CBC-MAC 통합. 동일한 키의 사용을 통해 기밀성과 인증 제공. WiFi 무선 근거리 통신망의 보안 요구사항을 지원하기 위해 표준화
  • GCM : CTR 모드에 인증 추가. CTR 모드가 암호문을 생성함과 동시에 인증하는 정보 만들어냄

MAC에 대한 공격

  • 재전송 공격 : 전송중인 메시지와 인증코드를 스니핑한 후 수신자에게 전송하면 수신자는 구별X
    • 순서 번호 : 송신 메시지에 매회 1회씩 증가하는 번호 부여. MAC 값의 계산에서도 순서번호 메시지에 포함
    • 타임스탬프 : 송신 메시지에 현재 시각을 넣기로 약속. 동기화 필요
    • 비표(nonce) : 송신자에게 일회용 랜덤 값 건네줌
    • 시도/응답 : 난수 송신 후 정확한 난수 값을 회신받길 요구

MAC으로 해결할 수 없는 문제

  • 제3자에 대한 증명 : MAC 값을 계산한 것이 자신이 아니라 상대방이라고 제 3자에게 증명 불가
  • 부인 방지 : “내가 보낸 메시지가 아니다”라는 주장 불가

→ 모두 전자서명을 통해 해결가능

6. 전자서명과 PKI

전자서명

  • 공개키 암호방식 : 서명자의 검증정보를 공개하여 누구나 검증할 수 있는 서명방식으로 서명 생성 및 검증이 간편
  • 중재서명 방식 : 서명 생성과 검증을 제삼자가 중재하는 방식으로 서명할 때마다 제3자의 참여가 있어야 하는 불편이 따름

송신자는 서명 알고리즘을 통해 메시지에 서명을 하고, 수신자는 메시지와 서명을 받아 검증 알고리즘 적용. 참 거짓 확인

서명자는 자신의 개인키로 문서에 서명을 하게 됨(서명 알고리즘 사용)

검증자는 서명자의 공개키로 문서 검증(검증 알고리즘 사용)

전자서명 서비스의 보장

  • 메시지 인증 : 가능
  • 메시지 무결성 : 가능
  • 부인방지 : 가능(신뢰받는 제3자 이용)
  • 기밀성 : 보장 X . 메시지와 서명에 비밀키를 이용하거나 공개키 이용해서 암호화 해야 함

전자서명 구조

  • RSA 전자서명 구조 : RSA 아이디어 이용. 전자서명 구조에서는 개인키와 공개키의 역할이 바뀜. 수신자의 키가 아닌 송신자의 개인키와 공개키 사용
  • ElGamal 전자서명 구조 : ElGamal 암호시스템과 동일한 키 사용. 알고리즘은 다름(거의 사용 X)
  • Schnorr 전자서명 구조: ElGamal에서 서명의 크기가 작은 구조
  • 전자서명 표준(DSS) : ElGamal 개량. 서명과 검증에 필요한 계산량 줄임
    • 이산대수 기반(오직 전자서명 기능만을 제공하도록 설계한 알고리즘 사용)
    • 공개키 기술
  • 타원곡선 전자서명 구조 : 타원곡선 기반. 짧은 비트 길이로 인해 짧은 처리 시간에 짧은 서명 생성

전자서명 방식

  • 메시지 복원형 전자서명 : 서명자의 개인키 암호화 → 서명자의 공개키 복호화
  • 부가형 전자서명 : 메시지를 해시 알고리즘으로 압축하고 결과에 서명자의 개인키로 전자서명 후 메시지 덧붙여 전송
    • 수신된 메시지를 해시한 결과와 공개키를 이용하여 복호화
    • 해시값을 암호화 ! → 암호화하는 것이 수월해짐(해시값은 짧음)
  • 특수 전자서명
    • 부인방지 전자서명 : 자체 인증 방식 배제. 검증 시 반드시 서명자의 도움이 있어야 검증 가능
    • 의뢰 부인방지 서명 : 분쟁 해결자 또는 재판관만이 부인 과정 수행
    • 수신자 지정 서명 : 특정 검증자만이 서명 확인
    • 은닉서명 : 서명문의 내용을 숨기는 서명 방식(익명성 유지)
    • 위임서명 : 부재 중 대리 서명 할 수 있는 위임 서명
    • 다중서명 : 동일한 전자문서에 여러 사람이 서명

전자서명의 응용

  • 전자투표
    • PSEV : 터치스크린 기표기
    • REV : 투표소에 가지 않아도 투표 가능
  • 전자입찰 시스템 : 입찰 공고에서 다수의 공급자가 응찰하여 오면 가장 싼 가격을 제시한 응찰자와 계약하는 방식을 통해 구현

전자서명으로 해결할 수 없는 문제

  • 서명 검증 시 이용하는 공개키가 진짜 송신자의 공개키여야 함
    • 이를 위해 인증서 고안

PKI(공개키 기반 구조)

공개키 알고리즘을 위한 키 관리 구조

비대칭키 암호시스템에 기초하여 디지털 인증서를 생성하고, 관리하고, 저장하며, 분배하고 취소하는데 필요한 하드웨어, 소프트웨어, 사람, 정책 및 절차

PKI의 주요 구성요소

  • 인증기관(CA) : 인증정책 수립, 인증서 및 인증서 효력정지 및 폐기목록 관리, 다른 CA와의 상호 인증 제공
    • 정책 승인기관(PAA) : 정책 수립, 루트 인증기관으로서의 역할
      • 정책과 절차 생성
      • 하위 기관들의 정책 준수 상태 및 적정성 감사
    • 정책 인증기관(PCA) : PAA 아래 계층, 도메인 내 사용자와 인증기관이 따라야 할 정책 수립, 공개키 인증, 인증서와 폐지 목록 관리
    • 인증기관(CA) : PCA 아래 계층
      • 공개키 인증서 발행 및 폐지
      • 자신의 공개키와 상위 기관의 공개키 전달
      • 등록 기관의 요청에 의한 인증서 발행
      • 인증서 소유자를 대신하여 공개키와 개인키 쌍 생성, 안전하게 소유자에게 전달
  • 검증기관(VA) : 거래의 유효성 확인, 인증서의 유효성 여부와 적절하게 발급되었다는 것을 신뢰 당사자에게 확인시줌. 외주나 인증기관 직접 운영 가능
  • 사용자와 최종 개체
    • 자신의 비밀키/공캐키 쌍 생성 가능
    • 공개키 인증서 요청, 획득 가능
    • 전자 서명 생성 및 검증 가능
    • 비밀키가 분실, 손상되거나 변조되었을 때 인증서 폐지 요청 가능
  • 등록 기관(RA) : 사용자와 CA가 원거리에 위치해있는 경우 인증기관과 사용자 사이 등록 기관을 두어 인증기관 대신 신분과 소속 확인
    • 선택적인 요소
  • 저장소 : 사용자의 인증서를 저장하는 일종의 데이터베이스

PKI의 형태

  • 계층 구조 : 트리 형태. 상위 인증기관이 하위 인증기관에 CA 발행
    • 최상위 CA 인증서는 모든 사용자에게 알려져야 함
    • 하위 인증기관간의 상호작용 원칙적으로 배제
  • 네트워크 구조 : 인증기관 각각이 자신의 인증정책에 따라 독립적으로 존재
    • CA간에 인증을 위해 상호인증서 발행
    • 모든 상호인증이 허용되면 사호인증의 수가 대폭 증가하는 단점
  • 혼합형 구조 : 계층 구조와 네트워크 구조의 장접을 취한 방법
    • 각 도메인별로 신뢰 관계가 적합한 구조로 되어 있음

PKI의 주요 관리 대상

  • 인증서(PKC) : 해당키가 특정인의 것이라는 것을 보증
    • 표준 규격 X.509(네트워크 보안 응용에서 널리 사용됨)
      • 버전
      • 일련번호
      • 서명 알고리즘 식별자(거의 쓸모 X)
      • 발행자 이름
      • 유효기간
      • 주체 이름
      • 주체의 공개키 정보
      • 발행자 유일 식별자(선택)
      • 주체 유일 식별자(선택)
      • 확장(선택)
      • 서명
    • 인증서 확장 영역 : 사용자의 공개키 정보와 연관된 추가적인 정보 제공. 인증서 계층 구조 관리하는 방법 제공
      • 키와 정책 정보
        • 기관키 식별자
        • 사용자키 식별자
        • 키 사용
        • 인증서 정책
      • 사용자와 발행자 속성
        • 사용자 대체 이름
        • 발급자 대체 이름
      • 인증 경로 제약조건
        • 기본 제한
        • 이름 제한
        • 정책 제한
  • X.509 인증서 폐지 목록 프로파일
    • 인증서의 유효기간이 끝나기 전에 폐지해야 하는 경우가 있음
      • 개인키가 침해 당했을 경우
      • CA가 사용자를 더이상 인증하지 않을 때
    • CRL : 폐지된 인증서들에 대한 목록
      • 신뢰 당사자가 언제든지 이 목록을 검색할 수 있도록 하여야 함
  • 인증서 운영 프로토콜
    • OCSP : 온라인 인증서 상태 검증 프로토콜
      • CA에 의해 관리되고 있는 CRL을 검사
      • OCSP 클라이언트, OCSP 서버, 인증 서버로 구성됨

7. 키, 난수

개요

  • 암호기술을 사용하는데 반드시 필요한 대단히 큰 수
  • 키 공간의 크기 : 가능한 키의 총 수. 클 수록 무차별 공격에 강하고, 키의 비트 길이로 정해진다.
  • 평문과 같은 가치를 지님. 키가 넘어가는 것 = 평문이 넘어가는 것

다양한 키

  • https:// → 웹 서버와 브라우저 사이에서는 SSL/TLS에 의한 암호화된 통신 수행
  • 이때 사용되는 키는 이 통신에만 한 번 사용되고, 다음 통신에서는 달라짐 → 세션키
  • 마스터 키 : 세션키와는 달리 반복적으로 사용되는 키
  • CEK : 사용자가 직접 이용하는 정보가 암호화의 대상이 될 때의 키
  • KEK : 키를 암호화하는 키

패스워드를 기초로 한 암호

  • 솔트 : 의사 난수 생성기로 만들어지는 랜덤한 수, 키를 만들 때 패스워드와 함께 일방향 해시함수에 입력됨
    • 사전공격, 레인보우 테이블을 이용한 공격을 막기 위해 존재
    • 사용자마다 랜덤하게 생성
    • 비밀번호와 분리하여 따로 안전한 장소에 저장
728x90

'자격증 > 정보보안기사' 카테고리의 다른 글

4. 시스템 보안  (0) 2025.02.26
3. 접근통제  (1) 2025.02.26
1. 정보보호 개요  (0) 2025.02.26