본문 바로가기
  • 適者生存
WorkOut/Dreamhack

Cryptography | 분명히 시작은 암호학 공부였는데..

by lcrvvxln 2024. 7. 7.

🔑 암호학 (Cryptography)

✅ 협의 : 제3자로부터 정보를 보호하는 방법에 대한 연구

✅ 광의 : 수신자와 송신자가 신원을 확인하는 방법, 메세지가 중간에 조작되지 않았음을 보증하는 방법 등에 대한 연구

 

 

➕ 주요 keyword : 키 생성, 암호화, 복호화

 

 

  • 키 생성 : 암호화와 복호화에 사용할 키를 만드는 과정
  • 암호화 : 키를 이용해 평문을 암호문으로 변환하는 과정
  • 복호화 : 송신자가 전송한 암호문을 수신자가 키를 이용해 평문으로 변환하는 과정
  • 암호 시스템 : 암호화와 복호화로 정보가 전달되는 체계 

 

🔎 암호화와 인코딩

인코딩(Encoding) : 데이터를 다른 형태로 변환하는 것

 암호화와 인코딩의 차이점
인코딩 : 데이터 기밀성을 고려하지 않아 누구나 디코딩을 통해 원문을 구할 수 있음
→ 크기를 줄이거나 컴퓨터가 이해하기 쉬운 형식으로 변형하기 위해 사용
ex. 압축, Base64 ...

 

 

 

➕  암호학을 위한 Tool

 

PyCryptodome

PyPI에 등록된 암호학 전용 패키지

 

✔️ 설치 방법

pip install pycryptodome

 

  • 655337 소수 여부 확인 

 

pwntools

바이너리 분석 & 소켓 통신, 시스템 해킹 등 다양한 분야에서 사용

pip install pwntools

 

 

from pwn import *

명령어로 사용될 예정

▶주로 process 나 remote 기능

 

 

tqdm

많은 양의 연산 시에 진행도를 진행표시줄로 표시해주고, 완료까지 걸리는 예상시간 표시해주는 패키지

 

pip install tqdm
sage --pip install tqdm

 

from tqdm import tqdm, trange

명령어로 사용될 예정

 

예시)

from tqdm import tqdm, trange

val=0

for i in trange(10000000):
		val+=3
        
val

 

 

SageMath

Sage : CAS(Computer Algebra System) 로 불리는 컴퓨터용 수학 소프트웨어 

사용 기능 : Zmod, GF, 행렬 & 벡터 클래스, 행렬 관련 함수 등

 

✔️ 설치 방법

WSL(Windows Subsystem for Linux) 설치 후 Linux 환경에서 SageMath 설치

 

https://pkjung.tistory.com/190

 

sagemath 설치법

여기서는 윈도우/리눅스에 sagemath를 설치하는 법을 다룬다. 1. 준비해야 할 것 CPU 정보sagemath를 설치할 검퓨터의 cpu에 대한 정보가 필요하다. 작업관리자를 호출하여 [성능] 탭에서 CPU의 코어 및

pkjung.tistory.com

 

1. CPU 정보 확인 

작업 관리자 > 성능 > CPU  코어 및 논리 프로세서 개수 확인

 

➕작성자 본인 : CPU 코어 6 / 논리 프로세서 12

 

2. Windows Termianl 설치

Windows Store > Termianl 검색 > Windows Termianl 설치

 

⚠️ 오류 발생 

이런 작업을 오랜만에 해보니 깜박했다 환경 설치하는게 제일 힘들다는 거

학교 다닐 때 기억이 새록새록...

해결 방법

1) 관리자 권한으로 실행

2) get-help Set-ExecutionPolicy 통해 설정 권한 확인

 

뭐가 없는지 한참 걸림

 

한참 걸려놓고 나오지도 않아서 기다리다가 결국 재실행

회사 다니면서 배운 것 중 하나가 인내심ㅎㅎ...

 

AllSigned : 신뢰된 배포자에 의해 서명된 스크립트만 실행하는 정책

 

ByPass : 어떤 것도 차단 및 경고 없이 실행 가능한 정책 

 

RemoteSigned : 로컬에서 본인이 생성한 스크립트만 실행 가능 & 인터넷에서 다운받은 스크립트 중 신뢰된 배포자에 의해 서명된 것만 실행 가능한 정책

 

Restricted : PowerShell 실행 권한 정책 중 기본적으로 적용되어 있는 옵션으로 ps1 스크립트 파일을 로드하여 실행할 수 없는 정책

 

Unrestricted : 제한 없이 모든 스크립트 실행 가능한 정책

 

 

3) Set-ExecutionPolicy RemoteSigned 

RemoteSigned 정책으로 변경

 

 

 

⚠️ 오류 발생 

지금 누가 이기나 해보자는 거지

내가 학부생 시절 유리멘탈로 보인다면 오산이다

 

https://learn.microsoft.com/ko-kr/troubleshoot/azure/entra/entra-id/dir-dmns-obj/term-cmdlet-name-not-recognized-aad-cmdlet

 

Windows PowerShell cmdlet용 Azure Active Directory 모듈을 실행하려고 할 때 오류(\<cmdlet name> 용어가 인식되

Windows PowerShell cmdlet용 Azure Active Directory 모듈을 실행하려고 할 때 오류 메시지가 표시되는 문제를 설명합니다. 해결 방법이 제공됩니다.

learn.microsoft.com

https://lifeplan-b.tistory.com/87

 

Azure Active Directory 모듈 Powershell 설치 Step!

Office365 or AzureAD를 관리하는 관리자라면, Powershell을 이용한 관리가 필수라고 할 수 있습니다. Office365, AzureAD가 상당히 많은 기능이 GUI로 구현이 되어 있지만, Powershell로 관리할 수 있는 명령에 비

lifeplan-b.tistory.com

 

Install-Module MSOnline > Y > Y

 

ㅋㅋ

https://blog.naver.com/ms_leo/221399933330

 

Office 365 - powershell 연결 (&Connect-MsolService 오류)

Office 365는 포털이 존재하기 때문에 IT 관리자가 쉽게 관리할 수 있습니다. 하지만 종종 관리포털에서...

blog.naver.com

 

계속 진행하다가 깨달았는데 내가 AzureAD 서비스를 구매하지 않아서 오류가 나는 것 같다는 생각이...

모르겠고 그냥 오류 뜨던 말던 wsl을 설치하기로..

 

 

 

https://blog.danggun.net/6929

 

[PowerShell] "용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지

파워쉘(PowerShell)로 작업을 하려는데 다음과 같은 오류가 나면서 진행이 안될때가 있습니다. 1. 오류 내용 [파일명] : '[파일명]' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램

blog.danggun.net

 

전 안 되는데요 안된다구요 세상이 날 억까해

 

아무래도 powershell을 실행하자마자 뜨는 anaconda3 경로가 내 컴퓨터에는 anacoda 폴더이기 때문에

발생하는 오류인 것 같아 시스템 환경 변수도 바꿔보고 powershell profile 파일에 경로 추가도 해보았지만

결국에는 안되서 wsl을 몇 번이고 삭제 재설치 반복하다가

홧김에 anaconda 삭제 후 재설치하기로 결정

 

https://dataiyagi.com/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%84%EB%82%98%EC%BD%98%EB%8B%A4-%EC%82%AD%EC%A0%9C/

 

파이썬 아나콘다 삭제- 삭제 후 리부팅, 설치 위치, Uninstall Anaconda - 데이터이야기

파이썬 아나콘다 삭제 - 아나콘다를 삭제하는 방법입니다. 아나콘다를 다시 설치하고 싶을 때 가장 먼저 필요한 것은, 기존 꺼 삭제인 거죠. 다시 설치하기 위해 삭제를 해 볼까요. 따라오실 준

dataiyagi.com

 

anaconda3로 되어있는 걸 anaconda로 못 바꾼다면

내가 다시 anacond3로 맞춰주지 라는 마음가짐으로 

anaconda 재설치 후, pycharm interpreter 경로도 재설정해주었다

 

이 참에 python 사용할 때 경로가 꼬여 힘들었던 생각이 떠올라 뿌리를 잘라버리자는 생각으로 기존에 별도 설치되어 있던 python도 삭제

 

 

주변인한테 물어보려다가 진짜 마지막 수단으로

GPT한테 물어봤는데 완벽하진 않았으나

GPT + 구글링 + anaconda 재설치 콜라보로 

어찌저찌 powershell 오류는 대충 고쳐진 듯 했다

 

 

그 후 다시 wsl 설치 

 

 

뭔가 이전의 설치 화면가 다르다며 기쁘기도 잠시

저기서 멈춰서 삭제하고 다시 깔았다

노트북 재부팅 2n번째...

 

불굴의 의지로 설치 완료

 

https://coffeebaralog.tistory.com/67

 

[ERROR] 디스크를 WSL2에 연결하지 못했습니다. 지정된 파일을 찾을 수 없습니다.Error code: Wsl/Service/C

문제 ❗ wsl install 하고 재부팅 후 접속하려 했으나 에러 원인 🔧 https://github.com/microsoft/WSL/issues/10032 Failed to attach disk 'LocalState\ext4.vhdx' to WSL2: The system cannot find the file specified. · Issue #10032 · microsof

coffeebaralog.tistory.com

그런데 또 다시 오류가 생겨서 ubuntu에서 접속해보니 연결 실패 오류가 뜨길래 

다시 구글링해서 해결 

만물 구글링설 

 

 

와 1n번째 설치하면서 이런 화면 처음본다 진짜로

기쁨의 설치로 캡처

 

 

 

하지만 또 다시 오류

이정도면 뭐 그냥 설치하면서 만날 수 있는 오류란 오류는 다 만나는 듯

 

또 다시 gpt와 구글링과 드림핵 설치 내용을 짬뽕으로 섞어가며

머리를 쥐어짜가며 해결 중

 

제발 해결되라는 마음으로 기다렸지만

역시나 또 패키지 설치 실패 

진짜 나한테 왜이러니..

 

그래서 powershell 말고 우분투로 돌아옴

드림핵 암호학 커리큘럼이 언제 만들어진건진 모르겠으나 정말 그대로하면 되는게 없어...

 

 

위에 올려놓은 SageMath 설치 블로그 따라가기

 

 

 

그러나 또 오류

이젠 웃음도 화도 안나..

명령어 입력해서 별도로 m4패키지 설치해주고 다시 진행

환장할 오류는 또 발생 C 컴파일러가 경로에 있지 않아서 발생한 오류이므로 다시 별도로 설치해줬다

이후에도 헤더파일이 없어 오류가 발생했지만 

블로그 내용이 너무 길어지니 오류는 그만 넣겠다..

 

설치 설치를 거듭해서 SageMath 소스코드를 구성하고

빌드까지 도전

 

MAKE="make -j6" make

 

 

그동안 했던 작업 중 가장 오랜 시간이 걸리는 것 같다 

블로그 주인장분도 오래 걸린다고 했으니 마음의 평안을 가지고 기다림의 연속

은 무슨 진짜 엄청 오래 걸림

한 시간 넘은 듯 심지어 뭐가 잘못됐는지 중간에 멈춰서 계속 냅뒀는데 

안 움직여서 엔터 쳤더니 다시 움직이는 이런 상황... 스터디 카페였는데... 두시가 넘어도 집에 못 가는 상황..

한 시간이요? 4시간 넘게 걸림... 

새벽 4시 반인데 아직도 진행 중인 상황...

집 갈 때 다운로드 끊길까봐 노트북 열고 들고 감 ㅎㅅㅎ..

 

결국 계속 켜놓고 오전 8시에 확인한 결과, 완료되어 있는 모습 발견 

눈물이 난다..

 

혹시 또 무언가 오류가 날 수 있으니 확인

드디어 된다 ㅜㅜㅜㅜㅜ

 

 

브라우저에서 jupyter 노트북으로 실행 가능

gpt 사랑해 움쪽쪽

 

드림핵에서 나온 샘플 결과도 확인 가능

 

 

좋았다

 

 

 

https://pkjung.tistory.com/119

 

sagemath

소프트웨어의 발달로 복잡한 계산을 컴퓨터에 맡기는 일이 많습니다. 단순한 숫자계산이나 그래픽 계산을 벗어나서 복잡한 수식계산도 요즘에는 컴퓨터가 척척 해내지요. 일, 이차방정식 같이

pkjung.tistory.com