암호학 개요

코딩 파인애플·2026년 8월 7일

CRYPTOGRAPHY

목록 보기
1/4
post-thumbnail

안녕하십니까 코딩 파인애플입니다
이번 시간에는 암호학에 관해 알아보겠습니다.

🔒암호학이란?

암호학(Cryptography)은 정보를 안전하게 보호하기 위해 수학과 컴퓨터 과학을 바탕으로 메시지를 변환하는 방법과 이를 해독하는 원리를 연구하는 학문을 의미합니다

예를 들어 저, 코딩 파인애플하고 저번 RGB에 나온 제 친구, 더미가 서로 게임에 관한 정보를 주고받는다고 가정해봅시다

코딩 파인애플이 "고르도 산 23시에 귀신이 있다" 라는 정보를 더미에게 보냅니다

원래라면 이 메시지가 그대로 더미에게 전달되야 하지만 제 3자인 케인👺👺👺이라는 사람이 중간에 개입하여 내용을 가로챕니다

만약 코딩 파인애플이 메시지를 그대로 보낸다면 케인은 "고르도 산 23시에 귀신이 있다" 라는 내용을 그대로 확인할 수 있고

케인이 메시지를 변조하여 "은평구의 언덕 4시쯤 코괴물이 있다"
라는 잘못된 정보로 바꾼다면, 더미는 코딩 파인애플이 보낸 정보라고 믿고 잘못된 내용을 전달받을 수 있습니다

이런 문제를 해결하기 위해 등장한 것이 암호학(Cryptography) 입니다

암호학의 목표

암호학도 대표적인 4가지 목표가 존재합니다

기밀성 (Confidentiality)

김일성 누가 봐도 내용을 알 수 없게 합니다
예를 들어 원본이 password=1234 이라면 암호화는 8fA92kLm
즉, 키가 없으면 복호화 불가능합니다 🔑🔑🔑대표적으로 AES, RSA, ChaCha20 등이 있습니다.

무결성 (Integrity)

데이터가 중간에 변조되지 않았음을 보장합니다
예를 들어 원본이 hello.exe이고 해시는 a94a8fe5ccb19... 인데
누군가 파일을 수정하면 b72d91ab8c21... 해시가 달라집니다
대표적으로 SHA-256,HMAC 등이 있습니다

인증 (Authentication)

상대방이 진짜인지 확인합니다
예를 들어 접속한 사이트 https://google.com 정말 구글인지 어떻게 알까요
이를 위해 인증서와 전자서명을 이용합니다

부인 방지 (Non-repudiation)

나중에 발뺌하지 못하게 합니다

예를 들어 코딩 파인애플과 더미가 계약을 한다면
구두 계약일 경우 나중에 더미가 '안했다'라고 발뻄을 할 수 있지만
서면 계약일 경우 서면이 있어 더미가 '안했다'라고 발뻄하기 어렵습니다

기초 인코딩과 데이터 표현

ASCII

ASCII(American Standard Code for Information Interchange)는 0부터 127까지의 정수를 사용하여 텍스트를 표현할 수 있는 7비트 인코딩 표준입니다

왜 128개만 사용하는가?
아스키코드는 1바이트를 사용합니다
그렇기 때문에 2^8=256개를 사용할 수 있지만 2^7=128 까지만 사용합니다 그 까닭은 나머지 1bit는 Parity Bit 즉, 통신 에러 검출을 위해 사용하기 위해 남겨둡니다

대응표는 다음과 같습니다

이를 파이썬 디코딩 코드로 나타내면 다음과 같습니다
ascii_codes = []

res = ""

for i in ascii_codes:
    char = chr(i)   # chr : 아스키코드 또는 유니코드 값을 입력받아 그에 해당하는 문자로 변환해 주는 함수
    res += char     # 결과 문자열에 추가

print(res)

HEX

HEX(hexadecimal)는...그냥 쉽게 말해 16진수라 보시면 됩니다

파이썬 디코딩 코드로 나타내면 다음과 같습니다

hex_data = ""

result = ""

for value in hex_data.split():
    number = int(value, 16)
    character = chr(number)
    result += character

print(result)

Base64

Base64는 바이너리(Binary) 데이터를 ASCII 문자로 변환하는 인코딩 방식입니다

즉,
원본 데이터 -> Base64 Encoding -> ASCII 문자열

구조입니다

대표적인 사이트는 https://www.base64decode.org/ko/ 이 있겠습니다... 신세를 참 많이 지죠

파이썬 디코딩 코드로 나타내면 다음과 같습니다

import base64

encoded = ""

decoded = base64.b64decode(encoded)
#Base64로 인코딩 된 문자열을 원래의 데이터로 디코딩하는 함수

print(decoded)







이상으로 글을 마치겠습니다 감사합니다.

ADRIAN 🗣️🗣️🗣️🔥🔥🔥🔥

profile
안녕하떼요취미로콤푸타배우는고든학교6학년유치원생이빈다주말재외하고(러블럭스해야대요💢💢)주중연재하고안한날애눈이월(February)됨니다(안할수도있음)

0개의 댓글