반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
파이썬 sage, pycrypto 모듈 본문
반응형
sage
sage는 python에서 수학 계산을 위한 프로그래밍 도구이다
sage 문서: doc.sagemath.org/html/en/tutorial/
sage의 클라우드 서비스: cocalc.com/
설치
sagemath.org/download-linux.html
이곳에서 바이너리 파일을 다운로드 받아서 압축 해제를 한다
tar --lzma -xvf 파일명
그리고 필요한 패키지들을 설치해야 한다
sudo apt-get upgrade && sudo apt-get install build-essential m4 gfortran
sudo apt-get install imagemagick texlive dvipng
설치 후 압축 해제했던 디렉터리에서 make 명령어를 치면 알아서 설치가 된다
실행
설치 폴더로 이동 후 sage파일을 실행한다
./sage
pycypto
pycypto는 python암호화 툴킷으로, 보안 해시 함수(SHA256 등)와 다양한 암호 알고리즘(AES, DES, RSA, EIGamal 등)의 모음이다
설치
$ pip install pycrypto
오래 전에 개발이 끝난 pycrypto를 대신하여 python 3에서는 pycryptodome를 지원한다
$ pip install pycryptodome
두 패키지는 서로를 간섭하므로 두 다 설치하면 안 된다
SHA256 모듈 사용 예
>>> from Crypto.Hash import SHA256
>>> hash = SHA256.new()
>>> hash.update('message')
>>> hash.digest()
'\xabS\n\x13\xe4Y\x14\x98+y\xf9\xb7\xe3\xfb\xa9\x94\xcf\xd1\xf3\xfb"\xf7\x1c\xea\x1a\xfb\xf0+F\x0cm\x1d'
AES 알고리즘 사용 예
>>> from Crypto.Cipher import AES
>>> obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> message = "The answer is no"
>>> ciphertext = obj.encrypt(message)
>>> ciphertext
'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'
>>> obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> obj2.decrypt(ciphertext)
'The answer is no'
반응형
'CTF > Crypto' 카테고리의 다른 글
AES란? AES의 암호화와 키 확장 과정 (0) | 2021.03.19 |
---|---|
RSA 공격법: 약간의 평문을 알고, p/q값이 비슷할 때(Fermat Factorization attack) (1) | 2020.09.29 |
AES (0) | 2020.09.21 |
크립토 RSA 문제 풀이(낮은 지수 공격, d값 계산) (0) | 2020.09.15 |
RSA와 RSA 공격법 (d값 계산, 낮은 지수 공격, 소인수 분해, 하스타드 공격, 위너 공격) (0) | 2020.09.15 |
Comments