Security/암호학(Cryptography)

Security/암호학(Cryptography)

[CryptoHack] RSA Starter 5

풀이 공캐 키로 주어진 인자들을 가지고 암호화하였다. N = 882564595536224140639625987659416029426239230804614613279163 e = 65537 c = 77578995801157823671636298847186723593814843845525223303932 이 상황에서 c를 해독한다. 이전 문제에서 RSA의 원리를 공부하였고 여기서 비밀 키 d를 찾으면 된다. 그러기 위해 phi(N)을 구해야하고 이를 쉽게 하려면 N을 인수분해해야한다. N은 생각보다 매우 작은 수이다. 이 정도로 작은 수는 쉽게 안수분해된다. http://factordb.com/index.php?query=882564595536224140639625987659416029426239230804..

Security/암호학(Cryptography)

[CryptoHack] RSA Starter 4

설명 개인 키 d는 해당 공개 키로 생성된 암호문을 해독하는데 사용된다. (메시지를 "서명"하는데도 사용되지만 이는 나중에 설명할 것이다.) 개인 키는 암호화 기능을 빠르게 반전시킬 수 있는 "트랩도어"이다. RSA 가 잘 구현되어 있고 개인 키가 없을 때, 암호문을 해독하는 갖아 빠른 방법은 모듈러를 분해하는 것이다. 두 개의 소수가 주어진다. : p = 857504083339712752489993810777 q = 1029224947942998075080348647219 그리고 지수: e = 65537 개인 키 d는 무엇인가? 풀이 RSA에서 $d$는 $\phi(N)$에 대한 $e$의 역원이다. $\therefore d = e^{-1} \bmod \phi(N)$ 이에 대해서는 RSA 원리를 찾아보면 ..

Security/암호학(Cryptography)

[CryptoHack] RSA Starter 3

설명 RSA는 모듈러 N의 인수분해의 어려움에 의존한다. 소인수를 찾을 수 있으면, N의 Euler totient를 계산하여 암호문을 해독할 수 있다. 주어진 $N = p * q$ 및 두 개의 소수: p = 857504083339712752489993810777 q = 1029224947942998075080348647219 N의 totient는 무엇인가? 풀이 수론에서, Euler's totient function은 주어진 정수 n까지 서로소인 양의 정수 갯수를 말한다. Euler's totinet function은 곱셈적 함수이다. 두 정수 m, n 이 서로소인 경우에 $\phi (mn) = \phi (m) \phi (n)$이 성립한다. 또한 정의에 따라, 소수 p에 대해 $\phi (p) = p-1..

Security/암호학(Cryptography)

[CryptoHack] RSA Starter 2

설명 RSA암호화는 일반적으로 $N = p * q$라는 두 소수의 곱인 $N$과 지수 $e$를 사용해서 메시지를 모듈러 지수화한 것이다. 지수와 계수는 함께 RSA "공개 키" $(N, e)$를 형성한다. $e$의 가장 일반적인 형태는 0x10001 또는, 65537이다. 지수 $e = 65537$ 과 소수 $p = 17$ 및 $q = 23$을 사용하여 숫자 12를 "암호화"한다. 암호문은 무엇인가? 풀이 e = 0x10001 p = 17 q = 23 N = p*q print(pow(12, e, N))​

Security/암호학(Cryptography)

[CryptoHack] RSA Starter 1

설명 RSA의 모든 작업에는 모듈러 지수가 포함된다. 모듈러 지수는 암호화에서 광범위하게 사용되는 연산이며, 일만적으로 다음과 같이 작성된다. $2^{10} \bmod 17$ 어떤 숫자를 특정 거듭제곱($2^{10} = 1024$)로 올린 다음 나머지를 다른 숫자 ($1024 \bmod 17 \equiv 4$)로 나누는 것으로 생각할 수 있다. 파이썬에는 이 연산을 수행하기 위한 내장 연산자가 있다. pow(base, exponent, modulus) RSA에서 모듈러 지수화는 소인수분해 문제(IFP)와 함께 "트랩도어 기능" 을 구축하는데 도움이 된다. 이것은 한 방향으로 계산하기는 쉽지만, 올바른 정보가 없으면 역방향으로 계산하기 어려운 함수이다. 이를 통해 메시지를 암호화할 수 있으며 키를 가진 사..

Security/암호학(Cryptography)

Sage 설치

맥북에서 Sage를 설치했었는데 터미널에서 명령어가 먹지 않아서 다시 설치하니까 되네요. 설치 주소를 저장해두려고 합니다. sage(System for Algebra and Geometry Experimentation)는 크립토 문제를 풀 때 사람들이 자주 쓰는 도구입니다. python에 기반하고 있어서 어렵지 않게 사용 가능합니다. 그 전에는 문제를 풀 때, python으로 풀었는데 이번 TJCTF에서 몰라서 못 푸는 경우가 발생하여 이 참에 익혀보려고 합니다. https://www.sagemath.org/ SageMath Mathematical Software System - Sage SageMath is a free and open-source mathematical software system. ..

Security/암호학(Cryptography)

Fault Attack on RSA CRT

https://neutrinox4b1.github.io/blog/2023/Invalid_RSA_decryption_code/ Invalid_RSA_decryption_code | Neutrinox4b1 ⚛ When d is the private key, RSA decryption using CRT is done as follows: mp = c^dp mod p (dp = d mod p-1) mq = c^dq mod q (dq = d mod q-1) qinvp = q^(-1) mod p s = (mp-mq) mod p m = mq+sqinvpq Unfortunately, I implemented the decryption code incorrectly. In neutrinox4b1.github.io 핵테온..

Security/암호학(Cryptography)

[CryptoHack] Bean Counter

Background 파이크립토의 카운터 모드가 제가 원하는 대로 작동하는 데 어려움을 겪었기 때문에 ECB 모드를 CTR로 직접 전환했습니다. 제 카운터는 위아래로 움직일 수 있어서 암호 분석가들을 따돌릴 수 있습니다! 그들이 제 사진을 읽을 수 있는 가능성은 전혀 없습니다. 분석 카운터 모드? CTR? 이게 무슨 말일까 from Crypto.Cipher import AES KEY = ? class StepUpCounter(object): def __init__(self, value=os.urandom(16), step_up=False): self.value = value.hex() self.step = 1 self.stup = step_up def increment(self): if self.stup:..

그믐​
'Security/암호학(Cryptography)' 카테고리의 글 목록