Skip to content

태그: 암호학

총 25개의 글이 있습니다.
Stablecoin
블록체인
스테이블코인(Stablecoin)은 가격 안정성을 목표로 설계된 암호화폐로, 법정화폐, 상품, 또는 알고리즘을 통해 가치를 유지한다. 비트코인이나 이더리움과 같은 일반 암호화폐는 높은 변동성을 가지지만, 스테이블코인은 안정적인 가치를 제공하여 결제 수단, 가치 저장, 거래소 간 이동 등에 활용된다. 따라서 거래소 간 자금 이동 시 변동성 없이 빠르게 이전할 수 있다. 상거래 결제에 안정적으로 사용되며, 탈중앙화 금융(DeFi)에서 대출, 예금, 유동성 제공의 기초 자산으로 활용된다. 국경 간 송금에서 빠르고 저렴한 수단을 제공하고, 암호화폐 시장 변동성을 회피하기 위한 안전자산 역할도 한다. 법정화폐 담보형의 경우 실제 담보 보유 여부가 불투명할 수 있고, 각국 정부의 규제 변화에 민감하게 반
BFT
블록체인
비잔틴 장애 허용(Byzantine Fault Tolerance, BFT)은 분산 컴퓨팅 시스템에서 일부 노드가 악의적으로 행동하거나 임의로 실패하더라도 시스템이 합의에 도달하고 정상적으로 작동할 수 있는 능력이다. 이는 1982년 Leslie Lamport가 제시한 “비잔틴 장군 문제(Byzantine Generals Problem)“에서 유래했다. 비잔틴 장군 문제 여러 비잔틴 장군들이 도시를 포위하고 있고, 메신저를 통해 통신하며 공격 또는 후퇴를 결정해야 하는 상황이다. 문제는 일부 장군이나 메신저가 배신자일 수 있으며, 이들이 잘못된 정보를 전달할 수 있다는 점이다. 충성스러운 장군들은 배신자가 있더라도 동일한 작전 계획에 합의해야 한다. 신뢰할 수 없는 환경에서 합의가 필요한 다양한 시
Consensus mechanisms
블록체인
Consensus mechanism(합의 알고리즘)은 분산 네트워크에서 블록체인의 상태에 대해 모든 노드가 동의하도록 하는 메커니즘이다. Bitcoin에서 사용하는 Proof of Work 외에도 다양한 합의 메커니즘이 개발되어 사용되고 있다. Proof of Stake (지분 증명) Proof of Work에 대한 대안으로, 채굴의 필요성을 제거하여 작업 증명을 개선하는 것을 목표로 하는 합의 알고리즘이다. 암호화폐 보유자들은 의결권을 얻기 위해 잔고를 걸고(스테이킹) 거래를 검증하기 위해 네트워크에 의해 선택될 기회를 갖는다. 스테이킹을 통해 노드 또는 validator로서의 역할을 수행할 수 있다. 고가의 하드웨어 요구사항이나 어려운 계산 과정은 없지만 암호화폐 보유자들이 자금을 투입하는 데
ICO
블록체인
Initial Coin Offering (ICO)는 암호화폐 개발 업체에서 투자 자금을 모집하기 위해 자사에서 개발한 암호화폐의 일부를 현금이나 다른 암호화폐를 받고 넘겨주는 것이다. 미래에 상장될 코인의 가치를 약속하고 그보다 저렴한 환율로 현재의 자금을 환전해 주는 방식이다. 전통적인 기업공개(IPO)와 유사하지만, 주식 대신 암호화폐 토큰을 발행한다는 점에서 차이가 있다. ICO 방식이 처음으로 도입된 암호화폐는 이더리움이다. 개발자인 비탈릭 부테린은 백서(白書; whitepaper)를 공개하고 비트코인을 받아 개발에 필요한 자금을 확보했다. 이더리움이 성공적으로 개발되고 투자자들에게 배부된 ETH 토큰의 가치가 상승하자, 투자자들은 많은 이득을 보게 되었다. 이더리움의 성공 이후 수많은
Bitcoin Script
블록체인
비트코인 스크립트는 트랜잭션 출력의 사용 조건을 정의하는 스택 기반 프로그래밍 언어이다. ScriptPubKey와 ScriptSig 모두 같은 방식으로 파싱된다. 파싱을 시작하고 처음 읽은 한 바이트 값이 n이고 이 값이 0x010x4b(175) 사이의 값이면 n바이트 길이만큼 이어서 읽은 숫자를 한 원소로 간주한다. 그렇지 않으면 그 바이트 값은 오피 코드를 의미한다. 연산자, 오피코드 대응 표 비트코인의 스크립트에선 반복문을 허용하지 않는다. (튜링 완전하지 않다.) 튜링 완전한 스마트 계약 언어인 Solidity를 이용하는 이더리움은 gas라는 단위를 프로그램 실행 대가로 지불하도록 강제하여 해결한다. 거래를 하기 위해선 이전 트랜잭션의 해제 스크립트(ScriptPubKey)로 코
스마트 컨트랙트
블록체인
스마트 컨트랙트(Smart Contract)는 블록체인 상에서 자동으로 실행되는 프로그램으로, 계약 조건이 충족될 때 자동으로 실행되는 디지털 계약이다. 중개자 없이 신뢰할 수 있는 거래를 가능하게 하며, 투명성과 불변성을 보장한다. 역사적 배경 Nick Szabo의 개념 정립 (1994-1996) 스마트 컨트랙트라는 용어는 1994년 미국의 컴퓨터 과학자 Nick Szabo가 처음 제안했다. 1996년 Szabo는 여러 논문을 발표하며 스마트 컨트랙트를 “계약 조건을 실행하는 전산화된 거래 프로토콜”로 정의했다. 그의 비전은 일반적인 계약 조건을 충족하고, 악의적이거나 우발적인 예외를 최소화하며, 신뢰할 수 있는 중개자의 필요성을 줄이는 것이었다. 자판기를 예시로 들어 설명했다: 동전을 넣으면 기계가 상
서명과 영지식 증명
암호화
암호학에서는 서명을 Digital signature(디지털 서명) 또는 Signature scheme(서명 체계)이라 한다. 서명 체계는 일반적으로 다음 세 가지 알고리즘으로 구성된다. 서명자가 새로운 비밀키(서명키)와 공개키(검증키)를 생성하는 데 사용하는 키 쌍 생성 알고리즘 비밀키와 메시지를 사용하여 서명을 생성하는 서명 알고리즘 공개키, 메시지, 서명을 사용하여 성공 또는 오류 메시지를 반환하는 확인 알고리즘 서명은 메시지의 원본과 메시지의 무결성을 인증하는 데 유용하다. 원본(origin): 내 서명이 있는 경우 내가 보낸 것이다. 무결성(integrity): 누군가가 메시지를 수정하면 서명이 무효화된다. MAC에서 생성된 인증 태그는 타이밍 공격을 피하기 위해 상수 시간에 검
Alice and Bob
암호학
암호학 및 보안 프로토콜 설명 시 사용되는 관례적 이름이 있다고 한다. Alice: 첫 번째 참여자, 메시지나 암호화 키를 교환하려는 송신자 Bob: 두 번째 참여자, 메시지나 키를 수신하는 수신자 Carol/Carlos/Charlie: 세 번째 참여자, 다자간 통신이나 그룹 프로토콜에서 사용 Dan/Dave/David: 네 번째 참여자 Frank: 여섯 번째 참여자 공격자 Eve: 도청자, 수동적 공격자로 통신 엿듣기 가능하나 메시지 수정 불가 Michael/Mike: Eve의 대안, 마이크로폰에서 유래한 도청자 Niaj: 남아시아 국가에서 사용되는 Eve 대안 Mallory: 악의적 능동적 공격자, 메시지 수정/대체/재전송 가능, 중간자 공격에 사용, Mallet이나 Darth로도 불림 Trudy:
Kerckhoffs's principle
암호학
암호의 안전성은 알고리즘이 아니라 키의 비밀성에만 의존해야 한다. 암호화 알고리즘이 공개되어도, 키만 잘 지키면 안전할 수 있는 암호 체계를 만들어야 한다는 원칙이다. 우리가 어떤 암호화 알고리즘을 사용하고 있는지 공격자가 알고 있어도, 공격이 어려워야 한다. 이 원칙이 중요한 이유는 다음과 같다. 실제 환경에서는 알고리즘을 잘 안 바꾸고, 쓰던 것을 계속 사용하곤 한다. 키의 비밀성을 유지하는 것보다 알고리즘의 비밀성을 유지하는 것이 더 어렵다. 알고리즘이 공개되면, 더 많은 버그를 찾아내어 알고리즘을 개선시킬 수 있다. 이는 비공개 알고리즘을 상대적으로 신뢰하기 어려운 이유이기도 하다. 비밀이 적으면 적을수록 시스템은 안전하다. 우리가 실제 세계에서 배우고 사용하는 모든 암호화 알고리즘은
무작위성
암호학
보안 및 암호학 목적으로 난수가 필요하다면 난수는 예측할 수 없어야 한다. 애플리케이션은 일반적으로 무작위정을 운영체제에 의존하며, 운영체제는 실행되는 장치 유형에 따라 다른 트릭을 사용하여 무작위성을 수집한다. 무작위성의 일반적인 근원(entrypy source)은 하드웨어 인터럽트(마우스 움직임 등), 소프트웨어 인터럽트, 하드디스크 탐색 시간 등의 타이밍이 될 수 있다. 열 잡음과 같은 예측불가한 외부 물리현상으로 무작위적을 추출하는 하드웨어 난수 생성기를 진난수 생성기(TRNG, True random number generators)라고도 한다. 무작위성 추출기(randommness extractor)는 이런 여러 노이즈 소스를 정리하고 수집해야 한다. 허나 많은 난수를 빠르게 필요로
암호학
암호학
암호학의 분류 대칭 암호학(또는 비밀 키 암호학): 비밀 하나가 사용된다. 여러 참가자가 비밀을 알고 있는 경우 공유된 비밀이라고 한다. 비대칭 암호학(또는 공개 키 암호학): 참가자들은 비밀에 비대칭적인 관점을 가지고 있다. 예를 들어 일부는 공개 키를 알고 있고, 일부는 공개 키와 비밀 키 모두를 알고 있다. 암호학을 나누는 또 다른 방법은 다음과 같다. 수학 기반 구성: 인수 분해와 같은 수학적 문제에 의존한다. (예: 디지털 서명 및 비대칭 암호화를 위한 RSA 알고리즘) 휴리스틱 기반 구성: 암호 분석가의 관찰 및 통계 분석에 의존한다. (예: 대칭 암호화를 위한 AES) 참고 리얼월드 암호학 데이비드 웡
대칭암호화
암호화
AES (Advanced Encryption Standard) 현재 가장 널리 사용되는 대칭 암호화 표준이다. NIST에서 2001년 표준으로 채택되었으며, 이전 암호화 표준이었던 DES를 대체했다. 128비트의 평문을 128비트의 암호문으로 암호화한다. 고정된 크기의 평문을 암호화하기 때문에 블록 암호(Block cipher) 내부 동작 AES는 암호화 과정에서 평문의 state를 4*4 행렬로 본다. 여러 번 반복하는 라운드 함수에서, 라운드별로 (기본 대칭키에서 파생된) 각각 다른 라운드 키를 사용한다. 이를 통해 대칭 키의 비트를 약간만 변경함녀 완전히 다른 암호화가 가능하다 (확산 diffusion) 각 라운드엔 4개의 내부 단계가 있다. SubBytes: S-box를 사
비대칭암호화
암호화
비대칭 암호화는 공개 키와 개인 키라는 두 개의 서로 다른 키를 사용하는 암호화 방식이다. 공개 키로 암호화한 데이터는 개인 키로만 복호화할 수 있다. 공개 키는 안전하지 않은 채널로 전송해도 안전하다. n명이 통신하려면 n개의 키 쌍만 필요하다. (대칭 암호화는 n(n-1)/2개) RSA (Rivest-Shamir-Adleman) 1977년 개발된 최초의 실용적 공개 키 암호 시스템이다. 큰 소수의 곱셈은 쉽지만, 그 결과를 소인수분해하는 것은 계산적으로 어렵다는 원리를 이용한다. 키 생성 두 개의 큰 소수 p, q를 선택한다. n = p × q를 계산한다. (공개 모듈러스) φ(n) = (p-1)(q-1)을 계산한다. φ(n)과 서로소인 e를 선택한다. (공개 지수, 보통 65537
DB 암호화
응용
DB 암호화 기술을 적용할 때는 운영 환경에 적합한 기술을 도입하는 것이 중요하다. DB를 암호화 할 떄에 고려해야하는 부분들에 대해 알아보자. 암호화 대상 및 범위 분석 암호화 대상은 국내 법·규정에서 규정한 개인정보 및 그 외 중요 데이터를 우선적으로 선정해야 한다. [금융정보원 DB 암호화 기술 가이드] 검증된 암호화 알고리즘 적용 DB의 중요 데이터를 암호화하는데 적용되는 알고리즘은 양방향 알고리즘과 단방향 알고리즘이 있다. 개인정보는 양뱡항 알고리즘으로 암호화해야 하며, 비밀번호는 복호화할 수 없는 단방향 알고리즘으로 암호화한다. 검증되지 않은 알고리즘을 사용하는 경우, 암호문이 해독될 수 있어 위험하므로, 국내외 암호연구기관이 권장하는 다음의 암호 알고리즘을 사용해야 한다. [대칭형 알고리즘]
해시와 MAC
암호화
해시 함수 해시 함수는 데이터를 입력으로 받고 고유한 바이트 문자열을 생성한다. 출력을 다이제스트, 혹은 해시라고 한다. 해시의 특징 3가지가 있다. 역상 저항성(Preimage resistance): 역상(Preimage == y) 추측에 저항하는(Resistance) 성질 최초, 해시값(y)이 확인된 상태 입력값(x)을 찾는 것은 계산적으로 불가능 제2 역상 저항성(Second preimage resistance): 역상 추측에 저항하는 성질 최초, 입력값(x)이 확인된 상태 동일한 해시값(y)이 나오는 다른 입력값(x’)을 찾는 것은 계산적으로 불가능 충돌 저항성(Collision resistance): 서로 다른 입력값 추측에 저항하는 성질. 서로 다른 입력값은 동일한 해시값을