본문 바로가기

728x90

Backend

(70)
[정보보안] Authentication중 password 인증 (Authentication) - 비밀번호 인증 같은 것 인가 (Authorization) - 권한 : 읽기 쓰기 권한 등을 정함 - 행위에 대한 제한을 둠 Authentication(인증) 사람을 기계에 인증하는 것 1) 알고 있는 무언가 : 비밀번호 2) 가지고 있는 무언가 : 스마트카드, otp 3) 자신의 무언가 : 지문, faceid 등.. 1. Something you Know (알고 있는 무언가) - password - PIN - Socail security number (사회 보장 넘버 - 미국) - Mother's maiden name (결혼하기 전 성 - 미국) - Date of birth Password - cost가 낮고, smartcard발급 보다 편리하다. - 하지만 취약하..
[정보보안] 암호화 해쉬함수 설계시 고려 사항 avalanche effect를 고려 : 1bit만 변경해도, output의 50%이상 영향을 준다는 것. (block ciphers의 경우와 유사함) Hash function의 용도 1) Authenticaion 2) Message integrity 3) Message fingerprint 4) Data corruption detection 5) Digital signature efficiency 6) Anything you can do with symmetric crypto (대칭키로 사용하는것 대부분 해쉬함수를 사용할 수 있다) EX] 1) Online Auction 온라인에서 경매를 한다고 생각할떄, Alice, bob, charlie가 경매를 참여한다. a,b,c라는 값을 경매하고 싶어 한다. ..
[정보보안] 보안에서 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=[..
[정보보안] 공개 키 기반 구조(Public key Infrasturcture)란? 공개키 암호와의 용도 1) 기밀성유지 - 누구나 접근이 가능한 네트워크 환경에서 필요 - insecure한 데이터를 안전하게 저장하고 싶을때 필요 2) 인증 3) 전자서명 - 무결성, 부인봉쇄기능을 제공 공개키 Notation [] : 개인키 {} : 공개키 private key : [M]alice. public key {M}alice {[M]Alice}Alice = M [{M}Alice]Alice = M PKI(Public Key Infrastructure) PKI란 공개키 암호화와 전자서명을 사용할 수 있게 기반을 마련해둔 것이라고 보면된다. CA는 공개키를 발급해주는 인증기관을 말한다. 공인인증설을 발급해주는 금융결제원이라고 보면된다. CA에서 개인키를 생성하고 개인키를 기반으로 공개키를 만들고 이..
[정보보안] Diffie-Hellman란? 대칭키, 공개키암호의 차이 - 대칭키 암호 : 속도가 빠르다, 키 공유가 필요하다. - 공개키 암호 : 속도가 느리다, 키 공유가 필요없다. 대칭키 암호 예 전화 : 가입자 이동통신사, 대칭키는 유심에 심어져 있다. 카톡 : 가입자 카톡, 대칭키는 분배 정책에 의해 할당되어 있다. 대칭키 암호에서 필요한 키의 개수 Alice, Bob, Carlie : (2 * 3) / 2 = 3 공개키 암호에서 필요한 키의 개수 n명이 존재할 경우 2n = O(n) Diffie-Hellman - key exchange 암호화 키 - 공유된 대칭키를 설정하기 위해 사용한다. - 암호화나, 전자서명을 위한 알고리즘이 아니다 - RSA는 소인수분해의 어려움에 기초하고 있지만, DH는 discrete log problem에 기..
[정보보안] 공개키 암호화인 RSA에 대해서 RSA - 공개키 암호시스템, 암호화 뿐 아니라 전자서명이 가능한 최초의 알고리즘 - 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 의미론적으로 아전한 암호화 시스템을 보장하도록 디자인됨. - 공인인증서 비밀번호 : 개인키를 푸는 암호화키 1. Key-pair generation (키 생성법) 1) p, q : 굉장히 큰 소수 (p != Q), 2) N = P X Q , N 을 modulus 3) (p-1)(q-1)과 서로소에 있는 정수 e를 찾는다. 4) e X d = 1 mod (p-1)(q-1) , e의 곱셈상의 역원인 d를 계산 N,e 를 공개키로 사용 d를 개인키로 사용한다. 예제) 1) 굉장히 큰소수 p, q를 정한다. p = 11, q = 3 2) N을 계산 , N = pq ..
[정보보안] 공개키 암호화의 특징 및 용도 대칭키 암호화 vs 공개키 암호화 1) 대칭키 암호화 : 암호화키 = 복호화키 / permutation, substtiuation [DES, AES, TripleDES ... ] 2) 공개키 암호화 (비대칭키) : 암호화키 != 복호화키 / 수학에 대한 이해가 필요 (ex mod연산) [RSA ...] - 인터넷, 뱅킹, 인터넷 주식 거래 등이 가능 (공인인증서) ~ 이런 것들이 가능하게 된 것이 공개키 암호화 덕이다! - 공인인증서 파일을 들어가보면 공개키, 개인키 이렇게 두개가 있는걸 알 수 있다. - One Way function 단방향 함수 사용 ( ex. 소인수분해 factoring) - 두개의 소수 p, q 가 있을때 N구하는 건 쉽지만, N 이 주어졌을떄 p,q를 찾는건 어렵다. 공개키의 용..
[정보보안] 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(); //디코더 생성..

728x90