Điểm:3

Có bao nhiêu Bit/Byte là khóa công khai, được mã hóa

lá cờ in

Tôi đang cố gắng hiểu kích thước "bit/byte" của khóa chung là gì, cách bạn có thể tìm ra nó và thậm chí ý nghĩa của nó.

Một ví dụ về khóa công khai RSA là:

AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L

Làm cách nào để tìm ra độ dài bit của khóa này? Có 368 ký tự, vậy đó có phải là bitength không? Điều đó có nghĩa là đây là một hệ thống 46 byte, phải không? Tôi hầu như không hiểu điều đó có nghĩa là gì, và tôi đã dành một hoặc hai tuần để chìm đắm vào các bài viết trên Wikipedia, các hướng dẫn trên YouTube, v.v. Những người này thường nói như thể bạn hiểu ý của họ, vì vậy tôi không có nhiều điều để nói. Nếu ai đó có thể giải thích logic mà tôi đang thiếu ở đây, điều đó sẽ giúp ích rất nhiều.

Tôi hiểu rằng một khối 8 bit là 1 byte, nghĩa là chúng ta có độ dài 8 ký tự có thể là 1 hoặc 0. Nhưng tôi không biết điều đó sẽ liên quan như thế nào đến những điều trên?

Cuối cùng, tôi có một khóa công khai khác mà tôi muốn tìm ra kích thước cho nó. Giả sử tôi có hai bộ số nguyên, $S_1$$S_2$. Kích thước của chúng lần lượt là 100 và 150. Hai cái này tạo nên khóa công khai của tôi. Điều này rất khác so với ví dụ trên, vậy làm cách nào để tính ra kích thước bit? Hay tôi đang hỏi điều sai ở đây? Tôi thực sự muốn biết một khóa như vậy sẽ chiếm bao nhiêu dung lượng lưu trữ trên máy tính. Giả sử tôi có 100 bộ, mỗi bộ có 1000 điều khoản. Khóa công khai đó sẽ lớn đến mức nào? Nhưng tôi muốn cố gắng "hiểu" ý nghĩa của bit/byte ngay từ đầu.

Bất kỳ làm rõ sẽ được đánh giá rất cao.

Điểm:6
lá cờ gb

Rất nhiều câu hỏi ở đây. Tôi cố gắng phá vỡ nó khá đơn giản và trả lời câu hỏi ban đầu của bạn.

Những gì bạn đã đăng là một cơ sở64 mã hóa khóa công khai ssh-rsa. Vì vậy, về cơ bản nó không thực sự có thể đọc được cho con người. Nếu bạn giải mã chuỗi này, bạn có thể xem nó theo từng byte. Tôi sẽ chỉ cho bạn vài byte đầu tiên trong ví dụ của bạn, cố gắng giải thích ý nghĩa của chúng:

00000000 00 00 00 07 73 73 68 2d 72 73 61 00 00 00 01 25 |....ssh-rsa....%|
00000010 00 00 01 00 7f 9c 09 8e 8d 39 9e cc d5 03 29 8b |.........9....).|
00000020 c4 78 84 5f d9 89 f0 33 df ee 50 6d 5d d0 16 2c |.x._...3..Pm]..,|
  • Bốn byte đầu tiên là 0x00 0x00 0x00 0x07, cho biết rằng byte tiếp theo trường bạn phải đọc dài bảy byte
  • sau đó bạn có bảy byte tiếp theo: 0x73, 0x73, .... 0x61, dịch thành "ssh-rsa".
  • bốn byte tiếp theo là 0x00 0x00 0x00 0x01, cho biết rằng một byte tiếp theo mô tả số mũ công khai của bạn
  • thì bạn có 0x25, là số mũ công khai của bạn
  • bốn byte tiếp theo là 0x00 0x00 0x01 0x00, cho biết mô đun công khai của bạn dài 0x0100 byte (có nghĩa là 256 byte - có nghĩa là 2048 bit)
  • và sau đó bạn có mô đun công khai của mình

Vì vậy, bạn biết rằng trong trường hợp này, mô đun khóa công khai của bạn là 2048 bit. Lưu ý rằng các khóa RSA có thể khác nhau về kích thước. Để biết thêm thông tin, bạn có thể xem qua cái này trang mô tả cấu trúc của các khóa RSA và có thể là wikipedia trang của RSA nói chung.

MeBadMaths avatar
lá cờ in
Tôi nghĩ rằng khóa công khai RSA trông hoàn toàn xa lạ với tôi. Cảm ơn bạn đã xóa nó và cho hai liên kết. Cái đầu tiên đó không phải là cái tôi đã đọc, tôi sẽ xem nó ngay bây giờ. Bạn đã trả lời một số câu hỏi ban đầu của tôi, điều mà tôi đánh giá cao rất nhiều. Bạn đã nói rằng đây là 256 byte - điều đó có nghĩa là nếu tôi đã lưu trữ khóa công khai đó trên một tài liệu Word, thì kích thước tệp sẽ là 256 byte?
Maarten Bodewes avatar
lá cờ in
Không, "kích thước" của khóa RSA được xác định chỉ bằng mô đun kích thước bit. Khóa công khai có thể được mã hóa theo nhiều cách khác nhau, nhưng nhìn chung số mũ công khai cũng được lưu trữ, do đó, trong trường hợp đó, kích thước sẽ lớn hơn 256 byte. Nói cách khác: kích thước khóa **encoded** phụ thuộc vào kích thước khóa, siêu dữ liệu được lưu trữ cùng với khóa và loại mã hóa được sử dụng.
MeBadMaths avatar
lá cờ in
Được rồi, vậy ví dụ tôi đưa ra là một khóa được mã hóa? Do đó, nó sẽ lớn hơn vì mã hóa bổ sung thêm thông tin phải được lưu trữ? Tôi nghĩ rằng có ý nghĩa, cảm ơn bạn!
MeBadMaths avatar
lá cờ in
Vì vậy, để tìm ra kích thước byte của khóa công khai RSA mà tôi đã cung cấp, nó yêu cầu các chi tiết được mã hóa cũng như các chi tiết từ chính quy trình mã hóa. Do đó, điều này không thể chuyển sang các khóa công khai khác cho các hệ thống khác. Tôi cho rằng việc tìm ra kích thước của các khóa chung không giống nhau đối với tất cả các khóa chung? Do đó, tôi có một câu hỏi lớn là kích thước của khóa công khai tương ứng với các bộ trong bài đăng của tôi là bao nhiêu? Đó là mục tiêu chính của tôi và có lẽ tôi đã hơi ngây thơ về việc điều này sẽ dễ dàng như thế nào haha. Cảm ơn vì những hồi âm cho đến bây giờ!
BlueRaja - Danny Pflughoeft avatar
lá cờ cn
@MeBadMaths: Mã hóa base64 cũng làm tăng kích thước một chút. Mỗi ký tự trong chuỗi bạn đã dán cần 8 bit để lưu trữ _ (có thể nhiều hơn, tùy thuộc vào mã hóa của các ký tự!) _, nhưng nó chỉ đại diện cho một trong các giá trị 64 = 2^6 = "giá trị 6 bit". Vậy tại sao lại sử dụng base64 nếu nó quá lãng phí? Nó được thực hiện bởi vì một khóa thô sẽ trông giống như một loạt các ký hiệu vô nghĩa trong trình soạn thảo văn bản và sẽ không sao chép + dán chính xác, trong khi biểu diễn base64 của nó có thể.
MeBadMaths avatar
lá cờ in
@ BlueRaja-DannyPflughoeft Điều đó làm cho mọi thứ rõ ràng hơn. Vì vậy, mỗi ký tự tương ứng với 6 bit dung lượng lưu trữ, kể từ cơ sở64 của nó. Nó được lưu trữ dưới dạng 8 bit, lãng phí 2 bit. Vì vậy, giả sử khóa công khai của tôi là hai nhóm số; $\{0,1,6,7\}$ và $\{0,2,4\}$. Biến chúng thành nhị phân, sau đó thành base64, tôi nghĩ rằng các bộ biến thành AAEGBw= (Có thể sai với phần đệm) và AAIE. Mỗi ký tự là 8 bit = 1 byte (lãng phí 2 bit), vì vậy tổng kích thước tương ứng là 7 byte và 4 byte. Có đúng không? Tôi có thể không tính đến biểu tượng { }, vì vậy chỉ các giá trị số

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.