암호화 (4) 썸네일형 리스트형 [정보보안] 보안에서 Hash function이란? 해시함수중에는 암호학적 해시함수(Cryptographic Hash Function)와 비암호학적 해시함수로 구분되곤 한다. 암호학적 해시함수의 종류로는 MD5, SHA계열 해시함수가 있으며 비암호학적 해시함수로는 CRC32등이 있다. 보안에서 Hash function을 왜사용해야 하나? alice가 M을 전자서명 하여 Bob에게 보낸다. S = [M]alice to bob : M을 alice의 개인키로 암호화하여 M에게 보낸다. Bod은 S값을 alice의 개인키로 푼다. M' ={M}alice Alice bob M M S =[M]alice => M ={S}alice => 이런방식으로 했을때, M이 크면, 계산이 상당히 오래걸린다. 따라서, 해시값으로 서명을 하여 시간을 줄인다. Alice bob S=[.. [정보보안] Java를 활용하여 CBC 모드에서 AES 암복호화 실습 package kr.ac.zerco; import java.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AES { private static final String key = "aesEncryptionKey"; //16Byte == 128bit private static final String initVector = "encryptionIntVec"; //16Byte //인코더 생성 private static final Base64.Encoder enc = Base64.getEncoder(); //디코더 생성.. [정보보안] Block cipher Modes(ECB, CBC, CTR) 이란? Plain text는 여러개의 블럭으로 나누어져있다. 블럭이 128비트라고 하면 각각의 블럭으로 암호화 하는 방식에 대해서는 DES, TripleDES, AES를 통해 알 수 있다. 블럭을 독립적으로 암호화 한다면, 보안에 취약하기 때문에 해결하는 방식이 필요하다. 각각의 블럭마다 새로운 key를 사용하면 key가 너무 많아진다. (좋은 방식이 아님) 각각의 블럭을 같은 key로 독립적으로 암호화하는 방식은 보안상으로 취약하다. => 암호화를 이전 블록에 의존하도록 만드는 방식은 좀더 안전한 방식이 될 수 있다. (Chain을 형성) - CBC방식 => 크기가 블럭보다 작아서 잘린 블럭은 128비트로 인위적으로 채워서 만든다. 1. Electronic Codebook (ECB) Mode - 각각의 블럭을.. [정보보안] Feistel Cipher를 사용하는 DES의 동작 방식 DES에 대해서 알아보기 전에 먼저 Feistel Cipher에 대해서 알아보자. 파이스텔 암호(Feistel cipher) 파이스텔 암호화란? 파이스텔 암호(Feistel cipher)는 블록암호(Block Cipher)의 일종 암호화 방식이 특정 계산 함수의 반복으로 이루어진다. 이 때, 각 과정에 사용되는 함수는 라운드 함수(round function)이라고 부른다. Feistel Cipher는 Block Ciphers를 사용하는 설계 방식, 전반적인 설계 디자인 패턴이라고 보면된다. 파이스텔 암호화 동작 방식 1. F를 라운드 함수로 하고 K0, K1, ... , Kn을 각각 라운드 0, 1, ..., n의 하위 키로 한다. 2. 평문 블록을 두 개의 동일한 조각으로 분할(L0, R0) 3. 각 .. 이전 1 다음