RSA 암호화 란 무엇이며 어떻게 작동합니까?

RSA 암호화 시스템을 해결하는 무엇이었을 한 번에 하나의 가장 큰 문제에 암호화:어떻게 보낼 수 있습니다 누군가에게 코딩없이 메시지를 할 수있는 기회를 갖는 이전에 코드를 공유하는 사람들입니까?

이 문서에서 당신에게 모든 것을 가르 칠 것입니다 당신이는 방법에 대해 알 필요가있는 RSA 암호화해 개발되었다,그것이 어떻게 작동,수학의 뒤에 그것은,그것이 무엇을 위해 사용뿐만 아니라 몇 가지의 가장 큰 보안 문제는 그것의 얼굴입니다., 에 대해 학습 RSA 을 줄 것이다 당신은 몇 가지 기초 지식을 이해하는 데 도움이 됩 얼마나 많은 부분은 우리의 온라인 생활에 안전하게 유지됩니다.

RSA 암호화 란 무엇입니까?

친구에게 비밀을 말하고 싶다고 가정 해 봅시다. 당신이 바로 옆에 있다면,당신은 단지 그것을 속삭 일 수 있습니다. 당신이 나라의 반대편에 있다면,그것은 분명히 효과가 없을 것입니다. 당신이 그것을 쓰고 그들에게 우송 또는 전화를 사용하지만,이러한 각각의 커뮤니케이션 채널이 안전하지 않은 사람과 함께 강한 충분한 동기 부여할 수 있게 차단합니다.,

경우 비밀이 중요한 충분한지 않을 위험을 쓰고 그 아래로 일반적으로 스파이 또는 불량 postal 직원을 찾을 수 있을 통해 메일입니다. 마찬가지로,누군가가 당신의 지식없이 휴대 전화를 도청하고 당신이 만드는 모든 단일 통화를 로깅 할 수 있습니다.

도청자가 메시지 내용에 액세스하지 못하도록하는 한 가지 해결책은 암호화하는 것입니다. 이것은 기본적으로 뒤죽박죽 된 엉망으로 변경하는 메시지에 코드를 추가하는 것을 의미합니다. 코드가 충분히 복잡한 경우 원본 메시지에 액세스 할 수있는 유일한 사람들은 코드에 액세스 할 수있는 사람들입니다.,

경우에 당신은 기회가 있었을 공유하는 코드로 당신의 친구와 함께 사전에,하나의할 수 있는 암호화된 메시지를 보내는 언제든지는 것을 알고,당신은 두 가지만으로 읽는 능력 메시지 내용입니다. 그러나 사전에 코드를 공유 할 기회가 없다면 어떨까요?

이것은 하나의의 근본적인 문제는 암호화 해결되었으로 공개 키 암호화 방식(또는 비대칭 암호화)같은 RSA.

RSA 암호화에서 메시지는 공개적으로 공유 할 수있는 공개 키라는 코드로 암호화됩니다., 때문에 고유한 수학의 특성 RSA 알고리즘,메시지가 암호화되었으로 공개 키 암호 해독할 수 있습으로 다른 키로 알려진입니다. 각 RSA 사용자에는 공개 키와 개인 키로 구성된 키 쌍이 있습니다. 이름에서 알 수 있듯이 개인 키는 비밀로 유지되어야합니다.

공개 키 암호화 방식이 다를 대칭 키 암호화하는 암호화 및 복호화 프로세스를 사용하여 동일한 개체를 검색할 수 있습니다., 이러한 차이점을 공개 키 암호화 RSA 와 같은 유용한 통신에 있는 상황에서는 없었다는 기회를 안전하게 배포 키습니다.

대칭 키 알고리즘은 자신의 응용 프로그램 등의 암호화하는 데이터에 대한 개인적인 사용,또는 때가 있는 보안 채널 프라이빗 키를 공유할 수 있습니다.

참조:공개 키 암호화

RSA 암호화는 어디에 사용됩니까?

RSA 암호화는 종종에서 사용되는 조합으로 다른 암호화 방식,또한 디지털 서명을 증명할 수 있는 신뢰성 및 무결성 표시됩니다., 대칭 키 암호화보다 효율성이 낮고 리소스가 많기 때문에 일반적으로 전체 메시지 또는 파일을 암호화하는 데 사용되지 않습니다.

일을보다 효율적으로 만들기 위해 파일은 일반적으로 대칭 키 알고리즘으로 암호화 된 다음 대칭 키는 RSA 암호화로 암호화됩니다. 이 프로세스에서 rsa 개인 키에 액세스할 수 있는 엔터티만 대칭 키를 해독할 수 있습니다.대칭 키에 액세스 할 수 없으면 원본 파일을 해독 할 수 없습니다., 이 방법을 사용할 수 있습 유지하는 메시지와 파일을 안전하지 않고,너무 오래 걸리거나 소비는 너무 많은 전산 자원입니다.

RSA 암호화는 다수의 상이한 시스템에서 사용될 수있다. OpenSSL,wolfCrypt,cryptlib 및 기타 여러 암호화 라이브러리에서 구현할 수 있습니다.

널리 사용되는 최초의 공개 키 암호화 방식 중 하나 인 RSA 는 보안 통신의 많은 토대를 마련했습니다. 전통적으로 TLS 에서 사용되었으며 pgp 암호화에 사용 된 원래 알고리즘이기도합니다., RSA 는 여전히 웹 브라우저,이메일,Vpn,채팅 및 기타 통신 채널의 범위에서 볼 수있다.

RSA 는 VPN 클라이언트와 VPN 서버 간의 보안 연결을 만드는 데 자주 사용됩니다. OpenVPN 과 같은 프로토콜에서 TLS 핸드 셰이크는 rsa 알고리즘을 사용하여 키를 교환하고 보안 채널을 설정할 수 있습니다.

의 배경 RSA 암호화

에서 언급한 바와 같이 시작에서 이 문서에서는 하기 전에 공개 키 암호화,그 도전이었을 안전하게 통신할 수 있는 경우에 없었던 기회를 안전하게 교환 키습니다., 는 경우에 없을 공유할 수 있는 기회 코드를 앞서는 시간,또는 보안 채널을 통해하는 키가 될 수 있는 배포,방법이 없었을없이 교통의 위협을 적을 수 있는 차단 및 접근 메시지 내용입니다.

상황이 실제로 바뀌기 시작한 것은 1970 년대까지는 아니 었습니다. 첫번째 중요한 발전으로 우리가 지금 공개 키 암호화에 출판되었의 시작은 십 년 James H.Ellis., 엘리스를 찾을 수 없을 구현하는 방법을 자신의 일이지만,그것은 확대에 따라 자신의 동료인 리드 자지가 무엇을 우리가 알고 있는 RSA 암호화 합니다.

퍼즐의 마지막 조각은 우리가 지금 Diffie-Hellman 키 교환이라고 부르는 것입니다. Malcolm J.Williamson,다른 동료,생각 체계는 두 당사자가 공유하는 암호화 키는 경우에도,채널에 의해 감시되고 있 적이다.

이 모든 작업을 수행에 영국 정보기관,정부 통신 본부(통신 사령부),는지 검색을 분류됩니다., 부분적으로 기술한 제한 사항 통신 사령부를 볼 수 없었을 사용한 공개키 암호화 시간,그래서 개발 sat 멍하니 선반 수집 먼지입니다. 그 작업이 기밀 해제되고 RSA 의 원래 발명가가 인정 된 것은 1997 년까지는 아니 었습니다.몇 년 후 비슷한 개념이 공공 영역에서 발전하기 시작했습니다. Ralph Merkle 은 초기 형태의 공개 키 암호화를 만들었는데,Whitfield Diffie 와 Martin Hellman 이 Diffie-Hellman 키 교환 설계에서 영향을 미쳤습니다.,

Diffie 와 Hellman 의 아이디어는 그들의 작업을 공개 키 암호화의 기초로 삼는 한 가지 중요한 측면을 놓치고있었습니다. 이것은 반전하기 어려울 단방향 함수였습니다. 1977 년 Rsa 약어를 구성하는 성 Ron Rivest,Adi Shamir 및 Leonard Adleman 은 1 년 동안 문제를 해결 한 후 해결책을 제시했습니다.

MIT 에 기반을 둔 학자들은 1977 년 유월절 파티 이후 획기적인 발전을 이루었습니다., 후의 밤을 마시는,왜냐하면 집에 갔지만,대신 자,그는 저녁 열 종이를 쓰는 공인한 자신의 아이디어를 위해 필요한 하나의 방법 기능입니다.

아이디어에서 특허에 의해 1983 년 MIT,그러나 초기의 인터넷는 RSA 알고리즘을 참조하기 시작했 광범위하게 채택한 중요한 보안 도구입니다.

RSA 암호화는 어떻게 작동합니까?왜냐하면 너무 많은 독자들이 고등학교 수학 교사에게 상처를 입었을 가능성이 있기 때문입니다., 수학이 너무 손에서 벗어나지 않도록하기 위해 몇 가지 개념을 단순화하고 훨씬 작은 숫자를 사용하는 것입니다. 실제로 RSA 암호화는 크기가 훨씬 큰 소수를 사용하며 몇 가지 다른 복잡성이 있습니다.

있는 여러 가지 서로 다른 개념에 당신을 얻을 수있을 것이 주위에 당신의 머리를하기 전에 우리는 어떻게 설명할 수 있는 모든 그것을 맞는다. 이러한 통로를 포함 기능을 생성하고,소수,카마이클의 totient 기능과 별도의 프로세스 컴퓨팅과 관련된 공공 및 개인 키에 사용되는 암호화 및 복호화 프로세스입니다.,

함정 문능

RSA 암호화 작동하는 전제 아래 알고리즘은 쉽게 계산하에서 한 방향으로,그러나 거의 불가능에 역행합니다. 예를 들어,701,111 이 두 개의 소수의 산물이라고 들었다면,그 두 숫자가 무엇인지 알아낼 수 있을까요?

도 계산기 또는 컴퓨터,대부분의하지 않을 우리는 어떤 아이디어의 시작 위치를 혼자 할 수 있을 것 대답이다. 그러나 우리가 물건을 뒤집으면 훨씬 쉬워집니다., What’s 결과:

907×773

은 당신이 지루 경우,충분히 당신이 휴대 전화를 채찍질하거나 어쩌면 그것을 계산 머리에서 발견하는 대답이 이전에 언급한 701,111. 이 907 및 773 주요 번호는 대답이 우리의 첫 번째 질문에 보여줍니다 우리는 특정 쉬울 수 있는 그 밖으로 하나의 방법이지만,겉으로는 불가능에 역행합니다.

의 또 다른 흥미로운 점이 방정식은 간단한 그는 하나의 번호가 이미 있는 경우 다른 하나뿐만 아니라,제품입니다., 는 경우는 것을 말 701,111 의 결과입니다 907 곱하여 다른 소호에,당신은 그것을 파악할 수 있는 다른 주요 다음과 같은 방정식:

701,111÷907=773

이후로 사이의 관계를 이러한 숫자는 간단한 계산하에서 한 방향으로,그러나 믿을 수 없을만큼 하드에서 역방향,방정식으로 알려져 있는 함정 문 함수입니다. 위의 예는 사람들이 알아 내기가 어렵지만 컴퓨터는 사소한 시간 내에 작업을 수행 할 수 있다는 점에 유의하십시오.

이 때문에 RSA 는 훨씬 더 큰 숫자를 사용합니다., 실제 RSA 구현에서 소수의 크기는 다양하지만 2048 비트 RSA 에서는 617 자리 길이의 키를 만들기 위해 함께 모였습니다. 하는 데 도움 당신은 그것을 시각화,키는 것이 숫자의 이 크기:

생성 소수

함정 문 함수는 위에서 언급한 기초를 형성을 위해 어떻게 공공 및 개인 키 암호화 방식 작동합니다. 이 속성을 사용하면 메시지를 위험에 빠뜨리거나 개인 키를 공개하지 않고 공개 키를 공유 할 수 있습니다. 그들은 또한 한 쌍의 다른 키에 의해서만 해독 될 수있는 방식으로 하나의 키로 데이터를 암호화 할 수있게합니다.,

rsa 로 메시지를 암호화하는 첫 번째 단계는 키를 생성하는 것입니다. 이렇게하려면 원시성 테스트로 선택되는 두 개의 소수(p 와 q)가 필요합니다. Primality test 는 rabin-Miller primality test 와 같이 소수를 효율적으로 찾는 알고리즘입니다.

RSA 의 소수는 매우 커야하며 상대적으로 멀리 떨어져 있어야합니다. 함께 작거나 더 가까운 숫자는 균열하기가 훨씬 쉽습니다. 그럼에도 불구하고,우리의 예는 더 작은 숫자를 사용하여 일을 따르고 계산하기 쉽게 할 것입니다.,

원시성 테스트가 우리가 위에서 사용한 소수,907 및 773 을 제공한다고 가정 해 봅시다. 다음 단계에 발견하는 계수(n),를 이용한 수식은 다음과 같습니다.

n=p x q

p=907 및 q=773

따라서:

n=907×773

n=701,111

카마이클의 totient 기능

일단 우리가 우리 n, 우리가 사용하는 카마이클의 totient 기능:

λ(n)=lcm(p−1,q−1)

있었다면서 칠 수학 교과서,상기 보일 수 있는 조금 무서운입니다., 를 건너뛸 수 있습니다 이 부분을 믿는 수학 작품,그렇지 않으면 우리와 함께 스틱을 위한 몇 가지 더을 계산합니다. 모든 것이 기본 주위에 당신의 머리를 얻을 수 있도록 가능한 한 자세하게 설명 될 것입니다.

없는 사람들을 위해 알고 있어,λ(n)이 나타내는 카마이클의 totient n,동 lcm 의 낮은 일반적인 여러,가장 낮은 번호를 모두 p q 나눌 수 있습니다. 거기에 몇 가지 다른 방법으로 이를 파악하지만,가장 쉬운 방법은 신뢰를 온라인 계산기하는 방정식에 대한 당신., 그래서 우리의 숫자를 방정식으로.

λ(701,111)=lcm(907 − 1, 773 − 1)

λ(701,111)=lcm(906,772)

계산기를 사용하여 위에 연결되어,이 우리를 제공합니다:

λ(701,111) =349,716

를 생성하고 공개 키

이제는 우리가 마 s totient 우리의 총 수,그것을 파악하는 시간을 우리의 공용 키가 있습니다. 아래에 RSA 공개키는 소수의 전자뿐만 아니라,n. 수 e 할 수 있도 1 사이의 값을 λ(n),우리의 예 349,716.,

공개 키는 공개적으로 공유되므로 e 가 난수 인 것은 그리 중요하지 않습니다. 실제로 e 는 일반적으로 65,537 로 설정되며,훨씬 더 큰 숫자가 무작위로 선택되면 암호화가 훨씬 덜 효율적이기 때문입니다. 오늘의 예를 들어,계산을 효율적으로하기 위해 숫자를 작게 유지할 것입니다. 최종 암호화 된 데이터를 암호문(c)이라고합니다. 우리는 파생에서 우리의 일반 텍스트 메시지(m)는,적용하여 공개 키를 가진 수식은 다음과 같습니다.

c=나 mod n

우리는 이미 가지고 올 e 고 우리가 알고 있 n 니다., 우리가 설명해야 할 유일한 것은 모드입니다. 그것은 약간의 깊이 이 문서지만,그것을 참조하 모듈로 동작하는 기본적으로 의미의 나머지 부분이 남을 때 한 쪽을 나눈다. 예를 들어,

10mod3=1

이것은 3 이 10 으로 3 번 들어가고 나머지는 1 이기 때문입니다.

우리 방정식으로 돌아 가라. 일을 단순하게 유지하기 위해 암호화하고 비밀로 유지하려는 메시지(m)가 단지 하나의 숫자 인 4 라고 가정 해 봅시다., 자 플러그에서 모든 것을

c=나 mod n

c=411 모 701,111

c=4,194,304 모 701,111

,다시 만드는 모듈로 작업이 쉽고,우리가 사용하게 될 온라인 계산기,하지만 당신은 환영받습니다 그것을 자신을 위해. 입력하여 4,194,304 온라인으로 계산기,그것은 우리를 제공합니다:

c=688,749

때 따라서 우리가 사용하는 RSA 암호화하는 우리의 메시지,4,우리의 공개 키를,그것은 우리에게 암호문의 688,749., 이전 단계는 약간 너무 수학 무거운 것처럼 보였을 지 모르지만 실제로 일어난 일을 되풀이하는 것이 중요합니다.우리는 비밀을 지키고 싶었던 4 의 메시지를 가지고있었습니다. 우리는 그것에 공개 키를 적용했는데,이는 우리에게 688,749 의 암호화 된 결과를 제공했습니다. 이제 암호화되었으므로 번호 688,749 를 키 쌍의 소유자에게 안전하게 보낼 수 있습니다. 그들은 자신의 개인 키로 해독 할 수있을 것입니다 유일한 사람입니다. 그들이 그것을 해독 할 때,그들은 우리가 정말로 보내고있는 메시지를 보게 될 것입니다,4.,

을 생성하는 개인 키

에서는 RSA 암호화,데이터 또는 메시지로 전환되었습니다 암호문으로 공개 키 암호 해독할 수 있습에 의해 개인 키에서 동일한 열쇠다. 개인 키으로 구성되어 있 d n. 우리는 이미 알고 있 n,다음과 같은 방정식을 찾기 위해 사용 d:

d=1/e 모 λ(n)

에서 생성 공개 키를 위 섹션,우리는 이미 결정하는 우리의 예에서,이와 같 11. 마찬가지로,우리는 λ(n)가 Carmichael 의 totient 기능 하에서 우리의 이전 작업에서 349,716 과 같다는 것을 알고 있습니다., 일 조금 더 복잡할 때 우리가 이 절의 공식:

1/e 모

이 방정식처럼 보일 수 있습니다 그것은 당신을 나누 1 11,하지만 그렇지 않습니다. 대신,이것은 e(이 경우 11)와 λ(n)(이 경우 349,716)의 모듈 역수를 계산해야한다는 것을 상징합니다.

이것은 본질적으로 표준 모듈로 연산을 수행하는 대신 역수를 대신 사용한다는 것을 의미합니다., 이것은 일반적으로 발견과 확장 유클리드 알고리즘,하지만 그것은 작은 외부의 이 문서의 범위,그래서 우리는 우리 것을 그냥 속임수이고 사용하는 온라인 계산기 대신 합니다., 이제는 우리가 모든 것을 이해하는 것이고,하자 플러그인의 정보를 공식으로.

d=1/11 모 349,716

이 작업을 수행하려면,단순히 입력 11(또는 모든 값을 확인할 수 있습에 대한 전자는 경우에 당신이 시도하고 있는 이신 예)을 말하는 곳에 정수 및 349,716(또는 모든 값을 확인할 수 있습에 대한 λ(n)만약 당신이 시도하고 있는 이신 예) 그것이 말하 모듈에서의 온라인 계산기하는 연결되었다., 는 경우에 당신은 그것을 다 가지고 올바르게,당신은 결과를 얻을 곳:

d=254,339

이제는 우리가 값을 위한 d,우리는 메시지를 해독된 암호화된 의 공개 키를 사용한 수식은 다음과 같습니다.

m=cd 모 n

우리는 지금은 다시 이동하는 암호문에 우리는 암호화에서 생성하는 개인 키 섹션입니다. 우리가 공개 키로 메시지를 암호화 할 때,그것은 우리에게 688,749 의 c 에 대한 값을 주었다. 위에서 우리는 d 가 254,339 와 같다는 것을 알고 있습니다. 우리는 또한 n 이 701,111 과 같다는 것을 알고 있습니다. 이것은 우리에게 준다:

m=688,749254,339mod701,111.,

발견 할 수 있습니다를 수행하기 위해 노력하고,숫자를 254,339 번째 파워 조금있을 수 있습니다 조금 더 대부분의 일반적인 계산기. 대신 온라인 RSA 암호 해독 계산기를 사용하게됩니다. 하고 싶은 경우에는 사용하는 다른 방법을 적용하는 능력을로 당신은 일반적으로 수행하는 계수를 조작과 같은 방법으로 우리가 생성 공개 키를 섹션입니다.,

에서 계산기 위 링크,입력 701,111 치 공급 계수:N,254,399 그것이 말하는 암호 해독 키:D,688,749 그것이 말하는 암호문에 메시지가 숫자적 형태로,다음과 같습니다:

들어가면 당신은 데이터,공격을 해독하는 것입니다 숫자를 넣어를 통해 암호 해독에는 수식이었다 위에 나열되어 있습니다. 그러면 아래 상자에 원본 메시지가 표시됩니다. 모든 것을 올바르게 수행했다면 공개 키로 암호화 한 원래 메시지 인 4 의 대답을 얻어야합니다.,

는 방법 RSA 암호화에서 작동 실습

위의 섹션을 제공해야 합리적인을 파악하는 방법의 수학 뒤에 공개 키 암호화 작동합니다. 그것은 조금 혼동 될 수 있습니다,하지만 사람들도 이해하지 못의 복잡한 방정식을 수 있는 희망을 가져 몇 가지 중요한 프로세스에 대한 정보.위에 나열된 단계에서는 이전에 코드를 미리 공유하지 않고도 두 엔티티가 안전하게 통신 할 수있는 방법을 보여주었습니다. 첫째,그들은 각각 자신의 키 쌍을 설정하고 공개 키를 서로 공유해야합니다., 두 엔티티는 통신이 안전하게 유지되기 위해 개인 키를 비밀로 유지해야합니다.

보낸 사람이받는 사람의 공개 키를 가지고 있으면 보안을 유지하려는 데이터를 암호화하는 데 사용할 수 있습니다. 일단 공개 키로 암호화되면 동일한 키 쌍에서 개인 키로만 해독 할 수 있습니다. 동일한 공개 키조차도 데이터를 해독하는 데 사용할 수 없습니다. 이것은 우리가 위에서 언급 한 트랩 도어 기능의 특성 때문입니다.

수신자가 암호화 된 메시지를 받으면 개인 키를 사용하여 데이터에 액세스합니다., 수신자가 안전한 방법으로 통신을 반환하려는 경우 통신하는 당사자의 공개 키로 메시지를 암호화 할 수 있습니다. 다시 한 번,그것이 암호화되었으로 공개키,는 유일한 방법은 정보에 액세스할 수 있습을 통해 이치입니다.

이 방법으로,RSA 암호화 사용할 수 있으로 이전에 알 수 없는 당사자를 안전하게 보낼 데이터습니다. 우리가 온라인 생활에서 사용하는 커뮤니케이션 채널의 상당 부분은이 기초에서 구축되었습니다.,

더 복잡한 메시지는 RSA 로 어떻게 암호화됩니까?

우리의 예에서,우리는 단순화된 것들을 많이 그것을 쉽게 이해하는 이유입니다,우리는 단지 암호화의 메시지”4″입니다. 할 수 있는 암호화 번호 4 것 같지 않은 특히 유용합니다,그래서 당신이 있는지 궁금를 암호화하는 방법이 더 복잡한 설정 같은 데이터 대칭키(는 대부분의 일반적인 사용 RSA)또는 메시지입니다.,

할 수 있습니다 어떤 사람들은 당황에서 어떻게 핵심 같이”n38cb29fkbjh138g7fqijnf3kaj84f8b9f…”또는 메시지”와 같은 구입하는 나에게 샌드위치”할 수 있는 암호화 알고리즘을 통해 다음과 같 RSA,거래 숫자와 문자 수 없습니다. 현실은 그의 모든 정보는 우리의 컴퓨터 프로세스에 저장된 바이너리(1s and0s)그리고 우리가 사용하여 인코딩과 같은 표준을 ASCII 또는 유니코드를 나타내는 방법으로 그는 인간 이해할 수 있(문자).,

이 의미는 열쇠”와 같은 n38cb29fkbjh138g7fqijnf3kaj84f8b9f…”메시지”와 같은 구입하는 나에게 샌드위치”이 이미 존재하는 목적으로 한국어로 번역할 수 있는 쉽게 계산할 수 있도에 RSA 알고리즘이 있습니다. 는 숫자에 표시되는 훨씬 더 크고 더 열심히 우리를 위해를 관리하는 왜 우리를 처리하는 것을 선호로 영숫자 문자 보다는 오히려 혼란의 바이너리입니다.

더 긴 세션 키 또는 rsa 로 더 복잡한 메시지를 암호화하고 싶다면 단순히 훨씬 더 많은 수를 포함 할 것입니다.,

패딩

RSA 가 구현되면 패딩이라는 것을 사용하여 여러 가지 공격을 방지합니다. 이것이 어떻게 작동하는지 설명하기 위해 예제를 시작하겠습니다. 당신을 보내고 있었 코딩된 친구에게 메시지:

사랑하는 Karen,

나는 당신이 있습니다. 내일 저녁 먹을까?

진심으로 당신,

제임스

라고 할 수 있는 코딩된 메시지 간단한 방법으로 변경하여,각 문자는 하나 그것을 다음과 같이에서 알파벳이 있습니다. 이것은 메시지를 다음과 같이 변경합니다.

Efbs Lbsfo,

J ipqf zpv bsf xfmm., Bsf xf tujmm ibwjoh ejoofs upnpsspx?

Zpvst tjodfsfmz

Kbnft

경우 적을 가로채는 이 편지가 속하는 그 사용을 시도하고 균열의 코드입니다. 그들은 당신의 편지의 형식을보고 메시지가 말할지도 모르는 것을 추측하려고 노력할 수 있습니다. 그들이 알고 있는 사람들은 일반적으로 시작하는 문자와”안녕하세요”,”Hello”,”사랑”또는 다른 다수 있습니다.첫 번째 단어로”Hi”또는”Hello”를 적용하려고하면 문자 수에 맞지 않는다는 것을 알 수 있습니다. 그런 다음”친애하는”을 시도 할 수 있습니다., 그것은 적합하지만 그것이 반드시 의미하는 것은 아닙니다. 공격자는 단지 그것을 시도하고 그것이 그들을 이끌었던 곳을 볼 것입니다. 그래서 그들은 문자”e”,”f”,”b”및”s”를”d”,”e”,”a”및”r”으로 각각 변경합니다. 이것은 그들에게 줄 것입니다:

친애하는 Laseo,

J ipqe zpv 는 xemm 입니다. Xe tujmm iawjoh djooes upnpsspx 입니까?

Zpvrt tjoderemz

Kanet

이것은 여전히 보이는 매우 복잡,그래서 공격을 시도 할 수 있습을 보고 다른 어떤 규칙을 어떻게 같이 우리는 우리의 편지입니다. 사람들은 종종 끝에”보낸 사람”또는”친절한 안부”를 추가하지만이 중 어느 것도 형식에 맞지 않습니다., 대신,공격자는”진심으로 당신의 것”을 시도하고 다른 편지를 대체하여 어디에서 얻는 지 볼 수 있습니다. “Z”,”p”,”v”,”t”,”j””o”,”d”및”m”을”y”,”o”,”u”,”s”,”i”,”n”,”c”및”l”으로 각각 변경하면

친애하는 Lasen,

ioqe 당신은 xell 입니다. Xe tuill iawinh dinnes uonossox 입니까?

진심으로 당신,

Kanet

후에는 수정,그것은 다음과 같은 공격자에 시작하고 있습니다. 그들은 초기 추측을 구성한 단어 외에도”나”,”당신”및”있습니다”라는 단어를 발견했습니다.,

단어가 올바른 문법 순서로보고,공격자는 그들이 올바른 방향으로 향하고 있다는 것을 꽤 확신 할 수 있습니다. 지금까지,그들은 아마 또한 각 문자가 알파벳에서 그것을 다음과 하나에 변경되는 관련된 코드를 깨달았다. 일단 그들이 이것을 깨닫게되면,나머지를 번역하고 원래의 메시지를 읽는 것을 쉽게 만듭니다.위의 예는 단순한 코드 였지만 볼 수 있듯이 메시지의 구조는 공격자에게 그 내용에 대한 단서를 제공 할 수 있습니다., 지 확인하기 어려웠을 파악지만 그 구조와 그 어떤 교육을 추측하지만,당신이 필요하다 하는 마음에 컴퓨터에서 더 나은 것을 이렇게 우리보다. 이 의미는 그들이 사용할 수 있는 그 밖으로 훨씬 더 복잡한 코드를 훨씬 짧은 시간에,단서에 따라에서 오는 구조 및 다른 요소입니다.

경우 구조를 이어질 수 있는 코드는 깨지고 계시는 메시지의 내용,다음 우리는 필요한 일부를 숨기는 방법 구조를 유지하기 위해서는 메시지가 안전합니다. 이것은 패딩에 우리를 제공합니다.,

메시지가 패딩,무작위로 데이터를 추가 숨을 원래의 형식 단서를 이어질 수 있는 암호화된 메시지가 파괴되고있다. RSA,는 것은 조금 더 복잡하기 때문에,암호화된 핵심이 없는 명백한 형식의 편지하는 데 도움이 우리에게 단서에서 우리의 위의 예입니다.

그럼에도 불구하고,적들은 코드의 수학적 속성을 악용하고 암호화 된 데이터를 깰 수있는 공격의 숫자를 사용할 수 있습니다. 이 위협으로 인해 RSA 의 구현은 OAEP 와 같은 패딩 체계를 사용하여 추가 데이터를 메시지에 포함시킵니다., 메시지가 암호화되기 전에이 패딩을 추가하면 RSA 가 훨씬 안전합니다.

서명 메시지

rsa 는 데이터를 암호화하는 것 이상의 용도로 사용할 수 있습니다. 의 속성은 또한 그것에게 유용한 시스템에 대한 확인하는 메시지가 전송되었는 엔티티에 의해 주장을 보낸 그것은,뿐만 아니라는 것을 증명하는 메시지가되지 않은 변경 또는 손상을 방지할 수 있습니다.,

하기를 원할 때의 신뢰성을 입증 하는 그들의 메시지를 계산할 수 있습 해시(기능하는 데이터의 임의 크기로 길이가 고정된 값)의 일반 텍스트로,다음 기호들입니다. 그들은 암호 해독에 사용되는 것과 동일한 수식을 적용하여 해시에 서명합니다(m=cd mod n). 메시지가 서명되면,그들은 메시지와 함께이 디지털 서명을 수신자에게 보냅니다.,

경우에는 받는 메시지를 디지털 서명으로 사용할 수 있습 서명 여부를 확인하는 메시지를 확실하게 체결에 의해 개인 키의 사람 청구를 보냈습니다. 또한 메시지가 전송 된 후 공격자에 의해 변경되었는지 여부를 확인할 수 있습니다.

디지털 서명을 확인하고,먼저 받는 사람 사용하여 동일한 해쉬 기능을 찾기 위해 해쉬값의 메시지를 받았습니다., 받는 사람이 다음에 적용 보낸 사람의 공개 키를 사용하여,디지털 서명을 사용하여 암호화를 포뮬러(c=나 mod n),그들에게 해쉬의 디지털 서명을 만들 수 있습니다.

을 비교하여 해시의 받은 메시지와 함께 해시에서 암호화된 디지털 서명을 받는 사람이 말할 수 있는지 여부를 메시지가 있습니다. 두 값이 동일하면 원래 보낸 사람이 서명 한 이후로 메시지가 변경되지 않았습니다. 메시지가 단일 문자로도 변경 되었다면 해시 값은 완전히 다를 것입니다.,

RSA security&공격

좋아 대부분의 곱셈기,보안 RSA 에 따라 달라지는 어떻게 구현되어 사용되고 있다. 중요한 요소 중 하나는 키의 크기입니다. 큰 비트의 개수에서 키(본질적으로 얼마나 키가),이 더 어려운 그것은 균열을 통해 공격과 같은 짐승을 강요하고 고려해.

이후 비대칭 키 알고리즘 등 RSA 로 나눌 수 있습의 정수 분해하는 동안,대칭 키 알고리즘은 다음과 같 AES 수 없습니다,RSA 키를 많이 할 필요는 더 이상을 달성하는 동일한 수준의 보안을 보장합니다.,

현재 인수 분해 된 가장 큰 키 크기는 768 비트 길이입니다. 이것은 수백 대의 기계를 사용하여 2 년 동안 학자 팀에 의해 수행되었습니다.

부터 고려 말까지 완료되었는 2009 년과 컴퓨팅 기능이 크게 성장했기 때문하는 시간이 될 수 있고,가는 것도 비슷한 강도의 수 있 요소 훨씬 더 큰 RSA 키입니다.

에도 불구하고 이 시간에 필요한 자원이 이런 종류의 공격을 둔 손이 닿지 않는 곳에 그것의 가장 해커의 영역으로 나라다., 사용하는 가장 좋은 키 길이는 개별 위협 모델에 따라 다릅니다. 국립표준기술연구원 추천한 최소한의 키 크기 2048 비트이지만,4096 비트 키를 사용한 어떤 상황에서는 위협을 수준이 높다.

인수 분해는 RSA 가 깨질 수있는 한 가지 방법 일뿐입니다. 다른 공격을 끊을 수 있는 암호화 작은 금액의 자원이지만,이에 따라 달라집 구현 및 다른 요소,반드시 RSA 자체입니다. 이 중 일부는 다음과 같습니다.

소수는 정말로 무작위입니까?,

RSA 의 일부 구현은 약한 난수 생성기를 사용하여 소수를 생각해냅니다. 이 숫자가 충분히 무작위가 아니라면 공격자가이를 고려하고 암호화를 깨뜨리는 것이 훨씬 쉬워집니다. 이 문제는 암호로 안전한 의사 난수 생성기를 사용하여 피할 수 있습니다.

가난한 키 생성

RSA 키는 안전하기 위해 특정 매개 변수 내에 있어야합니다. 소수 p 와 q 가 너무 가까이 있으면 키를 쉽게 발견 할 수 있습니다. 마찬가지로 개인 키의 일부를 구성하는 숫자 d 는 너무 작을 수 없습니다., 값이 낮 으면 쉽게 해결할 수 있습니다. 이 숫자는 키를 안전하게 유지하기에 적절한 길이라는 것이 중요합니다.

사이드 채널의 공격

이러한 유형의 공격을 파괴하지 않는 RSA,하지만 그 대신 사용하여서 정보를 구현하는 공격자에 대한 힌트를 암호화 프로세스. 이러한 공격을 포함할 수 있습 같은 것들을 분석하는 금액의 전력 사용되고 있는,또는 분기 예측을 분석,이용하는 실행 시간을 측정하는 발견됩니다.

다른 유형의 사이드 채널 공격은 타이밍 공격으로 알려져 있습니다., 면 공격자가를 측정하는 능력이 있는 암호 해독 시간에 그들의 대상의 컴퓨터에 서로 다른 암호화된 메시지를,이 정보는 것이 가능 할 수 있습 공격자를 확인할 대상입니다.

RSA 의 대부분의 구현은이 상관 관계를 제거하는 암호화 프로세스 중에 일회성 값을 추가하여이 공격을 피합니다. 이 과정을 암호화 블라인딩이라고합니다.

rsa 암호화는 미래에 안전합니까?

좋은 소식은 이러한 가능한 공격에도 불구하고 rsa 가 사용하기에 안전한 것으로 간주된다는 것입니다., 주의해야 할 점은 올바르게 구현하고 올바른 매개 변수 내에 속하는 키를 사용해야한다는 것입니다. 우리가 논의 구현을 사용하지 않는 여백을 사용 부적절한 크기의 소수가 있거나 다른 취약점을 수 없는 안전한 것으로 간주됩니다.rsa 암호화를 사용하려면 최소 1024 비트의 키를 사용하고 있는지 확인하십시오. 더 높은 위협 모델을 가진 사람들은 rsa 를 자신있게 사용하려는 경우 2048 비트 또는 4096 비트의 키를 고수해야합니다., 만큼 당신이 의식의 약점는 RSA 있고 올바르게 사용하는,당신은 느껴야 하는 안전한 사용에 대한 RSA 키를 공유하고 다른 비슷한 작업을 필요로 하는 공개 키 암호화 합니다.

참조:일반적인 암호화 유형 설명

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다