현대 암호학 42

[현대 암호학] 08-5. 일방향 해시 함수의 SHA-512

5. 일방향 해시 함수의 SHA-512 SHA-512 구조 입력: 최대 2128 bits 이하 메시지 출력: 512 bits(64 bytes) 메시지 다이제스트 입력 데이터는 길이 1024비트 블록으로 처리 SHA-512 처리 단계 패딩 비트 붙이기 길이 붙이기 MD 버퍼 초기화 1024-비트(128-워드)블록 메시지 처리 출력 SHA-512의 안정성 2017년까지 약점 발견된 것 없음 확률적 안정성 * 약 충돌성: 동일한 메시지 다이제스트를 갖는 두 개의 서로 다른 메시지를 찾는 난이도 연산 수행 수는 2256 * 강 충돌성: 주어진 다이제스트와 동일한 다이제스트를 갖는 메시지를 찾는 난이도 연산 수행 수는 2512 SHA-3(Secure Hash Algorithm) 이론적 공격방법이 알려져 버린 SH..

현대 암호학 2021.06.30

[현대 암호학] 08-4. 일방향 해시 함수의 SHA-1

일방행 해시 함수 SHA-1 개요 SHA-1 구조 입력: 최대 264 bits 미만 메시지 출력: 512 bits 메시지 다이제스트 => 160 bits 해시값 블록 크기 : 512 bits SHA-1 처리 단계 패딩(Padding) W0 ~ W79 계산 블록 처리 단계 1 ~ 단계 80 처리 패딩(Padding) 목적: 512비트 블록 만들기(1추가 + 데이터 크기 표시) 패딩(Padding)? 메시지 뒤에 여분의 데이터를 부가하여 메시지의 길이가 512비트의 정수배가 되도록 하는 것 패딩의 예 입력: Hello. (6바이트(48비트))의 메시지 - ASCII 코드로 부호화하여 2진수로 표현하면 - 여기에 1을 붙인다. H e l l o . 01001000 01100101 01101100 0110110..

현대 암호학 2021.06.30

[현대 암호학] 08-2. 일방향 해시 함수의 응용 예 / 3. 일방향 해시 함수의 예

2. 일방향 해시 함수의 응용 예 소프트웨어의 변경 검출 자신이 입수한 소프트웨어가 변경 되었는지를 확인하기 위해 일방향 해시 함수를 사용 (예) md5sum, sha512sum, ... (예) httpd.apache.org/download (예) 포렌식에서 파일 무결성 확인 * 포렌식 보고서 내용 중 일부 내용(구글 검색: "포렌식 보고서") 패스워드를 기초로 한 암호화 패스워드를 기초로 한 암호화(Password based Encryption, PBE)에서 사용 PBE에서는 패스워드와 솔트(salt)를 섞은 결과의 해시 값을 구해 그것을 암호화 키로 사용 패스워드 사전공격(Dictionary attack) 방어 (예) 리눅스(SHA512)/윈도우 시스템(NTLM)의 encrypted password ..

현대 암호학 2021.06.30

[현대 암호학] 08-1.일방향 해시 함수

1. 일방향 해시 함수 파일의 진위 어제 저장한 파일과 오늘의 파일 비교 밤새 맬로리가 파일을 변경했는지 어떤지를 조사하고 싶다. 무결성(Integrity) 파일이 변경되지 않았음 파일의 지문(fingerprint) 범죄 수사에서 지문을 채취하는 것과 마찬가지로 앨리스가 만든 파일의 "지문"을 채취할 수 없을까? 파일 전체를 비교하는 대신에 작은 지문만을 비교하는 것만으로도 무결성을 확인할 수 있다면 매우 편리 일방향 해시 함수(One-way hash function)란? 일방향 해시 함수는 바로 파일의 지문을 재취하는 기술 일방향 해시 함수가 만들어내는 "해시 값"(다이제스트)은 메시지의 지문에 해당 일방향 해시 함수(One-way hash function) 입력과 출력이 각각 1개씩 있다. 입력은 메..

현대 암호학 2021.06.30

[현대 암호학] 07-4. 기타암호 - 동형 암호

4. 기타암호 - 동형 암호 동형 암호 versus 블록 체인 versus 양자 암호 [참고] 4세대 암호체계 - 동형암호 http://wiki.hash.kr/index.php/동형암호 보도자료 - 암호기술혁명 - 동형암호 - IMDARC - 서울대학교 http://imdarc.math.snu.ac.kr/board_apmJ27/3058 동형암호 개념 동형암호(Homomorphic Encryption) 암호화된 상태에서도 덧셈, 곱셈 등을 보존하여 머신러닝 및 딥러닝이 가능한 공개키 암호기술 "격자 기반 암호"의 한 종류이다. 격자기반 암호란 수학계에서 절대 답을 찾을 수 없다고 알려진 "격자 문자(Lattice Problem)를 응용한 암호를 말한다. 동형암호는 정보를 암호화한 상태에서 각종 연산을 했을..

현대 암호학 2021.06.29

[현대 암호학] 07-2. 강한 하이브리드 암호 시스템이란 / 3. 암호 기술의 조합

2. 강한 하이브리드 암호 시스템이란 의사 난수 생성기(Random Number Generater) 강한 하이브리드 암호 시스템이란? 하이브리드 암호 시스템의 구성요소 의사난수 생성기 => 세션키 대칭 암호 => 메세지 암호화 공개 키 암호 => 세션키 암호화 각각의 기술 요소의 강도 강도의 밸런스 의사 난수 생성기(PRNG) 세션 키 생성에 사용 품질이 나쁘면 만들어지는 세션 키를 공격자가 추측하게 될 위험성 세션 키 중 일부 비트라도 추측되지 않도록 주의 대칭 암호 메세지 암호화에 사용 강한 대칭 암호 알고리즘을 사용 => 대칭 암호 알고리즘(EX: AES) 충분히 길이가 긴 키 사용 => 키 길이 적절한 블록 암호 모드 사용 => 블록 암호 모드(EX: EAX) 공개키 암호 세션 키 암호화에 사용 ..

현대 암호학 2021.06.29

[현대 암호학] 07-1. 하이브리드 암호 시스템

1. 하이브리드 암호 시스템 하이브리드 암호 시스템 = 대칭 암호 + 비대칭 암호 대칭키 암호방식과 공개키 암호방식 비교 항목 대칭키 암호화 방식 공개키 암호화 방식 키의 상호관계 암호화키 = 복호화키 암호화키 ≠ 복호화키 암호화 키 비밀(secret key) 공개(public key) 복호화 키 비밀(secret key) 비밀(private key) 암호 알고리즘 비밀/공개 공개 대표적인 예 AES RSA 비밀 키 전송 필요 불필요 키 개수 n(n-1)/2 2n 안전한 인증 곤란 용이 암호화 속도 고속 저속 경제성 높다 낮다 전자서명 복잡 간단 대칭 암호 기밀성을 유지한 통신이 가능 키 배송 문제 해결이 필요 공개 키 암호 키 배송 문제를 해결할 수 있음 하이브리드 암호 시스템 공개 키 암호의 2가지 ..

현대 암호학 2021.06.29

[현대 암호학] 06. 실습(2)

[실습] ECDSA 사용한 전자서명 구현하기 DSA(Digital Signature Authentication) 광범위한 공개 키 서명 알고리즘이다. 보안은 이산 로그 문제(DLP)를 기반으로 한다. DSA key 생성(private key, public key) 생성 DSAKeyGen.py from Crypto.PublicKey import DSA from Crypto.Signature import DSS from Crypto.Hash import SHA256 # 새로운 DSA key 생성 prikey = DSA.generate(2048) print(prikey) pubkey = prikey.publickey().export_key() print(pubkey) b'-----BEGIN PUBLIC KEY..

현대 암호학 2021.06.28

[현대 암호학] 06. 실습(1)

[실습] RSA 공개키/개인키 생성하기 RSA 공개키 암호 구현하기 공개키/개인키가 생성되는 과정을 구현해 보자. PyCryptodome에서 제공되는 대표적인 공개키 암호 알고리즘 : DSA, ElGamal, RSA, ECDSA DSA, ECDSA : 공개키 서명 Elgamal, RSA : 공개키 암호 + 공개키 서명 PyCryptodome 키 객체 생성 방법 - 4가지 비대칭 키는 python 객체로 표시된다. 각 객체는 개인키 또는 공개키가 될수 있다. (1st) generate() : Crypto.PublicKey.RSA.generate() 키가 무작위로 생성된다.(ex: RSA.generate(2048)) (2nd) import_key() : Crypto.PublicKey.RSA.import_ke..

현대 암호학 2021.06.28

[현대 암호학] 06-7. 기타 공개키 암호 / 8. 공개 키 암호에 관한 Q&A

7. 기타 공개키 암호 ElGamal 방식 ElGamal 방식은 Taher ElGamal에 의한 공개 키 알고리즘 RSA는 소인수분해의 어려움을 이용 ElGamal 방식은 이산대수를 구하는 것이 어렵다는 것을 이용 ElGamal 방식 암호화에서는 암호문의 길이가 평문의 2배가 되어 버린다는 결점 GPG(GnuPG)에서 사용 Rabin 방식 Rabin 방식은 M.O. Rabin에 의한 공개 키 알고리즘 Rabin 방식은 mod N으로 평방근을 구하는 것이 어렵다는 사실을 이용 Rabin 방식 공개 키 암호의 해독은 소인수분해 정도로 어렵다는 것이 증명 타원곡선 암호 타원 곡선 암호(ECC, Elliptic Curve Cryptosystems)는 최근 주목받고 있는 공개 키 암호 RSA에 비해 키의 비트 수..

현대 암호학 2021.06.28