php_db 평가
제공된 소스코드에 보안상의 문제를 개선해서 재 프로그램 한다.
. 조건 1. 추가된 소스 코드에는 반드시 주석이 포함돼야 한다.
- 추가된 변수와 기능에 대한 주석을 모두 포함한다.
- 주석이 없는 경우는 점수에서 제외됨.
. 조건 2. 프로그램 전반에 들여쓰기, 개행 등의 기술방법이 반드시 일정해야 한다.
- 프로그램이 정상 실행되어야한다.
- 제한 시간은 2시간입니다.
require함수를 사용하여 url무단접속을 차단하고 싶었지만 사용법을 몰라 무식하게 인증하였다.
=====================================================================
개방통신로는 누구나 다 볼수있는 선로로서 보안이 전혀 없다. 원문을 송신하게 되면 도청이나 임의수정의 공격이 있을수 있다. 공격을 막기 위해 암호는 무결성, 기밀성만을 확보한다. 무결성으로 인해 다른 사용자가 수정이 불가능 하고 기밀성으로 인해 도청이 불가능 한 것이다
암호화 한 데이터가 통신되는 과정은 송신자가 평문을 보내면서 부터 시작한다. 평문이 암호화키를 이용해 암호 알고리즘을 거쳐 암호문이 만들어진다. 암호문은 복호화 키를 이용해서 복호 알고리즘을 거쳐 평문이 되어 수신자에게 전해진다.암호화 키나 복호화 키가 없다면 해독이 불가능하고 보통 암호알고리즘과 복호 알고리즘은 같은 알고리즘을 사용한다. 암호 해독은 암호문을 키 없이 평문으로 복호 하는 것이다. 공격은 송신자가 보내는 평문이나 수신자가 받기 직전의 평문에서 이루어진다.
암호 시스템은 두가지가 있는데 암호키와 복호키가 같은 대칭키 알고리즘과 암호키와 복호키가 다른 공개키 암호 알고리즘이 있다.
암호는 풀리지 않음을 증명할수없는데 투자비용으로 증명 시도 여부를 결정한다. 만약 증명후에 얻게 되는 가치가 크면 시도하는 것이다.
평문을 암호화 하기 위한 연산자
치환(Substitution) |
평문의 각 원소를 다른 원소로 사상 |
전치(Transpostion) |
평문의 각 원소를 재배열 |
혼합(Confusion) |
평문의 원소를 치환 선택한다 |
확산(Duffusion) |
평문의 원소를 확대한다 |
치환과 전치는 주로 알파벳 단위에서 사용하고, 혼합과 확산은 비트단위를 주소 사용
사용된 카의 수
대칭키는 송수신자가 같은 키를 사용하는 것이고
공개키는 송수신자가 다른 키를 사용한다. 예로는 공인인증서가 있다.
평문 처리 방법
블록 암호화(block cipher)는 연산을 128qlxmsk 64비트씩 잘라서 블럭단위로 처리
스트림 암호화(stream cipher) 입력을 한글자 한글자씩 연속적으로 처리한다.
단대단 암호(End-to-End Encryption)는 PC로 사용하는 모든 암호 시스템이다.
링크 암호(Link Encyption)는 1:1로 암호화 복호화 하는 장비가 있어야 통신이 가능한 시스템이다.
관용 암호는 대칭키 암호, 비밀키 암호, 공유키 암호라고도 불리며 암호와 복호에 동일한 키를 사용한다. 수신자와 송신자는 같은 키를 사용해야 하기 때문에 상면(얼굴을 마주보게 만나는것)하여 키를 교환해야 한다. 교환이 필요하기 때문에 키분배가 어렵다. 공유한 키는 비밀로 유지해야 하며 동일한 키를 가지고 있어 책임 추적성이 어렵고 이에 따라 디지털 서명이 불가능 하다. 하지만 속도는 서로 같은 키로 암호화 복호화가 진행되기 때문에 굉장히 빠르다.
공개키 암호는 암호와 복호에 각각 서로 다른 키를 사용하지만 동일한 알고리즘을 사용한다.
수신자와 송신자는 연관된 키 쌍중에 하나를 알고있어야 한다.
키 쌍중 하나(개인키)를 비밀로 유지한다. 또 공개키를 공개해야 복호화가 가능하며 공개한 사람이 분명하므로 디지털 서명이 가능하다. 그러나 속도가 굉장히 느리다.
'교육 > 암호학' 카테고리의 다른 글
Day 40 (암호학) (0) | 2020.01.14 |
---|---|
Day 39 (암호학) (0) | 2020.01.13 |
Day 37 (암호학) (0) | 2020.01.09 |
Day 36 (암호학) (0) | 2020.01.08 |
Day 35 (암호학) (0) | 2020.01.07 |