- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Hello World
- 발표
- 탈색
- 베이스
- 호출규약
- 레지스터
- 공간복잡도
- 파이썬
- 피보나치
- 컴파일러
- 염색
- 알고리즘
- 펌
- Visual Studio
- ubuntu
- 추상데이터타입
- 블루블랙
- 디버깅
- 오지총
- 창의공학설계
- 동대구
- 소켓
- 시간복잡도
- Packet
- 버퍼오버플로우
- Wireshark
- C언어
- BOF
- Calling Convention
- Debug
- Today
- Total
c0smicb0y
암호학 본문
가장 약한 연결 고리속성: 보안시스템은 가장 약한 연결 고리만큼만 강할 뿐이다.
케르크호프의 원리: 현재 사용되고 있는 암호방식을 알고 있는 것을 전제로 암호해독을 시도하는 것으로 간주함.
암호공격방법
암호문 단독 공격(COA: Ciphertext Only Attack)
- 주어진 정보가 유일하게 암호문 밖에 없음
- 전수조사방법으로 예쌍할 수 있는 모든 길을 적용함
기지 평문 공격 (KPA: Known Plaintext Attack)
- 주어진 정보가 평문의 일부와 그에 해당하는 암호문
- 나머지 암호문에 대한 공격법
선택 평문 공격 (CPA: Chosen Plaintext Attack)
- 평문의 일부를 선택할 수 있고 이에 대응하는 암호문을 얻을 수 있는 경우의 공격법
선택 암호문 공격 (CCA: Chosen Ciphertext Attack)
- 암호문의 일부를 선택하여 그에 대응하는 평문을 얻은 다음 이를 분석해 키를 찾는 공격법
Shannon의 무조건 안정성
1. 공격자가 무한 계산 능력을 가졌다 하더라도 암호문으로부터 평문에 대한 어떤 정보도 얻을 수 없음
2. 암호문을 수신하기 전 평문에 대한 사전 정보량과 암호문을 수신한 후의 사후 정보량이 같을 때 무조건 안전성을 만족
예: One Time Pad
계산적 안전성
- 원리적으로 해독이 가능하지만 해독에 필요한 계산량이 많아 실제로는 해독이 불가능 할 때
- 정당한 수신자의 복호화 시간과 비밀정보를 모르는 공격자의 복호화시간의 상대적 차이를 이용한 안정성
- 일방향함수: 입력값으로부터 출력값의 계산은 용이하나 반대로 출력값으로부터 입력값을 계싼하기 어려운 함수
- 트랩도어 일방향함수: 비밀 정보를 아는 경우에는 함수의 출력값으로부터 입력값을 계산 가능
다항식 안정성
- 임의의 두 암호문 C1, C2 중 하나가 주어졌을 때 그것이 P1의 암호문인지 P2의 암호문인지 구별할 수 없음
의미론적 안정성
- 다항식 계산 능력을 가진 공격자는 암호문으로부터 평문에 대한 아무런 정보도 없을 수 없다.
변경 감지 코드: 메시지를 해시화해서 MDC를 생성하여 메시지와 보냄 -> 수신자는 메시지를 해시화해서 생성한 MDC와 수신한 MDC를 비교하여 메시지가 변경이 일어났는지 아닌지 판단한다.
메시지 인증 코드: 메시지를 키를 이용하여 해시화해서 메시지와 합쳐서 보냄. 그리고 분리해서 메시지를 해시화하고 받은 해시값과 비교하여 메시지가 변경됬는지 아닌지 판단 => MAC의 안정성은 사용하는 해시 함수의 안정성에 종속됨
해시함수: 키 사용하지 않음
메시지 인증 코드: 키 사용
CMAC
HMAC
재전송 공격: 메시지랑 MAC값 저장해뒀다가 다시 전송
재전송 공격 방어:
1. 순서번호
2. 타임스탬프
송수신자 사이에 동기화 필요
3. 비표
송신자에게 일회용 랜덤한 값 전송
메시지와 비표 합해서 MAC 계싼
비표값은 통신 때마다 교체
메시지 인증 코드로 해결할 수 없는 문제
1. 제 3자에 대한 증명
키를 알려줘야함
송신자 수신자 모두가 동일한 키를 가지고 있으므로 누가 작성했는지 말할 수 없음
2. 부인방지
MAC 값이 딸린 메시지를 받았고, 이 메시지가 송싱자로부터 온것이라는 걸 확실히 알 수 있음
하지만 송신자가 전송 자체를 부정할 경우 제 3자에게 이 사실을 증명할 수 없음
전자서명
신원확인, 데이터에 대한 인증 및 위조 방지
공개키 암호의 역변환
공개키에 의한 암호화 -> 개인키에 의한 복화화
개인키에 의한 서명 -> 공개키에 의한 서명 검증
전자서명의 필요성
거래 당사자간 신원 확인
거래 내용의 변경 여부를 확인
거래 사실에 대한 증명
전자서명의 요구 사항
인증: 누가 서명했는지 확인
각 서명자마다 서명이 독특해야함
위조 불가
재사용 불가
서명은 메시지에 의존해야함
전체의 재사용을 방지하기 위해서는 서명 시간이 포함되어야 함
변경 불가
부인 방지
인증서의 필요성
공개키가 실제로 서명자의 확인키인지 확인하려고
서명 m^d mod n
검증 true if m = c^e mod n
개체인증
what you are
what you have
what you know
영지식 증명 방식
완전성
정당성
영지식성