[Powered by Google Translate] [Vigenère Cipher] [Nate hardison - Đại học Harvard] [Đây là CS50. - CS50.TV] Gặp gỡ Alice. Alice có lòng Bob. May mắn cho Alice, Bob cũng có đôi mắt cho cô ấy. Thật không may cho lãng mạn vừa chớm nở của họ, không chỉ làm cha mẹ của Alice không chấp thuận của Bob, nhưng người bạn tốt nhất của Alice, Evelyn, đã phải lòng bí mật của Bob và ích kỷ muốn để chia rẽ họ ở tất cả các chi phí. Để gửi tin nhắn bí mật với nhau rằng cha mẹ của Alice không thể hiểu, Alice và Bob đã được sử dụng một mật mã Caesar, hoạt động bằng cách chuyển đổi bảng chữ cái của một số lượng nhất định của các chữ cái như là một cách để tạo ra một bảng chữ cái mới. Mỗi chữ cái trong bảng chữ cái ban đầu sau đó được thay thế bằng ký tự tương ứng của nó trong bảng chữ cái chuyển mới. Số yêu thích của Alice là 3, mà Bob biết, vì vậy cô sử dụng 3 như là chìa khóa của mình. Khi cô ấy thay đổi bảng chữ cái tiếng Anh bằng 3 chữ cái, Một trở thành D, B trở thành E, C trở thành F, và vv. Khi cô nhận được đến cuối của bảng chữ cái - các chữ cái X, Y, và Z - cô ấy chỉ kết thúc tốt đẹp xung quanh trở lại đầu của bảng chữ cái và các chất thay thế X với A, Y, B, và Z với C. Vì vậy, khi Alice đi để mã hóa thông điệp bí mật của mình cho Bob, cụ thể là "Gặp gỡ tại công viên 11:00," cô ấy chỉ làm cho sự thay thế thích hợp. M trở nên P, E trở nên H, và như vậy cho đến khi cô không được mã hóa tin nhắn văn bản đơn giản được chuyển thành văn bản mật mã mã hóa: "Phhw ph dw wkh sdun dw hohyhq dp" chắc chắn là không nghe có vẻ lãng mạn nhất, nhưng Alice tin rằng nó sẽ làm. Alice đưa ra thông điệp Evelyn để cung cấp cho nhà của Bob. Nhưng Evelyn thay vì mất nó trở lại vào phòng và cố gắng để giải mã. Một trong những điều đầu tiên mà Evelyn thông báo là H với doanh nghiệp xảy ra 7 lần trong tin nhắn, nhiều lần hơn bất kỳ lá thư khác. Biết rằng E với doanh nghiệp là phổ biến nhất trong ngôn ngữ tiếng Anh, xảy ra gần 13% thời gian, Đoán Evelyn rằng H đã được thay thế cho E để làm cho thông điệp bí mật và cố gắng sử dụng một phím 3 để giải mã nó. Trong vòng vài phút, Evelyn con số kế hoạch của Alice và evilly gọi cha mẹ của Alice. Nếu Alice và Bob đưa CS50, họ sẽ phải biết điều này phân tích tần số cuộc tấn công vào mật mã Caesar, cho phép nó để được chia khá nhanh chóng. Họ cũng đã có thể biết rằng thuật toán mã hóa có thể dễ dàng bị một cuộc tấn công brute-force, theo đó Evelyn có thể đã thử tất cả trong số 25 phím có thể, hoặc thay đổi của bảng chữ cái tiếng Anh, theo thứ tự để giải mã thông điệp. Tại sao 25 ​​phím và không 26? Tốt, hãy thử chuyển đổi bất kỳ lá thư của 26 vị trí, và bạn sẽ thấy lý do tại sao. Dù sao, một cuộc tấn công brute-force đã Evelyn lâu hơn một chút nhưng không đủ dài để giữ cô ấy cản trở kế hoạch của Alice và Bob, đặc biệt là nếu Evelyn có sự trợ giúp của máy tính mà có thể rip qua tất cả 25 trường hợp ngay lập tức. Vì vậy, vấn đề này cũng là cản những người khác sử dụng các thuật toán mã hóa Caesar, và do đó người ta bắt đầu thử nghiệm với các thuật toán mật mã thay thế phức tạp hơn sử dụng nhiều giá trị thay đổi thay vì chỉ một. Một trong những tốt nhất được biết đến của những được gọi là mật mã Vigenère. Làm thế nào để chúng ta nhận được các giá trị thay đổi nhiều? Vâng, thay vì sử dụng một số như là chìa khóa, chúng tôi sử dụng một từ khoá. Chúng tôi sẽ sử dụng mỗi ký tự trong chìa khóa để tạo ra một số, và hiệu quả là rằng chúng tôi sẽ có nhiều Caesar thuật toán mã hóa theo kiểu chìa khóa để dịch chữ. Hãy xem cách làm việc này bằng cách mã hóa tin nhắn của Alice để Bob: Gặp tôi tại công viên 11:00 , Cá nhân, tôi nghĩ rằng thịt xông khói ngon, vì vậy hãy sử dụng như là chìa khóa. Nếu chúng ta lấy tin nhắn trong định dạng không được mã hóa đồng bằng văn bản,, chúng ta thấy rằng đó là 25 lá thư dài. Bacon chỉ có 5 chữ cái, vì vậy chúng tôi cần phải lặp lại nó 5 lần để làm cho nó phù hợp với chiều dài của văn bản gốc. Bacon bacon bacon bacon bacon. Là một tóm tắt sang một bên, nếu số lượng chữ cái trong văn bản gốc đã không phân chia sạch bằng của số chữ cái trong khoá, chúng tôi chỉ kết thúc sự lặp lại cuối cùng của chính của chúng tôi sớm, chỉ sử dụng các chữ cái chúng tôi cần thiết để làm cho tất cả mọi thứ phù hợp. Bây giờ chúng ta đi về việc tìm kiếm các giá trị thay đổi. Chúng tôi đang đi để làm điều này bằng cách sử dụng vị trí của mỗi lá thư của chính của chúng tôi thịt xông khói - A đến Z bảng chữ cái. Vì chúng ta là nhà khoa học máy tính, chúng tôi muốn bắt đầu đếm tại số không thay vì 1, do đó, chúng ta sẽ nói rằng vị trí của chữ cái đầu tiên của thịt xông khói - B - là tại vị trí số 1 trong A zero-lập chỉ mục đến Z bảng chữ cái, không phải là 2, và vị trí của A là số không, không phải 1. Sử dụng thuật toán này, chúng ta có thể tìm thấy các giá trị thay đổi cho mỗi chữ cái. Để mã hóa văn bản đơn giản và tạo ra các văn bản mật mã, chúng tôi chỉ thay đổi mỗi ký tự trong văn bản gốc bằng số tiền quy định, giống như chúng tôi làm với mật mã Caesar, gói từ Z đến A nếu cần thiết. M được chuyển sang 1 nơi để trở thành N. E đầu tiên không thay đổi ở tất cả, nhưng chúng ta thay đổi E thứ hai 2 địa điểm G và T 14 nơi H. Nếu chúng ta làm việc thông qua các văn bản đơn giản, chúng tôi kết thúc với, "Negh zf av HUF pcfx bt gzrwep oz." Một lần nữa, không phải là rất lãng mạn nghe nhưng chắc chắn khó hiểu. Nếu Alice và Bob đã biết về mật mã Vigenère, họ sẽ được an toàn từ mắt tò mò của Evelyn? Bạn nghĩ gì? Bạn có muốn đăng nhập vào tài khoản ngân hàng của bạn nếu ngân hàng của bạn quyết định sử dụng Vigenère mã để mã hóa thông tin liên lạc của bạn bằng cách sử dụng mật khẩu của bạn là chìa khóa của bạn? Nếu tôi là bạn, tôi sẽ không. Và trong khi Evelyn có thể được giữ bận rộn đủ dài cho Alice và Bob có của họ đáp ứng-up, nó không phải giá trị nó cho Alice và Bob cơ hội nó. Vigenère thuật toán mã hóa là tương đối dễ dàng để phá vỡ nếu bạn biết chiều dài của khoá bởi vì sau đó bạn có thể xử lý các văn bản mật mã được mã hóa là sản phẩm của một đan xen vài mật mã Caesar. Tìm chiều dài của khoá không phải là terribly cứng, hoặc. Nếu đồng bằng tin nhắn văn bản gốc là đủ lâu rằng một số từ xuất hiện nhiều lần, cuối cùng bạn sẽ thấy sự lặp lại xén lên trong văn bản mật mã mã hóa, như trong ví dụ này, nơi bạn nhìn thấy MONCY xuất hiện hai lần. Ngoài ra, bạn có thể thực hiện một cuộc tấn công brute-force về cơ yếu. Điều này có lâu hơn đáng kể so với một cuộc tấn công brute-force vào mật mã Caesar, mà có thể được thực hiện gần như ngay lập tức với một máy tính bởi thay vào đó 25 trường hợp để kiểm tra xem bạn đã có 26 ⁿ - 1 khả năng, trong đó n là chiều dài của khóa không rõ. Điều này là bởi vì mỗi lá thư trong khoá có thể là bất kỳ của 26 chữ cái, A đến Z, và một người thông minh sẽ cố gắng sử dụng một khóa mà không thể được tìm thấy trong từ điển, có nghĩa là bạn sẽ phải kiểm tra tất cả các kết hợp thư lạ, như ZXXXFF, và không phải chỉ là một vài 100.000 từ trong từ điển. Trừ đi 1 đi vào toán học bởi vì bạn không muốn sử dụng một chìa khóa chỉ với A, vì với bảng chữ cái zero-lập chỉ mục của chúng tôi sẽ cung cấp cho bạn những tác dụng tương tự như bằng cách sử dụng một mật mã Caesar với một phím số không. Dù sao, 26 ⁿ - 1 không nhận được lớn khá nhanh chóng, nhưng trong khi bạn chắc chắn sẽ không muốn cố gắng phá vỡ một mật mã bằng tay theo cách này, điều này chắc chắn là doable với một máy tính. May mắn cho Alice và Bob, và ngân hàng trực tuyến, mật mã đã phát triển cách an toàn hơn để mã hóa thông điệp bí mật từ con mắt tò mò. Tuy nhiên, đó là một chủ đề cho một thời điểm khác. Tên là Nate hardison. Đây là CS50.