SHA-256

    [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에대해 ..

    SHA-256 개념 간단 설명

    SHA-256 개념 간단 설명

    SHA-256 코드를 분석하기 이전에 SHA-256이 무엇인지 간단히~ 알아보겠다. SHA-256이란? 입력 메시지를 크기가 512bit인 블록 단위로 나누고 압축함수(c)를 실행하여 256bit의 해시값을 도출하는 해시함수 알고리즘이다. 여기서 IV는 초기벡터로, 첫 번째 메시지 블록(M1)을 압축함수에 실행할 때 사용되는 첫 번째 해시값(H1)이 되어준다. 그렇다면 해시함수는 무엇일까? 임의의 길이를 가진 메시지를 해시함수에 입력하면 256bit와 같은 고정 길이의 해시값을 출력한다. 해시값을 다시 해시함수에 넣기 전인 원래의 메시지로 돌아갈 수 없다는 점이 장점이다. 즉, 암호문(해시값)으로부터 평문(입력값)을 얻을 수 없다. (예측 불가능성) 자세한 내용은 시간이 되면 추후에 글을 쓰도록 하겠다~..