SlideShare a Scribd company logo
1 of 18
암호화 기초
Cryptograph
2
01
메세지전달 – http protocol
client server
http
hacker
3
02
0
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
180,000
200,000
2010년 2011년 2012년 2013년 2014년
개인정보 침해 상담건수
개인정보 침해신고 상담건수
개인정보 침해신고 상담건수
4
03-1
대칭키(비밀키) 암호화
5
03-2
대칭키(비밀키) 암호화 특징
• 암호화할때 사용하는 키와 복호화할때 사용하는 키
가 동일
• 블록암호화
• 장점
• 단점
• 대표 알고리즘
DES, AES, SEED
6
04-1
비대칭키(공개키) 암호화
7
04-2
비대칭키(공개키) 암호화 특징
• 암호화할때 사용하는 키와 복호화할때 사용하는 키
가 다르다.
• 장점
• 단점
• 대표 알고리즘
RSA
8
05-1
해시함수
I
HAVE
A
DREAM
00
01
02
03
04
메시지 해시함수 해시값
9
05-2
해시함수
• 단방향성
해시함수는 단방향 알고리즘이라서 해시값에서 원
본값을 복원할 수 없으므로 안전하게 패스워드를 저
장하기 위해 사용
• 충돌
입력값이 달라도 동일한 결과값이 생성될수 있다.
• 단 입력할수 있는 모든값을 해시함수를 통해서 해
시값을 만들 수 있기 때문에 소금(salt)와 반복
(iteration)을 조절해 준다.
• 종류
MD5, SHA-1, SHA224, HAS-106
10
06-1
MESSAGE MESSAGE
MESSAGE
MAC MAC
MAC
MAC
알고리즘
MAC
알고리즘
MAC
?
=
KEY KEY
메시지 인증코드
sender receiver
11
06-2
메시지 인증코드
• 인증코드를 메시지와 함께 보내면 수신자는 자신이
가진 인증키로 인증코드를 생성하고 이 인증코드와
수신된 인증코드가 동일한지 확인하다. 동일하면 송
신자가 보낸 메시지가 맞다.
• 문제점
• 해결방안
메시지에 순번이나 시간값을 포함하여 전송한다.
12
07
MESSAGE
서명값
해시함수
전자서명
서명 검증
서명
알고리즘
개인키 공개키
해시함수
해시값
서명
알고리즘
해시값
서명값
?
=
MESSAGE
서명값
해시값
MESSAGE
13
08
PKI(Public Key Infrastructure)
• 송신자는 자신의 공개키쌍을 생성한 후 CA(인증기관)에 자신의 공개키를 전달하고 이
공개키는 내 소유라는 것을 증명하게 된다.
• CA는 공개키가 송신자것이 맞는게 검증한 다음 "본 CA는 이 공개키가 송신자의 것
임을 증명하는 바입니다" 형태로 전자서명을 한다. 이렇게 서명된 문서를 인증서라도
한다.
을갑 전자서명
공인인증기관
등록/검증
14
09
SSL(secure Socket Layer)
• 일반적으로 https로 통신하는 사이트
• 브라우저에는 여러 CA의 인증서가 등록되어 있어서 이 인증서를 이용해서 서버가 보내
온 인증서가 유효한지 판단할 수 있다. 유효하지 않은 인증서일 경우 유효하지 않은 인
증서라면 경고 문고가 나온다.
• SSL은 전송계층의 암호화방식이므로 HTTP뿐만 아니라 FTP, Telnet, SMTP등의 응용계
층 프로토콜 종류에 상관없이 사용할 수 있다는 장점이 있다.
15
10-1
JCA(Java Cryptography Architecture)
• 자바 플랫폼에서 JCA라는 암호화 관련 기능을 제공하는 라이브러리이다.
• 위에 대한 구현을 JAVA에서 라이브러리로 제공
// AES 암호화
private String iv = “StudyBySillimJCA";// 16자
private SecretKey secretKey;// 암호화키
/**
* AES 비밀키 생성
* @throws UnsupportedEncodingException
*/
public void createSecretKey() throws UnsupportedEncodingException{
byte[] keyBytes = new byte[16];
byte[] b = this.iv.getBytes("UTF-8");
int len = b.length;
if(len > keyBytes.length)
len = keyBytes.length;
System.arraycopy(b, 0, keyBytes, 0, len);
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
this.secretKey = keySpec;
}
16
10-2
JCA(Java Cryptography Architecture)
/**
* AES 암호화
* @param plainText
* @return
* @throws GeneralSecurityException
* @throws UnsupportedEncodingException
*/
private String aesEncrypt(String plainText) throws GeneralSecurityException,
UnsupportedEncodingException{
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
c.init(Cipher.ENCRYPT_MODE, this.secretKey,
new IvParameterSpec(this.iv.getBytes()));
byte[] encrypted = c.doFinal(plainText.getBytes("UTF-8"));
String enStr = new String(Base64.encodeBase64(encrypted));
return enStr;
}
17
10-3
JCA(Java Cryptography Architecture)
/**
* ASE 복호화
* @param encryptText
* @return
* @throws GeneralSecurityException
* @throws UnsupportedEncodingException
*/
private String aesDecrypt(String encryptText) throws GeneralSecurityException,
UnsupportedEncodingException{
Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
c.init(Cipher.DECRYPT_MODE, this.secretKey,
new IvParameterSpec(this.iv.getBytes("UTF-8")));
byte[] byteStr = Base64.decodeBase64(encryptText.getBytes());
return new String(c.doFinal(byteStr),"UTF-8");
}
감사합니다
URL
http://www.bitcoinnotbombs.com/beginners-guide-to-off-the-record-messaging/
http://en.wikipedia.org/wiki/Message_authentication_code
http://www.boho.or.kr/kor/private/private_03.jsp
http://www.powersolution.com/ssl-what-it-means-how-it-works-whereused/
책
자바와 암호화 – 한빛 미디어

More Related Content

Viewers also liked

Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀beom kyun choi
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료웹스트리밍동영상보안자료
웹스트리밍동영상보안자료시온시큐리티
 
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & iosNAVER D2
 
Information Assurance - Why (and How) We Should Move from Security to Dependa...
Information Assurance - Why (and How) We Should Move from Security to Dependa...Information Assurance - Why (and How) We Should Move from Security to Dependa...
Information Assurance - Why (and How) We Should Move from Security to Dependa...Seungjoo Kim
 
2015 safe net-네트워크암호화 솔루션_시온
2015 safe net-네트워크암호화 솔루션_시온2015 safe net-네트워크암호화 솔루션_시온
2015 safe net-네트워크암호화 솔루션_시온시온시큐리티
 
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)khuhacker
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초beom kyun choi
 
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서StartupAlliance
 
톰캣 #07-host
톰캣 #07-host톰캣 #07-host
톰캣 #07-hostGyuSeok Lee
 
톰캣 #04-환경설정
톰캣 #04-환경설정톰캣 #04-환경설정
톰캣 #04-환경설정GyuSeok Lee
 
톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deploymentGyuSeok Lee
 
톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment톰캣 #05+b-root-deployment
톰캣 #05+b-root-deploymentGyuSeok Lee
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치GyuSeok Lee
 
톰캣 #02-설치환경
톰캣 #02-설치환경톰캣 #02-설치환경
톰캣 #02-설치환경GyuSeok Lee
 
20130329 tomcat ssl
20130329 tomcat ssl20130329 tomcat ssl
20130329 tomcat sslSukjin Yun
 
머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가ETRIBE_STG
 

Viewers also liked (20)

Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료웹스트리밍동영상보안자료
웹스트리밍동영상보안자료
 
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
 
Cms 비교
Cms 비교Cms 비교
Cms 비교
 
Information Assurance - Why (and How) We Should Move from Security to Dependa...
Information Assurance - Why (and How) We Should Move from Security to Dependa...Information Assurance - Why (and How) We Should Move from Security to Dependa...
Information Assurance - Why (and How) We Should Move from Security to Dependa...
 
2015 safe net-네트워크암호화 솔루션_시온
2015 safe net-네트워크암호화 솔루션_시온2015 safe net-네트워크암호화 솔루션_시온
2015 safe net-네트워크암호화 솔루션_시온
 
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
 
톰캣 #07-host
톰캣 #07-host톰캣 #07-host
톰캣 #07-host
 
톰캣 #04-환경설정
톰캣 #04-환경설정톰캣 #04-환경설정
톰캣 #04-환경설정
 
톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment
 
톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치
 
톰캣 #02-설치환경
톰캣 #02-설치환경톰캣 #02-설치환경
톰캣 #02-설치환경
 
20130329 tomcat ssl
20130329 tomcat ssl20130329 tomcat ssl
20130329 tomcat ssl
 
머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가
 
Objc literals
Objc literalsObjc literals
Objc literals
 

Similar to 암호화 기초

Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fSeungmin Shin
 
HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션Lee Geonhee
 
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명Seongho Lee
 
Security framework2
Security framework2Security framework2
Security framework2skccsocial
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해InGuen Hwang
 
Sua 정보보호관리체계 cissp_암호학_강의교안
Sua 정보보호관리체계 cissp_암호학_강의교안Sua 정보보호관리체계 cissp_암호학_강의교안
Sua 정보보호관리체계 cissp_암호학_강의교안Lee Chanwoo
 
Project turtle ship
Project turtle shipProject turtle ship
Project turtle shiphanbeom Park
 
이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)Colin Chae
 
ShieldOne SIG565 - SSL VPN Spec.
ShieldOne SIG565 - SSL VPN Spec.ShieldOne SIG565 - SSL VPN Spec.
ShieldOne SIG565 - SSL VPN Spec.Yong-uk Choe
 
2015.8.12 웹 보안 이슈와 보안 공학의 중요성
2015.8.12 웹 보안 이슈와 보안 공학의 중요성2015.8.12 웹 보안 이슈와 보안 공학의 중요성
2015.8.12 웹 보안 이슈와 보안 공학의 중요성Chanjin Park
 
202003 AWS ISV/DNB KMS_WAF_webinar
202003 AWS ISV/DNB KMS_WAF_webinar202003 AWS ISV/DNB KMS_WAF_webinar
202003 AWS ISV/DNB KMS_WAF_webinarYijeong Cho
 
현대암호화 통신에서 Ca인증서의 위험성과 중요성
현대암호화 통신에서 Ca인증서의 위험성과 중요성현대암호화 통신에서 Ca인증서의 위험성과 중요성
현대암호화 통신에서 Ca인증서의 위험성과 중요성GooBeom Jeoung
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취NAVER D2
 
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩GDGCampusKorea
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Manjong Han
 
NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101tcaesvk
 
이용자 입력단 보안솔루션 (Non-ActiveX 기반)
이용자 입력단 보안솔루션 (Non-ActiveX 기반) 이용자 입력단 보안솔루션 (Non-ActiveX 기반)
이용자 입력단 보안솔루션 (Non-ActiveX 기반) 시온시큐리티
 

Similar to 암호화 기초 (20)

Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-f
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션HTTPS를 이용한 챗봇 웹 어플리케이션
HTTPS를 이용한 챗봇 웹 어플리케이션
 
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
HTTP와 HTTPS의 차이 그리고 SSL에 대한 설명
 
OWASP TOP 10 in 2007
OWASP TOP 10 in 2007OWASP TOP 10 in 2007
OWASP TOP 10 in 2007
 
HTTPS
HTTPSHTTPS
HTTPS
 
Security framework2
Security framework2Security framework2
Security framework2
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 
Sua 정보보호관리체계 cissp_암호학_강의교안
Sua 정보보호관리체계 cissp_암호학_강의교안Sua 정보보호관리체계 cissp_암호학_강의교안
Sua 정보보호관리체계 cissp_암호학_강의교안
 
Project turtle ship
Project turtle shipProject turtle ship
Project turtle ship
 
이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)
 
ShieldOne SIG565 - SSL VPN Spec.
ShieldOne SIG565 - SSL VPN Spec.ShieldOne SIG565 - SSL VPN Spec.
ShieldOne SIG565 - SSL VPN Spec.
 
2015.8.12 웹 보안 이슈와 보안 공학의 중요성
2015.8.12 웹 보안 이슈와 보안 공학의 중요성2015.8.12 웹 보안 이슈와 보안 공학의 중요성
2015.8.12 웹 보안 이슈와 보안 공학의 중요성
 
202003 AWS ISV/DNB KMS_WAF_webinar
202003 AWS ISV/DNB KMS_WAF_webinar202003 AWS ISV/DNB KMS_WAF_webinar
202003 AWS ISV/DNB KMS_WAF_webinar
 
현대암호화 통신에서 Ca인증서의 위험성과 중요성
현대암호화 통신에서 Ca인증서의 위험성과 중요성현대암호화 통신에서 Ca인증서의 위험성과 중요성
현대암호화 통신에서 Ca인증서의 위험성과 중요성
 
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
[2017 Incognito] Hack the AIR;카페에서 ARP 스푸핑을 통한 세션 탈취
 
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
[Devfest Campus Korea 2021]보안과 함께 하는 개발, 시큐어코딩
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
 
NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101
 
이용자 입력단 보안솔루션 (Non-ActiveX 기반)
이용자 입력단 보안솔루션 (Non-ActiveX 기반) 이용자 입력단 보안솔루션 (Non-ActiveX 기반)
이용자 입력단 보안솔루션 (Non-ActiveX 기반)
 

암호화 기초