Điểm:6

Tại sao tính toán mod cần thiết trong mã hóa pad một lần?

lá cờ de

Xem xét các bảng chữ cái tiếng Anh được mã hóa tại sao việc tính toán mod 26 lại cần thiết sau khi thêm phần đệm vào văn bản thuần túy. Có phải chỉ là nó thêm vào một mức mã hóa khác hay nó được sử dụng để hai chữ cái có thể kết thúc bằng cùng một ký hiệu trong mật mã? 3 mod 26 là 3 và 29 mod 26 là 3.

fgrieu avatar
lá cờ ng
Gợi ý: (1) với mod được sử dụng, và sau đó không được sử dụng, hãy tự hỏi bản thân những câu sau: giá trị bản mã cao nhất có thể là bao nhiêu? Khi nào nó sẽ xảy ra? Liệu đối thủ có nhận thấy giá trị đó trong bản mã sẽ học được điều gì đó về bản rõ không? (2) Tìm hiểu sâu hơn: giả sử văn bản gốc bao gồm các ký tự độc lập ngẫu nhiên và một vùng đệm ngẫu nhiên: bao nhiêu thông tin (tính bằng bit hoặc phân số của chúng trên mỗi ký tự văn bản gốc) được học từ văn bản gốc với chế độ được sử dụng và không được sử dụng?
jjj avatar
lá cờ cn
jjj
Không có hai chữ cái kết thúc với cùng một biểu tượng. Hãy nghĩ về nó giống như bảng chữ cái lặp lại sau 25. Vì vậy, 26 sẽ lại là "a". 3 và 29 tương ứng với cùng một chữ cái. Mod chỉ làm số nhỏ lại nên bạn chỉ cần từ 0 đến 25
Joshua avatar
lá cờ cn
Tôi có phải là người duy nhất sử dụng One Time Pad lần đầu tiên sử dụng các số có năm chữ số với các số không ở gần một trong hai đầu không? Nếu đó là Gaussian ngẫu nhiên chứ không phải đồng phục ngẫu nhiên thì rất ít thông tin bị rò rỉ.
Paul Uszak avatar
lá cờ cn
@Joshua Không, bạn không thể có khóa Gaussian OTP. Trừ khi bạn đang thiếu trình trích xuất ngẫu nhiên từ TRNG của mình
Điểm:21
lá cờ fr

Có hai lý do chính.

Đầu tiên, khi chúng tôi mã hóa dữ liệu bằng thuật toán đối xứng, chúng tôi thường muốn mỗi đơn vị mã hóa hoặc giải mã thành một đơn vị có cùng kích thước (bỏ qua phần đệm và MAC). Trong trường hợp của bạn, khi chúng tôi đang sử dụng các chữ cái tiếng Anh, chúng tôi cũng muốn lấy các chữ cái tiếng Anh chứ không phải một tập hợp các số ngẫu nhiên. Tương tự, khi mã hóa một byte, chúng ta cũng muốn lấy ra một byte, vì máy tính thường làm việc với byte và xử lý chúng theo cách đó là thuận tiện nhất.

Thứ hai, và quan trọng hơn, việc không sử dụng số học mô-đun ở đây sẽ làm rò rỉ thông tin, đôi khi là rất nhiều thông tin, về dữ liệu. Ví dụ: nếu chúng tôi đang sử dụng phạm vi 0-25 để biểu thị các chữ cái của mình, nếu chúng tôi thấy 0 là đầu ra được mã hóa, chúng tôi biết rằng cả bàn phím và đầu vào đều là 0 và nếu chúng tôi thấy 50, chúng tôi biết rằng cả hai bàn phím và đầu vào là 25. Tương tự, 49 cho chúng ta biết rằng hai số liên quan là 24 và 25 theo thứ tự nào đó. Với loại thông tin và phân tích thống kê đó, chúng ta có thể giải mã được bản mã.

Tuy nhiên, nếu chúng ta sử dụng số học mô-đun, thì giá trị đầu ra không cho chúng ta biết bất cứ điều gì về phần đệm hoặc đầu vào, vì mọi giá trị đầu ra đều có khả năng như nhau. Nếu bộ đệm thực sự là ngẫu nhiên và chỉ được sử dụng một lần, thì nó cung cấp tính bảo mật hoàn hảo.

fgrieu avatar
lá cờ ng
"có lẽ chúng ta có thể giải mã bản mã": giả sử tiếng Anh không có khoảng trắng, tôi nghĩ điều đó sẽ khó khăn. Học khi điều đó có thể được thực hiện thực sự là một vấn đề thú vị!
lá cờ jp
@fgrieu Thử thách, nhưng không nhất thiết là không thể.
John Coleman avatar
lá cờ jp
@ user253751 Với một luồng khóa ngẫu nhiên, tôi có thể nói rằng một cuộc tấn công chỉ bằng bản mã mà thành công trong việc khôi phục bản rõ thường là không thể. Những gì bạn có thể làm là loại trừ một số bản rõ ứng cử viên, vì vậy nó chắc chắn làm rò rỉ thông tin, nhưng nói chung là không đủ để phá vỡ hoàn toàn. Đối với một số tin nhắn ngắn hơn, có thể có đủ thông tin để đoán một cách may mắn, đặc biệt nếu có một số thông tin trước đó về nội dung có thể có của văn bản gốc.
fgrieu avatar
lá cờ ng
Nếu bản rõ là ngẫu nhiên, tôi hiểu rằng chúng ta sẽ học â0,7191 bit/ký hiệu, điều mà tôi nghĩ là không đủ để tái tạo lại tiếng Anh thậm chí là bán đáng tin cậy. Chúng ta học được bao nhiêu đối với một văn bản gốc của một ngôn ngữ cụ thể tùy thuộc vào tần số chữ cái và giá trị được gán cho mỗi chữ cái, nhưng tôi nghĩ rằng nó vẫn còn ít hơn đáng kể so với 1 bit/ký hiệu và điều đó vẫn chưa nhiều.
lá cờ cn
Cho rằng câu hỏi hỏi cụ thể về mod 26, tôi cho rằng thông báo sẽ bằng tiếng Anh đơn giản với dấu chấm câu và dấu cách không được mã hóa. Điều này sẽ thật ngớ ngẩn nếu bạn đang cố gắng bảo mật thực sự. Bạn có thể tạo các bảng dựa trên khả năng xảy ra của mỗi chữ cái được cung cấp giá trị và tính đến tần suất xuất hiện của chữ cái đó cũng như phạm vi có thể. Bạn có thể làm tương tự với các từ và giới hạn nó bằng các chữ cái có thể và có khả năng xảy ra với mỗi từ. Sau đó, bạn có thể hạn chế điều đó bằng cách phân tích cú pháp ngôn ngữ và bất kỳ thông tin nào bạn biết về tin nhắn...
lá cờ cn
Ví dụ: giả sử thông báo gốc là 'a-z' và không có sửa đổi, các giá trị có thể được thêm vào là 'A-Z' (tức là 'e' là 4, thêm 21 là 'z', thêm 22 là 'A', v.v.). Nếu bản mã có 'd', bạn biết chữ cái đó phải là a, b, c hoặc d. Nếu bản mã của một từ là 'aB', bạn biết đó là 'a' và một số chữ cái khác từ c đến z. Đó có thể là 'at', 'an', 'as', nhưng không phải là 'aj', 'ao', 'ap' vì đó không phải là từ. 'as' là một quảng cáo hoặc từ kết hợp và là từ tiếng Anh phổ biến thứ 17, 'at' là từ thứ 20 và là giới từ, 'an' là từ thứ 32 và là mạo từ. Bạn không thể giải mã...
lá cờ cn
tin nhắn chắc chắn 100% trong hầu hết các trường hợp, nhưng bạn có thể viết phần mềm để đưa ra cách giải mã *có khả năng* nhất mà không cần thực hiện quá nhiều công việc.
John Coleman avatar
lá cờ jp
@JasonGoemaat Trong mật mã học cổ điển, dấu cách và dấu câu được * loại bỏ * thay vì không được mã hóa. Tất nhiên, điều này là ngớ ngẩn từ quan điểm bảo mật thực sự, nhưng khoảng cách unicity với một khóa ngẫu nhiên vẫn sẽ gần bằng toàn bộ chiều dài khóa. Bạn có thể đưa ra một khái niệm về cách giải mã có khả năng xảy ra nhất, nhưng với số lượng lớn các cách giải mã có thể xảy ra về mặt thiên văn, xác suất được đề cập có thể thấp hơn rất nhiều so với 1%.
dan04 avatar
lá cờ in
Chà, để kiểm tra ý tưởng này, đây là một tin nhắn trong đó mỗi chữ cái được mã hóa A=0...Z=25 cộng với một số âkeyâ giả ngẫu nhiên trong khoảng từ 0 đến 25: 13-28-30-10-38-22 -38-21-36-8-21-15-15-30-39-14-28-16-19-20-39-19-25-18-14-21-26-36-41-31-23 -24-21-22-14-14-17-35-11-7-31-28-23-11-36-26-42-20-40-29-12-11-31-28-37.
John Coleman avatar
lá cờ jp
@dan04 ý tưởng thú vị.Có `37979562564556140050029561655702064479432532295680000000000000000000` có thể giải mã, mặc dù phần lớn sẽ không tương ứng với tiếng Anh hợp lý. Chỉ nhìn vào ba chữ cái đầu tiên, bạn có thể dễ dàng tìm thấy nhiều từ có 3 chữ cái có thể mã hóa theo cách đó (và tất nhiên không cần bắt đầu bằng một từ có 3 chữ cái). Để đạt được tiến bộ nghiêm túc hơn, tôi sẽ xây dựng một [DAWG](https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton) cho một danh sách từ lớn và viết một tập lệnh để biến các chuỗi ban đầu của văn bản mật mã thành các đường dẫn xuyên qua nó.
lá cờ jp
@dan04 Tôi sẽ cho rằng đó không phải là "xin chúc mừng, minh họa kịch tính, đặc quyền của thợ săn sữa" (vâng, "thợ săn sữa" xuất hiện nghiêm túc trong danh sách 10 nghìn từ của google). Nhưng "chúc mừng" là một từ bắt đầu rất có khả năng được đưa ra trong ngữ cảnh và "kịch tính-" cũng có khả năng hợp lý. Các từ dài có nhiều khả năng được đoán đúng hơn vì có nhiều ràng buộc hơn đối với chúng. Tất nhiên, nó chỉ có thể là một sự trùng hợp ngẫu nhiên mà "chúc mừng" phù hợp. Tôi đã không thử những từ nhỏ hơn như "xin chúc mừng, bạn có" hoặc "xin chúc mừng, đây là"
dan04 avatar
lá cờ in
@ user253751: âXin chúc mừngâ thực sự là từ đầu tiên dự kiến. Bây giờ, bạn chỉ cần tìm tổ hợp các từ tiếng Anh khác (sau khi loại bỏ dấu chấm câu và dấu cách) khớp với biểu thức chính quy `[A-O][D-Z][A-Q][A-T][A-U][O-Z][A-T][A-Z][A-S ][A-O][A-V][B-Z][L-Z][Q-Z][G-Z][A-X][A-Y][A-V][A-W][A-O][A-O][A-R][K-Z][A-L][A-H][ G-Z][D-Z][A-X][A-L][L-Z][B-Z][R-Z][A-U][P-Z][E-Z][A-M][A-L][G-Z][D-Z][M-Z]`
lá cờ jp
@dan04 "minh họa kịch tính, đặc quyền của thợ săn sữa" là một sự kết hợp như vậy :P
John Coleman avatar
lá cờ jp
@ dan04 'xin chúc mừng: từ điển cung cấp nhiều lựa chọn: truy tìm bí mật' là một khả năng giải mã mà tôi không tin tưởng lắm. Tôi đã viết một tập lệnh để tìm các kết quả trùng khớp trong các đoạn của văn bản mật mã bằng cách sử dụng danh sách 10 nghìn từ và rất ngạc nhiên về số lượng từ đó. Trừ khi kịch bản của tôi bị lỗi, có gần 2000 khả năng cho từ tiếp theo sau 'chúc mừng'.Bỏ qua những phỏng đoán may mắn, phương pháp mã hóa này dường như chống lại việc khôi phục hoàn toàn bản rõ (điều này tất nhiên không có nghĩa là nó tốt).
Điểm:19
lá cờ jp
Fax

Không sử dụng thông tin rò rỉ mô-đun.

Đối với ngôn ngữ tiếng Anh, nó không quá rõ ràng. Mặt khác, đối với một hình ảnh ...

thứ dường như là tiếng ồn ngẫu nhiên ở bên trái và một bộ tux ồn ào nhưng có thể nhận dạng rõ ràng ở bên phải

Nửa bên trái sử dụng phép cộng và mô đun, nửa bên phải sử dụng phép cộng và chia cho hai (tức là độ sáng một nửa).

Paul Uszak avatar
lá cờ cn
Không chắc chắn rằng TUX trẻ là một ví dụ thích hợp (lại. OTP), vì các giá trị ký tự không đồng đều không thể được chia thành các số nguyên. Vì vậy, tất nhiên bạn đã làm tròn các giá trị RBG (số nguyên) của mình. Bạn thực sự cần một thuật toán/ký tự/ánh xạ khóa hoàn toàn khác. Mà sau đó sẽ không phải là ngẫu nhiên thống nhất, mà là một nhóm nào đó.
dan04 avatar
lá cờ in
@PaulUszak: Để chính xác về mặt kỹ thuật, định dạng đầu ra sẽ cần hỗ trợ các giá trị RGB trong phạm vi [0, 510] và sử dụng tính năng nén không mất dữ liệu. Hình ảnh chỉ được ước tính ở đây vì hạn chế kỹ thuật. Vấn đề là, nếu bạn “mã hóa” một hình ảnh raster và nhận được thứ gì đó mà mắt người có thể dễ dàng nhận ra (mặc dù có “nhiễu” ngẫu nhiên), thì bạn có một thuật toán mã hóa thực sự tồi.
Fax avatar
lá cờ jp
Fax
@PaulUszak Chắc chắn có thể tạo ra hình ảnh không mất dữ liệu 9 bit mà không cần chia và làm tròn, nhưng ngay cả khi bạn có một màn hình có khả năng hiển thị hình ảnh đó, nó sẽ không thay đổi kết luận.
Điểm:3
lá cờ cn

Nó không thể.

Việc mã hóa/giải mã có thể được thực hiện theo bất kỳ cách nào bạn có thể nghĩ ra. Toán học không cần thiết chút nào. Tất cả những gì nó thể hiện là ánh xạ 1:1 (lược đoán) giữa thông báo và văn bản mật mã.Điều quan trọng duy nhất là vật liệu chính được tạo ra thông qua một quá trình (vật lý) thực sự ngẫu nhiên. Chỉ là thao tác modulo hoặc XOR làm cho việc triển khai máy tính trở nên đơn giản hơn.

Đây là mã hóa/giải mã mà không cần toán học bằng cách sử dụng đối ứng DIANA cái bàn:-

cái bàn

Cũng nhận ra rằng có hơn 26 ký tự trong mật mã. Có số, có dấu câu (rất quan trọng vì nó có thể thay đổi nghĩa của câu khi tuyên chiến với ai đó). Sau đó có liệt kê từ mã, như 73 (có ý nghĩa gì đó với ai đó). Từ trang wiki: " Các JN-25 mã được sử dụng trong Thế chiến thứ hai đã sử dụng một cuốn sách mã gồm 30.000 nhóm mã được siêu mã hóa với 30.000 phụ gia ngẫu nhiên. ". Trước đây, bạn có thể thực hiện ánh xạ modulo 10, trên cơ sở từng chữ số.

Maarten Bodewes avatar
lá cờ in
Câu hỏi có nội dung: "tại sao việc tính toán mod 26 lại cần thiết * sau khi thêm phần đệm vào văn bản thuần túy *". Bài viết của bạn chắc chắn là thú vị, nhưng nó không trả lời câu hỏi. Phần thứ hai của câu trả lời của bạn cũng mâu thuẫn với giả định trong dòng đầu tiên của câu hỏi: "*Xem xét các bảng chữ cái tiếng Anh* được mã hóa"
ilkkachu avatar
lá cờ ws
và nếu bạn xem cách tạo bảng, bạn sẽ thấy ví dụ: bên dưới cột `N`, hai mục `Ma` và `Nz` cạnh nhau. Điều đó nói về số học mô-đun.
Paul Uszak avatar
lá cờ cn
@MaartenBodewes Câu trả lời của tôi là chính xác vì câu hỏi đang tranh luận. Chúng ta có thể thực hiện "A/9" $\to$ chỉ liên quan đến tình bạn và không tính toán.

Đă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.