전체 글
-
[Crypto][lecture]1. 동형 암호(homomorphic encryption)란?Crypto 2025. 1. 8. 00:29
오늘날 우리에게 클라우드 서비스는 실생활에서 많이 접하는 서비스 중 하나이다.iCloud, Google photo 등.. 나온 예시 중에 구글 포토를 예로 들어보자. 구글 포토 어플을 들어가보면 단순히 사진들을 저장해 놓는게 아니라, 특정 주제별로 분류를 자동으로 알아서 해준다.인물 각각 한명씩, 문서를 찍은 사진들, 등등..이러한 분류는 단순히 이뤄지는 게 아니다. 머신러닝을 이용한 분류(classification)이다. 구글 포토를 운영하는 서버 어디선가 우리의 사진들은 끊임없이 어떤 모델들에게 학습되는 재료로 사용되고 있을 것이다. 그런데 만약 우리 사진들 중에 누군가에게 보여져선 안되는 개인 정보가 포함되어있다면 어떨까? 그 사진들이 클라우드 서버 어딘가 정처를 떠돌고 있는걸 상상하면, 당장은 무..
-
[회고]암호 연구가는 개발자인가? 보안 엔지니어인가? 아니면 다른 무엇인가?카테고리 없음 2024. 12. 2. 01:23
이번 포스트는 순전히 내 개인적인 경험을 rewind하는 겸, 23~24년도 회고 겸, 2025년도를 준비하는 겸 쓴다. '암호'에 관심을 가지게 된 프로세스① 수학에서부터 시작시작은 수학이다. 중고등학교 때부터 수학이 제일 할만 했기 때문에 대학교 입시를 들어갈 때 정시로 모두 수학과를 썼다.학교에 대한 욕심은 별로 없었다. 하지만 적어도 내가 하고 싶은 공부를 하고 싶었고 그것이 수학이었다.전공수업은 실제로 정말 재밌었다. (교수님이 재밌었던게 아니라, 내용이)특히 1학년 때 선형대수학을 공부하면서 행렬, 선형연립방정식, 벡터, 선형사상이 모두 동형(homomorphic)이라는 사실을 깨닫고 그것을 정리했을 때 그 기쁨은 아직도 잊을 수 없다. 아마 수학에 대해 관심이 없었다면 암호에도 관심이 없..
-
[Crypto][CTF]hashbrown - Length Extension AttackCrypto 2024. 11. 13. 01:19
DescriptionI made fresh hashbrowns fresh hash function. - hashbrown.pyimport os# pip install pycryptodomefrom Crypto.Cipher import AESflag = "bctf{????????????????}"secret = os.urandom(16)my_message = "\n".join( [ "Grate the raw potatoes with a cheese grater, place them into a bowl and cover completely with water. Let sit for 10 minutes.", "Drain the grated potatoes well; if thi..
-
[Crypto][CTF]Bigger is Better - RSA Wiener AttackCrypto 2024. 10. 29. 19:06
DescriptionI heard choosing a small value for e when creating an RSA key pair is a bad idea. So I switched it up! - dist.txtN = 0xa0d9f425fe1246c25b8c3708b9f6d7747dd5b5e7f79719831c5cbe19fb7bab66ed62719b3fc6090120d2cfe1410583190cd650c32a4151550732b0fc97130e5f02aa26cb829600b6ab452b5b11373ec69d4eaae6c392d92da8bcbea85344af9d4699e36fdca075d33f58049fd0a9f6919f3003512a261a00985dc3d9843a822974df30b81732..
-
[Crypto][CTF]YYYES - AES CBC AttackCrypto 2024. 10. 13. 22:59
Description- YYY가 AES 플래그 서버를 운영하고 있어요. 무엇이든 암호화하고 복호화 할 수 있다던데… 플래그를 획득해주세요! - prob.py#!/usr/bin/env python3from Crypto.Util.Padding import pad, unpadfrom Crypto.Cipher import AESimport osBLOCK_SIZE = 16flag = open("flag", "rb").read()key = os.urandom(BLOCK_SIZE)# perfectly protected!iv = keyprint(iv)for _ in range(5): iv = AES.new(key, AES.MODE_CBC, b'\x00' * 16).encrypt(iv)print(iv)encrypt..