본문 바로가기

전체 글93

6. 전자서명과 PKI 전자서명 송신자는 서명 알고리즘을 이용해서 메시지에 서명하고 수신자는 검증 알고리즘을 사용해서 메시지와 서명을 확인한다. 무결성, 인증, 부인방지 제공(기밀성은 불가) 전자서명의 기능 위조불가, 서명자 인증, 부인방지, 변경불가, 재사용불가 전자서명 알고리즘 RSA, Elgamal, ECDSA, DSS, Schnorr, KCDSA 특수 전자서명 부인방지, 다중서명 은닉서명 서명자가 서명문의 내용을 알지 못하는 상태에서 서명한 방식 전자서명의 응용 전자투표 완전성, 익명성, 건전성, 이중투표방지, 정당성, 적임성, 검증 가능 PSEV방식, 키오스크방식, REV방식 전자입찰 독립성, 비밀성, 무결성, 공평성, 안정성 PKI 공개키 알고리즘을 위한 키 관리 구조 인증기관(CA) 인증정책 수립, 인증서 및 인증.. 2023. 4. 7.
[1주차-5] 로그인 페이지 만들기 간단한 로그인 페이지를 만들어 볼것이다. main.php라는 페이지가 있고 로그인 여부를 확인하여 loginpage.php로 보내거나 main페이지의 내용을 보여준다. 처음 접속하면 로그인이 되어있지 않으므로 loginpage.php로 이동되고 로그인 과정은 process_login.php에서 수행된다. 로그인에 성공하면 main.php로 진입을 하게 되고 로그인에 실패하면 다시 로그인페이지로 돌아간다. 간단한 로그인 페이지이다. 지금은 회원가입을 구현하지 않았고 DB에 admin이라는 테스트 계정을 넣어놨다.(id admin / pw admin) 2~3 에러 검출 코드 4 DB 연결 6~7 POST로 넘겨받은 아이디(admin)와 비밀번호(admin) 저장 9~11 아이디가 DB에 있는지 검사 13 ~.. 2023. 4. 6.
5. 해시함수 해시함수의 특징 다대일 대응 함수 임의의 길이의 메세지로부터 고정 길이의 값이 나옴 무결성을 제공하는 목적으로 사용(메시지가 다르면 해시값도 다름) 고속으로 계산이 가능해야함 출력길이가 작아야 함 해시함수의 조건 역상저항성 주어진 임의의 출력값 y에 대해 y=h(x)를 만족하는 입력값x를 찾는 것이 계산적으로 불가능하다. 공격난이도 2^n 두번째 역상저항성 주어진 입력값x에 대해 h(x)=h(x'), x != x'을 만족하는 다른입력값 x'을 찾는 것이 계산적으로 불가능하다. 공격난이도 2^n 충돌저항성 h(x)=h(x')을 만족하는 임의의 두 입력값 x, x' 을 찾는 것이 계산적으로 불가능하다. 공격난이도 2^(n/2) 해시함수 알고리즘 MD5 MD길이 128 최대 메시지 길이 무한 블록 길이 512.. 2023. 4. 5.
4. 공개키 키배송문제 키 사전 공유 임의의 두 사용자에게 비밀경로로 키를 전달 매우 복잡하고 관리 비용이 많이 들어간다 키배포 센터 신뢰받는 제3자에 의뢰해서 개인과 키배포센터 사이에서만 키를 사전에 공유 Diffie-Hellman 최초의 비밀키 교환 알고리즘 중간자 공격에 취약(인증X) 키 교환의 안정성은 이산대수 문제를 풀기 어려움에 있음 공캐키 암호 키는 한 번만 사용 타인의 개인키는 사용불가 대칭키와 공개키는 상호 보완적 관계 송신자는 송신자의 개인키(전자서명)와 수신자의 공개키만 사용가능 수신자는 송신자의 공개키(전자서명)와 수신자의 개인키만 사용가능 소인수분해 RSA(계산방법 알아야 함) 소인수 분해의 어려움에 기반을 둔 공개키 암호 전자서명의 용도로 사용 공개키 n과 e로부터 비밀키 d를 구할 수 있으.. 2023. 4. 4.
[1주차-4] DB생성 및 DB데이터 입력하기 DB를 처음 설치하면 비밀번호를 재설정해줘야 한다 alter user 'root'@'localhost' identified with mysql_native_password by '변경할 비밀번호'; 위의 명령어를 사용해서 비밀번호를 변경한 뒤에 flush privileges; 위의 명령어로 변경사항을 적용시켜 준다. userdata라는 DB를 만들 것이고 CREATE DATABASE userdata; // userdata DB 생성 SHOW DATABASES; // DB 확인 DB가 생성 됐다는 걸 확인할 수 있고 CREATE TABLE topic( id INT(11) NOT NULL AUTO_INCREMENT, userid VARCHAR(20) NOT NULL, userpassword VARCHAR(2.. 2023. 4. 3.
[1주차-3] GET/POST 데이터 전달 해보기 지난번에 만든 test.php 파일에 GET과 POST를 이용해서 소스를 만들 생각이다. GET은 URL에 있는 매개변수를 통해 받은 데이터를 원소로 갖는 배열변수이다. URL에 있는 정보를 보여주고 싶지 않으면 POST를 사용하면 된다. GET 사용 GET을 이용하여 URL에 있는 ?name=tilda를 넘겨 받아서 출력하였다. 하지만 이름말고도 다른 민감한 정보라면 URL로 넘기는건 위험하다. 그래서 POST를 이용하여 값을 넘기면 된다. POST 사용 POST를 이용하여 이름(tilda)을 받아오면 8 POST를 이용하여 test.html에서 name변수를 받아와서 $name에 저장했다. 이렇게 이름을 넘겨 받을수있다. 2023. 4. 3.
3. 대칭키 대칭키 암호 암호화키와 복호화키가 동일하다. 혼돈 암호문과 키 사이의 관계를 숨기는 것 확산 암호문과 평문 사이의 관계를 숨기는 것 블록암호 Feistel 3라운드 이상 짝수라운드로 구성 암, 복호화 과정이 같음 암호의 강도를 결정짓는 요소는 평문의 길이, 키의 길이, 라운드의 수 DES, SEED DES 16라운드 평문 64비트 암호문 64비트(비밀키 56비트 +패리티 비트 8비트) SPN Shannon의 이론에 근거 S박스와 P박스를 중첩하는 형태로 개발 AES, Rijndael(AES의 알고리즘), ARIA AES 평문 128비트 암호문 128비트 키 크기와 라운드수 128비트 10라운드 192비트 12라운드 256비트 14라운드 블록암호에 대한 공격 차분 분석 Bihamrhk Shamir이 개발,.. 2023. 4. 2.
[1주차-2] Happy Hacking 문구가 출력되는 페이지 만들어보기 APM설정을 하였으니 간단한 코드를 작성해서 페이지를 만들어보자 웹페이지는 html 이라는 언어를 사용한다. 파일명은 test.php로 할것이고 여기선 php를 안쓸거지만 다음부턴 쓸것이므로 *.php로 만들었다. 1 html 형식 선언 4 html파일 인코딩 5 페이지 제목 8 Welcome이라는 표제 9 Happy hacking 출력 실행결과 2023. 4. 1.
2. 암호학 암호학 : 암호기술과 암호해독에 관하여 연구하는 학문 암호체계의 목적 키 외에는 복호화할 수 있는 방법이 없도록 하는 것 커크호프 원칙 키를 제외한 모든 정보를 알고 있어도 암호체계는 안전해야 한다. 치환(Substitution) 평문을 다른 문자로 교환 전치(Transposition) 평문의 문자 위치를 변경 블록 암호 정해진 블록 단위로 암호화하는 암호 알고리즘 높은 확산, 기밀성 스트림 암호 이진화된 평문 스트림과 이진 키스트림 수열의 XOR연산으로 처리하는 암호 알고리즘 낮은 확산, 암호화 속도가 빠름 링크 암호화 모든 데이터 암호화 종단 간 암호화 헤더는 암호화되지 않음 암호공격 암호문 단독 공격(COA, Ciphertxt Only Attack) 암호문만 가지고 평문이나 키를 찾는 방법 기지 평.. 2023. 4. 1.