728x90

Crypto 16

키유도 함수 PBKDF2

지난 2주간 해외 출장을 다녀와서 그동안 공부를 못했다.그래서 오랜만에 포스팅을 해보려고 한다. 오늘 공부할 내용은 키유도 함수이다. 키 유도 함수란...?키 유도 함수(Key derivation function, KDF)는 NIST에서 승인한 알고리즘 중의 하나로 의사 난수 함수(블록 암호 또는 해시 함수)를 사용하여 키의 길이를 확장하거나 Diffie–Hellman 키 교환의 결과인 그룹 요소를 AES와 함께 사용할 대칭 키로 변환하는 등 필요한 형식의 키를 얻는 데 사용한다.*블록 암호: 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템 키 유도 함수는 여러가지가 있는데 이중에 PBKDF2에 대해서 알아보려고 한다. PBKDF2PBKDF2(Password-Based Key Derivation Fu..

Crypto 2024.05.07

MAC(메시지 인증 코드), CMAC 그리고 HMAC

MAC에 대해 공부하기 위해 구글에서 MAC을 검색해 보았더니 애플의 MAC만 잔뜩 나와서 메시지 인증 코드(Message Authentication Code)라고 검색하였더니 내가 원하는 정보들을 얻을 수 있었다. 그럼 MAC에 대해서 알아보도록 하자. MAC(Message Authentication Code) MAC이란 메시지 인증 코드로 말 그대로 메시지 인증에 쓰이는 정보로 메시지를 받은 사람이 위변조가 되었는지 되지 않았는지를 판단할 수 있다. MAC의 경우에는 무결성과 신뢰성을 보장하지만, 부인 방지는 할 수가 없다. 그 이유로는 MAC의 경우에는 대칭키를 사용해 MAC값을 생성하는데 제 3자가 대칭키를 해킹해 MAC값을 생성하여 메시지를 보낼 수 있기 때문이다. 그럼 MAC 생성/검증 방법을..

Crypto 2024.04.14

난수 생성기, 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

ECC 알고리즘, ECDH와 ECDSA

지난 시간에는 ECC알고리즘에 대해서 알아보았기 때문에 이번에는 이어서 ECC알고리즘의 종류에 대해서 알아보려고 한다. ECC알고리즘 중에서 대표적으로 ECHD와 ECDSA가 사용되는데 이 두 가지 알고리즘의 특징과 용도를 알아보려고 한다. ECDH(Elliptic-curve Diffie–Hellman) 먼저 ECDH에 대해서 알아보기 전에 앞서 Diffie Hellman에 대해서 알아야 한다. Diffie Hellman은 이산대수 문제인 모듈러 지수 연산을 이용하는데, 암복호화나 서명/검증을 하기 위한 것이 아닌 키 교환 알고리즘을 통해 대칭키를 공유하는 데 사용된다. ECDH의 경우 이 Diffie Hellman에서 사용한 모듈러 지수 연산대신 타원 곡선 알고리즘을 통해 키교환을 하는 알고리즘이라고 ..

Crypto 2024.04.10

Hash function 알고리즘의 종류와 특징

Hash function의 알고리즘 종류는 암호학적 Hash fucntion, 비암호학적 Hash function으로 구분한다. 비암호학적 Hash 함수는 대표적으로 CRC32가 있는데 CRC32는 단순 XOR연산이라서 비암호학적 Hash함수에 걸맞게 안전하지 않다. 암호학적 Hash function으로는 아래와 같은 것들이 있다. Hash Algorithm block size (bit) 길이한계 (bit) Hash Length (bit) 보안 강도 (bit) 충돌 발견여부 Message Digest MD5 512 64 128 < 64 o SHA SHA1 512 64 160 < 63 o SHA2 SHA224 512 64 224 112 x SHA256 512 64 256 128 x SHA384 1024 6..

Crypto 2024.04.02

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

AES 알고리즘의 특징 및 Cipher Mode

AES(Advanced Encryption Standard)는 고급 암호화 표준이라는 의미를 갖고 있으며,미국 표준 기술 연구소(NIST)에 의해 연방 정보 처리 표준으로 지정된 암호화 방식이다. AES의 암호화 키의 길이에 따라서 다르게 불리는데암호화 키의 길이가 128비트면 AES-128, 192비트면 AES-192, 256비트면 AES-256이라고 불린다. AES의 특징으로는 대칭형, 블럭 암호화, 양방향 암호화이다.하나의 키로 암호화, 복호화를 모두 할 경우 대칭키 방식의 알고리즘이라고 하는데암호화와 복호화를 모두 같은 키로 하기때문에 절대 노출되서는 안된다. AES의 장점1. 빠른 연산을 요구하는 분야에서 사용하기에 적합하다.    비대칭 알고리즘인 RSA에 비해서 연산속도가 10~1000배 이..

Crypto 2024.03.27

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

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

Crypto 2024.03.26

TLS의 정의 및 이해와 TLS1.2과 TLS1.3의 차이

TLS(Transport Layer Security)는 도청을 방지하기위해 서로 자신을 신뢰할 수 있음을 나타내는 전자 서명이 포함된 인증서를 포함해 통신내용을 암호화한 통신 프로토콜을 의미한다. 우리가 웹브라우저를 이용할 때 주소창에 자물쇠 아이콘이 뜨는것으로 TLS의 적용 여부를 확인할 수 있다. TLS위에 HTTP를 올린 것을 HTTPS(HTTP Secure)라고하는데 이 경우에는 http://가 아닌 https://로 표시한다. 다음으로는 TLS의 버전에 대해 이야기하고자한다. TLS는 1.2 이전 버전의 경우 너무 오래되서 호환을 고려한 부분에 보안상의 이유로 현재 지원하지 않는 경우가 많다. 그래서 요즘 사용되는게 TLS1.2와 TLS1.3이다. TLS1.2와 TLS1.3의 차이를 설명하기에 ..

Crypto 2022.11.03
728x90