기금넷 공식사이트 - 복권 조회 - 비대칭 암호화 알고리즘 (RSA, DSA, ECC, DH)

비대칭 암호화 알고리즘 (RSA, DSA, ECC, DH)

비대칭 암호화에는 publickey 와 privatekey 의 두 가지 키가 필요합니다. 공개 키와 개인 키는 한 쌍이다. 데이터가 공개 키로 암호화된 경우 해당 개인 키로만 해독할 수 있습니다. 데이터가 개인 키로 암호화된 경우 해당 공개 키로만 암호 해독할 수 있습니다. 암호화 및 암호 해독은 서로 다른 키를 사용하기 때문에 비대칭 암호화라고 합니다.

비대칭 암호화 알고리즘은 기밀성이 뛰어나 최종 사용자가 키를 교환할 필요가 없습니다. 그러나 암호화 및 암호 해독은 대칭 암호화보다 훨씬 느리며 일부 극단적인 경우에는 대칭 암호화보다 1000 배 느릴 수도 있습니다.

알고리즘의 강도는 복잡하며 보안은 알고리즘과 키에 따라 달라집니다. 그러나 복잡성 때문에 암호화 및 암호 해독은 대칭 암호화 및 암호 해독보다 빠릅니다. 대칭 암호 시스템에는 하나의 키만 있으며 공개되지 않습니다. 암호를 해독하려면 상대방에게 키를 알려야 한다. 따라서 보안을 보장하는 것은 키의 보안을 보장하는 것입니다. 비대칭 키 시스템에는 두 가지 키가 있습니다. 그 중 하나는 공개이므로 대칭 비밀번호처럼 상대방의 키를 전송할 필요가 없습니다. 이것은 그것을 더욱 안전하게 한다.

RSA, Elgamal, 배낭알고리즘, Rabin, D-H, ECC (타원형 곡선 암호화 알고리즘) 입니다. RSA 알고리즘은 가장 널리 사용되고 있으며 Elgamal 은 또 다른 일반적인 비대칭 암호화 알고리즘입니다.

수신인은 암호화된 정보를 해독할 수 있는 유일한 사람이기 때문에 수신인의 손에는 반드시 개인키가 있어야 한다. 발신자는 공개 키를 가지고 있고, 다른 사람이 알고 있어도 상관없다. 다른 사람이 보낸 메시지는 수신자에게 아무런 의미가 없기 때문이다.

클라이언트는 서버에 인증 ID 를 보내야 하고, 다른 클라이언트가 알 수 있으므로 개인 키로 암호화해야 하며, 클라이언트는 개인 키를 저장합니다. 서버는 공개 키를 보유하고 있으며 클라이언트는 다른 서버에 로그인할 필요가 없기 때문에 다른 서버는 공개 키를 알고 있습니다.

디지털 서명은 정보가 위조되지 않고 실제로 정보 소유자가 보낸 것으로, 원본 정보 뒤에 첨부되어 있습니다. 손으로 쓴 서명처럼 부인할 수 없고 간결하다.

간결성: 메시지 요약을 위해 원본 메시지를 해시합니다. 메시지가 짧을수록 암호화에 필요한 시간이 줄어듭니다.

부인 방지: 서명의 고유성을 보장하기 위해 정보 소유자는 메시지 다이제스트를 암호화할 수 있는 유일한 사람이어야 하므로 개인 키로 암호화해야 서명을 받을 수 있습니다 (필기가 다른 사람이 배울 수 없는 것처럼). 공개 키를 사용하면 누구나 서명을 위조할 수 있다.

질문 유래: 1 및 3 의 경우 발신자는 인터넷에서 얻은 공개 키가 진짜라는 것을 어떻게 알 수 있습니까? 중매인에 의해 공격당하지 않았나요?

이렇게 하려면 공개 키의 합법성을 보장하기 위해 제 3 자 기관이 필요합니다. 이 제 3 자 기관은 인증 센터인 CA (Certificate Authority) 입니다.

CA 는 자신의 개인 키를 사용하여 원본 정보 소유자가 게시한 공개 키와 관련 정보를 암호화합니다. 그 결과 디지털 인증서가 생성됩니다.

원본 정보의 소유자는 나중에 정보를 게시할 때 자신의 서명과 디지털 인증서를 가지고 정보가 변조되지 않도록 할 수 있습니다. 정보 수신자는 먼저 CA 가 제공한 공개 키를 사용하여 정보 소유자의 공개 키를 해결함으로써 정보 소유자의 공개 키가 실제 공개 키임을 확인한 다음 이 공개 키를 통해 디지털 서명이 사실인지 여부를 증명할 수 있습니다.

RSA 는 현재 가장 영향력 있는 공개 키 암호화 알고리즘으로, 두 개의 큰 소수를 곱하는 것은 매우 쉽지만 그 곱을 분해하는 것은 매우 어렵기 때문에 곱을 암호화 키, 즉 공개 키로 공개할 수 있습니다. 두 개의 큰 소수 배열을 개인 키로 결합할 수 있습니다. 공개 키는 누구나 사용할 수 있으며, 개인 키는 스스로 해독한다.

A 는 B 에게 메시지를 보내는 것을 예로 들어 역할을 결정해야 한다. A 는 암호화, B 는 해독기이다. 첫째, B 는 무작위로 키를 결정합니다. 이 키는 개인 키라고 합니다. 이 키는 계속 B 머신에 저장되며 전송되지 않습니다. 그런 다음 이 키에서 공개 키라는 다른 키를 계산합니다. 이 공개 키는 생성된 개인 키를 직접 계산하는 것이 거의 불가능하다는 특징이 있다. 다음으로 공개 키는 네트워크를 통해 a 로 전송됩니다. A 가 공개 키를 받으면 공개 키로 정보를 암호화하고 네트워크를 통해 B 로 암호문을 보냅니다. 마지막으로 b 는 알려진 개인 키로 암호문을 디코딩할 수 있습니다. 다음은 RSA 알고리즘의 워크플로우입니다.

많은 수의 계산으로 인해 RSA 의 가장 빠른 상황은 소프트웨어든 하드웨어든 DES 보다 몇 배나 느립니다. 속도는 항상 RSA 의 짧은 보드였습니다. 일반적으로 소량의 데이터를 암호화하는 데만 사용됩니다. RSA 의 속도는 대략 동일한 보안 수준에 해당하는 대칭 암호 알고리즘의 1/ 1000 입니다.

RSA 는 DES 및 기타 대칭 알고리즘에 비해 훨씬 느립니다. 일반적으로 대칭 알고리즘을 사용하여 정보를 암호화한 다음 RSA 를 사용하여 짧은 공개 키를 암호화한 다음 RSA 암호화 공개 키와 대칭 알고리즘으로 암호화된 메시지를 수신자에게 보냅니다.

이렇게 하면 난수에 대한 요구가 더 높아지고, 특히 대칭 비밀번호를 생성할 수 있다. 그렇지 않으면 RSA 를 우회하여 대칭 암호를 직접 공격할 수 있습니다.

다른 암호화 프로세스와 마찬가지로 공개 키를 배포하는 프로세스는 RSA 에 매우 중요합니다. 공개 키를 배포하는 과정은 중개인의 공격에 저항할 수 있어야 한다. A 가 B 에게 공개 키를 주어 B 가 A 의 공개 키라고 믿게 하고 C 가 A 와 B 사이의 정보 전송을 가로채면 C 는 자신의 공개 키를 B 에 전달할 수 있고 B 는 A 의 공개 키라고 생각한다. C 는 B 가 A 에게 보낸 모든 메시지를 가로채고, 자신의 키로 메시지를 해독하고, 메시지를 읽은 다음, A 의 공개 키로 메시지를 암호화하여 A 에게 보낼 수 있다. 이론적으로 A 와 B 는 C 가 그들의 메시지를 도청하고 있다는 것을 발견하지 못할 것이다. 오늘날, 디지털 인증은 이러한 공격을 막기 위해 널리 사용되고 있다.

(1) RSA 에 대한 가장 인기 있는 공격은 일반적으로 많은 수의 인수 분해에 기반을 두고 있다. 1999, RSA- 155 (5 12 비트) 분해 성공, 3.2G 중앙 메모리의 crayc9/kloc-0

RSA- 158 은 다음과 같이 표시됩니다.

65438+2 월 65438+2009 년 2 월 디지털 RSA-768 (768 비트, 232 비트) 도 성공적으로 분해됐다. 이 이벤트는 현재 1024 비트 키의 보안을 위협하며 일반적으로 사용자가 가능한 한 빨리 2048 비트 이상으로 업그레이드해야 한다고 생각합니다.

RSA-768 은 다음과 같이 표시됩니다.

(2) 수르 알고리즘

양자 컴퓨팅의 Schell 알고리즘은 궁극의 효율을 크게 높일 수 있다. RSA 알고리즘은 수많은 수의 분해 (철저한 공격에 저항할 수 없음) 를 기반으로 하기 때문에 양자 컴퓨팅은 향후 RSA 알고리즘에 큰 위협이 될 수 있습니다. 한 번에 2 n 번의 연산을 할 수 있는 N 개의 양자 비트 양자 컴퓨터입니다. 이론적으로 키는 1024 비트인 RSA 알고리즘으로 5 12 개의 양자 비트로 1 초 내에 해독할 수 있습니다.

DSA (디지털 서명 알고리즘) 는 Schnorr 및 ElGamal 의 서명 알고리즘의 변형으로 미국 NIST 에서 DSS (디지털 서명 표준) 로 간주됩니다. DSA 는 정수 유한 도메인을 기반으로 한 이산 로그 문제입니다.

간단히 말해서, 이것은 디지털 서명으로 사용되는 고급 인증 방법입니다. 공개 키, 개인 키, 디지털 서명도 있습니다. 개인 키는 디지털 서명, 공개 키 인증 데이터 및 서명을 생성하기 위해 암호화됩니다. 데이터와 서명이 일치하지 않으면 인증에 실패합니다. 디지털 서명의 기능은 전송 중에 데이터가 수정되지 않았는지 확인하는 것입니다. 디지털 서명은 단방향 암호화의 업그레이드입니다.

타원 암호화 알고리즘 (ECC) 은 Koblitz 와 Miller 가 1985 년에 처음 제안한 공개 키 암호화 알고리즘입니다. 그 수학적 기초는 타원 곡선의 유리점을 이용하여 Abel 더하기 그룹의 타원 이산 로그를 계산하는 어려움이다. 공개 키 암호 시스템은 기반이 되는 문제에 따라 일반적으로 큰 정수 분해 문제, 이산대수 문제 및 타원 곡선의 세 가지 범주로 나뉩니다. 때때로 타원 곡선은 이산 로그로 분류됩니다.

ECC 의 주요 장점은 경우에 따라 RSA 와 같은 다른 방법보다 작은 키를 사용하여 보안 수준을 상당 또는 높인다는 것입니다. ECC 의 또 다른 장점은 Weil 쌍 또는 Tate 쌍을 기반으로 그룹 간의 쌍 선형 매핑을 정의할 수 있다는 것입니다. 쌍선형 매핑은 신분 기반 암호화와 같은 암호학에서 많은 응용 프로그램을 사용합니다. 그러나 한 가지 단점은 암호화 및 암호 해독 작업이 다른 메커니즘보다 더 오래 걸린다는 것입니다.

ECC 는 키 길이가 지정된 경우 가장 강력한 비대칭 알고리즘으로 널리 인식되므로 대역폭 요구 사항이 매우 엄격한 연결에 유용합니다.

비트코인 지갑의 공개 키는 타원 곡선 알고리즘을 통해 생성되며 공개 키는 타원 곡선 곱셈을 통해 개인 키로 계산할 수 있습니다. 이는 되돌릴 수 없는 프로세스입니다.

Blogs.com/wangzxblog/p/13667634.html

Blogs.com/Tao xw/p/15837729.html

Blogs.com/fangfan/p/4086662.html

Blogs.com/utank/p/787761.html

Blogs.com/muliu/p/10875633.html

Blogs.com/wf-Zhang/p/14923279.html

/p/7a927db7 13e4

/ljx 1400052550/ 문장/상세 정보 /79587 133

/yuanjian 08 14/ 문장/상세 정보/1098 15473