암호는 데이터를 암호화하고 복호화하는 알고리즘입니다. 평문과 키를 입력받아 무작위 노이즈처럼 보이는 암호문을 생성합니다. 키 없이는 암호문을 사용할 수 없습니다. 키만 있으면 원래 메시지를 되찾을 수 있습니다. 암호는 시저의 시프트 암호부터 에니그마 기계, 그리고 현대의 AES에 이르기까지 수천 년 동안 사용되어 왔습니다. 수학적 원리는 변했지만, 목표는 변하지 않았습니다.
현대 암호는 크게 두 가지 유형으로 나뉩니다. 대칭 암호는 암호화와 복호화에 동일한 키를 사용합니다. AES는 디스크 암호화부터 HTTPS에 이르기까지 모든 곳에서 사용되는 표준 암호입니다. 적절한 키 크기를 사용하면 빠르고 안전합니다. ChaCha20과 같은 스트림 암호는 데이터를 한 비트 또는 바이트씩 암호화하며 하드웨어 가속이 없는 장치에서도 잘 작동합니다. 비대칭 암호는 키 쌍을 사용하고 키 분배 문제를 해결하지만 속도가 느리며 주로 키 교환 및 서명에 사용됩니다. 암호의 강도는 구현 방식에 따라 달라집니다. 약한 키, 재사용된 논스, 잘못된 패딩은 강력한 알고리즘을 사용하는 시스템을 무력화시킬 수 있습니다. 일반적으로 수학적 원리 자체가 약점은 아닙니다.
암호 범주
- 고전 음악 - 치환과 전위, 역사적으로 중요함
- 대칭 블록 암호화 방식인 AES는 고정 크기 블록을 암호화합니다.
- 대칭 스트림 — ChaCha20, 연속 데이터 암호화
- 비대칭 방식 — RSA, ECC는 키 교환 및 서명에 사용됩니다.
자신만의 암호화 알고리즘을 만들지 마십시오. 수십 년간 검증을 거친 기존 알고리즘과 라이브러리를 사용하십시오.
Comments
No comments yet. Be the first to share a thought.
Leave a comment