ݺߣ

ݺߣShare a Scribd company logo
암호화 기초
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/
책
자바와 암호화 – 한빛 미디어
Ad

Recommended

암호화 기법.Ver2
암호화 기법.Ver2
Sein Jang
Pki (Public Key Infrastructure) 에 대한 쉬운 설명
Pki (Public Key Infrastructure) 에 대한 쉬운 설명
Crazia Wolfgang
공인인증서 크래킹 - Inc0gnito 2015
공인인증서 크래킹 - Inc0gnito 2015
Hajin Jang
해시암호와 비밀번호 - 9th KUSISWALL
해시암호와 비밀번호 - 9th KUSISWALL
Hajin Jang
암호화 이것만 알면 된다.
암호화 이것만 알면 된다.
KwangSeob Jeong
해킹과 보안
해킹과 보안
창열 최
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
[2013 CodeEngn Conference 09] Park.Sam - 게임 해킹툴의 변칙적 공격 기법 분석
GangSeok Lee
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
[NDC07] 게임 개발에서의 클라이언트 보안 - 송창규
ChangKyu Song
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
beom kyun choi
MVP 패턴 소개
MVP 패턴 소개
beom kyun choi
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
beom kyun choi
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료
싵Ә시큐리티
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
NAVER D2
Cms 비교
Cms 비교
넥스트이온 (Nextaeon)
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년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
khuhacker
파이썬 언어 기초
파이썬 언어 기초
beom kyun choi
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
StartupAlliance
톰캣 #07-host
톰캣 #07-host
GyuSeok Lee
톰캣 #04-환경설정
톰캣 #04-환경설정
GyuSeok Lee
톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment
GyuSeok Lee
톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment
GyuSeok Lee
톰캣 #05-배치
톰캣 #05-배치
GyuSeok Lee
톰캣 #02-설치환경
톰캣 #02-설치환경
GyuSeok Lee
머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가
ETRIBE_STG
Objc literals
Objc literals
ETRIBE_STG
Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-f
Seungmin Shin
게이트단의 보안
게이트단의 보안
Choonghyun Yang

More Related Content

Viewers also liked (20)

Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
beom kyun choi
MVP 패턴 소개
MVP 패턴 소개
beom kyun choi
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
beom kyun choi
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료
싵Ә시큐리티
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
NAVER D2
Cms 비교
Cms 비교
넥스트이온 (Nextaeon)
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년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
khuhacker
파이썬 언어 기초
파이썬 언어 기초
beom kyun choi
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
StartupAlliance
톰캣 #07-host
톰캣 #07-host
GyuSeok Lee
톰캣 #04-환경설정
톰캣 #04-환경설정
GyuSeok Lee
톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment
GyuSeok Lee
톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment
GyuSeok Lee
톰캣 #05-배치
톰캣 #05-배치
GyuSeok Lee
톰캣 #02-설치환경
톰캣 #02-설치환경
GyuSeok Lee
머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가
ETRIBE_STG
Objc literals
Objc literals
ETRIBE_STG
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
beom kyun choi
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
beom kyun choi
웹스트리밍동영상보안자료
웹스트리밍동영상보안자료
싵Ә시큐리티
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
NAVER 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...
Seungjoo Kim
2015 safe net-네트워크암호화 솔루션_시온
2015 safe net-네트워크암호화 솔루션_시온
싵Ә시큐리티
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
2015년 제2회 동아리 해커 세미나 - 게임 벨런싱에 대한 소개 (23기 원동현)
khuhacker
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
스타트업 IT 인프라 지원 프로그램 CIA(CDNetworks Infra Aid) 소개서
StartupAlliance
톰캣 #07-host
톰캣 #07-host
GyuSeok Lee
톰캣 #04-환경설정
톰캣 #04-환경설정
GyuSeok Lee
톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment
GyuSeok Lee
톰캣 #05+b-root-deployment
톰캣 #05+b-root-deployment
GyuSeok Lee
톰캣 #05-배치
톰캣 #05-배치
GyuSeok Lee
톰캣 #02-설치환경
톰캣 #02-설치환경
GyuSeok Lee
머큐리얼저장소추가 사용자추가 권한추가
머큐리얼저장소추가 사용자추가 권한추가
ETRIBE_STG

Similar to 암호화 기초 (20)

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

암호화 기초