작업공간

4th Meet - Cryptography 본문

2021 동계 모각코 Main

4th Meet - Cryptography

씨코더 2022. 1. 20. 23:00

Daily Object

    - Hash , 암호화 알고리즘 학습

Review

    -  향후 프로젝트에서 사용될 보안 알고리즘의 이론들을 정리해봤다.

       개념을 이해하여 함수 작성을 할 때 파라미터 적용을 쉽게 할 수 있을 것 같다.

 

Hash

  암호 기법의 핵심적인 부분인 해싱 알고리즘 설명을 시작하겠습니다. 해싱 알고리즘은 “데이터를 최종 사용자가 원문을 추정하기 힘든 더 작고, 뒤섞인 조각으로 나누는 것”을 의미합니다. 해시 함수는 특정 입력 데이터에서 고정 길이값 또는 해시값을 생성하는 알고리즘입니다. 이는 평문을 암호화된 텍스트로 변환하고 해독을 통해 암호화된 텍스트를 원래 평문으로 바꾸는 암호화와는 다릅니다. 해싱 알고리즘의 경우, 암호화 해시 함수로 평문을 해시 처리한 텍스트로 바꿔, 해커가 알아보기 힘들게 합니다. (해시 길이는 160~ 512비트가 좋습니다) 그러나 이는 원문을 다시 만들어낼 수 있는 방법을 제공하지 않습니다.

그러므로 암호 보안을 확보하고자 한다면, 암호를 해시 처리한 후 사용자 ID와 함께 짝을 지어 데이터베이스 테이블에 보관해줍니다. 로그인 시, 입력한 암호는 해시 처리되어 데이터베이스 테이블의 해시 처리된 입력값과 비교됩니다. 두 값이 일치한다면, 짜잔! 사용자는 작업을 계속할 수 있습니다.

해시태그는 암호 저장, 무결성 검증, 디지털 서명, 메시지 인증 코드에 활용될 수 있습니다. 해시태그는 또한 핑거프린팅, 파일 전송, 검사합 등에 유용하게 쓰입니다.

Hash Parameters

MD5 (Message Digest)

가장 흔하게 사용되지만 제일 안전하지 않은 알고리즘 중 하나이기도 합니다. 해당 방식을 사용해 암호가 특정 패턴으로 변환될 경우, 그냥 해시값을 구글링해 원본 값을 구하는 건 매우 쉽습니다. 그러므로 이는 사용하지 않는 것이 가장 좋으며, 사실 더 이상 사용하기 부적절하다고 여겨집니다.

예시:

입력값: An example of MD5
출력값: 6c30eeb06ce8eb66b7a65191272b9743

 

SHA

1993년에 도입된 SHA-0는 수없이 많이 노출되었습니다.  비록 SHA-1가 보안 소켓 레이어(SSL) 보안용으로 사용된 조금 더 개선된 버전이긴 하나, 이 또한 수많은 공격의 대상이었습니다.  SHA-2가 더 복잡하기 때문에 현재 SHA-2 사용이 권장되고 있습니다. SHA-3는 보안을 매우 중요하게 생각하는 회사들이 사용합니다.

예시: 

입력값: An example of SHA-1
출력값: 482ae821c8245e9545e3275cfec2e2657ccab6fb  

 

Whirlpool 

월풀은 512 비트 해시 함수로 고급 암호화 기준(AES)에서 비롯되었습니다.

예시: 

입력값: An example of Whirlpool
출력값: 42fefc20dd412b5ad776271d1008ca65d1503a5acd384f3b4e3c8793ded11a0c3d853d721c6d23c37deeecc9b98765575c806099cec4a61b402b65b7a271bfd7

 

RIPEMD

RACE 무결성 초기 평가 메시지 다이제스트의 약자로, 1990년대 중반에 개발되었습니다.  RIPEMD-160, RIPEMD-256 및 RIPEMD-320와 같이 다양한 버전이 있습니다. 출력값 길이가 이후 버전에서 계속 길어지므로, 보안성 또한 증가합니다.

예시:

입력값: An example of RIPEMD-160
출력값: 033432770126267d6640cb35b1d7e1e75a78e7e5

 

CRC32

순환 중복 코드는 확산성으로 흔히 잘 알려져 있습니다. 이는 또한 훨씬 빨라 원만한 파일 전송 및 유효성 검사가 가능합니다.

예시:

입력값: An example of CRC32
출력값: 5c8e1a03

Cryptography

AES

대칭 키 방식 ( 하나의 키를 공유 )

 

암호화하는 사람과 복호화하는 사람이 둘 다 같은 키를 사용하여 암복호화한다.

 

문자열 길이에 상관없이 암호화가 가능하다.

 

RSA

비대칭 키 방식 

 

비대칭키 라는 것은 암호화(인코딩)할 때 키와 복호화(디코딩)할 때 키가 다르다는 의미인데,

암호화할 때 키를 공개키, 복호화할 때 키를 개인키 라고 한다.

클라이언트가 가지고 있는 공개키로 데이터를 암호화하여 서버로 전달하고,

서버에서는 개인키를 사용해 암호를 복호화하여 확인할 수 있다

 

암호화 가능한 길이가 딱 245byte 까지이므로, 긴 문자열을 암호화하는데는 적합하지 않다.

 

 

EC ( Elliptic curve )

 

[Cryptography] 타원곡선알고리즘

타원곡선암호화 ? 비트코인에 키 값 암호화에 사용되는 알고리즘이다. 비트코인은 곡선 secp256r1 곡선을 사용하고있다. 먼저 다음 용어들을 이해한다.  - 비대칭 키 : En/Decryption 에서 쓰이는 키가

coderhs.tistory.com

 

'2021 동계 모각코 Main' 카테고리의 다른 글

5th Meet - SSL server 구축  (0) 2022.02.03
5th Meet Plan  (0) 2022.02.03
4th Meet Plan  (0) 2022.01.20
3rd Meet - CSP / OWASP  (0) 2022.01.13
3rd Meet Plan  (0) 2022.01.13