암호 해킹으로 배우는 파이썬의 기초 - 암호학과 파이썬을 함께 배우자

본문 바로가기

회원메뉴

쇼핑몰 검색

통합검색

암호 해킹으로 배우는 파이썬의 기초 - 암호학과 파이썬을 함께 배우자

정가
35,000 원
판매가
31,500 원    10 %↓
적립금
1,750 P
배송비
무료배송
배송일정
48시간 배송 예정 배송일정안내
ISBN
9791161753485
쪽수 : 544쪽
알 스웨이가트  |  에이콘출판  |  2019년 07월 31일
소득공제 가능도서 (자세히보기)
주문수량
 
책 소개
★ 이 책에서 다루는 내용 ★ ■ 실제 동작하는 프로그램에 있는 루프, 변수, 흐름 제어 구문 결합 ■ 복호화한 메시지가 올바른 영어인지 무작위 문자열인지 바로 검출할 수 있는 사전 파일 사용 ■ 암호화/복호화 코드가 올바르게 동작하는지 검증할 수 있는 테스트 프로그램 작성 ■ 모듈러 연산으로 메시지를 암호화하는 아핀 암호화/해킹 코드 예제 ■ 무차별 대입법, 빈도 분석 등의 암호 해킹 기법
저자 소개
저자 : 알 스웨이가트 소프트웨어 개발자이자 기술서적 저자로 샌프란시스코에 살며 어린이와 성인들에게 프로그래밍을 가르치고 있다. 좋아하는 프로그래밍 언어는 파이썬이며, 이를 위한 여러 가지 오픈소스 모듈을 개발했다. , , 등 초보자를 위한 파이썬 관련 책을 여러 권 집필했다. 그의 고양이는 무게가 6.35킬로그램이다. 역자 : 신진철 아주대학교에서 기계공학을 전공했고, 어울림 정보기술, 삼성전자 소프트웨어 멤버십, 삼성전자를 거쳐 SK 플래닛에 재직 중이다. 삼성전자 근무 중에 한양대학교에서 전자전기컴퓨터공학 석사를 취득했다. 자동 제어, 보안, SI, UI, 임베디드, 리눅스 커널 등의 업무를 거쳤으며 현재는 웹과 빅데이터 주변 기술을 다루고 있다. 주특기는 임베디드와 OS 계통이고, 주된 관심사는 컴퓨팅 성능 중심 프로그래밍이다.
목 차
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() 함수 호출 __요약 부록. 디버깅 파이썬 코드 __디버거로 디버깅하기 __역방향 암호 프로그램 디버깅 __브레이크 포인트 설정 __요약
출판사 서평
★ 이 책의 대상 독자 ★ 암호화, 해킹 또는 암호에 대해 궁금한 독자들을 대상으로 하는 책이다. 이 책의 암호(23장과 24장에서 다루는 '공개 키 암호'는 제외)는 이미 수 세기 전에 작성됐지만 요즘에는 그와 같은 암호를 해킹할 수 있는 연산 능력을 모든 컴퓨터가 보유하고 있다. 현대의 조직이나 개인은 더 이상 그런 암호를 사용하지는 않지만, 이를 학습해 암호 작성의 기초를 알 수 있고 해커가 암호의 취약점을 이용해 복호화해내는 원리를 학습할 수 있다. 이 책은 프로그래밍을 해본 적이 없는 독자들을 위한 책으로, 우선 초보자를 위한 최고의 언어 중 하나인 파이썬 언어로 기본 프로그래밍 개념을 학습한다. ★ 이 책의 구성 ★ 초반에는 기본적인 파이썬과 암호 개념을 소개한다. 그다음부터는 일반적인 암호용 프로그램을 설명하고 암호를 해킹하는 프로그램을 설명하는 내용이 번갈아 등장한다. 각 장은 학습한 내용을 복습하는 데 도움이 될 만한 연습 문제를 포함하고 있다. 1장, '종이 암호화 도구 만들기'에서는 컴퓨터가 등장하기 전에 암호화를 수행한 방법을 보여주는 간단한 종이 도구를 소개한다. 2장, '대화형 셸 프로그래밍'에서는 파이썬의 대화형 셸을 사용해 코드를 한 번에 한 행씩 실행하는 방법을 설명한다. 3장, '문자열과 프로그램 작성'에서는 전체적인 프로그램 작성법과 이 책의 모든 프로그램에서 사용한 문자열 데이터 유형을 다룬다. 4장, '뒤집기 암호'에서는 첫 번째 암호를 구현하기 위한 간단한 프로그램 작성법을 다룬다. 5장, '카이사르 암호'에서는 수천 년 전에 최초로 발명된 기본 암호를 설명한다. 6장, '무차별 대입법으로 카이사르 암호 해킹하기'에서는 무차별 대입 해킹 기법과 암호화 키 없이 메시지를 해독하는 방법을 설명한다. 7장, '전치 암호'에서는 전치 암호화와 그를 통해 메시지를 암호화하는 프로그램을 다룬다. 8장, '전치 암호 복호화'에서는 전치 암호화의 남은 부분 즉, 키로 메시지를 해독하는 방법에 대해 설명한다. 9장, '테스트 프로그램 작성법'에서는 프로그램을 테스트하는 프로그래밍 기법을 소개한다. 10장, '파일 암호화 및 복호화'에서는 하드 드라이브에서 파일을 읽거나 쓰는 프로그램을 작성하는 방법을 다룬다. 11장, '영어 문장 감지 프로그램'에서는 프로그램을 통해서 영어 문장을 감지할 수 있는 방법을 소개한다. 12장, '전치 암호 해킹'에서는 이전 장의 개념을 결합해 전치 암호를 해킹해본다. 13장, '아핀 암호를 구현하기 위한 모듈러 연산 모듈'에서는 아핀(Affine) 암호의 수학적 개념을 설명한다. 14장, '아핀 암호 프로그래밍'에서는 아핀 암호 프로그램을 작성하는 방법을 다룬다. 15장, '아핀 암호 해킹'에서는 아핀 암호 해킹 프로그램을 작성하는 법을 다룬다. 16장, '단순 치환 암호 프로그래밍'에서는 간단한 치환 암호를 이용한 암호화 프로그램 작성 방법을 다룬다. 17장, '단순 치환 암호 해킹'에서는 단순 치환 암호를 해킹하는 프로그램 작성 방법을 다룬다. 18장, '비즈네르 암호 프로그래밍'에서는 좀 더 복잡한 치환 암호인 비즈네르(Vigen?re) 암호 프로그램을 다룬다. 19장, '빈도 분석'은 영어 단어의 구조와 그것을 이용한 비즈네르 암호 해킹을 고찰해본다. 20장, '비즈네르 암호 해킹'에서는 비즈네르 암호를 해킹하는 프로그램을 다룬다. 21장, '일회용 암호'에서는 일회용 암호와 해킹이 수학적으로 불가능한 이유를 설명한다. 22장, '소수 찾기 및 생성'에서는 숫자가 소수인지 빠르게 판단하는 프로그램을 작성하는 방법을 다룬다. 23장, '공개 키 암호를 위한 키 생성'에서는 공개 키 암호화와 공개 및 개인 키를 생성하는 프로그램을 작성하는 방법을 다룬다. 24장, '공개 키 암호 프로그래밍'에서는 단순한 노트북 컴퓨터로는 해킹할 수 없는 공개 키 암호 프로그램을 작성하는 방법을 다룬다. 부록 '파이썬 코드 디버깅'에서는 IDLE의 디버거로 프로그램의 버그를 찾고 잡는 방법을 다룬다.
고객 리뷰
평점 리뷰제목 작성자 작성일 내용보기

아직 작성된 리뷰가 없습니다.

반품/교환
· 회사명 : 북앤북스문고   · 주소 : 제주특별자치도 제주시 1100로 3308 B1  
· 대표자 : 김대철   · 사업자 등록번호 : 661-10-02383  
· 통신판매업신고번호 : 2023-제주노형-0169   · 개인정보 보호책임자 : 최재혁  

고객센터

(평일 09:30~17:30)
(점심 12:00~13:00)
· 전화 : 064)725-7279 (발신자 부담)
    064)757-7279 (발신자 부담)
· 팩스 : 064)759-7279
· E-Mail : bookpani@naver.com
Copyright © 2019 북앤북스문고. All Rights Reserved.