SHA256

    [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..

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

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

    이전 포스팅 글에서는 SHA-256의 헤더 파일을 분석하였다. 이번에는 KISA에서 제공한 SHA-256의 소스 파일을 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 소스파일 1.1. SHA256_Encrpyt() void SHA256_Encrpyt( IN const BYTE *pszMessage, IN UINT uPlainTextLen, OUT BYTE *pszDigest ) { SHA256_INFO info; SHA256_Init( &info ); SHA256_Process( &info, pszMessage, uPlainTextLen ); SHA256_Close( &info, pszDigest ); } 크게 위의 그림과 같이 SHA256_Encrpyt() 함수가 진행된다. ①..

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

    이전 포스팅 글에서는 SHA-256이 무엇인지 간단히 알아보았다. 이번에는 KISA에서 제공한 SHA-256의 C/C++ 코드를 분석하겠다. (전체 코드는 KSIA에서 다운로드할 수 있습니다.) 1. 헤더 파일 여러 가지의 매크로 함수를 사용하였다. 기본적으로 #define, #if, #ifdef, #ifndef, #undef 가 쓰인다. 1️⃣#if는 c언어에서 쓰이는 if와 기능이 똑같고, 2️⃣#ifdef는 무엇이 정의되어있는지에 대한 if 3️⃣#ifndef는 무엇이 정의되어있지 않을 때에 대한 if 4️⃣#undef는 해당 매크로 삭제 더보기 C언어 #define, #if , #ifdef , #ifndef란 안녕하세요. 오늘은 전처리기 #define, #if, #ifdef, #ifndef에대해 ..