암호화 — 암호화를 통화로 전환

이 기사에서는 암호화의 기초부터 암호에 이르기까지 암호 화폐 및 암호화의 기본 기술을 탐구합니다.

Jan 06, 2022
|

암호화 및 암호 화폐 OTP

이 심층 분석 기사에서 우리는 암호화, 해시 함수 및 암호화의 기본을 다루는 암호화에 대한 기본 기술인 암호화에 대해 설명합니다.

암호화 소개

가장 간단한 용어로 암호화는 통신을 비밀로 만드는 것입니다. 여기서 ‘비밀’이란 모든 통신을 감시할 수 있는 도청자가 있더라도 다른 사람에게는 비밀로 유지하면서 의도한 메시지가 수신자에게 전달될 수 있음을 의미합니다.

암호화는 종종 수학적 기술을 사용하여 비밀성을 위해 바람직한 속성을 얻습니다. 이는 보통 일반 텍스트가 의도된 수신자만 해독할 수 있는 텍스트인 암호문으로 변환되는 프로세스와 관련이 있는 경우가 많습니다. 평문을 암호문으로 변환하는 과정을 암호화라고 하며, 암호문을 평문으로 변환하는 과정을 복호화라고 합니다. 암호(또는 사이퍼)는 암호화 또는 암호 해독을 수행하기 위한 알고리즘으로, 절차로 따를 수 있는 잘 정의된 일련의 단계입니다.

이미지 14

암호화는 새로운 것이 아니며 암호 화폐만을 위한 것도 아닙니다. 은행 거래 비밀번호, 이메일 계정 비밀번호, 전자 상거래와 같이 정보 보호가 필요한 일상 생활에서 널리 사용됩니다.

블록체인 및 암호화폐는 지갑, 트랜잭션, 보안 및 개인 정보 보호 프로토콜을 위해 다양한 방식으로 암호화를 사용합니다. 예를 들어:

  • 트랜잭션에 사용되는 공개 키 암호화
  • 비트코인 채굴을 위한 해싱
  • 블록 내 트랜잭션 포지셔닝을 위한 Merkle Trees

암호화를 이해하지 못한다면 암호화폐를 이해하지 못한다고 거의 말할 수 있습니다. 더 잘 배우기 위해 암호화의 세계로 깊이 들어가 봅시다.

대칭 및 비대칭 암호화 및 해시 기능

암호화 알고리즘의 분류는 암호화 및 암호 해독에 사용되는 키의 수에 따라 대칭 암호화, 비대칭 암호화 및 해시 함수로 분류됩니다.

암호화 알고리즘may 17

각각은 서로 대체할 수 없는 특정 애플리케이션을 가지고 있습니다. 예를 들어 개인/공용 키 쌍을 생성하려면 비대칭 암호화가 필요하고 고유한 디지털 지문을 생성하려면 해시 기능이 필요합니다.

대칭 암호화

대칭 암호화는 암호화와 복호화 모두에 단일 키를 사용합니다. 메시지 발신자는 키를 사용하여 평문을 암호화하고 암호문을 수신자에게 보냅니다. 수신자는 동일한 키를 적용하여 메시지를 해독하고 평문을 복구합니다. 대칭 키 시스템은 (비대칭 키 시스템에 비해) 빠르고 간단하지만 키를 미리 알지 못하면 발신자와 수신자 간의 키 교환 문제를 해결하지 못합니다.

이미지 15

대칭 암호 체계는 블록 암호와 스트림 암호로 더 나뉩니다.

블록 암호

블록 암호는 입력을 고정 크기(예: 128비트) 블록으로 나누고 각 블록은 비밀 키를 사용하여 여러 기능에 의해 처리됩니다. 알고리즘은 프로세스에 사용되는 블록 길이, 키 및 기능을 결정합니다.

일반적으로 사용되는 일부 블록 암호는 다음과 같습니다.

데이터 암호화 표준(DES)

  • 블록 길이 = 64비트
  • 키 길이 = 56비트

IBM에서 만든 DES는 1970년대 초에 가장 인기 있는 블록 대칭 암호 중 하나였으며 가장 철저하게 검사된 암호화 알고리즘 중 하나입니다. 1976년 미국 국립표준국(National Bureau of Standards, US)에서 연방 표준으로 채택했으며, 1981년 민간 부문을 위한 데이터 암호화 알고리즘으로 ANSI 표준에 포함되었습니다.

21세기 초에 DES는 상대적으로 짧은 비밀 키 길이로 인해 무차별 암호 대입 공격에 취약하기 때문에 안전하지 않은 것으로 간주되었습니다.

고급 암호화 표준(AES)

  • 블록 길이 = 128비트
  • 키 길이 = 128, 192 또는 256비트

최신 블록 대칭 암호인 AES는 세계에서 가장 널리 사용되는 암호 중 하나입니다. Vincent Rijmen과 Joan Daemen이 1997년에 개발했으며 이후 2002년 미국에서 연방 암호화 표준으로 승인되었습니다.

AES는 견고하고 안전한 암호로 간주됩니다. 수년에 걸쳐 서로 다른 AES 구현에 대한 여러 공격이 있었지만 이러한 공격은 특별한 경우와 관련이 있으며 AES 알고리즘 자체에 대한 위협으로 간주되지 않습니다.

트리플 DES(3DES)

  • 블록 길이 = 64비트
  • 키 길이 = 56, 112 또는 168비트

3DES 암호는 1970년대 초에 발명되고 56비트 키로 보호되는 DES 암호화가 당시의 최신 컴퓨터를 사용하여 너무 약하고 깨지기 쉬운 것으로 판명되었기 때문에 개발되었습니다.

스트림 암호

스트림 암호는 시간에 따라 달라지는 암호화 변환을 사용하여 한 번에 하나씩 일반 텍스트 메시지의 개별 문자(일반적으로 이진수)를 암호화하도록 설계되었기 때문에 블록 암호보다 더 유연합니다. 반대로 블록 암호는 고정된 암호화 변환을 동시에 사용하여 일반 텍스트 블록을 암호화하는 경향이 있습니다.

전반적으로 스트림 암호의 하드웨어는 블록 암호보다 빠릅니다. 스트림 암호는 또한 버퍼링이 제한되거나 문자를 수신할 때 개별적으로 처리해야 하는 경우에 더 적합하며 경우에 따라 필수(예: 일부 통신 응용 프로그램)입니다. 오류 전파가 제한적이거나 전혀 없기 때문에 스트림 암호는 전송 오류가 발생할 가능성이 높은 상황에서도 유리할 수 있습니다.

일부 인기 있는 스트림 암호는 다음과 같습니다.

RC4

  • 키 길이 = 최대 2,048비트

RC4는 널리 사용되는 프로토콜에서 널리 사용되는 바이트 지향 작업을 사용하는 가변 키 크기 스트림 암호입니다. 예를 들어 인터넷 트래픽(TLS로 알려진 전송 계층 보안)을 보호하거나 무선 네트워크(Wired Equivalent Privacy 또는 WEP)를 보호하는 데 사용됩니다.

일회용 패드(OTP)

  • 키 길이 = 메시지 길이

OTP(One-Time Pad)의 기본 이론은 키가 최소한 메시지(일반 텍스트)와 길이가 같아야 하고 진정한 난수로 구성되어야 한다는 것입니다. 일반 텍스트의 각 문자는 OTP의 한 요소와 ‘혼합’됩니다. 이로 인해 키를 알 수 없는 경우 평문과 관계가 없는 암호문이 생성됩니다. 수신 측에서는 동일한 OTP를 사용하여 원본 평문을 검색합니다.

살사20

  • 키 길이 = 32바이트

Salsa20은 2004년부터 2008년까지 진행된 eSTREAM 프로젝트에 제출된 암호로, 스트림 암호 개발을 촉진하기로 되어 있었습니다. 잘 설계되고 효율적인 알고리즘으로 간주됩니다. Salsa20 암호 계열에 대한 알려진 효과적인 공격은 없습니다.

비대칭 암호화

비대칭 암호화는 공개 키 암호화(PKC)라고도 합니다. 암호화 및 암호 해독에 두 개의 서로 다른 키를 사용합니다. 비밀로 유지해야 하는 키를 개인 키라고 하고 그렇지 않은 키를 공개 키라고 합니다. 예를 들어 A가 B에게 메시지를 보내고 B만이 메시지를 이해할 수 있도록 하려면 A는 공개 키를 사용하여 메시지를 암호화하여 B만이 개인 키를 사용하여 메시지를 해독할 수 있도록 할 수 있습니다.

1976년 스탠포드 대학교 교수인 Martin Hellman과 대학원생인 Whitfield Diffie가 처음 공개적으로 설명한 비대칭 암호화는 두 당사자가 공통의 비밀을 공유하지 않고도 비보안 통신 채널을 통해 보안 통신에 참여할 수 있는 2개의 키 암호 시스템으로 설명됩니다. 열쇠.

이미지 22

공개 키와 개인 키는 다르지만 수학적으로 관련되어 있습니다. 그러나 수학적 관계는 암호화와 복호화 시에만 사용할 수 있으며 다른 사람은 공개 키를 알고 있어도 개인 키를 파생할 수 없습니다.

비대칭 암호화 알고리즘은 암호화폐에서 널리 사용됩니다. 예를 들어, 지갑 주소는 공개 키로 생성되며, 개인 키를 가진 사람만이 내부의 돈을 사용할 수 있습니다.

널리 사용되는 일부 비대칭 암호화 체계는 다음과 같습니다.

RSA

공개 키와 개인 키는 임의로 선택되지 않습니다. 지정된 절차를 통해 생성해야 합니다. 공개 키는 두 개의 큰 정수(e, n)로 구성되고 개인 키는 두 개의 큰 정수(d, n)로 구성됩니다. 세 개의 숫자 e, d 및 n은 특별한 방식으로 관련되어 있으며 약간 더 많은 수학이 필요합니다.

모든 영어 일반 텍스트를 아라비아 숫자로 변환하는 인코더를 사용한다고 가정해 보겠습니다. 예를 들어 ‘이봐! 여기요! 여기요!’ 는 ‘7! 7! 7!’ ‘bitconnnnnnnnect’는 ‘83333331’로 번역됩니다. 이제 Alice는 Bob에게 ‘Hello'(‘2’로 번역됨) 메시지를 보내려고 합니다.

Alice가 Bob에게 메시지를 보내는 가장 쉬운 방법은 Bob ‘2’에게 직접 말하는 것입니다. 그러나 Alice와 Bob은 그들의 메시지가 다른 사람에게 보여지는 것을 원하지 않습니다. 운 좋게도 Bob은 RSA를 알고 있습니다. 그는 공개/개인 키 쌍을 생성하고 Alice에게 자신이 제공한 공개 키를 사용하여 메시지 ‘2’를 인코딩하도록 요청했습니다.

그런 다음 Alice는 Bob의 공개 키(5, 14)를 사용하여 메시지 ‘2’를 암호화하고 암호화된 메시지는 ‘Translate Server Error’를 의미하는 ‘4’가 됩니다. 도청자가 메시지를 보더라도 왜 ‘4’를 보내는지 알 수 없습니다.

Bob은 ‘4’가 Alice의 진정한 메시지가 아니라는 것을 알고 있습니다. 그런 다음 그는 아무에게도 말하지 않은(심지어 앨리스도) 개인 키로 메시지를 해독합니다. 개인 키는 (11, 14)이고 일부 복호화 절차를 적용하여 Bob은 진정한 메시지가 ‘2’임을 알아냅니다.

이미지 17

위의 프로세스가 어떻게 작동하는지 표로 설명하겠습니다.

이미지 23

Bob 측에서는 암호화된 메시지 ‘4’만 수신합니다. 하지만 자신의 개인키로 복호화를 적용해 진정한 메시지 ‘2’를 성공적으로 복구했다.

그렇다면 공개 키(5, 14)와 개인 키(11, 14)는 어떻게 얻습니까?

이미지 25

이 프로세스를 RSA 키 생성이라고 합니다.

관심 있는 사용자는 RSA 암호화를 확인하십시오 .

타원 곡선 암호화(ECC)

ECC는 RSA에 대한 대체 비대칭 암호화 알고리즘입니다. 마찬가지로 사용자가 공개/개인 키 쌍을 만들 수 있지만 사용되는 알고리즘/절차는 RSA와 다릅니다.

예를 들어, 타원 곡선(아래 참조)의 경우 공식은 y 2 = x 3 + ax + b입니다. 여기서 a와 b는 곡선의 모양을 결정하는 계수입니다.

곡선의 특정 지점에서 시작합니다. 다음으로 함수(도트 함수라고 함)를 사용하여 새 점을 찾습니다. 마지막 지점에 도달할 때까지 점 기능을 반복하여 곡선을 돌아다닙니다. 알고리즘을 살펴보겠습니다.

Elliptic Curve Cryptography5월 17일

시작 지점(A)의 위치와 종료 지점(E)에 도달하는 데 필요한 홉 수를 알고 있으면 종료 지점을 찾기가 매우 쉽기 때문에 이것은 훌륭한 트랩도어 기능 입니다. 반면에 출발점과 도착점의 위치만 알면 거기까지 몇 번의 홉을 거쳤는지 거의 알 수 없습니다. 따라서 이 예에서는 공개 키와 개인 키를 다음과 같이 정의할 수 있습니다.

  • 공개 키: 시작점 A, 끝점 E
  • 개인 키: A에서 E까지의 홉 수

보다 일반적으로 주어진 타원 곡선(아래에 표시된 대로)에 대해 공개 키는 (P, G)입니다. 여기서 P는 시작점이고 G는 끝점입니다(미리 정의된 특수 [constant] EC 포인트), 개인 키는 k입니다(k는 정수이고 P = k * G).

타원 곡선 암호화의 세부 사항may22

Diffie-Hellman 키 교환 알고리즘

Diffie-Hellman 알고리즘은 공용 네트워크를 통해 암호화 키를 교환하는 동안 개인 통신에 사용할 수 있는 공유 비밀을 설정하는 데 사용됩니다.

전통적으로 두 당사자 간의 암호화된 통신에는 신뢰할 수 있는 택배가 전송하는 종이 키 목록과 같은 안전한 물리적 채널을 통해 키를 교환해야 했습니다. Diffie-Hellman 키 교환 방법을 사용하면 서로에 대한 사전 지식이 없는 두 당사자가 안전하지 않은 채널을 통해 공유 비밀 키를 공동으로 설정할 수 있습니다. 그런 다음 이 키를 사용하여 대칭 키 암호를 사용하여 후속 통신을 암호화할 수 있습니다(위에서 설명한 대로).

알고리즘을 단순화하기 위해 다음 이미지를 사용하여 이 암호화 절차를 제시합니다. 시작 부분의 문자 P는 타원 곡선에서 무작위로 선택되고 G는 P의 기본 루트 입니다. a와 b의 개인 키는 무작위로 선택됩니다.

이미지 20

Alice와 Bob은 이제 동일한 비밀 키(3)를 사용하여 이 키를 미리 알지 못해도 둘 사이의 메시지를 암호화할 수 있습니다.

해시 함수

메시지 다이제스트 및 단방향 암호화라고도 하는 해시 함수는 일반 텍스트를 해시 값(또는 다이제스트)이라는 고정 길이 텍스트로 압축합니다. 해시 값을 다시 일반 텍스트로 복구하는 것은 불가능합니다.

이미지 16

해시 함수는 세 가지 보안 속성을 충족해야 합니다.

1) 충돌 방지

해시 함수에 적용된 경우 동일한 출력을 갖는 두 개의 다른 입력 문자열을 찾는 것은 계산상 불가능합니다.

다음과 같이 표현할 수 있습니다.

H(x) = H(y)인 x와 y를 찾는 것은 어렵지만 x는 y와 같지 않습니다.

훨씬 더 큰 입력 공간 t(모든 문자열)에서 고정된 출력 공간(2^256)으로 이동하기 때문에 충돌이 있어야 합니다.

응용 프로그램: 메시지 다이제스트로서의 해시. H(x) = H(y)임을 알고 있으면 x = y라고 가정하는 것이 안전합니다.

예: 이전에 본 파일을 인식하려면 해당 해시를 기억하십시오. 이것은 해시가 작기 때문에 작동합니다.

2) 숨겨진

H(x)가 주어지면 x를 찾는 것은 불가능합니다. 이는 x의 해시된 버전이 주어지면 x를 찾지 못할 것이라고 설명할 수 있습니다.

이미지 18

은폐 속성의 적용: 헌신

이것은 값(숫자)을 가져와서 봉투에 봉인하고 그 봉투를 누구나 볼 수 있는 탁자 위에 올려놓음으로써 봉투에 있는 내용과 그 비밀을 다른 모든 사람에게 약속하는 디지털 비유입니다. 나중에 봉투를 열어 값을 꺼낼 수 있지만 봉인되어 있습니다. 따라서 가치를 부여하고 나중에 공개하십시오.

커밋 알고리즘은 두 가지 작업을 수행합니다.

1. 메시지에 커밋: 커밋과 키의 두 값을 반환합니다. 약속은 탁자 위에 놓인 봉투와 같습니다. 그것을 열려면 열쇠가 필요합니다.

2. 나중에 우리는 누군가에게 원본 메시지를 공개하고 원본과 일치하는지 확인하게 하고 약속과 키를 제공합니다.

3) 퍼즐 친화적

누군가 특정 해시 함수를 목표로 삼고 싶다면 y 값을 얻으십시오. 입력의 일부가 임의로 선택되면 해시 함수 값을 대상으로 하는 다른 값을 찾기가 어렵습니다.

해시 함수의 출력 y가 주어지면 k가 무작위 분포에서 선택되면 k|x의 해시( x와 연결된 k )가 y가 되도록 x를 찾는 것이 불가능합니다. H(k|x) = 와이.

메시지 다이제스트(MD)

MD 제품군은 해시 함수 MD2, MD4, MD5 및 MD6으로 구성됩니다. 인터넷 표준 RFC 1321로 채택되었으며 128비트 해시 함수입니다.

MD5 다이제스트는 전송된 파일의 무결성에 대한 보증을 제공하기 위해 소프트웨어 세계에서 널리 사용되었습니다. 예를 들어 파일 서버는 사용자가 다운로드한 파일의 체크섬을 비교할 수 있도록 파일에 대해 미리 계산된 MD5 체크섬을 제공하는 경우가 많습니다.

보안 해시 함수(SHA)

SHA 제품군은 SHA-0, SHA-1, SHA-2 및 SHA-3의 네 가지 SHA 알고리즘으로 구성됩니다. 같은 가족이지만 구조적으로는 다릅니다.

SHA-0은 1993년 미국 NIST(National Institute of Standards and Technology)에서 발표했습니다. 약점이 거의 없었지만 그다지 인기를 얻지는 못했습니다.

나중에 1995년에 SHA-1은 SHA-0의 약점을 수정하도록 설계되었습니다. 전체 SHA-1 알고리즘에 대한 충돌은 shattered 공격을 사용하여 생성될 수 있으며 해시 함수는 손상된 것으로 간주되어야 합니다.

SHA-2 제품군에는 해시 값의 비트 수에 따라 SHA-224, SHA-256, SHA-384 및 SHA-512의 4가지 추가 SHA 변형이 있습니다. SHA-256 및 SHA-512가 일반적으로 사용됩니다. SHA-512는 SHA-256보다 안전하며 64비트 시스템에서 SHA-256보다 빠른 경우가 많습니다.

2012년 10월 NIST는 새로운 SHA-3 표준으로 Keccak 알고리즘을 선택했습니다. Keccak은 효율적인 성능과 공격에 대한 우수한 저항과 같은 많은 이점을 제공합니다.

RIPEMD

RIPEMD는 RIPEMD, RIPEMD-128 및 RIPEMD-160을 포함하는 암호화 해시 함수 제품군입니다. 이 알고리즘의 256비트 및 320비트 버전도 있습니다. RIPEMD-160은 개선된 버전으로 제품군에서 가장 널리 사용되는 버전입니다.

결론: 실제로 암호화 적용

암호화는 놀라울 정도로 긴 역사를 가지고 있지만 미래에 사용할 수 있는 무한한 가능성이 있는 것 같습니다. 이 프로세스는 현재 암호화폐 및 지갑의 기반입니다.

다양한 종류의 암호화폐 지갑에 대한 자세한 내용은 다음을 참조하십시오. 암호화폐 지갑이란? 초보자 가이드.

실사 및 자체 조사 수행

이 문서에 나열된 모든 예제는 정보 제공의 목적으로만 제공됩니다. 그러한 정보나 기타 자료를 법률, 세금, 투자, 금융, 사이버 보안 또는 기타 조언으로 해석해서는 안 됩니다. 여기에 포함된 어떠한 내용도 Crypto.com 이 코인, 토큰 또는 기타 암호화 자산을 투자, 구매 또는 판매하도록 권유, 추천, 보증 또는 제안을 구성하지 않습니다. 암호화 자산의 구매 및 판매에 대한 수익은 귀하의 관할 구역에서 자본 이득세를 포함한 세금의 대상이 될 수 있습니다. Crypto.com 제품 또는 기능에 대한 모든 설명은 단지 설명을 위한 것이며 보증, 초대 또는 권유를 구성하지 않습니다.

과거 성과는 미래 성과를 보장하거나 예측하지 않습니다. 암호화 자산의 가치는 증가하거나 감소할 수 있으며 구매 가격의 전부 또는 상당한 금액을 잃을 수 있습니다. 암호화폐 자산을 평가할 때 모든 구매는 전적으로 귀하의 책임이므로 조사와 실사를 통해 최선의 판단을 내리는 것이 중요합니다.

태그

cryptocurrencies

cryptography

private and public keys

친구와 공유

가상자산 여정을 시작할 준비가 되셨나요?

단계별 가이드에서 크립토닷컴 계정을 설정하는 방법을 확인하세요

'시작하기' 버튼을 클릭하는 경우 개인 데이터 사용 및 보호 방식에 관한 크립토닷컴의 개인정보보호고지에 동의하는 것으로 간주됩니다.
Mobile phone screen displaying total balance with Crypto.com App

Common Keywords: 

Ethereum / Dogecoin / Dapp / Tokens