예제 있는 곳 : https://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellmancng(v=vs.110).aspx
내가 아는 비대칭키 메커니즘은
- 개인키로 암호화 -> 공개키로 복호화
- 공개키로 암호화 -> 개인키로 복호화
인데 이 예제는
1. 코드에 따르면 A, B를 만들어놓고 B의 공개키로 암호화 -> A의 공개키로 복호화하고 있음, 위의 방식과 상이함.
2. 애초에 ECC로 암호화하는게 아니라 AES(대칭키 알고리즘)을 써서 암호화/복호화를 하고 있음.
왜 이따구임?
블록체인 마이너갤러리에 올려봤는데 좆도 답변이없더라
설마 msdn이 잘못되있겟냐 - dc App
나도 잘은 모르지만, 니가 얘기하는건 SSL 종류로 인증과 서명을 하는거 얘기고, 저건 암호화해서 메시지 교환하는 얘기임. 공개키와 개인키를 각각 가지면서 공개키만 보여주고 그걸 이용해서 외부에 공개되지 않는 "동일한" 개인키를 동시에 보유하게 되는거임. 즉, 서로 똑같은 암호를 외부에 노출없이 동시에 가지게 되는거임. 이게 얼핏보면 금방 이해가 안감.
https://ko.wikipedia.org/wiki/디피-헬먼_키_교환
ecdh라고도 하고 여러가지 변형도 있는걸로 안다.
오류나 잘못된게 아니고, 좋은거니까 툴툴대지 말고 열심히 공부해봐라.
설명을 다시 자세히 하자면, 공개키-개인키 페어로 암/복호화 하는 경우는 대개 일대다 다대일의 경우에서 인증과 서명하는데는 유효하지만, 일대일의 비밀메시지 교환은 안됨. 일대일 비밀메시지를 하려면 AES로 메시지를 암호화해서 주고받아야됨. 근데 그러자면 "공통의 비밀암호"가 필요함. 현대 컴퓨팅에서 그 공통암호는 어떻게 공유할까? 그게 ECDH라는 기법종류로 해결되는거임. 서로 공개키만 주고받고하면, 그걸 기반으로 노출되지 않은 개인키를 작성할 수 있는데, 이 개인키가 "똑같은" 결과가 나와서, 그걸 AES 암호로 쓰면 되는거임. 다만 이것의 단점은, 교환구조를 알고있는 공격자가 중간에 껴들어서 탈취가 가능함. 앨리스에게는 가짜밥이 되고, 밥에게는 가짜앨리스가 되어 탈취하는거지.