JAVA 심화 4

[JAVA] 심화 - 단방향 암호화 기법 (2)

05. 해시 알고리즘(Hash Algorithm)보통 해시 함수는 해시 함수(Secure hash Standard, SHA) 알고리즘을 사용함SHA 알고리즘에는 SHA-1, SHA-256, SHA-512와 같은 뒤에 숫자가 붙음이 숫자들은 해시 값의 길이를 의미SHA는 안전한 해시 알고리즘을 의미하지만, 모든 SHA 알고리즘이 안전한 것은 아님1과 같은 알고리즘은 과거에는 안전했지만, 컴퓨팅 속도가 발전하면서 현재는 안전하지 않은 알고리즘으로 분류됨그래서 전문가들은 256 이상의 알고리즘을 권고하는 것05-1. 해시의 길이가 짧으면 보안에 어떠한 문제?해시 함수가 4비트의 고정된 길이를 출력한다고 가정했을 때출력길이가 4비트인 해시 값의 종류는 2^4인 16개해시 함수는 16진수로 표현하므로 다음과 같이..

JAVA 심화 2024.12.30

[JAVA] 심화 - 단방향 암호화 기법 (1)

01. 단방향 암호화 알고리즘 정의한 쪽으로만 암호화 하는 방법다양한 길이의 문장을 항상 고정된 길이의 암호문으로 변환하지만, 원래 문장으로 복호화 할 수 없음02. 단방향 암호화 특성단방향 암호화는 비밀번호 암호화, 문서 진위 여부 검증 등 다양한 목적으로 사용비밀번호를 단방향으로 사용하는 이유: 복호화 불가능해커가 암호문으로 저장된 비밀번호를 훔쳐가더라도 복호화가 불가능하므로 원래 비밀번호를 알 수 없음증명서, 문서 진위 여부로 사용할 때: 중요한 문서가 진짜인지 확인할 경우에도 사용문서의 진위를 확인해달라고 요청할 시,이 문서의 암호문(즉 해시값)을 생성하여 내가 가지고 있는 암호문과 비교두 암호문이 동일하다면 증명서가 진짜라고 판단비밀번호를 안전하게 저장하려면 양방향 암호 알고리즘을 사용해야 하는..

JAVA 심화 2024.12.30

[JAVA] 심화 - 양방향 암호화 기법, 비대칭 키 암호 알고리즘 (2)

01. 비대칭 키 암호 알고리즘정의: 암호화를 위해 사용하는 키 != 복호화를 위해 사용하는 키공개 키: 모두에게 공개 가능비밀 키: 공개해서는 안됨공개 키 암호화 방식: 공개 키를 활용해 암호화 하는 것, 공개 키로 암호화 하면 함께 생성된 비밀키로만 복호화 가능해짐02. 비대칭 키 암호 알고리즘 사용 방법 (1) A가 데이터를 암호화해서 B에게 보내야한다고 가정먼저 B가 자신의 공개 키를 A에게 전달B의 공개키를 받은 A가 A에서 B의 공개키를 이용해서 암호화하여 암호문을 만듬만들어진 암호문을 B에게 전달전달받은 A의 암호문을 B에서 자신의 비밀키를 이용해 복호화하여 데이터를 받음공개 키는 누구에게나 공개 할 수 있기 때문에 인터넷 망을 이용하여 전달이 가능해짐만들어진 암호문은내가 가진 비밀 키로만 ..

JAVA 심화 2024.12.30

[JAVA] 심화 - 양방향 암호화 기법, 대칭 키 암호 알고리즘 (1)

01. 암호화/복호화 정의암호화: 우리가 사용하는 평범한 문장(평문)을 의미할 수 없는 암호문으로 변환하는 것복호화: 암호문을 평문으로 되돌리는 것02. 암호 알고리즘: 암호화/복호화를 할 때 사용하는 알고리즘양방향 암호 알고리즘: 대칭 키 암호 알고리즘, 비대칭 키 암호 알고리즘단방향 암호 알고리즘: 해시 알고리즘03. 암호화 키/복호화 키암호화 키: 암호화를 위한 키복호화 키: 복호화를 위한 키 04. 대칭 키 암호 알고리즘 vs 비대칭 키 암호 알고리즘대칭 키 암호 알고리즘: 암호화 키 == 복호화 키비대칭 키 암호 알고리즘: 암호화 키 != 복호화 키05. 대칭 키 암호 알고리즘 종류*권고 여부: 암호화 강도를 고려해 전문가들은 최소 128비트 이상의 알고리즘 사용을 권고함**AES: 예제로 사용..

JAVA 심화 2024.12.30