반응형
개념 설명
https://cryptohack.org/courses/intro/enc4/
RSA와 같은 암호 시스템은 숫자로 작동하지만 메세지는 문자로 구성된다. 우리가 어떻게 수학적 연산이 적용되도록 메세지를 숫자로 변환해야 할까?
가장 일반적인 방법은 메세지의 ordinal(서수) 바이트를 가져와 16진수로 변환하고 연결하는 것이다. 이는 base-16/hexadecimal number로 해석될 수 있으며, base-10/decimal로 표현할 수 있다.
설명:
메세지: HELLO
아스키: 72 69 76 76 79
16진수: 0x48 0x45 0x4c 0x4c 0x4f
base-16: 0x48454c4c4f
base-10: 310400273487
0x48454C4C4F를 10진수로 변환한게 310400273487이다.
! python의 PyCryptodome 라이브러리는 bytes_to_long()과 long_to_bytes() 메서드로 이를 구현한다. 먼저 PyCryptodome를 설치하여 from Crypto.Util.number import *로 임포트해야한다.
실습
11515195063862318899931685488813747395775516287289682636499965282714637259206269
pip install PyCryptodome
from Crypto.Util.number import *
cipher = 11515195063862318899931685488813747395775516287289682636499965282714637259206269
print(long_to_bytes(cipher))
반응형