2025. 2. 26. 21:39ㆍ자격증/정보보안기사
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>
블록 암호 공격
- 차분 분석 : 평문블록 <> 암호문 블록 비트 차이를 이용하여 암호키 찾아내는 방법
- 선형 분석 : 알고리즘 내부의 비선형 구조를 적당히 선형화시켜 키를 찾는 방법
- 전수공격법 : 가능한 모든 경우에 대해 조사하는 방법
- 통계적 분석 : 각 단어별 빈도에 관한 자료와 알려진 모든 통계적인 자료를 이용하는 방법
- 수학적 분석 : 통계적인 방법을 포함하여 수학적 이론을 이용하여 해독하는 방법
스트림 암호
설계 시 고려사항
- 암호화의 연속은 긴 주기를 가져야 한다
- 키 스트림은 진 난수 스트림과 최대한 비슷해야 한다
- 전사적 공격에 대응하기 위해 키가 충분히 길어야 한다
- 동기식 스트림 암호
- One-Time Pad : 암호화 수행마다 랜덤한 키 스트림 사용, 무조건 안전하며 이론적으로 해독 불가능하다고 알려져 있음(배타적 논리합 사용)
- 귀환 시프트 레지스터(FSR) : 시프트 레지스터와 귀환 함수로 구성, 하드웨어 구현이 용이
- 선형 귀환 시프트 레지스터(LFSR) : 하드웨어로 쉽게 구현.
- 비선형 귀환 시프트 레지스터(NLFSR) : 주로 LFSR은 선형성 때문에 공격에 취약. 비교적 안전
- 암호문을 복호화하여 평문을 찾을 때 키 스트림과 암호문 사이 동기가 필요
- 비동기식 스트림 암호
- 키 스트림이 평문, 암호문으로부터 함수 관계에 의해 생성되는 방식
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
- N-비트 해시코드에 대한 공격 난이도
- 무차별 공격 : 약한 충돌 내성을 깨고자 하는 공격
- 일치블록 연쇄공격 : M’를 사전에 다양하게 만들어 놓았다가 공격하고자 하는 M의 h(M)과 같은 해시함수값을 갖는 것을 골라 사용하는 공격
- 중간자 연쇄공격 : 해시 중간의 결과에 대한 충돌쌍을 찾음. 특정 포인트 공격
- 고정점 연쇄공격 : 메시지 블록과 연쇄변수 쌍을 얻게 되면 연쇄변수가 발생하는 특정한 점에서 임의의 수의 동등한 블록들을 메시지의 중간에 삽입해도 전체 해시값이 변하지 않음
- 차분 연쇄공격
- 다중 라운드 블록암호의 공격 : 입력값과 출력값 사이 통계적 특성을 조사하는 기법
- 해시함수의 공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을주로 찾아내는 방법
일방향 해시함수로 해결할 수 없는 문제
무결성은 보장할 수 있지만 이 파일이 정말로 엘리스의 것인지? 는 알 수 없음
→ 메시지 인증코드와 전자서명 필요
암호학적 해시함수의 예
SHA-512
- 다중-블록 메시지로부터 512비트 MD를 생성. 각 블록은 1024비트 길이를 가짐
- 메시지 길이가 2^128 비트를 넘으면 메시지 처리 불가(대부분 컴퓨터 저장 용량보다 큰 수치)
- 메시지에 추가적으로 덧붙이는 128비트 부호 없는 정수 길이 필드 필요(메시지의 길이 - 패딩 하기 전 원래 메시지 길이)
- 해시값이 같으면서 입력 값이 다른 메시지를 찾는 것을 어렵게 함
SHA-3
- 새로운 표준이 된 일방향 해시 알고리즘
메시지 인증코드(MAC)
- 무결성을 확인하고 메시지에 대한 인증을 하는 기술
- 메시지, 송신자와 수신자가 공유하는 키 → 고정 비트길이의 출력 계산
- 전자 서명보다 훨씬 빠름
- MDC(변경 감지 코드) : 메시지 무결성을 보장하는 MD
- MAC(메시지 인증 코드) : 변경 감지 코드를 메시지 인증코드로 바꾸어야 무결성 및 인증 보장
- MAC에는 송신자와 수신자 사이의 키가 포함
- ‘키 배송 문제’ 일어날 가능성
MAC의 구현 사례
- 축소 MAC : 안전성을 높이기 위해 설계. 두 단계의 해시
- 키에 메시지를 이어 붙이고 해시하여 다이제스트 생성
- 다이제스트를 이어붙이고 최종 다이제스트 생성
- 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 아래 계층
- 공개키 인증서 발행 및 폐지
- 자신의 공개키와 상위 기관의 공개키 전달
- 등록 기관의 요청에 의한 인증서 발행
- 인증서 소유자를 대신하여 공개키와 개인키 쌍 생성, 안전하게 소유자에게 전달
- 정책 승인기관(PAA) : 정책 수립, 루트 인증기관으로서의 역할
- 검증기관(VA) : 거래의 유효성 확인, 인증서의 유효성 여부와 적절하게 발급되었다는 것을 신뢰 당사자에게 확인시줌. 외주나 인증기관 직접 운영 가능
- 사용자와 최종 개체
- 자신의 비밀키/공캐키 쌍 생성 가능
- 공개키 인증서 요청, 획득 가능
- 전자 서명 생성 및 검증 가능
- 비밀키가 분실, 손상되거나 변조되었을 때 인증서 폐지 요청 가능
- 등록 기관(RA) : 사용자와 CA가 원거리에 위치해있는 경우 인증기관과 사용자 사이 등록 기관을 두어 인증기관 대신 신분과 소속 확인
- 선택적인 요소
- 저장소 : 사용자의 인증서를 저장하는 일종의 데이터베이스
PKI의 형태
- 계층 구조 : 트리 형태. 상위 인증기관이 하위 인증기관에 CA 발행
- 최상위 CA 인증서는 모든 사용자에게 알려져야 함
- 하위 인증기관간의 상호작용 원칙적으로 배제
- 네트워크 구조 : 인증기관 각각이 자신의 인증정책에 따라 독립적으로 존재
- CA간에 인증을 위해 상호인증서 발행
- 모든 상호인증이 허용되면 사호인증의 수가 대폭 증가하는 단점
- 혼합형 구조 : 계층 구조와 네트워크 구조의 장접을 취한 방법
- 각 도메인별로 신뢰 관계가 적합한 구조로 되어 있음
PKI의 주요 관리 대상
- 인증서(PKC) : 해당키가 특정인의 것이라는 것을 보증
- 표준 규격 X.509(네트워크 보안 응용에서 널리 사용됨)
- 버전
- 일련번호
- 서명 알고리즘 식별자(거의 쓸모 X)
- 발행자 이름
- 유효기간
- 주체 이름
- 주체의 공개키 정보
- 발행자 유일 식별자(선택)
- 주체 유일 식별자(선택)
- 확장(선택)
- 서명
- 인증서 확장 영역 : 사용자의 공개키 정보와 연관된 추가적인 정보 제공. 인증서 계층 구조 관리하는 방법 제공
- 키와 정책 정보
- 기관키 식별자
- 사용자키 식별자
- 키 사용
- 인증서 정책
- 사용자와 발행자 속성
- 사용자 대체 이름
- 발급자 대체 이름
- 인증 경로 제약조건
- 기본 제한
- 이름 제한
- 정책 제한
- 키와 정책 정보
- 표준 규격 X.509(네트워크 보안 응용에서 널리 사용됨)
- X.509 인증서 폐지 목록 프로파일
- 인증서의 유효기간이 끝나기 전에 폐지해야 하는 경우가 있음
- 개인키가 침해 당했을 경우
- CA가 사용자를 더이상 인증하지 않을 때
- CRL : 폐지된 인증서들에 대한 목록
- 신뢰 당사자가 언제든지 이 목록을 검색할 수 있도록 하여야 함
- 인증서의 유효기간이 끝나기 전에 폐지해야 하는 경우가 있음
- 인증서 운영 프로토콜
- OCSP : 온라인 인증서 상태 검증 프로토콜
- CA에 의해 관리되고 있는 CRL을 검사
- OCSP 클라이언트, OCSP 서버, 인증 서버로 구성됨
- OCSP : 온라인 인증서 상태 검증 프로토콜
7. 키, 난수
키
개요
- 암호기술을 사용하는데 반드시 필요한 대단히 큰 수
- 키 공간의 크기 : 가능한 키의 총 수. 클 수록 무차별 공격에 강하고, 키의 비트 길이로 정해진다.
- 평문과 같은 가치를 지님. 키가 넘어가는 것 = 평문이 넘어가는 것
다양한 키
- https:// → 웹 서버와 브라우저 사이에서는 SSL/TLS에 의한 암호화된 통신 수행
- 이때 사용되는 키는 이 통신에만 한 번 사용되고, 다음 통신에서는 달라짐 → 세션키
- 마스터 키 : 세션키와는 달리 반복적으로 사용되는 키
- CEK : 사용자가 직접 이용하는 정보가 암호화의 대상이 될 때의 키
- KEK : 키를 암호화하는 키
패스워드를 기초로 한 암호
- 솔트 : 의사 난수 생성기로 만들어지는 랜덤한 수, 키를 만들 때 패스워드와 함께 일방향 해시함수에 입력됨
- 사전공격, 레인보우 테이블을 이용한 공격을 막기 위해 존재
- 사용자마다 랜덤하게 생성
- 비밀번호와 분리하여 따로 안전한 장소에 저장
'자격증 > 정보보안기사' 카테고리의 다른 글
4. 시스템 보안 (0) | 2025.02.26 |
---|---|
3. 접근통제 (1) | 2025.02.26 |
1. 정보보호 개요 (0) | 2025.02.26 |