728x90

hash 5

난수 생성기, PRNG와 TRNG

Crypto 관련 분야를 공부하다 보면 임의의 수, 좌표 등을 생성하거나 지정한다. 이때 난수생성기(Random Number Generator)를 사용하여 임의의 수를 생성하는데 주로 PRNG와 TRNG를 사용한다. 그럼 이 난수생성기를 통해서 하는 것들은 무엇일까...? 그건 아래와 같다. 난수 생성기의 용도 1. 대칭키 또는 개인키 생성 2. Salt 생성 3. IV(Initial Vector), CTR(Counter) 생성 *Salt: password, data 등을 hash 처리하는 단방향 함수의 추가 입력으로 사용되는 랜덤 데이터 *IV: 대칭키 암호화에서 첫 블록을 암호화할 때 사용되는 값 다음으로 난수와 관련된 기본 개념들을 알아보자. 무작위성(Randomness) 수열이 특정한 패턴이 없거..

Crypto 2024.04.11

Hash Function의 특징과 용도

지난 글에서 서명검증을 다루면서 서명검증에서 Hash 알고리즘이 언급되었다. 그래서 Hash에 대해 정확히 알아볼 필요가 있어서 이번에는 Hash에 대해서 다뤄보려고 한다. Hash Function(이하 Hash)란...? 임의의 길이의 데이터를 고정된 길이의 데이터로 변환한 값을 Hash라고 한다. Hash는 주로 Checksum(체크썸)에 사용되는 단방향 함수(출력값으로 입력값을 유추하지 못함)인데 암호 알고리즘들이랑 다르게 Hash는 데이터의 위변조가 있는지 없는지 무결성을 검증하기 위해서 사용한다. 그래서 Hash의 경우 특정 Message를 보낼 때 Hash 값을 같이 보내게 되는데 이 Message의 위변조가 일어났는지 확인을 하기 위한 용도로 사용된다. 예를 들어 안녕하세요 라는 messag..

Crypto 2024.04.01

공개키 암호 시스템, RSA 알고리즘의 암복호화와 전자서명

이전에 RSA 암호 알고리즘에 대해서 작성을 한 게 있었는데, 내용이 너무 빈약하고 정보전달력이나 중요한 내용들이 많이 빠진 것 같아서 이번에 다시 내용정리를 해보려고한다. RSA 암호 알고리즘이란 공개키 암호시스템으로 암/복호화도 가능하고 전자서명에도 이용된다. RSA는 공개키(Public -key)와 개인키(Private-key 또는 비밀키) 두 개의 키를 사용하는데 공개키는 말 그대로 누구에게나 다 공개되는 키이며 개인키는 특정 사용자만 사용하는 키를 말한다. 그런데 RSA의 경우 공부하면서 알게 된 건데 특이한 점이 있다 아래 표와 같이 암복호화에서는 공개키를 암호화할 때 사용하고 개인키로 복호화를 하지만 서명검증을 할 때는 개인키로 암호화하고 공개키로 복호화한다. 공개키 개인키 암/복호화 암호화..

Crypto 2024.03.29

AUTOSAR 그리고 표준 암호화 알고리즘

이직을 하게 되면서 HSM을 다루는 업무를 하게 되었고, 기본에 충실하지 못한 상태에서 회사업무만 하다보니 회사업무에 조금씩 어려움을 겪기 시작하였다. 그래서 다시 퇴근후 공부를 하기로 마음먹었다... 당분간 공부할 분야는 암호화 알고리즘인데, 암호화 알고리즘 중 AUTOSAR에서 정의한 표준 알고리즘을 위주로 공부해보려고 한다. 우선 AUTOSAR가 무엇인지 간단히 설명하자면, 차량 전장부품용 임베디드 소프트웨어의 사용이 많아지면서 저마다의 입맛에 맞춰 개발을 하다 보니 딱히 정해진 '표준'이라는 게 없었다. 그래서 등장한 게 AUTOSAR 플랫폼이다. AUTOSAR 플랫폼을 따른다면 아래와 같은 암호화 알고리즘들이 사용가능해야 한다. Algorithm Key Length(bits) Mode note ..

Crypto 2024.03.26

HASH에 관하여

HASH란 메시지의 위변조를 방지하기위해 데이터를 읽어 어떠한 값을 출력하는 것을 말한다. 이러한 역할을 수행하기위해 HASH함수를 구현해야 한다. HASH 함수는 다양하게 만들 수 있는데 예를 들어 test라는 문구가 있다고 가정해보자. 아스키표를 참조하면 0x74 + 0x65 + 0x73 + 0x74 = 0x01c0(448)이라는 값이 나온다. 여기서 256으로 나눠서 나머지 값을 활용할 수도 있다. 만드는 방법은 다양하다. 하지만 이렇게 단순한 방법으로 만들게 되면 위변조에 취약하다. 따라서 HASH함수의 경우 아래의 조건을 충족해야 한다. 1. HASH함수는 메시지의 위변조를 막아야 하며, TLS의 경우 메시지를 주고 받을 때마다 호출된다. 따라서 속도가 빨라야 한다. 2. 메시지를 바꿨을 경우 ..

Crypto 2022.11.03
728x90