Computer Science/Security

RSA RSA 암호화 알고리즘은 대표적인 공개키 암호화 기법 중 하나입니다. 송신자와 수신자는 모두 n과 e를 알고 있어야하고, 오직 수신자만이 d를 가집니다 키 생성 RSA 알고리즘에서는 먼저 공개키와 개인키를 생성해야 합니다. 소수 p와 q를 무작위로 선택합니다. n = pq를 계산합니다. n은 매우 큰 수이며, 공개키와 개인키의 생성에 사용됩니다. φ(n) = (p-1)(q-1)을 계산합니다. φ(n)은 오일러 피 함수(Euler’s totient function)로 불립니다 또한, n보다 작은 양의 정수 중 n과 서로소인 수의 개수를 나타냅니다. 1 < e < φ(n)를 만족하는 e를 선택합니다. e는 공개키의 일부로 사용됩니다. d * e ≡ 1 (mod φ(n))을 만족하는 d를 계산합니다. ..
공개 키 오늘은 공개 키 암호의 기본적인 개념을 살펴보고 키 분배 문제에 대한 준비 과정을 알아보자 공개 키 알고리즘은 수학적 함수에 근거해서 만들었다. 서로 다른 두 개의 키를 이용하는 비대칭 방식 두 개의 키를 사용하기 때문에 기밀성과 키 분배, 인증 분야에서 성능이 뛰어나다. 공개 키 암호 시스템은 크게 아래 3 분류로 나눌 수 있다. 암호화/복호화 - 공개키로 메시지를 암호화 디지털 서명 - 자신의 개인키로 복호화 키 교환 - 세션 키 교환을 위해 상호 협조 공개 키 암호에 대한 오해 공개 키 암호가 관용 암호보다 해독에 있어 안전하다 암호 시스템의 안전도는 키의 길이와 암호를 뚫는데 필요한 계산량에 따라 달라진다 근본적으로 공개 키 암호화 관용 암호 중 어느 것이 더 암호 해독에 더 강하다고 말..
블록 암호 기반 MAC 블록 암호를 이용해서 MAC를 생성하는 몇 가지 방법에 대해서 알아보자 암호 - 기반 메시지 인증 코드(Cipher-based Message Authentication Code)(CMAC) 암호-기반 메시지 인증 코드(CMAC)의 생성 과정은 다음과 같습니다. 메시지 M을 n개의 블록으로 나눕니다. 각 블록을 M1, M2, …, Mn으로 표기합니다. CMAC 알고리즘에 사용할 대칭키 K와 부속키 K1을 설정합니다. K는 k 비트의 암호키이며, K1은 n 비트의 부속키입니다. CMAC 알고리즘에서 사용할 암호화 함수를 선택합니다. AES나 3DES 암호화 함수 중 하나를 선택하며, 이에 따라 블록 크기인 b도 결정됩니다. AES의 경우 b는 128비트, 3DES의 경우 b는 64비트..
HMAC HMAC(Hierarchical Message Authentication Code)은 키를 활용한 메시지 인증 방식으로, 메시지 무결성을 보호하는 데 사용됩니다. HMAC은 일반적으로 대칭키를 사용하며, 주어진 입력 메시지와 키를 이용하여 MAC(Message Authentication Code)을 생성합니다. HMAC은 다음과 같은 구성 요소를 사용하여 MAC을 생성합니다. 해시 함수 (Hash function) : SHA-1, SHA-256 등과 같은 해시 함수를 사용합니다. 내부 패딩 (Inner padding) : 0x36과 같은 내부 패딩 값을 사용하여 해시 함수를 적용하기 전 입력 메시지를 처리합니다. 외부 패딩 (Outer padding) : 0x5C와 같은 외부 패딩 값을 사용하여..
메시지 다이제스트 메시지 다이제스트(message digest)는 데이터 덩어리(예: 메시지, 파일)의 고유한 고정 길이의 해시 값입니다. 이 값은 원본 데이터의 요약된 형태로, 원본 데이터의 변경 없이 동일한 메시지 다이제스트를 생성합니다. 메시지 다이제스트는 암호학에서 해시 함수를 사용하여 생성되며, 이러한 해시 함수는 보안 및 암호화와 관련된 다양한 애플리케이션에서 사용됩니다. 메시지 다이제스트의 몇 가지 주요 특징과 용도는 다음과 같습니다: 데이터 무결성 데이터를 변경하면 메시지 다이제스트도 변경되므로, 전송된 데이터의 무결성을 검증할 수 있습니다. 메시지 다이제스트를 사용하여 원본 데이터가 변경되지 않았는지 확인할 수 있습니다. 고유성 원본 데이터에 대해 생성된 메시지 다이제스트는 고유하며, 다..
SHA 안전 해시 함수 최근 가장 널리 사용되는 해시 함수는 SHA(안전 해시 알고리즘)이다. 본 글에서는 SHA 512를 기준으로 해시 함수를 설명 할 것이다. SHA 512는 무엇인가 입력 메시지 크기 : 최대 길이가 2^128 비트 이하인 메시지 출력 : 512 비트 해시 처리 단위 : 1024 비트 블록 해시 과정 : 메시지부터 다이제스트까지 생성 과정 패딩 비트 붙이기 메시지 패딩은 메시지의 길이가 블록 크기(여기서는 1024비트)의 배수가 아닐 때 추가되는 비트를 말합니다. 이 패딩 비트는 비트 1로 시작하고, 나머지는 0으로 채워져 있습니다. 길이(length) 붙이기 SHA 알고리즘의 길이 붙이기 단계에서는 메시지의 원래 길이를 128 비트 정수로 나타내어 메시지 끝에 붙입니다. 이 때, ..
단순 해시 함수 가장 간단한 형태의 해시 함수를 만드는 방법은 각 블록의 비트별 XOR을 하는 것입니다 단순 해시 함수 만드는 방법 단순 함수 생성 방정식은 위와 나온 것과 같다. 즉 각 비트를 미리 준비된 블록의 값에 XOR 함으로써 해시 함수를 생성하는 것이다. 각 비트의 자리별로 패리티를 계산함으로써 해시 함수를 생성하는 방법인데, 이를 세로 덧붙임 검사(vertical XOR)라고 한다. 이 방식은 메시지 블록을 32비트(4바이트) 단위로 분할하고, 각 단위별로 비트들을 XOR 연산하여 하나의 해시 값을 생성합니다. 이때, 메시지 블록의 크기가 해시 값의 크기보다 작을 경우에는 덧붙임 검사(padding)을 수행합니다. 이 과정에서 메시지 블록 마지막에 1비트를 추가하고, 남은 비트를 0으로 채워..
안전 해시 함수 일방향 해시 함수 혹은 안전 해시 함수는 메시지 인증과 디지털 서명에서 매우 중요한 함수이다. 안전 해시 함수는 암호학적으로 안전한 해시 함수로, 일방향성, 프리이미지 저항성, 충돌 저항성의 조건을 만족하고 보안성이 검증된 함수를 말합니다 해시 함수 요건 해시 함수의 목적은 파일 메시지 데이터 블록에 대한 fingerprint를 만드는 것이다. 메시지 인증에 사용하기 위해서 해시 함수 H는 다음과 같은 속성이 있어야 한다 H는 어떠한 크기의 데이터 블록에도 적용 될 수 있어야 한다. H는 일정한 길이의 출력을 생성해야 한다. H(x)는 어떤 x에 대해서도 계산이 쉬워야 하고, 하드웨어적이나 소프트웨어적으로 구현을 실제로 할 수 있어야 한다 일방향 성질(프리이미지 저항성) : H(x) = ..
메시지 인증 방법 메시지 인증이란 통신 양쪽으로 하여금 받은 메시지가 진짜임을 확인하도록 해주는 절차를 말한다. 인증에서 중요한 두가지는 무결성과 기밀성이다. 메시지 인증 : 메시지 내용이 변경되지 않았다는 것을 확인 근원지 인증 : 올바른 송신자 확인 관용 암호를 이용한 인증 관용 암호는 대칭 키 암호 기법의 하나이다. 대칭키 방식의 암호화라 생각하면 이해가 수월하다 송신자와 수신자가 동일한 키를 가지고 있다고 가정하자 해당 대칭키를 가지고, 메시지에 오류 감지 코드와 순서 번호,타임 스탬프를 포함시켜 수신자에게 전송한다 수신자는 메시지가 변경 되지 않았고, 순서가 달라지지 않았음을 알 수 있다. 또한 네트워크를 지나는 동안 소요 되는 시간 외에 고의적으로 지연 되지 않았음을 확인 할 수 있다. 시사점..
암호 블록 운용 모드 대칭 블록 암호에서는 한 번에 한 블록씩 처리한다. 블록 암호를 다양하게 사용하기 위해 NIST에서 5가지 운용 모드를 정의하였다 전자 코드북 모드(ECB) 이 모드에서는 평문을 고정된 크기의 블록으로 나누고, 각 블록을 암호화하여 암호문을 생성합니다. 암호화된 블록은 서로 독립적으로 처리되므로, 동일한 평문 블록이라도 암호문에서의 결과 값은 항상 동일합니다. 이러한 특성으로 인해, ECB 모드는 블록 단위의 패턴이나 구조를 쉽게 파악할 수 있어 보안성이 낮은 모드로 간주됩니다. ECB 모드는 각 블록이 독립적으로 처리되므로, 암호화된 블록의 순서를 바꾸어도 평문을 복원할 수 있습니다. 이러한 특성으로 인해, ECB 모드는 데이터 무결성을 보장하지 않습니다. ECB 모드에서 동일한 ..
berom
'Computer Science/Security' 카테고리의 글 목록 (6 Page)