김보안의 블로깅
  • 🏠 Home
  • 📚 Project
    • Blockchain
      • 🎦 PickMe
      • 🎦 IoTC
      • 🎦 Blackchain
      • 📃 Gemology
      • 🎦 PickMe
      • 🎦 PickMe
    • AI
      • 👋 A.I. Dream Reader
      • 🎦 A.I. Dream Reader
    • Security
      • 🎦 SNAC
    • Education
      • 🎦 Smart Lecture
  • 🤸‍♂ Hobby
    • Music
      • Violin
      • Guitar
      • Piano
      • Drum
    • Flower
      • Flower Certificate
    • Sport
      • Ski
      • Skateboard
      • Golf
      • Boxing

2026년 2월 25일 수요일

태블릿에서 양자내성암호(격자암호) 돌려보기

 SecureKim     오후 7:30     Encrypt, Lattice-based Cryptography, Quantum, Security     No comments   

 

Termux에서 양자 내성 암호 돌려보기

많은 시행 착오 끝에 성공 !


1. Playstore에서 Termux를 설치한다.


2. 양자 내성 암호 라이브러리 빌드를 위한 셋업


pkg update && pkg upgrade -y

pkg install clang cmake ninja python git -y

pip install setuptools


3. 양자내성암호 소스코드 직접 빌드 (pip로 하면 안됨)

git clone -b main https://github.com/open-quantum-safe/liboqs.git 

cd liboqs 

mkdir build && cd build


- 잦은 에러를 유발 알고리즘 (NTRU Prime) 제외하고 ML-KEM 활성화 설정해서 cmake

cmake -GNinja .. -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PREFIX -DOQS_USE_OPENSSL=OFF -DOQS_KEM_DEFAULT=OFF -DOQS_SIG_DEFAULT=OFF -DOQS_KEM_ML_KEM=ON -DOQS_ENABLE_KEM_NTRUPRIME=OFF


- 빌드

ninja install


- 잘 빌드 되었는지 확인

export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH python -c "import oqs; print('ML-KEM 성공 여부:', 'KeyEncapsulation' in dir(oqs))"


4. C로 만든 엔진을 python에서 쓸 수 있도록 연결

pip install liboqs-python 

# 파이썬이 라이브러리를 찾을 수 있도록 경로 설정

export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH


5. 예제

pip install pycryptodome


import oqs, hashlib, binascii, os

from Crypto.Cipher import AES

from Crypto.Util.Padding import pad, unpad


# 1. ML-KEM 기반 키 교환 (양자 내성)

with oqs.KeyEncapsulation("ML-KEM-768") as alice:

    alice_pub = alice.generate_keypair()

    with oqs.KeyEncapsulation("ML-KEM-768") as bob:

        ciphertext, bob_secret = bob.encap_secret(alice_pub)

    alice_secret = alice.decap_secret(ciphertext)


# 2. 6자리 인증 코드 생성 (중간자 공격 방지)

auth_code = hashlib.sha256(alice_secret).hexdigest()[:6]

print(f"[*] 인증 코드 확인: {auth_code}")


# 3. AES-256-CBC 암호화 통신

key = hashlib.sha256(alice_secret).digest()

iv = os.urandom(16)

msg = "양자 보안 메시지입니다."


# 암호화

cipher = AES.new(key, AES.MODE_CBC, iv)

enc_msg = cipher.encrypt(pad(msg.encode(), 16))

print(f"[-] 암호문: {binascii.hexlify(enc_msg[:10])}...")


# 복호화

dec_cipher = AES.new(key, AES.MODE_CBC, iv)

dec_msg = unpad(dec_cipher.decrypt(enc_msg), 16).decode()

print(f"[+] 복호화 결과: {dec_msg}")








  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
이메일로 전송BlogThis!X에 공유Facebook에서 공유
이전 게시물 홈

0 개의 댓글:

댓글 쓰기

페이지

  • 홈
  • Hobby

Categories

  • AI
  • AWS
  • Blockchain
  • Hardware
  • Javascript
  • Node.js
  • Plasma
  • Security
  • Study
  • Video
  • android
  • mysql
  • review
  • windows

Popular Posts

  • 회사 프록시와 인증서에 고통받는 그대를 위한 글 (Bash, Gradle, Python, wget, nodejs(npm), apt-get, cURL, git, yarn, androidStudio)
    대기업에 입사하면 장단점이 있는데, 단점 중에 하나가 회사에서 프록시를 사용하여 트래픽 감시를 하므로 프록시 설정을 해주어야 한다는 점 입니다. 특히, 회사에서는 https 트래픽도 감시를 하므로 인증서도 설정해 주어야 합니다. 그런데 문...
  • 블랙보드 강의 녹화 영상 다운로드 가능한 방법 (노설치)
    별도의 설치도 필요 없고 아주 쉽습니다. 구글 크롬브라우저 에서 블랙보드 녹화 영상에  다운로드 가능한 메뉴가 나오게 하는 코드입니다.  먼저 블랙보드 강의자료에 입장하고, 재생 버튼을 클릭 하지 않은 상태로 F12 를 입력합니다. 재생을 클릭하지 마...
  • [Kisa] 암호의 이해와 키 관리 실무 - 3일차 PKI 관련 표준 - PKCS
    PKI 관련 표준 CLR  서버가 받은 인증서의 'CLR 배포 지점' 항목에서 LDAP URL(ldap://) 을 추출해 LDAP DB에 직접 쿼리. CA에서는 LDAP DB를 항상 갱신함. 폐기된 인증서라도 만료일이 지나면...

Blog Archive

  • ▼  2026 (2)
    • ▼  2월 (2)
      • 태블릿에서 양자내성암호(격자암호) 돌려보기
      • 양자컴퓨터와 보안 위협 (쇼어 알고리즘)
  • ►  2025 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  7월 (1)
  • ►  2024 (2)
    • ►  11월 (2)
  • ►  2023 (2)
    • ►  10월 (1)
    • ►  1월 (1)
  • ►  2022 (10)
    • ►  12월 (1)
    • ►  11월 (3)
    • ►  9월 (1)
    • ►  8월 (1)
    • ►  6월 (2)
    • ►  3월 (2)
  • ►  2021 (9)
    • ►  12월 (3)
    • ►  11월 (1)
    • ►  6월 (1)
    • ►  5월 (2)
    • ►  4월 (2)
  • ►  2020 (12)
    • ►  10월 (1)
    • ►  9월 (2)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (5)
    • ►  4월 (1)
    • ►  2월 (1)
  • ►  2019 (14)
    • ►  10월 (2)
    • ►  7월 (1)
    • ►  3월 (4)
    • ►  2월 (2)
    • ►  1월 (5)
  • ►  2018 (14)
    • ►  12월 (2)
    • ►  11월 (4)
    • ►  10월 (1)
    • ►  8월 (2)
    • ►  5월 (4)
    • ►  1월 (1)
  • ►  2017 (12)
    • ►  10월 (2)
    • ►  9월 (9)
    • ►  5월 (1)
  • ►  2016 (8)
    • ►  10월 (2)
    • ►  8월 (1)
    • ►  6월 (1)
    • ►  1월 (4)
  • ►  2015 (6)
    • ►  12월 (3)
    • ►  10월 (1)
    • ►  6월 (1)
    • ►  5월 (1)
  • ►  2014 (10)
    • ►  11월 (1)
    • ►  9월 (1)
    • ►  7월 (1)
    • ►  6월 (1)
    • ►  5월 (3)
    • ►  4월 (1)
    • ►  3월 (2)
  • ►  2013 (28)
    • ►  12월 (3)
    • ►  11월 (6)
    • ►  10월 (6)
    • ►  9월 (6)
    • ►  8월 (1)
    • ►  7월 (3)
    • ►  6월 (3)

구독

글
Atom
글
댓글
Atom
댓글

로드 중입니다...

각오

직접 해보지 않은 것은 포스팅 하지 않겠습니다.

Copyright © 김보안의 블로깅 | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates