디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

개인적으로 알고 있는 암호화에 대해서...

천회장(211.45) 2010.12.31 09:28:27
조회 352 추천 0 댓글 21

아래 잠깐 암호화 질문이 있길래, 도움이 될 지 모르겠지만
개인적으로 알고 있는 것들에 대해서 살짝 글질 해 보겠음.

일단 암/복호화의 종류는 크게 2가지로 나눌 수 있다.
비대칭키 방식, 대칭키 방식

- 비대칭키 방식
암호화 할 때 키와 복호화 할 때 키가 서로 다르다. (서로 다른 키는 보통 공개키, 개인키라고 불리운다)
암복호화 속도가 느리다.
암호화 키 크기보다 큰 사이즈의 데이터는 암호화할 수 없다.
(정확히는 중간에 패딩이 들어가기 때문에 키 보다 더 작은 사이즈만 암호화 가능)
암호화 후 데이터 크기 = 공개키 크기
알고리즘 종류 : RSA, DSA, KSDSA, ECC 등
활용 : 암복호화, 전자서명

참고)
암복호화와 전자서명의 차이는 암호화는 상대방의 공개키로 암호화하고 해당자의 개인키로 복호화하고,
전자서명은 자기의 개인키로 암호화하고 다른 사람이 자신의 공개키로 복호화하고..
이 정도로 생각하면 된다.

전자서명의 경우 데이터를 Hash한 후 개인키로 암호화를 한다.
따라서 전자서명을 검증할 때는, 원본 데이터, 공개키, Hash 알고리즘, 비대칭키 암호화 알고리즘이 필요하다.

- 대칭키 방식
암호화할 때 키와 복호화 할 때 키가 동일하다.
암복호화 속도가 빠르다. (경험상으로는 거대한 파일이 아니면 시간을 무시해도 될 정도임)
암호화할 데이터의 크기에 제한이 없다.
암호화 후 데이터 크기 = (데이터 크기 + 대칭키 크기) / 대칭키 크기 * 대칭키 크기
알고리즘 종류 : DES, 3DES2, 3DES3, AES, SEED 등등등...
활용 : 암복호화


대충 차이는 이 정도이고,
흔히들 말하는 암복호화는 대칭키 방식을 말하는 경우가 많다.
하지만 이 대칭키 방식은 키가 동일하기 때문에
서로 키를 미리 공유하고 있지 않으면
보안에 헛점시 생길 우려가 있다.
이를 보완하는 방법은 대칭키를 랜덤으로 생성하고,
이 대칭키를 상대방의 공개키로 암호화 한 후 전달하여 키를 공유하는 방식을 사용한다.
(이거 말고 다른 방법이 있는데, 그건 제대로 이해를 못해서^^)

이걸 요약하면
1. 대칭키 생성
2. 대칭키로 데이터 암호화, 공개키로 대칭키 암호화
3. 상대방에게 전달
4. 대칭키를 개인키로 복호화
5. 복호화된 대칭키를 이용하여 데이터 복호화

0. 매 세션마다 이렇게 전달하는 것이 가장 적합하지만,
비대칭키 방식의 암복호화가 시간이 많이 소요되기 때문에,
최초 한 번만 대칭키를 전달하고
세션이 유지되는 동안에는 그 대칭키를 이용하여 암복호화를 사용하는 방법도 많이 사용함.


기타)
- Hash
복호화가 불가능한 단방향 함수로, 데이터 특성상 복호화하지 말아야할 데이터에 적용 (보통 패스워드)
알고리즘 : MD5, SHA1, HAS160, SHA160, HMAC 등등..
Hash 적용후 데이터 크기는 알고리즘에 따라 다르지만 알고리즘이 동일하면 그 크기는 항상 동일하다.

- Base64
a~zA~Z0~9+/ 의 64개 ASCII 코드를 사용하여 데이터를 변형하는 방식(= 는 마지막 패딩에만 사용)
암복호화라기 보다는 데이터의 다른 표현이라고 봄
사용하는 이유 : 보통 암호화, Hash등을 적용하면 binary의 형태로 데이터가 나오기 때문에,
이를 Text 형식으로 변형하기 위해서 사용
Base64후 데이터 크기 = (데이터 크기 + 3 / 3) * 4



태클 환영합니다. (__)

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
232073 야이생키들아 [2] 핫바리(1.99) 11.01.24 85 0
232072 마인크래프트 제작에 쓰인 코드가 몇라인인지 밝혀졌음 [4]    갤로그로 이동합니다. 11.01.24 254 0
232071 레벨디자인(Level Design) 에 대한 고찰 [2] 한마음택배갤로그로 이동합니다. 11.01.24 117 0
232069 살인적이다... [4] 돌아온yoi(124.153) 11.01.24 129 0
232068 안드로이드 구글맵 마커 죤나 많을 때 어캐 쳐리하나요? [3] ㅇㄴㄹ(125.7) 11.01.24 400 0
232067 방학때와 개학때의 차이점 nRESET(211.54) 11.01.24 114 0
232066 자바 하루만 공부해도 마인크래프트 플러그인 만들기 어렵지는 않던데 ㄷㄷ [1] 젤리클갤로그로 이동합니다. 11.01.24 3338 5
232065 상대방아디해킹하는 웹해킹어떤책을 봐야 그나마 쉽게 익힐수있냐? [4] 1Q 430갤로그로 이동합니다. 11.01.24 214 0
232063 쩜오볼트 소환 nRESET(211.54) 11.01.24 41 0
232062 (꾸준글) for 루프가 for..in 루프보다 좋은 이유 [3] kushan갤로그로 이동합니다. 11.01.24 132 0
232061 타자 800타 나오면 뭐해먹을수 있나요? [3] 뿡뿡이(113.59) 11.01.24 196 0
232059 [혐짤] 올린 유;리한님. [8] new gay[max]갤로그로 이동합니다. 11.01.24 168 0
232058 ant 로 빌드 하기 android 히밤(121.166) 11.01.24 105 0
232057 내 어플은 12위임 냉무 [4] 히밤리눅스갤로그로 이동합니다. 11.01.24 123 0
232056 HTML5 캔버스로 간단하게 RPG게임 만들려고하는데... [12] 초보자갤로그로 이동합니다. 11.01.24 248 0
232055 루비나 파이썬이 느리다는 사람들 [40] 히밤리눅스갤로그로 이동합니다. 11.01.24 343 0
232054 횽들 오랜만에 개념 질문 할께여 [5] 에이스1번갤로그로 이동합니다. 11.01.24 123 0
232053 회사에서 수습기간이라는걸 제시하는거 맞죠?? [3] zz(61.43) 11.01.24 131 0
232052 올리디버거 크랙 하실줄 아는사람 도와주세요 [1] 안녕하세요(121.184) 11.01.24 322 0
232050 형드라 마인크래프트가 뭐임? [2] 분당살람갤로그로 이동합니다. 11.01.24 152 0
232049 아, 해결법 알았다. [2]    갤로그로 이동합니다. 11.01.24 103 0
232048 쉬어가는 코너 [2] nRESET(211.54) 11.01.24 72 0
232047 마인크래프트는 오픈소스입니다. [9]    갤로그로 이동합니다. 11.01.24 321 0
232046 64비트인데 64비트로 설치했는데 안되고 32비트하니까된당 [1] 고게이(221.162) 11.01.24 123 0
232045 한글 파렛트 파일을 씌우는것만으로는 안되겠는데.. [8]    갤로그로 이동합니다. 11.01.24 100 0
232044 횽들 파이썬이 C도 대체가 가능해? [14] 초랭이(221.147) 11.01.24 260 0
232043 세상 모든 분야가 경쟁이 쩌러욬ㅋㅋㅋ 갑자원(58.180) 11.01.24 77 0
232041 아...여태껏 헛되게 공부를 해왔나... [1] ㅅㅂ맨날배고픔갤로그로 이동합니다. 11.01.24 101 0
232040 마인크도 자바고 안드로이드 어플도 자바다. [5]    갤로그로 이동합니다. 11.01.24 179 0
232039 마인크래프트 한글화 채팅 나도 작업중인데 [3]    갤로그로 이동합니다. 11.01.24 503 0
232038 LPD3DXSPRITE 이거 쓰는사람 있음?? 달걀소년갤로그로 이동합니다. 11.01.24 148 0
232037 마인크래프트 한글화채팅....... [6] 고게이(221.162) 11.01.24 1491 0
232036 다 필요없어. 필요한것이라곤.. 갑자원(58.180) 11.01.24 66 0
232035 게임제작쪽에 진로를 두고있는데요 질문 몇개.. [5] ㄱㄴㄷ(175.113) 11.01.24 150 0
232033 제가 로또될확률 vs 프로그래머로중소기업취업할확률 vs 공무원시험합격확률 [3] 고3졸업예정(116.39) 11.01.24 173 0
232031 고졸이 대졸 틈바구니에서 살아남을 확률 [3] nRESET(211.54) 11.01.24 168 0
232030 형들 우분투에서 이거 어찌해야함? [3] arx갤로그로 이동합니다. 11.01.24 92 0
232029 테니스 같이 칠 여자 개발자님 구합니다. 테니스짱(174.21) 11.01.24 73 0
232027 전자과는 뭘 공부하면 좋을까요?? [2] 앟앙흥(121.155) 11.01.24 101 0
232026 iljoemobolt 봐라 [1] nRESET(211.54) 11.01.24 86 0
232025 형들 나는 게임업계에서 일하고픈 고3졸업생이야~ [13] 고3졸업예정(116.39) 11.01.24 240 0
232023 진중권 찬양 [8] 물속의다이아갤로그로 이동합니다. 11.01.24 170 0
232022 전형적인 고민형 바보 [5] nRESET(211.54) 11.01.24 132 0
232021 횽들 내 고민 한번 들어볼래욤? [14] 고민닭(112.216) 11.01.24 185 0
232020 조강지처가 좋더라 [1] nRESET(211.54) 11.01.24 105 0
232019 근데 "소스=출력"인 소스 혹시 아는 횽들 없음? [12] ㅇㅇㅇ(121.144) 11.01.24 185 0
232018 그나저나 파이썬은 개사기 ㅡㅡ) [2] 땡칠도사갤로그로 이동합니다. 11.01.24 259 0
232016 냐음 = ω=) 아이패드나 살까 [3] 땡칠도사갤로그로 이동합니다. 11.01.24 123 0
232015 웹+모바일 조합의 좋은 아이디어가 있는데 못하고있다 히밤리눅스갤로그로 이동합니다. 11.01.24 87 0
232014 프갤능력자형님들 봐주세요 쒧뛼꿗쁽쭶갤로그로 이동합니다. 11.01.24 70 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2