a) RSA (Rivest-Shamir-Adleman):
컴퓨터 과학자 Ron Rivest, Adi Shamir, Lenard Adleman의 이름을 따서 명명됨
안전한 데이터 전송을 위해 널리 사용되는 알고리즘
공개 키로 데이터를 암호화하고 개인 키로 복호화(디코딩)함
b) PKI (Public Key Infrastructure):
디지털 인증서를 발급하고 관리하여 암호화 키를 제어하는 시스템
공개 키 암호화의 한 형태로 볼 수 있음
a) DES (Data Encryption Standard):
64비트 블록으로 일반 텍스트를 변환
48비트 키를 사용하여 암호 텍스트로 변환
하위 수준 암호화 블록 암호 알고리즘
b) Triple DES:
DES 암호화를 세 번 연속 실행
데이터를 암호화, 복호화, 다시 암호화하는 과정을 거침
c) AES (Advanced Encryption Standard):
데이터 암호화의 '황금 표준'으로 간주됨
미국 정부 표준으로 채택되어 전 세계적으로 사용됨
DES를 대체하기 위해 개발됨
d) Twofish:
가장 빠른 암호화 알고리즘 중 하나로 평가됨
무료로 사용 가능
AES 선정 과정에서 최종 후보 중 하나였음
이러한 알고리즘들은 각각 고유한 특성과 장단점을 가지고 있으며, 사용 목적과 보안 요구사항에 따라 적절한 알고리즘을 선택하여 사용합니다. 비대칭 암호화는 주로 키 교환이나 디지털 서명에 사용되고, 대칭 암호화는 대량의 데이터를 빠르게 암호화하는 데 사용됩니다.
정규표현식(Regular Expression, RegEx)은 문자열 패턴을 정의하는 강력한 도구입니다. 컴퓨터 과학에서 중요한 개념으로, 텍스트 처리, 패턴 매칭, 데이터 검증 등 다양한 분야에서 사용됩니다. 정규표현식에 대해 자세히 알아보겠습니다:
정의:
기본 구성 요소:
주요 메타문자와 의미:
문자 클래스 예시:
수량자:
미리 정의된 문자 클래스:
사용 예시:
프로그래밍 언어 지원:
장단점:
장점:
단점:
응용 분야:
RegExMatch()
문자열 = "이메일: example@email.com"
패턴 = "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
결과 = RegExMatch(문자열, 패턴)
// 결과는 "example@email.com"을 찾아 반환합니다.
RegExReplace()
문자열 = "전화번호는 123-456-7890 입니다."
패턴 = "\d{3}-\d{3}-\d{4}"
대체 = "xxx-xxx-xxxx"
결과 = RegExReplace(문자열, 패턴, 대체)
// 결과: "전화번호는 xxx-xxx-xxxx 입니다."
강력한 패턴 매칭: 복잡한 문자열 패턴을 쉽게 검색하고 조작할 수 있습니다.
유연성: 다양한 형식의 데이터(이메일, 전화번호, 날짜 등)를 처리할 수 있습니다.
효율성: 문자열 처리 작업을 빠르고 효과적으로 수행합니다.
사용되는 곳:
데이터 검증 (예: 이메일 주소, 전화번호 형식 확인)
텍스트 파싱 및 추출 (예: 로그 파일에서 특정 정보 추출)
문자열 포맷팅 (예: 특정 형식으로 데이터 변환)
민감한 정보 마스킹 (예: 신용카드 번호 일부를 *로 대체)
참고:
https://ahkscript.github.io/ko/docs/misc/RegEx-QuickRef.htm
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions
https://ibm.com