KISA

    [SHA-256] 코드 실행 및 해시값 비교 방법

    [SHA-256] 코드 실행 및 해시값 비교 방법

    앞서 KISA에서 제공한 SHA-256의 C 코드와 알고리즘을 분석하였다. 이번에는 해당 코드가 올바르게 작동되는지 확인하기 위해서 코드를 실행해보겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 👇코드에 대해서 자세히 알고싶다면? 아래의 주소로~ [SHA-256] 코드 및 알고리즘 분석 - (1) 이전 포스팅 글에서는 SHA-256이 무엇인지 간단히 알아보았다. 이번에는 KISA에서 제공한 SHA-256의 C/C++ 코드를 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 헤더 파일 여러 가지의 s00m.tistory.com 1. 실행코드 #include "KISA_SHA256.h" #include #include int main() { unsigned char buff..

    [SHA-256] 코드 및 알고리즘 분석 - (5)

    [SHA-256] 코드 및 알고리즘 분석 - (5)

    SHA256_Transform() 함수의 알고리즘에 대해서 이전 포스팅에서 분석하였다. 이번에는 FIPS-180 문서를 통해 더욱 자세히 분석해보려 한다. 먼저 알아둘 것이 있다면 for문을 제외하고는 알고리즘 모양이 같다. 0. 기호 SHA-256 해시 계산 알고리즘에서 사용될 함수 및 수식에 대해서 정의하고 시작하겠다. ROTR: rotate right shift SHR: right shift $Ch\left ( x,y,z \right ) = \left ( x\wedge y \right )\oplus \left ( \bar{x}\wedge z \right )$ $Maj\left ( x,y,z \right ) = \left ( x\wedge y \right )\oplus \left ( x\wedge z..

    [SHA-256] 코드 및 알고리즘 분석 - (4)

    [SHA-256] 코드 및 알고리즘 분석 - (4)

    이제 소스 코드를 분석하는 마지막 글이다. SHA-256 함수의 가장 핵심적인 부분이라고 말할 수 있는 SHA-Transform() 함수를 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 매크로(define) 함수 #define RR(x, n)ROTR_ULONG(x, n) #define SS(x, n)(x >> n) #define Ch(x, y, z)((x & y) ^ ((~x) & z)) #define Maj(x, y, z)((x & y) ^ (x & z) ^ (y & z)) #define Sigma0(x)(RR(x, 2) ^ RR(x, 13) ^ RR(x, 22)) #define Sigma1(x)(RR(x, 6) ^ RR(x, 11) ^ RR(x, 25)) #define RHO..

    [SHA-256] 코드 및 알고리즘 분석 - (3)

    [SHA-256] 코드 및 알고리즘 분석 - (3)

    [SHA-256] 코드 및 알고리즘 분석 - (2) 이전 포스팅 글에서는 SHA-256의 헤더 파일을 분석하였다. 이번에는 KISA에서 제공한 SHA-256의 소스 파일을 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 소스파일 1.1. SHA256_Encrpyt() s00m.tistory.com 👆이전 포스팅 글에서는 SHA-256의 함수 중 SHA256_Encrpyt()와 SHA256_Init()을 분석하였다. 이어서 SHA256_Process()와 SHA256_Transform()을 분석하겠다. 1. 소스파일 1.3. SHA256_Process() void SHA256_Process( OUT SHA256_INFO *Info, IN const BYTE *pszMessage, I..