리눅스 RSA 개인키, 공개키 생성

리눅스 RSA 개인키, 공개키 생성

1 개인키 생성[ | ]

  • private.pem 이름을 가진 개인키를 생성함
  • 1024bit길이의 키를 생성함 (숫자가 클수록 보안은 좋아지지만, 컴퓨터에는 더 큰 로드가 가중됨)
[root@zetawiki ~]# openssl genrsa -out private.pem 1024
Generating RSA private key, 1024 bit long modulus
................................................++++++
..........++++++
e is 65537 (0x10001)

2 공개키 생성[ | ]

  • private.pem 이름을 가진 개인키를 가지고 public.pem라는 이름의 공개키를 생성
[root@zetawiki ~]#openssl rsa -in private.pem -out public.pem -outform PEM -pubout
writing RSA key
[root@zetawiki ~]# ll | egrep 'private|public'
-rw-r--r--   1 root root     887 Mar 14 11:43 private.pem
-rw-r--r--   1 root root     162 Mar 14 11:43 public.pem
→ private.pem이 개인키, public.pem가 공개키임

3 (Option) 공개키 암호화 예시[ | ]

3.1 암호화를 위한 파일 생성[ | ]

[root@zetawiki ~] # echo "My name is John" > test.txt
[root@zetawiki ~] # cat test.txt
My name is John

3.2 공개키를 가지고 전송 파일 암호화[ | ]

  • public.pem 공개키를 가지고 test.txt 암호화 하여 test.ssl 생성
[root@zetawiki ~] # openssl rsautl -encrypt -inkey public.pem -pubin -in test.txt -out test.ssl

3.3 암호화된 파일 확인[ | ]

  • 암호화되어 생성된 파일의 내용을 확인해 보면, 그 내용을 알 수 없도록 암호화 되어 있는 것을 확인 할 수 있음
[root@zetawiki ~] # cat test.ssl
�����)3���~��~e�N�����U��������]X'�a��f�음;�v� ���q$�Pb}�W����K�~�YcV��s<f'J���ol��V��5Ð��ΞJ�:�Q���y�	�r�����M~@��Ԕ6ݐ��

3.4 개인키를 가지고 복호화[ | ]

[root@zetawiki ~] # openssl rsautl -decrypt -inkey private.pem -in test.ssl -out test2.txt

3.5 복호된 파일 확인[ | ]

[root@zetawiki ~] # cat test2.txt
My name is John

4 같이 보기[ | ]

5 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}