Diffie-Hellman Key Exchange Implementation Sample in Python

diffiehellman

뭐 새삼스러울 거 없지만, 예전에 python으로 구현해 봤던 Diffie-Hellman Key 교환 알고리즘 Class다. 표준으로 사용하는 SSL/TLS는 RSA를 적용해 Public/Private Key를 생성하고 인증서를 발급하면 된다. 사실 Cipher Spec에 있는 key exchange는 더 많지만, 여전히 DH은 건재(?)하다.

There is nothing new, but here is a simple sample python script for Diffie-Hellman key exchange. (NO RSA included)

 

PGP (Pretty Good Privacy)

PGP is a software package that performs cryptographic tasks related with email systems, which stands for Pretty Good Privacy. It is created by Phil Zimmermann in 1991, and now regarded as de facto standard email security. PGP is currently acquired by Symantec Group since 2010, but still the source code is available for peer review. There are many PGP variants available such as OpenPGP, GPG, iPGMail, APG, and so forth.

PGP provides security services and privacy using a series of security techniques including:
(1) Hashing for integrity
(2) Data compression
(3) Symmetric cryptography for confidentiality
(4) Asymmetric cryptography for both authentication and non-repudiation

The following describes the sending/receiving process between Alice and Bob.

a. Sending Process (Sender = Alice)

pgp1

b. Receiving Process (Receiver = Bob)

pgp2

Click here to download the material.
(This has been done as a part of homework in CSE508 in SBU CS.)

Books I co-translated

지난 2년간 두 권의 번역서를 출간했다. 짧지 않은 시간동안 때로는 지루하기도 했던 작업이었지만 서점 한 켠에 어엿하게 꽂혀 있는 모습을 보면 참 흐뭇하다. 미약하지만 국내에서 보안을 하시는 많은 분들께 조금이나마 도움이 되기를 진심으로 바란다. (참, 도서구매량과 본인과의 관계는 전혀 없음을 미리 밝혀둔다.)

1
실용 암호학 (ISBN: 9788960771970)
(원서: Cryptography Engineering: Design Principles and Practical Applications, ISBN: 978-0470474242)

2
악성코드 분석가의 비법서 (ISBN:978896077301)
(원서: Malware Analyst’s Cookbook and DVD: Tools and Techniques for Fighting Malicious Code, ISBN:978-0470613030)

I co-translated two books in Korean last two years. I am very pleased no matter when I see those books in a bookstore. I hope that these books would be helpful for those who study security in Korea. (Purchase is your own choice. :P)