암호 해킹으로 배우는 파이썬의 기초
도서명:암호 해킹으로 배우는 파이썬의 기초
저자/출판사:알,스웨이가트/에이콘출판
쪽수:544쪽
출판일:2019-07-31
ISBN:9791161753485
목차
1장. 종이 암호화 도구 만들기
__암호화란 무엇인가?
__코드와 암호
__카이사르 암호
__이중 암호화가 동작하지 않는 이유
__요약
2장. 대화형 셸 프로그래밍
__간단한 수학 표현식 몇 가지
__변수에 값 저장하기
__요약
3장. 문자열과 프로그램 작성
__문자열 값으로 텍스트 다루기
__print() 함수로 값 출력하기
__이스케이프 문자 출력
__작은따옴표와 큰따옴표
__IDLE의 파일 편집기로 프로그램 작성하기
__“Hello, World!” 프로그램 소스 코드
__온라인 diff 도구로 소스 코드 확인하기
__IDLE에서 작성한 프로그램을 나중에 다시 보려면
__“Hello, World!” 프로그램은 어떻게 동작하나
__요약
4장. 뒤집기 암호
__뒤집기 암호 프로그램 소스 코드
__뒤집기 암호 프로그램의 실행 예제
__주석과 변수 설정하기
__문자열 길이 알아내기
__while 루프 개요
__input() 프롬프트로 프로그램 개선하기
__요약
5장. 카이사르 암호
__카이사르 암호 프로그램 소스 코드
__카이사르 암호 프로그램 예제 실행
__모듈 가져오기와 변수 설정
__상수와 변수
__for 루프 구문
__if 구문
__in과 not in 연산자
__find() 문자열 메소드
__symbol 암호화/복호화
__화면에 표시하고 translated 복사하기
__다른 심볼도 암호화하기
__요약
6장. 무차별 대입법으로 카이사르 암호 해킹하기
__카이사르 암호 해킹 프로그램의 소스 코드
__카이사르 암호 해킹 프로그램의 실행 예제
__변수 설정
__range() 함수를 이용한 순환문
__message 복호화
__문자열 포맷팅을 이용해 key와 복호화된 message 출력하기
__요약
7장. 전치 암호
__전치 암호의 동작 원리
__전치 암호 프로그램 소스 코드
__전치 암호 프로그램 예제 실행
__def문으로 자신만의 함수 만들기
__아규먼트로 키와 메시지 전달하기
__리스트 데이터 유형
__전치 암호 알고리즘
__대입 연산자의 확장
__message를 currentIndex로 돌아다니기
__join() 문자열 메소드
__리턴 값과 return 구문
__변수 __name__
__요약
8장. 전치 암호 복호화
__전치 암호를 종이로 ****하는 방법
__전치 암호 복호화 프로그램 소스 코드
__전치 암호 복호화 프로그램의 실행 예제
__모듈 가져오기와 main() 함수 설정하기
__message를 key로 복호화하기
__main() 함수 호출
__요약
9장. 테스트 프로그램 작성법
__전치 암호 테스트 프로그램의 소스 코드
__전치 암호 테스트 프로그램 실행 예제
__모듈 가져오기
__의사 난수 생성하기
__무작위 문자열 만들기
__다양한 message 테스트하기
__암호화가 제대로 동작했는지 확인하고 프로그램 끝내기
__main() 함수 호출
__테스트 프로그램 테스트하기
__요약
10장. 파일 암호화 및 복호화
__평문 파일
__전치 파일 암호 프로그램의 소스 코드
__전치 파일 암호 프로그램 실행 예제
__파일 작업하기
__main() 함수 지정
__파일이 존재하는지 알아보기
__문자열 메소드로 더욱 유연한 사용자 입력 만들기
__입력 파일 읽기
__암호화/복호화에 걸린 소요 시간 측정
__출력 파일 쓰기
__main() 함수 호출
__요약
11장. 영어 문장 감지 프로그램
__어떻게 컴퓨터로 영어를 이해할 수 있을까?
__detectEnglish 모듈의 소스 코드
__detectEnglish를 사용한 예제
__코드 도입부와 상수 설정
__딕셔너리 데이터 유형
__사전 파일 구현
__message에 들어 있는 영어 단어 수 세기
__영문자가 아닌 글자 제거하기
__영어 단어 판정
__요약
12장. 전치 암호 해킹
__전치 암호 해킹 프로그램의 소스 코드
__전치 암호 해킹 프로그램의 실행 예제
__모듈 가져오기
__삼중 따옴표로 여러 줄의 문자열 처리하기
__해킹된 메시지 출력하기
__해킹된 메시지 얻기
__main() 함수 호출
__요약
13장. 아핀 암호를 구현하기 위한 모듈러 연산 모듈
__나머지 연산
__나머지 연산자
__최대공약수를 계산하기 위한 인수 찾기
__복수 할당문
__GCD를 찾는 유클리드 알고리즘
__곱셈 암호와 아핀 암호의 동작 원리 이해하기
__cryptomath 모듈 소스 코드
__요약
14장. 아핀 암호 프로그래밍
__아핀 암호 프로그램의 소스 코드
__아핀 암호 프로그램 실행 예제
__모듈, 상수, main() 함수 설정
__키 계산과 유효성 검증
__암호화 함수 작성
__복호화 함수 작성
__임의의 키 생성하기
__main() 함수 호출
__요약
15장. 아핀 암호 해킹
__아핀 암호 해킹 프로그램의 소스 코드
__아핀 암호 해킹 프로그램의 실행 예제
__모듈, 상수, main() 함수 설정
__아핀 암호 해킹 함수
__main() 함수 호출
__요약
16장. 단순 치환 암호 프로그래밍
__치환 암호의 동작 원리
__단순 치환 암호 프로그램 소스 코드
__단순 치환 암호의 실행 예제
__모듈, 상수, main() 함수 설정
__sort() 리스트 메소드
__래퍼(wrapper) 함수
__translateMessage() 함수
__임의의 키 생성하기
__main() 함수 호출
__요약
17장. 단순 치환 암호 해킹
__단어 패턴에 의한 복호화
__해킹 과정 미리보기
__단어 패턴 모듈
__단순 치환 암호 해킹 프로그램의 소스 코드
__단순 치환 암호 해킹 프로그램의 실행 예제
__모듈과 상수 설정
__정규표현식으로 글자 찾기
__main() 함수 설정
__사용자에게 해킹 결과 표시하기
__암호 글자 매핑 생성하기
__hackSimpleSub() 함수
__main() 함수 호출
__요약
18장. 비즈네르 암호 프로그래밍
__비즈네르 암호의 다중 글자 키 사용
__비즈네르 암호 프로그램의 소스 코드
__비즈네르 암호 프로그램의 실행 예제
__모듈, 상수, main() 함수 설정
__List-Append-Join 처리에 의한 문자열 구축
__메시지 암호화/복호화
__main() 함수 호출
__요약
19장. 빈도 분석
__텍스트의 글자 빈도 분석하기
__글자 빈도 일치시키기
__글자 빈도 일치 소스 코드
__ETAOIN 순서로 글자를 저장하기
__message의 글자 수 세기
__튜플의 첫 번째 요소 얻기
__message의 글자들을 빈도순으로 정렬하기
__message의 빈도 일치 점수 계산하기
__요약
20장. 비즈네르 암호 해킹
__무차별 대입 사전 공격을 이용한 비즈네르 암호 해킹
__비즈네르 사전 공격 프로그램의 소스 코드
__비즈네르 사전 해킹 프로그램 실행 예제
__비즈네르 사전 해킹 프로그램 설명
__카시스키 분석을 통한 키 길이 찾기
__비즈네르 해킹 프로그램의 소스 코드
__비즈네르 해킹 프로그램 실행 예제
__모듈 Import와 main() 함수 설정
__반복 문자열 찾기
__간격 값의****수 구하기
__가장 가능성이 높은 키 길이 찾기
__같은 하위 키로 암호화한 글자 찾기
__후보 키 길이를 이용한 복호화 시도
__해킹한 메시지 리턴
__main() 함수 호출
__해킹 프로그램 상수 값 변경하기
__요약
21장. 일회용 암호
__해킹이 불가능한 일회용 암호
__요약
22장. 소수 찾기 및 생성
__소수란 무엇인가?
__소수 모듈의 소스 코드
__소수 찾기 모듈의 실행 예제
__나눗셈에 의한 소수 판정 알고리즘의 원리
__나눗셈 알고리즘을 이용한 소수 검사의 구현
__에라토스테네스의 체
__에라토스테네스의 체로 소수 만들기
__라빈 밀러 소수 알고리즘
__큰 소수 찾기
__큰 소수 생성하기
__요약
23장. 공개 키 암호를 위한 키 생성
__공개 키 암호
__인증 문제
__디지털 서명
__공개 키와 개인 키의 생성 과정
__공개 키 생성 프로그램 소스 코드
__공개 키 생성 프로그램의 실행 예제
__main() 함수
__generateKey() 함수로 키 생성하기
__makeKeyFiles() 함수로 키 파일 생성하기
__main() 함수 호출
__하이브리드 암호 시스템
__요약
24장. 공개 키 암호 프로그래밍
__공개 키 암호의 동작 원리
__공개 키 암호 프로그램의 소스 코드
__공개 키 암호 프로그램의 실행 예제
__프로그램 기초 설정
__암호화/복호화 모드 설정
__getBlocksFromText() 로 문자열을 블록으로 변환하기
__복호화 함수 getTextFromBlocks() 사용하기
__encryptMessage() 함수 작성
__decryptMessage() 함수 작성
__키 파일에서 공개 키/개인 키 읽기
__암호화 파일 쓰기
__파일 복호화
__main() 함수 호출
__요약
부록. 디버깅 파이썬 코드
__디버거로 디버깅하기
__역방향 암호 프로그램 디버깅
__브레이크 포인트 설정
__요약