상세정보
C#으로 이해하는 암호학
- 저자
- Alex Lee
- 출판사
- 유페이퍼
- 출판일
- 2020-12-18
- 등록일
- 2021-09-01
- 파일포맷
- EPUB
- 파일크기
- 10MB
- 공급사
- 웅진OPMS
- 지원기기
-
PC
PHONE
TABLET
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
이 책은 고대부터 현대까지의 암호기술을 쉽게 이해할 수 있도록 해설한 책입니다. 암호학은 고대부터 현재까지 많은 발전을 해 왔는데 이 책에서는 이러한 발전에 중요한 역할을 했던 암호기술들에 어떠한 것들이 있는지 그들의 핵심적인 기능을 어떻게 구현할 수 있는지에 대해 자세히 설명하고 있으며 나아가 이를 C#으로 구현하는 방법을 소개하고 있습니다. 특히 현대 암호의 경우 C# 실무에서 많이 사용되고 있기 때문에 .NET Framework에서 이것을 어떻게 사용할 수 있는지에 대해 C# 예제와 더불어 설명하고 있습니다. 아무쪼록 이 책을 통해 암호학의 기본 개념을 정립하고 실무에서 활용할 수 있는 계기가 되었으면 합니다.
저자소개
20년 넘게 소프트웨어 업계에 종사했으며 미국 마이크로소프트 본사 개발 그룹에서 10여년을 근무하였다. C#이 처음 소개된 2000년부터 C# 프로그래밍을 배우고 실무에서 사용하였으며 http //www.csharpstudy.com 웹사이트를 만들어 다양한 주제의 C# 프로그래밍 아티클들을 소개하고 있다. 현재는 미국 시애틀 소프트웨어 회사에서 Senior Software Developer로 일하고 있으며 실용주의적 실무 중심적 소프트웨어 개발에 가치를 두고 있다.
목차
1. 암호의 세계
암호학
암호의 역사
고대 암호
근대 암호
현대 암호
2. 단일 치환 암호 (1)
치환 암호의 개요
단일 치환 암호의 개요
덧셈 암호
시저 암호
ROT13 암호
Atbash 암호
랜덤 치환 암호
암호해독 - 빈도 분석법
3. 단일 치환 암호 (2)
곱셈 암호
Affine 암호
4. 다중 치환 암호
다중 치환 암호의 개요
비제네르(Vigenere) 암호
힐(Hill) 암호
플레이페어(Playfair) 암호
5. 전치암호 (Transposition Cipher)
전치암호의 개요
Scytale 암호
Rail Fence Cipher
Route Cipher
Columnar Cipher
이중 전위 암호
6. 에니그마 (Enigma)
에니그마 개요
에니그마의 구조와 동작
에니그마의 종류
에니그마의 셋팅
에니그마의 C# 구현
7. One-Time Pad
One-Time Pad의 개요
Vernam Cipher
8. 대칭키 암호
대칭키 암호의 개요
스트림 암호 (Stream Cipher)
블럭 암호 (Block Cipher)
9. 스트림 암호
스트림 암호 개요
의사 난수 생성기
LFSR (Linear Feedback Shift Register)
A5 스트림 암호
RC4 스트림 암호
10. 블럭암호 DES
DES 개요
DES 암호화 과정
Initial Permutation와 Final Permutation
라운드 키 (Round Key)
파이스텔 라운드
DES 복호화 과정
3DES (Triple DES)
.NET Framework의 DES
11. 유한체 (Finite Field)
유한체 (Finite Field)
소수체 (Prime Field)
이진체 (Binary Field)
이진 유한체의 덧셈
이진 유한체의 곱셈
12. 블럭암호 AES
AES 개요
AES 암호화 과정
AES 암호화 라운드
AES 복호화 과정
.NET Framework의 AES
13. 블럭암호 모드와 패딩
블럭 암호 모드 (Block Cipher Mode)
ECB (Electronic Code Book) 모드
CBC (Cipher Block Chaining) 모드
CFB (Cipher Feedback) 모드
OFB (Output Feedback) 모드
CTR (Counter) 모드
블럭 패딩 (Padding)
PKCS#7 패딩
ANSI X9.23 패딩
ISO 10126 패딩
Zero 패딩
.NET의 블럭모드와 패딩
AES 클래스의 블럭모드와 패딩
14. 비대칭키 암호
비대칭키 암호의 개요
비대칭키 알고리즘들
RSA
Diffie-Hellman 키 교환
DSA
ECDSA
15. RSA 암호
RSA 개요
RSA 암호의 기초 개념
RSA 키 생성
RSA 암호화와 복호화
RSA 암/복호화의 증명
하이브리드 암호화
.NET Framework의 RSA
16. RSA 패딩
RSA 패딩 개요
RSA 패딩 방식
PKCS#1 패딩
OAEP 패딩
RSA-PSS 패딩
.NET Framework의 RSA
.NET RSA의 패딩
.NET RSA의 엔디안(Endian)
17. RSA 서명
RSA 디지탈 서명
단순화한 Textbook RSA 서명
RSA 서명 메카니즘
.NET의 RSA 서명
18. 해시함수와 MAC
해시함수
해시함수의 종류
MD5 알고리즘의 구현
.NET Framework의 해시함수
MD5 해시함수
SHA1 해시함수
SHA2 해시함수
MAC / HMAC
MAC
HMAC
.NET Framework의 HMAC
19. Diffie Hellman 키 교환
Diffie-Hellman 키 교환 개요
이산 로그 문제
Diffie-Hellman 메카니즘
Basic Diffie-Hellman
향상된 Diffie-Hellman
20. DSA 서명
DSA 개요
DSA 서명
DSA 키 생성
DSA 서명과 검증
Deterministic DSA
.NET Framework의 DSA
21. 타원곡선 암호
Elliptic curve cryptography 개요
타원곡선(Elliptic curve)
실수 상에서의 타원곡선
유한체 상에서의 타원곡선
타원곡선 이산 로그 문제
EC 도메인 파라미터
ECC 키 생성
미니 ECC 클래스
타원곡선 Diffie?Hellman (ECDH)
22. ECDSA 서명
ECDSA 개요
ECDSA 키 생성
ECDSA 서명과 검증
Deterministic ECDSA
.NET Framework의 ECDSA
부록 A. Utility 클래스
부록 B. 소수판별법
소수판별법
페르마의 소수판별법
밀러-라빈 소수판별법
부록 C. CAPI/CSP vs CNG
CSP vs CNG
부록 D. ASN.1
ASN.1 개요
BER 인코딩
BER 디코딩
부록 E. PGP
PGP 소개
GPG (Gpg4win)
부록 F. 소스코드 다운로드