- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- bitcoin
- blockchain
- V2
- 이더리움
- lending
- 비트코인
- 해시
- shellcode
- wargame
- defi
- pow
- Leak
- 코인
- web3
- Linux
- PWN
- Ethereum
- overthewire
- 블록체인
- security
- 반딧
- Crypto
- BANDiT
- 리눅스
- 해킹
- compound
- DreamHack
- pwnable
- hacking
- solidity
목록study_SECURITY/Crypto (6)
Nullorm
CryptoHack – HomeA free, fun platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard?cryptohack.org 이번 문제도 그냥 MITM이다. OverviewAlice와 Bob이 어떠한 값들을 주고받는지 살펴보자. 우선, nc로 연결해보면,Intercepted from Alice: {"supported": ["DH1536", "DH1024", "DH512", "DH256", "DH128", "DH64"]}이렇게 나오고, Bob은 Intercepted from Bob: {'chosen': 'DH1536'..
CryptoHack – HomeA free, fun platform to learn about cryptography through solving challenges and cracking insecure code. Can you reach the top of the leaderboard?cryptohack.orgDiffie-Hellman Key exchange이 프로토콜은 DLP:Discrete Logarithm Problem을 바탕으로 만들어진 키 교환 프토로콜이다. $A = g^a mod\ p$ 를 알고 있을 때, $(g, p, A)$를 모두 알고 있어도, $a$ 값은 알기 어렵다는 것을 기반으로 하고 있다. 좀 더 자세히 보면,Alice와 Bob이 통신키(세션키)를 교환하고자 할 때 안전하게 교환..
하다가 너무 헷갈려서 그냥 정리하는게 맞겠다~ 싶음. 정리해야 할 함수들 chr() ord() bytes.fromhex() / .hex() base64.b64encode() / .b64decode long_to_bytes() : long -> byte string bytes_to_long() : byte string -> long 시작해보자. 1. chr() 함수 하나의 정수를 인자로 받고, 해당 정수에 해당하는 유니코드 문자를 반환한다. chr(97) = 'a' 2. ord() 함수 하나의 문자를 인자로 받고, 해당 문자에 해당하는 유니코드 정수를 반환한다. ord('a') = 97 이정도는 오케이. 그런데 그 다음부터 헷갈리더라. 3. bytes.fromhex() hex 숫자를 인자로 받고, byte..
인코딩(encoding)과 디코딩(decoding) 파일에 저장된 정보의 형태나 형식을 변환하는 처리 / 처리방식을 말함. 이메일, 문자메시지 등의 전송, 동영상이나 이미지 영역에서 많이 사용됨. 인코딩의 반대는 디코딩 Base64 바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII문자로 표현하기 위해 만들어진 인코딩. ASCII문자 하나가 64진법의 숫자 하나를 의미하기 때문에 base64라는 이름을 가졌다. 8비트짜리 바이트 3개를 6비트씩 4개로 쪼개어 base64 코드 4개로 바꾸어 표현한다. base64 코드를 바이너리로 디코딩하기 편하게 하기 위해 base64 코드를 무조건 네 글자 단위로 만들고, 빈 부분을 '=' 문자로 채워둔다. encoding 예시 원문 E 1 L 바이트 값..
지난번 게시물에 이어서 확장 유클리드 알고리즘을 시작해보도록 해보아요... 지난 게시물에서, 유클리드 알고리즘에 의해 GCD(a, b) = GCD(b, r) 이 성립한다는 것을 알았음. (※ GCD : greatest common divisor : 최대공약수, a % b = r) 확장 유클리드 알고리즘은 최대공약수 gcd를 구하는 것 뿐만아니라, 정수해를 가지는 부정방정식 ax + by = c가 주어질 때, a, b의 최대공약수를 구함과 동시에 이 방정식을 만족하는 x, y를 찾아주는 알고리즘이다. 당연히 식이 하나에 두 변수가 있으므로 unique한 해를 찾는다기보다는 무수히 많은 (x, y) 쌍에 대한 규칙을 찾는 것이라고 보면 될 것이다. 코드로 구조를 살짝 표현 해볼까? function exten..
유클리드 호제법두 개의 자연수리 최대공약수를 "빠르게" 구하는 알고리즘.여기서 빠르게 라는 말은 인간이 빠르게 구하려고 하는것도 물론 맞지만 컴퓨터가 빠르게 계산하기 위함인 것도 있다.a와 b를 나눈 나머지를 r이라고 할 때, a와 b의 최대공약수는 b와 r의 최대공약수와 같다.아 티스토리에서 라텍스 쓰는법 모르겠어요~~~ a % b = r이면 gcd(a, b) = gcd(b, r) (단, b > r > 0)36 % 24 = 12 이고,24 % 12 = 0 이므로, 0이 되기 한 단계 전인 12가 36과 24의 최대공약수임.이걸 코드로 표현해보면,#include int GCD(int a, int b){ if (a % b == 0) return (b); return GCD(b, a ..