기록 암호화 알고리즘

PHPz
풀어 주다: 2023-12-31 19:23:50
앞으로
740명이 탐색했습니다.
소개 보안 수단으로서 암호화 알고리즘은 우리 대부분의 삶과 밀접한 관련이 있습니다. https를 사용하는 모든 웹사이트는 이미 암호화 프로토콜 TLS/SSL을 사용하고 있기 때문에 인터넷 서핑을 하는 한 이점을 누릴 수 있습니다. 따라서 우리 모두는 암호화 알고리즘이 제공하는 개인정보 보호와 통신 보안을 소극적으로 누리고 있습니다. 또한 보안 기술 수준부터 네트워크 계층부터 호스트 파일 계층까지, 그 뒤에 있는 암호화 애플리케이션이나 프로토콜의 계층에 관계없이 다양한 암호화 알고리즘이 지원됩니다.

본 글은 고대부터 현재까지 우리의 온라인 생활과 밀접하게 연관되어 있는 암호화 알고리즘의 개발과 진화, 그리고 그 전 과정에 하나하나 등장한 핵심 암호화 알고리즘에 대해 논의하고, 모두를 이끌어 나가고자 합니다. 그 뒤에 숨겨진 이 흥미로운 알고리즘을 이해하는 것입니다.

암호화 알고리즘의 주요 기능은 정보 유출을 방지하기 위해 일반 텍스트를 암호문으로 변환하는 것입니다. 암호화된 암호문은 잘못된 문자와 유사해 보이지만 잘못된 문자는 아닙니다. 왜곡된 문자의 대부분은 일관되지 않은 인코딩으로 인해 발생합니다. 인코딩은 암호화 알고리즘에 속하지 않으며 표시 형식만 변경합니다. 예를 들어, base64는 단지 인코딩일 뿐이며 일반 텍스트 보안을 보장할 수 없습니다. 나중에 Base64 암호화에 대한 언급을 들으면 전문가답지 않다는 것을 알 수 있습니다.

암호화 알고리즘은 다음 세 가지 사항을 보장해야 합니다.

1. 기밀성: 데이터가 도난당하더라도 도둑이 그것이 무엇인지 알 수 없도록 보장합니다.

2. 무결성: 전송 중에 데이터가 탈취되거나 수정되더라도 수신자가 정보가 차단되었음을 확인하고 교체할 수 있도록 보장합니다.

3. 가용성: 암호화 알고리즘의 비용과 복잡성이 사용 가능한 범위 내에 있는지 확인하십시오.

위 요구 사항을 충족하는 암호화 알고리즘은 고전 암호학에서 현대 암호학에 이르기까지 오랜 역사적 개발 기간을 거쳤습니다.

고대 사람들은 어떻게 암호화했나요? 1. 역사상 최초의 암호화 알고리즘

대체 방법
최초의 암호화 알고리즘은 주로 군대에서 사용되었습니다. 역사상 최초의 암호화 알고리즘에 대한 기록은 주 왕조의 군사 서적 "육도 용도"의 "음복"과 "음술"에서 나옵니다. 기록:

태공이 말했습니다: "주님과 장군들은 음부적을 가지고 있는데 그것은 8급입니다. 적을 물리치는 부적의 길이는 1피트입니다. 군대를 패배시키고 장군을 사로잡는 부적의 길이는 9인치입니다. 부적 성을 항복하고 성을 이기는데 사용하는 부적의 길이는 7인치이다. 패한 장군이 사용하는 부적의 길이는 4인치이다. 부적을 맡은 사람이 이를 듣고 신고하면, 8번째 부적의 주인은 그 사실을 알게 될 것이다. 비밀이라 적들이 중국과 외국의 지식을 밝힐 수 없습니다.”

무왕이 태공에게 물었습니다. "... 부적은 이해할 수 없습니다. 우리는 멀리 떨어져 있어서 말로는 서로 이해할 수 없습니다. 어떻게 해야 합니까?" 태공이 말했습니다: "비밀스러운 일이나 심각한 걱정거리가 있으면 부적을 사용해야 합니다." 부적 대신 책. 주님은 책을 일반에게 맡기시고 책에서 질문을 하십니다. 이것을 음서(陰書)라고 한다. 비록 적은 현명하고 현명하지만, 그것을 이해할 수 있는 사람은 아무도 없다."

간단히 말하면 음 기호는 서로 다른 메시지와 지시를 표현하기 위해 8개의 동일한 길이의 기호를 사용합니다. 응용에서는 정보를 적이 이해할 수 없는 기호로 변환합니다. 중요한 의미. Yin Talisman에 대한 보충으로 Yin Shu는 텍스트 분할 방법을 사용하여 텍스트를 세 부분으로 직접 분할하고 세 개의 채널을 통해 대상으로 전송됩니다. 적은 텍스트의 세 부분을 가로채서만 해독할 수 있습니다. 같은 시간.

교대 방법
공교롭게도 암호화 알고리즘은 극서부 지역의 전쟁에서도 대규모로 사용됩니다. 헤로도토스의 『역사』에는 기원전 5세기 그리스 도시국가와 페르시아 제국이 자주 전쟁을 했다고 기록되어 있다. 그리스 도시국가들은 전쟁 통신 정보를 암호화하기 위해 이동 방식을 널리 사용하여 페르시아 제국이 군사력을 확보하기 어렵게 만들었다. 상대방의 정보를 미리 얻을 수는 없습니다. 그리스 도시 국가가 군사 정보와 명령을 전송하기 위해 사용하는 텍스트의 각 단락에는 고정된 단어 수가 있으며, 비밀을 받는 사람은 텍스트 이동 명령을 손에 갖게 됩니다. 해독기는 암호문을 획득한 후 교대 지시에 따라 이를 해독하고 군사 명령이나 메시지를 해독합니다.

2. 고대 암호에서 진화한 카이사르 암호

클래식 비밀번호는 주로 이동 및 대체 방법을 사용합니다. 그 중 쉬프트(shifting) 방식은 평문을 특정 비트 수만큼 고정된 방향으로 이동시키는 것이다. 예를 들어 I love you는 오른쪽으로 4비트 쉬프트되어 M pszi csy가 된다. 점진적인 발전과 개선을 거쳐 가장 유명한 것이 카이사르 암호이다. 그러나 영어나 라틴 문자의 빈도는 일관되지 않습니다. 영어 알파벳을 예로 들어보겠습니다. 문자 e는 다른 문자보다 더 자주 나타납니다. 충분한 암호문 샘플을 얻은 후, 암호문을 해독하기 위한 빈도 계산을 통해 이동 규칙을 정확하게 찾을 수 있습니다. 따라서 대부분의 Caesar 암호는 대체 방법을 사용하여 일반 텍스트-암호 텍스트 매핑 테이블을 정의합니다.

기록 암호화 알고리즘

이 방법은 키 소모 문제를 어느 정도 해결할 수 있지만, 대용량 데이터를 이용한 주파수 공격에는 여전히 무력합니다. 나중에 이 모드는 빈도를 방해하고 해독의 난이도를 높이기 위해 일부 특정 매개변수를 도입하는 데 의존하도록 개발되었습니다.

고전 암호학 후기에는 Vigenère 암호, ROT5/13/18/47, 모스 부호 등 일련의 암호 유형이 개발되었습니다. 그러나 모두 치환방식과 쉬프트방식을 기반으로 하며, 알고리즘의 비공개를 통해 보안이 주로 보장됩니다.

현대인을 위한 더욱 과학적인 암호화 알고리즘

고전적인 암호화 알고리즘은 본질적으로 언어 패턴의 변화입니다. 20세기 중반이 되어서야 Shannon은 암호화 알고리즘의 초점을 응용 수학으로 전환한 "비밀 시스템의 통신 이론"이라는 기사를 출판했습니다. 그 결과 오늘날 중요한 세 가지 유형의 암호화 알고리즘인 비대칭 암호화, 대칭 암호화, 해시 알고리즘이 점차 등장했습니다. 이러한 세 가지 유형의 알고리즘은 최상의 결과를 얻기 위해 종종 조합하여 사용됩니다.

1. 대칭 암호화 알고리즘

대칭 암호화 알고리즘은 가장 널리 사용되는 암호화 알고리즘 중 하나입니다. 일반적으로 사용되는 알고리즘에는 DES 알고리즘, AES 알고리즘, 3DES 알고리즘, TDEA 알고리즘, Blowfish 알고리즘, RC5 알고리즘, IDEA 알고리즘 등이 있습니다. 암호화와 복호화 당사자 모두 암호화와 복호화에 동일한 키를 사용하는 것이 특징입니다. 다양한 원리에 따라 대칭 암호화는 크게 스트림 암호화와 블록 암호화의 두 가지 유형으로 나눌 수 있습니다.

스트림 암호화
스트림 암호화는 일반 텍스트 문자를 문자별로 암호화하는 대칭 암호화 알고리즘의 한 유형입니다. 암호문은 평문과 키에 대해 합의된 작업을 비트 단위로 수행하여 얻을 수 있습니다. 스트림 암호화 알고리즘 중에서 RC4와 GSM이 가장 유명합니다. 가장 간단한 모델은 다음과 같은 XOR 스트림 암호화 예입니다.

기록 암호화 알고리즘

스트림 암호화의 원리는 간단하지만 알고리즘 구조에는 약점이 있습니다. 부분적인 일반 텍스트가 유출되는 한 공격자는 쉽게 키를 계산할 수 있습니다. 또한, 비트 단위로 암호화되기 때문에 공격자가 데이터를 변조하더라도 원본 데이터 구조가 파괴되지 않아 수신자가 변경 사항을 감지하기 어렵습니다. 스트림 암호화는 빠르고 효율적이지만 보안 수준이 낮기 때문에 중요한 정보를 암호화하는 데는 권장되지 않습니다.

블록 암호화

블록 암호화의 내부 구현은 훨씬 더 복잡합니다. 각 암호화 블록은 DES 및 AES를 포함하여 최소 16단계의 작업을 거칩니다. 현재 AES를 사용하는 것이 권장되지만 DES는 더 이상 안전하지 않습니다.

DES

DES는 초기 대칭 암호화 표준으로, 코어는 주로 초기 순열, 라운드 함수, 역 순열의 세 단계로 구분됩니다. 컴퓨터 성능이 지속적으로 향상됨에 따라 DES의 무차별 대입 크래킹이 점점 더 쉬워지고 있습니다. 따라서 DES는 더 이상 안전하지 않으며 지난 10년 동안 점차적으로 3DES 및 AES로 대체되었습니다.

AES

AES는 많은 당사자에 의해 분석 및 시연되었으며 현재 전 세계적으로 널리 사용되는 가장 안전한 대칭 암호화 알고리즘 중 하나입니다. 지난 10년 동안 AES는 대칭 키 암호화에 가장 널리 사용되는 알고리즘 중 하나가 되었습니다. DES와 달리 AES는 Feistel 아키텍처 대신 대체 순열 네트워크를 사용합니다.

대부분의 AES 계산은 특수 유한 도메인에서 완료됩니다. 암호화 프로세스는 4×4바이트 행렬에서 작동하며 이 행렬은 "상태"라고도 하며 초기 값은 일반 텍스트 블록입니다. 암호화 시 각 AES 암호화 주기(마지막 라운드 제외)는 4단계로 구성됩니다.

AddRoundKey - 매트릭스의 각 바이트는 라운드 키와 XOR됩니다. 각 하위 키는 키 생성 방식에 의해 생성됩니다.

SubBytes - 비선형 대체 기능을 통해 조회 테이블을 사용하여 각 바이트를 해당 바이트로 대체합니다.

ShiftRows - 행렬의 각 열을 순환적으로 이동합니다.

MixColumns - 각 열의 4바이트를 혼합하는 선형 변환을 사용하여 행렬의 개별 행을 완전히 혼합하는 작업입니다. MixColumns 단계는 마지막 암호화 루프에서 생략되고 다른 ddRoundKey로 대체됩니다.

암호화 모드

AES와 DES는 모두 내부적으로 서로 다른 암호화 모드를 지원하며 각 모드의 보안과 효율성은 매우 다릅니다. 가장 일반적인 두 가지 모드인 ECB와 CBC 중 ECB 모드는 암호화 효율성은 높지만 보안 수준은 낮습니다.

기록 암호화 알고리즘

Key는 개별 블록을 매번 암호화하므로 상대방이 쉽게 해독할 수 있습니다. 그러나 각 모듈 간의 연관성이 없기 때문에 동시에 동작할 수 있어 암호화 효율성이 크게 향상됩니다. 일반적으로 ECB는 CBC보다 암호화 효율성이 5~6배 더 높습니다. 그러나 CBC는 ECB보다 높고 안전합니다. 패턴은 아래와 같습니다:

기록 암호화 알고리즘

각 암호화 블록에는 서로 다른 IV가 도입되며, 전체 암호화 프로세스를 최종적으로 완료하려면 이전 블록을 반복해야 합니다. 각 블록의 IV는 암호문 블록과 관련되어 있으므로 동시 모드를 사용할 수 없으며 전체 프로세스를 직렬화해야 합니다. 매우 높은 성능 요구사항이 아닌 경우에는 보다 안전하고 안정적인 CBC 모드를 사용하는 것이 좋습니다.

2. 비대칭 암호화 알고리즘

비대칭 암호화 알고리즘과 대칭 암호화 알고리즘의 가장 큰 차이점은 암호화 키와 복호화 키가 더 이상 하나가 아니라는 점입니다. 이 방법은 주로 "다중 암호화기, 하나의 복호화기" 모델을 다루기 위한 것입니다. 따라서 이 다대일 관계에서는 공개 키 시스템이 등장했습니다. 공개 키는 개인 키에 해당합니다. 공개 키는 공개되며 모든 데이터 송신자는 공개 키를 사용하여 데이터를 암호화하지만, 공개 키로 암호화된 콘텐츠는 개인 키로만 해독할 수 있습니다. 큰 숫자의 분해부터 복잡한 타원 곡선의 이산 로그 문제까지 그 뒤에 있는 수학은 매우 복잡합니다. 일반적인 비대칭 암호화 알고리즘에는 DSA 알고리즘, RSA 알고리즘, Elgamal 알고리즘, Backpack 알고리즘, Rabin 알고리즘, D-H 알고리즘, ECC 알고리즘 등이 포함됩니다. 비대칭 암호화 알고리즘의 실행 효율성은 알고리즘의 실제 적용을 제한하므로 대부분 신원 인증에 사용되며 통신에는 사용되지 않습니다.

3. 해시 알고리즘

해시 알고리즘도 매우 일반적인 암호화 알고리즘 중 하나입니다. 데이터 전송에 사용되는 것이 아니라, 범죄자가 데이터를 변조하는 것을 방지하기 위해 데이터가 변조되었는지 확인하는 데 사용됩니다. 특징은 원본 텍스트의 길이에 관계없이 고정 길이 문자열이 되어 암호화만 가능하고 복호화는 불가능합니다(단방향 작업만 가능). 일반적인 해싱 알고리즘에는 MD5, SHA-1, SHA 224/256/512 등이 포함됩니다. 처음 두 개는 더 이상 안전하지 않은 것으로 입증되었으며 SHA 256/512와 같은 보안 수준이 높은 알고리즘을 사용하는 것이 좋습니다.

위의 암호화 알고리즘은 다양한 분야에서 널리 사용되고 있습니다.

데이터베이스 암호화 알고리즘

클라우드와 빅데이터의 급속한 발전에 따라 데이터베이스는 안전한 LAN 환경에서 프라이빗 클라우드, 심지어 퍼블릭 클라우드로 점차 마이그레이션되고 있습니다. 데이터베이스가 클라우드로 마이그레이션되면 더 심각한 보안 문제에 직면하게 됩니다. 주요 데이터는 데이터베이스에 저장되며 클라우드 호스트에는 숨겨진 보안 위험이 많이 있습니다. 따라서 클라우드 데이터베이스 암호화는 보안 위험을 해결하는 좋은 약이 되었습니다.

대칭 암호화 알고리즘

파일 암호화 및 통신 암호화와 달리 데이터베이스 암호화는 암호화 알고리즘 확장에 특별한 주의가 필요하며 암호화 알고리즘 성능에 대한 엄격한 요구 사항이 있습니다. 2009년에 Anhua Jinhe는 데이터베이스 암호화 제품을 개발할 때 대칭 알고리즘 중에서 스트림 암호화 알고리즘을 처음으로 제외했습니다. 그 이유는 이 알고리즘이 운영 효율성과 데이터 확장 문제 해결에 있어 자연스러운 장점을 갖고 있지만 특정 상황에서는 단점이 있기 때문입니다.

암호화 효율성을 추구하기 위해 국내 일부 보안 제조업체에서는 여전히 이 방법을 사용하고 있지만 가장 기본적인 보안 요구 사항은 무시됩니다. 보다 안전한 접근 방식은 관련 암호화 처리를 위해 대칭 암호화에 블록 암호화(AES)를 사용하는 것입니다. 블록 암호화는 보안성이 높고 상대적으로 안전하지만, 데이터 블록 크기 제한으로 인한 확장 문제를 해결해야 합니다. 이를 위해서는 다양한 분야나 유형의 확장 문제를 해결하고 궁극적으로 완벽한 데이터베이스 암호화 솔루션을 구성하기 위해 특정 상황이나 분야를 기반으로 충분히 정교한 사용 계획을 설계해야 합니다.

국내 비밀번호 알고리즘

암호알고리즘은 정보보안을 보장하는 핵심기술로, 3DES, SHA-1, RSA 등 국제적으로 통용되는 암호알고리즘 시스템과 관련 표준을 활용하여 다양한 산업 분야에서 국가기밀과 핵심데이터를 보호하는데 중요한 역할을 합니다. 안전에 큰 문제가 있습니다. 따라서 국가 안보 및 장기 전략의 관점에서 관련 국가 기관 및 규제 기관은 국가 비밀 알고리즘의 적용 및 구현을 촉진하고 산업 보안 및 제어 가능성을 강화하기 위한 요구 사항을 제시했습니다. 현재 국내 데이터베이스 암호화 제품은 사용자 선택 및 평가에 직면했을 때 상당수가 국가 비밀 알고리즘 지원을 기반으로 하며 이는 정부, 군사 산업, 국가 정보 기밀 유지 등 관련 산업의 사용자에게 매우 중요합니다. 보안이 보장되어야 합니다. 외국 기술과 제품에 대한 과도한 의존을 없애기 위해서는 핵심 보안 기술인 암호화 알고리즘이 국산화되어야 합니다.

구체적으로 국내 암호알고리즘은 국가암호국에서 인정한 국내 상용 암호알고리즘을 말합니다. 예를 들어 금융 분야에서는 현재 SM2, SM3, SM4 3가지 공용 알고리즘이 주로 사용되고 있습니다. SM4 알고리즘을 예로 들어 보겠습니다. SM4 블록 암호화 알고리즘은 우리나라에서 독립적으로 설계된 블록 대칭 암호화 알고리즘으로 데이터 및 정보의 기밀성을 보장하기 위해 데이터 암호화/복호화 작업을 구현하는 데 사용됩니다. 대칭형 암호화 알고리즘의 보안을 보장하기 위한 기본 조건은 충분한 키 길이를 갖는 것입니다. SM4 알고리즘과 AES 알고리즘은 128비트의 동일한 키 길이 블록 길이를 가지므로 3DES 알고리즘보다 더 안전합니다.

위 내용은 기록 암호화 알고리즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:linuxprobe.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!