이것은 일부 사람들에게는 분명할 수 있지만 다음을 사용하여 크기 8192의 키를 생성했는지 궁금합니다.
ssh-keygen -t rsa -b 8192
AES 암호화 및 BASE64 인코딩을 사용하는 SSH 개인 키의 크기가 지정된 8192보다 작을 수 있습니까?
크기는 6446입니다.
약간의 압축이 포함되어 있나요?
답변1
8192 rsa 키는8192비트, 바이트가 아닙니다. 1024바이트입니다.
BASE64의 인코딩된 바이트 크기는 4/3배 증가합니다.
$ echo $((1024*8/6))
1365
이는 공개 키 파일의 키 크기와 비슷합니다.
$ awk '{print $2}' rsatest.pub | wc -c
1397
물론 "개인 키 파일"입니다(적어도) 포함:
- m 값(공통 계수)
- e의 가치
- d의 값
- p의 값
- q의 가치
실제로 여기에는 8개의 (큰 숫자와 작은 숫자) 숫자가 포함되어 있습니다.
cat rsatest | grep -v -- ----- | tr -d '\n' | base64 -d | openssl asn1parse -inform DER
크기는 6363바이트를 포함하도록 4배 이상 증가합니다.
개인 파일 내부를 보는 다른 방법은 다음과 같습니다.
openssl rsa -text -in rsatest
이는 파일에 정수가 포함되어 있음을 나타냅니다.
- 계수
- 공개 색인
- 프라이빗 인덱스
- 소수 1
- 소수 2
- 색인 1
- 인덱스 2
- 계수
답변2
RSA 키 길이는 바이트가 아닌 비트로 지정됩니다. RSA 키 모듈로의 길이는 8192비트 또는 1024바이트입니다.