git: a8a6804f91 - main - update translation of articles/ipsec-must to Russian
Vladlen Popolitov <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.doc |
|---|---|
| Message-ID | <[email protected]> |
The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=a8a6804f91c873cf3063f121ce717ece7c7b6323 commit a8a6804f91c873cf3063f121ce717ece7c7b6323 Author: Vladlen Popolitov <[email protected]> AuthorDate: 2025-10-02 20:29:37 +0000 Commit: Vladlen Popolitov <[email protected]> CommitDate: 2025-10-02 20:29:37 +0000 update translation of articles/ipsec-must to Russian Reviewed by: maxim (mentor) Approved by: maxim (mentor) Differential Revision: https://reviews.freebsd.org/D52014 --- .../content/ru/articles/ipsec-must/_index.adoc | 33 +- .../content/ru/articles/ipsec-must/_index.po | 757 +++++++++++++++++++++ 2 files changed, 776 insertions(+), 14 deletions(-) diff --git a/documentation/content/ru/articles/ipsec-must/_index.adoc b/documentation/content/ru/articles/ipsec-must/_index.adoc index 8ef1f8d028..0ed3a91901 100644 --- a/documentation/content/ru/articles/ipsec-must/_index.adoc +++ b/documentation/content/ru/articles/ipsec-must/_index.adoc @@ -1,8 +1,11 @@ --- -title: ÐезавиÑимое иÑÑледование ÑабоÑÑ IPsec во FreeBSD authors: - - author: David Honig + - + author: 'David Honig' email: [email protected] +description: 'ÐезавиÑимое иÑÑледование ÑабоÑÑ IPsec во FreeBSD' +tags: ["IPsec", "verification", "FreeBSD"] +title: 'ÐезавиÑимое иÑÑледование ÑабоÑÑ IPsec во FreeBSD' trademarks: ["freebsd", "opengroup", "general"] --- @@ -49,7 +52,7 @@ toc::[] [[problem]] == ÐоÑÑановка задаÑи -ÐÐ»Ñ Ð½Ð°Ñала пÑедположим, ÑÑо ÐÑ <<ipsec-install>>. Ðак ÐÑ ÑзнаеÑе, ÑÑо IPsec <<caveat>>? ÐеÑомненно, ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ бÑдеÑ, еÑли ÐÑ Ð½ÐµÐ²ÐµÑно его ÑконÑигÑÑиÑовали. Роно, конеÑно, поÑвиÑÑÑ Ð² вÑводе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:netstat[1], когда ÐÑ Ð²ÑÑ ÑделаеÑе веÑно. Ðо можно ли как-Ñо подÑвеÑдиÑÑ Ñам ÑÐ°ÐºÑ ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ IPsec? +ÐÐ»Ñ Ð½Ð°Ñала пÑедположим, ÑÑо ÐÑ crossref::ipsec-must[ipsec-install, ÑÑÑановили IPsec]. Ðак ÐÑ ÑзнаеÑе, ÑÑо IPsec crossref::ipsec-must[caveat, надо ÑÑиÑÑваÑÑ Ð¿ÑедоÑÑеÑежение]? ÐеÑомненно, ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ бÑдеÑ, еÑли ÐÑ Ð½ÐµÐ²ÐµÑно его ÑконÑигÑÑиÑовали. Роно, конеÑно, поÑвиÑÑÑ Ð² вÑводе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:netstat[1], когда ÐÑ Ð²ÑÑ ÑделаеÑе веÑно. Ðо можно ли как-Ñо подÑвеÑдиÑÑ Ñам ÑÐ°ÐºÑ ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ IPsec? [[solution]] == РеÑение @@ -64,16 +67,16 @@ toc::[] [[MUST]] === MUST -"УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ Ð´Ð»Ñ ÐенеÑаÑоÑов СлÑÑайнÑÑ Ð§Ð¸Ñел" УÑли ÐаÑÑеÑа (Ueli Maurer's Universal Statistical Test for Random Bit Generators), ÑокÑаÑÑнно http://www.geocities.com/SiliconValley/Code/4704/universal.pdf[MUST] позволÑÐµÑ Ð±ÑÑÑÑо измеÑиÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑного набоÑа даннÑÑ . ÐÑполÑзÑемÑй алгоÑиÑм Ð¿Ð¾Ñ Ð¾Ð¶ на алгоÑиÑм ÑжаÑиÑ. <<code>> пÑиведÑн иÑÑ Ð¾Ð´Ð½Ñй код, позволÑÑÑий измеÑÑÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑнÑÑ ÐºÑÑков даннÑÑ ÑазмеÑом около ÑеÑвеÑÑи мегабайÑа. +"УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ Ð´Ð»Ñ ÐенеÑаÑоÑов СлÑÑайнÑÑ Ð§Ð¸Ñел" УÑли ÐаÑÑеÑа (Ueli Maurer's Universal Statistical Test for Random Bit Generators), ÑокÑаÑÑнно http://www.geocities.com/SiliconValley/Code/4704/universal.pdf[MUST], позволÑÐµÑ Ð±ÑÑÑÑо измеÑиÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑного набоÑа даннÑÑ . ÐÑполÑзÑемÑй алгоÑиÑм Ð¿Ð¾Ñ Ð¾Ð¶ на алгоÑиÑм ÑжаÑиÑ. Ð Ñазделе crossref::ipsec-must[code, УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - 8 биÑ))] пÑиведÑн иÑÑ Ð¾Ð´Ð½Ñй код, позволÑÑÑий измеÑÑÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ÑÐ »ÐµÐ´Ð¾Ð²Ð°ÑелÑнÑÑ ÐºÑÑков даннÑÑ ÑазмеÑом около ÑеÑвеÑÑи мегабайÑа. [[tcpdump]] === Tcpdump -ÐÑÑ Ð½Ð°Ð¼ нÑжен ÑпоÑоб ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии, пÑÐ¾Ñ Ð¾Ð´ÑÑей ÑеÑез инÑеÑÑейÑ. ÐÑогÑамма man:tcpdump[1] позволÑÐµÑ ÑделаÑÑ ÑÑо в ÑлÑÑае, еÑли ÐÑ <<kernel>> Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой __ÐакеÑного ФилÑÑÑа ÐеÑкли (Berkeley Packet Filter)__. +ÐÑÑ Ð½Ð°Ð¼ нÑжен ÑпоÑоб ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии, пÑÐ¾Ñ Ð¾Ð´ÑÑей ÑеÑез инÑеÑÑейÑ. ÐÑогÑамма man:tcpdump[1] позволÑÐµÑ ÑделаÑÑ ÑÑо в ÑлÑÑае, еÑли Ñ ÐÐ°Ñ ÑдÑо crossref::ipsec-must[kernel,src/sys/i386/conf/KERNELNAME] Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой __ÐакеÑного ФилÑÑÑа ÐеÑкли (Berkeley Packet Filter)__. -Ðоманда +Ðоманда: -[source,shell] +[source, shell] .... tcpdump -c 4000 -s 10000 -w dumpfile.bin .... @@ -86,12 +89,13 @@ toc::[] ÐовÑоÑиÑе ÑледÑÑÑие Ñаги ÑкÑпеÑименÑа: [.procedure] +==== . ÐÑкÑойÑе два окна ÑеÑминала и ÑвÑжиÑеÑÑ Ð² одном из Ð½Ð¸Ñ Ñ ÐºÐ°ÐºÐ¸Ð¼-нибÑÐ´Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑом ÑеÑез канал IPsec, а в дÑÑгом - Ñ Ð¾Ð±ÑÑнÑм, "незаÑиÑÑннÑм" компÑÑÑеÑом. -. ТепеÑÑ Ð½Ð°ÑниÑе <<tcpdump>>. +. ТепеÑÑ Ð·Ð°Ð¿ÑÑÑиÑе crossref::ipsec-must[tcpdump, Tcpdump]. . Ð "ÑиÑÑованном" окне запÑÑÑиÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ UNIX(R) man:yes[1], коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²ÑдаваÑÑ Ð±ÐµÑконеÑнÑй поÑок Ñимволов `y`. Ðемножко подождиÑе и завеÑÑиÑе еÑ. ÐаÑем пеÑеклÑÑиÑеÑÑ Ð² обÑÑное окно (не иÑполÑзÑÑÑее канал IPsec) и ÑделайÑе Ñо же Ñамое. -. ÐаклÑÑиÑелÑнÑй ÑÑап: запÑÑÑиÑе <<code>>, пеÑедав ÐµÐ¼Ñ Ð´Ð»Ñ Ð¾Ð±ÑабоÑки ÑолÑко ÑÑо ÑÐ¾Ñ ÑанÑннÑе пакеÑÑ ÑеÑез команднÑÑ ÑÑÑокÑ. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑвидеÑÑ ÑÑо-Ñо вÑоде изобÑажÑнного ÑÑÑÑ Ð½Ð¸Ð¶Ðµ. ÐамеÑÑÑе, ÑÑо безопаÑное Ñоединение Ð¸Ð¼ÐµÐµÑ 93% (6,7) Ð¾Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ (7,18), а обÑÑное Ñоединение - вÑего лиÑÑ 29% (2,1). +. ÐаклÑÑиÑелÑнÑй ÑÑап: запÑÑÑиÑе crossref::ipsec-must[code, УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - 8 биÑ)], пеÑедав ÐµÐ¼Ñ Ð´Ð»Ñ Ð¾Ð±ÑабоÑки ÑолÑко ÑÑо ÑÐ¾Ñ ÑанÑннÑе пакеÑÑ ÑеÑез команднÑÑ ÑÑÑокÑ. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑвидеÑÑ ÑÑо-Ñо вÑоде изобÑажÑнного ÑÑÑÑ Ð½Ð¸Ð¶Ðµ. ÐамеÑÑÑе, ÑÑо безопаÑное Ñоединение Ð¸Ð¼ÐµÐµÑ 93% (6,7) Ð¾Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ (7,18), а обÑÑное Ñоединение - вÑего лиÑÑ 29% (2,1). + -[source,shell] +[source, shell] .... % tcpdump -c 4000 -s 10000 -w ipsecdemo.bin % uliscan ipsecdemo.bin @@ -107,14 +111,15 @@ Expected value for L=8 is 7.1836656 2.0838 ----------------- 2.0983 ----------------- .... +==== [[caveat]] -== ÐамеÑание +== ÐÑедоÑÑеÑежение ÐÑÐ¾Ñ ÑкÑпеÑÐ¸Ð¼ÐµÐ½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, ÑÑо IPsec _дейÑÑвиÑелÑно_ ÑаÑпÑеделÑÐµÑ Ð¿ÐµÑедаваемÑе байÑÑ Ð¿Ð¾ облаÑÑи опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ __ÑавномеÑно__, как и лÑбое дÑÑгое ÑиÑÑование. Ðднако ÑÑÐ¾Ñ Ð¼ÐµÑод _не можеÑ_ обнаÑÑжиÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво дÑÑÐ³Ð¸Ñ Ð¸Ð·ÑÑнов в ÑиÑÑеме (Ñ Ð¾ÑÑ Ñ ÑаковÑÑ Ð½Ðµ знаÑ). ÐÐ»Ñ Ð¿ÑимеÑа можно пÑивеÑÑи Ð¿Ð»Ð¾Ñ Ð¸Ðµ алгоÑиÑÐ¼Ñ Ð³ÐµÐ½ÐµÑаÑии или обмена клÑÑами, наÑÑÑение конÑиденÑиалÑноÑÑи даннÑÑ Ð¸Ð»Ð¸ клÑÑей, иÑполÑзование ÑлабÑÑ Ð² кÑипÑогÑаÑиÑеÑком ÑмÑÑле алгоÑиÑмо в, взлом ÑдÑа и Ñ. д. ÐзÑÑайÑе иÑÑ Ð¾Ð´Ð½Ñй код, ÑзнавайÑе, ÑÑо Ñам пÑоиÑÑ Ð¾Ð´Ð¸Ñ. [[IPsec]] -== ÐпÑеделение IPsec +== IPsec â опÑеделение IPsec пÑедÑÑавлÑÐµÑ Ñобой пÑоÑокол безопаÑного обмена инÑоÑмаÑией по Internet. СÑÑеÑÑвÑÐµÑ Ð² виде ÑаÑÑиÑÐµÐ½Ð¸Ñ Ðº IPv4; ÑвлÑеÑÑÑ Ð½ÐµÐ¾ÑÑемлемой ÑаÑÑÑÑ IPv6. СодеÑÐ¶Ð¸Ñ Ð² Ñебе пÑоÑокол ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ аÑÑенÑиÑикаÑии на ÑÑовне IP (межмаÑинное "host-to-host" взаимодейÑÑвие). SSL заÑиÑÐ°ÐµÑ ÑолÑко лиÑÑ ÐºÐ¾Ð½ÐºÑеÑнÑй пÑикладной ÑокеÑ; SSH заÑиÑÐ°ÐµÑ Ð²Ñ Ð¾Ð´ на маÑинÑ; PGP заÑиÑÐ°ÐµÑ Ð¾Ð¿ÑеделÑннÑй Ñайл или пиÑÑмо. IPsec ÑиÑÑÑÐµÑ Ð²ÑÑ Ð¸Ð½ÑоÑмаÑиÑ, пеÑедаваемÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð¼Ð°Ñинами. @@ -123,7 +128,7 @@ IPsec пÑедÑÑавлÑÐµÑ Ñобой пÑоÑокол безопаÑног ÐолÑÑинÑÑво ÑовÑеменнÑÑ Ð²ÐµÑÑий FreeBSD Ñже имеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ IPsec. ÐеÑоÑÑно, ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑдеÑе лиÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð¾Ð¿ÑÐ¸Ñ `IPSEC` в конÑигÑÑаÑионнÑй Ñайл ÑдÑа, и поÑле ÑбоÑки и инÑÑаллÑÑии нового ÑдÑа, ÑконÑигÑÑиÑоваÑÑ Ñоединение IPsec Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:setkey[8]. -Ðолее подÑобно о Ñом, как запÑÑÑиÑÑ IPsec во FreeBSD можно пÑоÑеÑÑÑ Ð² extref:{handbook}security[Ð ÑководÑÑве полÑзоваÑелÑ, ipsec]. +Ðолее подÑобно о Ñом, как запÑÑÑиÑÑ IPsec во FreeBSD можно пÑоÑеÑÑÑ Ð² extref:{handbook}[Ð ÑководÑÑве полÑзоваÑелÑ, ipsec]. [[kernel]] == src/sys/i386/conf/KERNELNAME @@ -138,7 +143,7 @@ device bpf [[code]] == УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - 8 биÑ) -ÐÑигинал нижепÑиведÑнного кода Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾ http://www.geocities.com/SiliconValley/Code/4704/uliscanc.txt[ ÑÑÐ¾Ð¼Ñ Ð°Ð´ÑеÑÑ]. +ÐÑигинал нижепÑиведÑнного кода Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾ https://web.archive.org/web/20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[ ÑÑÐ¾Ð¼Ñ Ð°Ð´ÑеÑÑ]. [.programlisting] .... diff --git a/documentation/content/ru/articles/ipsec-must/_index.po b/documentation/content/ru/articles/ipsec-must/_index.po new file mode 100644 index 0000000000..762f8315b1 --- /dev/null +++ b/documentation/content/ru/articles/ipsec-must/_index.po @@ -0,0 +1,757 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <[email protected]>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2024-12-29 08:30-0500\n" +"PO-Revision-Date: 2025-08-21 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <[email protected]>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/articlesipsec-must_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Title = +#: documentation/content/en/articles/ipsec-must/_index.adoc:1 +#: documentation/content/en/articles/ipsec-must/_index.adoc:11 +#, no-wrap +msgid "Independent Verification of IPsec Functionality in FreeBSD" +msgstr "ÐезавиÑимое иÑÑледование ÑабоÑÑ IPsec во FreeBSD" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:44 +msgid "Abstract" +msgstr "ÐнноÑаÑиÑ" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:47 +msgid "" +"You installed IPsec and it seems to be working. How do you know? I describe " +"a method for experimentally verifying that IPsec is working." +msgstr "" +"ÐÑ ÑолÑко ÑÑо ÑÑÑановили и наÑÑÑоили IPsec, и оно, кажеÑÑÑ, заÑабоÑало. Ðак " +"ÑÑо можно пÑовеÑиÑÑ? Я опиÑÑ Ð¼ÐµÑод ÑкÑпеÑименÑалÑной пÑовеÑки пÑавилÑного " +"ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ IPsec." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:49 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:53 +#, no-wrap +msgid "The Problem" +msgstr "ÐоÑÑановка задаÑи" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:58 +msgid "" +"First, lets assume you have crossref::ipsec-must[ipsec-install, Installing " +"IPsec]. How do you know it is crossref::ipsec-must[caveat, Caveat]? Sure, " +"your connection will not work if it is misconfigured, and it will work when " +"you finally get it right. man:netstat[1] will list it. But can you " +"independently confirm it?" +msgstr "" +"ÐÐ»Ñ Ð½Ð°Ñала пÑедположим, ÑÑо ÐÑ crossref::ipsec-must[ipsec-install, " +"ÑÑÑановили IPsec]. Ðак ÐÑ ÑзнаеÑе, ÑÑо IPsec crossref::ipsec-must[caveat, " +"надо ÑÑиÑÑваÑÑ Ð¿ÑедоÑÑеÑежение]? ÐеÑомненно, ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ðµ бÑдеÑ, еÑли ÐÑ " +"невеÑно его ÑконÑигÑÑиÑовали. Роно, конеÑно, поÑвиÑÑÑ Ð² вÑводе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ " +"man:netstat[1], когда ÐÑ Ð²ÑÑ ÑделаеÑе веÑно. Ðо можно ли как-Ñо подÑвеÑдиÑÑ " +"Ñам ÑÐ°ÐºÑ ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ IPsec?" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:60 +#, no-wrap +msgid "The Solution" +msgstr "РеÑение" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:63 +msgid "First, some crypto-relevant info theory:" +msgstr "ÐÐ»Ñ Ð½Ð°Ñала немножко кÑипÑогÑаÑиÑеÑкой ÑеоÑии:" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:65 +msgid "" +"Encrypted data is uniformly distributed, i.e., has maximal entropy per " +"symbol;" +msgstr "" +"ШиÑÑованнÑе даннÑе ÑавномеÑно ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ñ Ð¿Ð¾ облаÑÑи опÑеделениÑ, Ñо еÑÑÑ " +"каждÑй Ñимвол Ð¸Ð¼ÐµÐµÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑнÑÑопиÑ;" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:66 +msgid "" +"Raw, uncompressed data is typically redundant, i.e., has sub-maximal entropy." +msgstr "" +"\"СÑÑÑе\" и неÑжаÑÑе даннÑе как пÑавило избÑÑоÑнÑ, Ñо еÑÑÑ Ð¸Ñ ÑнÑÑÐ¾Ð¿Ð¸Ñ " +"менÑÑе макÑималÑно возможной." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:70 +msgid "" +"Suppose you could measure the entropy of the data to- and from- your network " +"interface. Then you could see the difference between unencrypted data and " +"encrypted data. This would be true even if some of the data in \"encrypted " +"mode\" was not encrypted---as the outermost IP header must be if the packet " +"is to be routable." +msgstr "" +"ÐÑедположим, ÑÑо Ñ ÐÐ°Ñ Ð¸Ð¼ÐµÐµÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸Ð·Ð¼ÐµÑиÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð²Ñ Ð¾Ð´ÑÑего и " +"иÑÑ Ð¾Ð´ÑÑего ÑÑаÑика на ÑеÑевом инÑеÑÑейÑе. Ð ÑÑом ÑлÑÑае ÐÑ ÑможеÑе легко " +"оÑлиÑиÑÑ Ð·Ð°ÑиÑÑованнÑе даннÑе Ð¾Ñ Ð¾ÑкÑÑÑÑÑ , пÑиÑÑм даже в Ñом ÑлÑÑае, когда " +"ÑаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð² \"Ñежиме ÑиÑÑованиÑ\" пеÑедаÑÑÑÑ Ð² оÑкÑÑÑом виде, к пÑимеÑÑ " +"внеÑние заголовки IP, коÑоÑÑе иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð¼Ð°ÑÑÑÑÑизаÑии." + +#. type: Title === +#: documentation/content/en/articles/ipsec-must/_index.adoc:72 +#, no-wrap +msgid "MUST" +msgstr "MUST" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:77 +msgid "" +"Ueli Maurer's \"Universal Statistical Test for Random Bit " +"Generators\"(https://web.archive.org/web/20011115002319/http://www.geocities." +"com/SiliconValley/Code/4704/universal.pdf[MUST]) quickly measures the " +"entropy of a sample. It uses a compression-like algorithm. crossref::ipsec-" +"must[code, Maurer's Universal Statistical Test (for block size8 bits)] for a " +"variant which measures successive (~quarter megabyte) chunks of a file." +msgstr "" +"\"УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ Ð´Ð»Ñ ÐенеÑаÑоÑов СлÑÑайнÑÑ Ð§Ð¸Ñел\" УÑли " +"ÐаÑÑеÑа (Ueli Maurer's Universal Statistical Test for Random Bit Generators)" +", ÑокÑаÑÑнно http://www.geocities.com/SiliconValley/Code/4704/universal." +"pdf[MUST], позволÑÐµÑ Ð±ÑÑÑÑо измеÑиÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑного набоÑа " +"даннÑÑ . ÐÑполÑзÑемÑй алгоÑиÑм Ð¿Ð¾Ñ Ð¾Ð¶ на алгоÑиÑм ÑжаÑиÑ. Ð Ñазделе crossref" +"::ipsec-must[code, УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - " +"8 биÑ))] пÑиведÑн иÑÑ Ð¾Ð´Ð½Ñй код, позволÑÑÑий измеÑÑÑÑ ÑнÑÑÐ¾Ð¿Ð¸Ñ " +"поÑледоваÑелÑнÑÑ ÐºÑÑков даннÑÑ ÑазмеÑом около ÑеÑвеÑÑи мегабайÑа." + +#. type: Title === +#: documentation/content/en/articles/ipsec-must/_index.adoc:79 +#, no-wrap +msgid "Tcpdump" +msgstr "Tcpdump" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:84 +msgid "" +"We also need a way to capture the raw network data. A program called man:" +"tcpdump[1] lets you do this, if you have enabled the _Berkeley Packet " +"Filter_ interface in your crossref::ipsec-must[kernel,src/sys/i386/conf/" +"KERNELNAME]." +msgstr "" +"ÐÑÑ Ð½Ð°Ð¼ нÑжен ÑпоÑоб ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии, пÑÐ¾Ñ Ð¾Ð´ÑÑей ÑеÑез инÑеÑÑейÑ. " +"ÐÑогÑамма man:tcpdump[1] позволÑÐµÑ ÑделаÑÑ ÑÑо в ÑлÑÑае, еÑли Ñ ÐÐ°Ñ ÑдÑо " +"crossref::ipsec-must[kernel,src/sys/i386/conf/KERNELNAME] Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой " +"__ÐакеÑного ФилÑÑÑа ÐеÑкли (Berkeley Packet Filter)__." + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:86 +msgid "The command:" +msgstr "Ðоманда:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:90 +#, no-wrap +msgid " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n" +msgstr " tcpdump -c 4000 -s 10000 -w dumpfile.bin\n" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:94 +msgid "" +"will capture 4000 raw packets to _dumpfile.bin_. Up to 10,000 bytes per " +"packet will be captured in this example." +msgstr "" +"ÑÐ¾Ñ ÑÐ°Ð½Ð¸Ñ 4000 пакеÑов в Ñайл _dumpfile.bin_. Рданном пÑимеÑе обÑÑм " +"запиÑÑваемой инÑоÑмаÑии в каждом пакеÑе не Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑевÑÑаÑÑ 10,000 байÑов." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:96 +#, no-wrap +msgid "The Experiment" +msgstr "ÐкÑпеÑименÑ" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:99 +msgid "Here is the experiment:" +msgstr "ÐовÑоÑиÑе ÑледÑÑÑие Ñаги ÑкÑпеÑименÑа:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:103 +msgid "Open a window to an IPsec host and another window to an insecure host." +msgstr "" +"ÐÑкÑойÑе два окна ÑеÑминала и ÑвÑжиÑеÑÑ Ð² одном из Ð½Ð¸Ñ Ñ ÐºÐ°ÐºÐ¸Ð¼-нибÑÐ´Ñ " +"компÑÑÑеÑом ÑеÑез канал IPsec, а в дÑÑгом - Ñ Ð¾Ð±ÑÑнÑм, \"незаÑиÑÑннÑм\" " +"компÑÑÑеÑом." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:104 +msgid "Now start crossref::ipsec-must[tcpdump, Tcpdump]." +msgstr "ТепеÑÑ Ð·Ð°Ð¿ÑÑÑиÑе crossref::ipsec-must[tcpdump, Tcpdump]." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:105 +msgid "" +"In the \"secure\" window, run the UNIX(R) command man:yes[1], which will " +"stream the `y` character. After a while, stop this. Switch to the insecure " +"window, and repeat. After a while, stop." +msgstr "" +"Ð \"ÑиÑÑованном\" окне запÑÑÑиÑе ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ UNIX(R) man:yes[1], коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ " +"вÑдаваÑÑ Ð±ÐµÑконеÑнÑй поÑок Ñимволов `y`. Ðемножко подождиÑе и завеÑÑиÑе еÑ. " +"ÐаÑем пеÑеклÑÑиÑеÑÑ Ð² обÑÑное окно (не иÑполÑзÑÑÑее канал IPsec) и ÑделайÑе " +"Ñо же Ñамое." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:106 +msgid "" +"Now run crossref::ipsec-must[code, Maurer's Universal Statistical Test (for " +"block size8 bits)] on the captured packets. You should see something like " +"the following. The important thing to note is that the secure connection has " +"93% (6.7) of the expected value (7.18), and the \"normal\" connection has " +"29% (2.1) of the expected value." +msgstr "" +"ÐаклÑÑиÑелÑнÑй ÑÑап: запÑÑÑиÑе crossref::ipsec-must[code, УнивеÑÑалÑнÑй " +"СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - 8 биÑ)], пеÑедав ÐµÐ¼Ñ Ð´Ð»Ñ " +"обÑабоÑки ÑолÑко ÑÑо ÑÐ¾Ñ ÑанÑннÑе пакеÑÑ ÑеÑез команднÑÑ ÑÑÑокÑ. ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ " +"ÑвидеÑÑ ÑÑо-Ñо вÑоде изобÑажÑнного ÑÑÑÑ Ð½Ð¸Ð¶Ðµ. ÐамеÑÑÑе, ÑÑо безопаÑное " +"Ñоединение Ð¸Ð¼ÐµÐµÑ 93% (6,7) Ð¾Ñ Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ (7,18), а обÑÑное " +"Ñоединение - вÑего лиÑÑ 29% (2,1)." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:122 +#, no-wrap +msgid "" +"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n" +"% uliscan ipsecdemo.bin\n" +"Uliscan 21 Dec 98\n" +"L=8 256 258560\n" +"Measuring file ipsecdemo.bin\n" +"Init done\n" +"Expected value for L=8 is 7.1836656\n" +"6.9396 --------------------------------------------------------\n" +"6.6177 -----------------------------------------------------\n" +"6.4100 ---------------------------------------------------\n" +"2.1101 -----------------\n" +"2.0838 -----------------\n" +"2.0983 -----------------\n" +msgstr "" +"% tcpdump -c 4000 -s 10000 -w ipsecdemo.bin\n" +"% uliscan ipsecdemo.bin\n" +"Uliscan 21 Dec 98\n" +"L=8 256 258560\n" +"Measuring file ipsecdemo.bin\n" +"Init done\n" +"Expected value for L=8 is 7.1836656\n" +"6.9396 --------------------------------------------------------\n" +"6.6177 -----------------------------------------------------\n" +"6.4100 ---------------------------------------------------\n" +"2.1101 -----------------\n" +"2.0838 -----------------\n" +"2.0983 -----------------\n" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:126 +#, no-wrap +msgid "Caveat" +msgstr "ÐÑедоÑÑеÑежение" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:132 +msgid "" +"This experiment shows that IPsec _does_ seem to be distributing the payload " +"data __uniformly__, as encryption should. However, the experiment described " +"here _cannot_ detect many possible flaws in a system (none of which do I " +"have any evidence for). These include poor key generation or exchange, data " +"or keys being visible to others, use of weak algorithms, kernel subversion, " +"etc. Study the source; know the code." +msgstr "" +"ÐÑÐ¾Ñ ÑкÑпеÑÐ¸Ð¼ÐµÐ½Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваеÑ, ÑÑо IPsec _дейÑÑвиÑелÑно_ ÑаÑпÑеделÑÐµÑ " +"пеÑедаваемÑе байÑÑ Ð¿Ð¾ облаÑÑи опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ __ÑавномеÑно__, как и лÑбое дÑÑгое " +"ÑиÑÑование. Ðднако ÑÑÐ¾Ñ Ð¼ÐµÑод _не можеÑ_ обнаÑÑжиÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво дÑÑÐ³Ð¸Ñ Ð¸Ð·ÑÑнов " +"в ÑиÑÑеме (Ñ Ð¾ÑÑ Ñ ÑаковÑÑ Ð½Ðµ знаÑ). ÐÐ»Ñ Ð¿ÑимеÑа можно пÑивеÑÑи Ð¿Ð»Ð¾Ñ Ð¸Ðµ " +"алгоÑиÑÐ¼Ñ Ð³ÐµÐ½ÐµÑаÑии или обмена клÑÑами, наÑÑÑение конÑиденÑиалÑноÑÑи даннÑÑ " +"или клÑÑей, иÑполÑзование ÑлабÑÑ Ð² кÑипÑогÑаÑиÑеÑком ÑмÑÑле алгоÑиÑмов, " +"взлом ÑдÑа и Ñ. д. ÐзÑÑайÑе иÑÑ Ð¾Ð´Ð½Ñй код, ÑзнавайÑе, ÑÑо Ñам пÑоиÑÑ Ð¾Ð´Ð¸Ñ." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:134 +#, no-wrap +msgid "IPsec---Definition" +msgstr "IPsec â опÑеделение" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:140 +msgid "" +"Internet Protocol security extensions to IPv4; required for IPv6. A " +"protocol for negotiating encryption and authentication at the IP (host-to-" +"host) level. SSL secures only one application socket; SSH secures only a " +"login; PGP secures only a specified file or message. IPsec encrypts " +"everything between two hosts." +msgstr "" +"IPsec пÑедÑÑавлÑÐµÑ Ñобой пÑоÑокол безопаÑного обмена инÑоÑмаÑией по " +"Internet. СÑÑеÑÑвÑÐµÑ Ð² виде ÑаÑÑиÑÐµÐ½Ð¸Ñ Ðº IPv4; ÑвлÑеÑÑÑ Ð½ÐµÐ¾ÑÑемлемой ÑаÑÑÑÑ " +"IPv6. СодеÑÐ¶Ð¸Ñ Ð² Ñебе пÑоÑокол ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ аÑÑенÑиÑикаÑии на ÑÑовне IP (" +"межмаÑинное \"host-to-host\" взаимодейÑÑвие). SSL заÑиÑÐ°ÐµÑ ÑолÑко лиÑÑ " +"конкÑеÑнÑй пÑикладной ÑокеÑ; SSH заÑиÑÐ°ÐµÑ Ð²Ñ Ð¾Ð´ на маÑинÑ; PGP заÑиÑÐ°ÐµÑ " +"опÑеделÑннÑй Ñайл или пиÑÑмо. IPsec ÑиÑÑÑÐµÑ Ð²ÑÑ Ð¸Ð½ÑоÑмаÑиÑ, пеÑедаваемÑÑ " +"Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ Ð¼Ð°Ñинами." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:142 +#, no-wrap +msgid "Installing IPsec" +msgstr "УÑÑановка IPsec" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:146 +msgid "" +"Most of the modern versions of FreeBSD have IPsec support in their base " +"source. So you will need to include the `IPSEC` option in your kernel " +"config and, after kernel rebuild and reinstall, configure IPsec connections " +"using man:setkey[8] command." +msgstr "" +"ÐолÑÑинÑÑво ÑовÑеменнÑÑ Ð²ÐµÑÑий FreeBSD Ñже имеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ IPsec. ÐеÑоÑÑно, " +"ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑдеÑе лиÑÑ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ð¾Ð¿ÑÐ¸Ñ `IPSEC` в конÑигÑÑаÑионнÑй Ñайл ÑдÑа, и " +"поÑле ÑбоÑки и инÑÑаллÑÑии нового ÑдÑа, ÑконÑигÑÑиÑоваÑÑ Ñоединение IPsec Ñ " +"помоÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ man:setkey[8]." + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:148 +msgid "" +"A comprehensive guide on running IPsec on FreeBSD is provided in extref:" +"{handbook}[FreeBSD Handbook, ipsec]." +msgstr "" +"Ðолее подÑобно о Ñом, как запÑÑÑиÑÑ IPsec во FreeBSD можно пÑоÑеÑÑÑ Ð² " +"extref:{handbook}[Ð ÑководÑÑве полÑзоваÑелÑ, ipsec]." + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:150 +#, no-wrap +msgid "src/sys/i386/conf/KERNELNAME" +msgstr "src/sys/i386/conf/KERNELNAME" + +#. type: delimited block = 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:154 +msgid "" +"This needs to be present in the kernel config file to capture network data " +"with man:tcpdump[1]. Be sure to run man:config[8] after adding this, and " +"rebuild and reinstall." +msgstr "" +"ÐÐ»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð·Ð°Ñ Ð²Ð°ÑÑваÑÑ ÑеÑевой ÑÑаÑик пÑи помоÑи man:tcpdump[1], " +"ÑледÑÑÑие ÑÑÑоки Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑиÑÑÑÑÑвоваÑÑ Ð² конÑигÑÑаÑионном Ñайле ÑдÑа. Ðе " +"забÑдÑÑе поÑле модиÑикаÑии запÑÑÑиÑÑ man:config[8], и, как обÑÑно, " +"пеÑеÑобÑаÑÑ Ð¸ ÑÑÑановиÑÑ Ð½Ð¾Ð²Ð¾Ðµ ÑдÑо." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:158 +#, no-wrap +msgid "device\tbpf\n" +msgstr "device\tbpf\n" + +#. type: Title == +#: documentation/content/en/articles/ipsec-must/_index.adoc:161 +#, no-wrap +msgid "Maurer's Universal Statistical Test (for block size=8 bits)" +msgstr "УнивеÑÑалÑнÑй СÑаÑиÑÑиÑеÑкий ТеÑÑ ÐаÑÑеÑа (ÑÐ°Ð·Ð¼ÐµÑ Ð±Ð»Ð¾ÐºÐ° - 8 биÑ)" + +#. type: Plain text +#: documentation/content/en/articles/ipsec-must/_index.adoc:164 +msgid "" +"You can find the same code at https://web.archive.org/web/20031204230654/" +"http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc.txt[this link]." +msgstr "" +"ÐÑигинал нижепÑиведÑнного кода Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾ https://web.archive.org/web/" +"20031204230654/http://www.geocities.com:80/SiliconValley/Code/4704/uliscanc." +"txt[ ÑÑÐ¾Ð¼Ñ Ð°Ð´ÑеÑÑ]." + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:169 +#, no-wrap +msgid "" +"/*\n" +" ULISCAN.c ---blocksize of 8\n" +msgstr "" +"/*\n" +" ULISCAN.c ---blocksize of 8\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:173 +#, no-wrap +msgid "" +" 1 Oct 98\n" +" 1 Dec 98\n" +" 21 Dec 98 uliscan.c derived from ueli8.c\n" +msgstr "" +" 1 Oct 98\n" +" 1 Dec 98\n" +" 21 Dec 98 uliscan.c derived from ueli8.c\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:175 +#, no-wrap +msgid " This version has // comments removed for Sun cc\n" +msgstr " This version has // comments removed for Sun cc\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:178 +#, no-wrap +msgid "" +" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n" +" Bit Generators\" using L=8\n" +msgstr "" +" This implements Ueli M Maurer's \"Universal Statistical Test for Random\n" +" Bit Generators\" using L=8\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:181 +#, no-wrap +msgid "" +" Accepts a filename on the command line; writes its results, with other\n" +" info, to stdout.\n" +msgstr "" +" Accepts a filename on the command line; writes its results, with other\n" +" info, to stdout.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:183 +#, no-wrap +msgid " Handles input file exhaustion gracefully.\n" +msgstr " Handles input file exhaustion gracefully.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:186 +#, no-wrap +msgid "" +" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n" +" also on the web somewhere, which is where I found it.\n" +msgstr "" +" Ref: J. Cryptology v 5 no 2, 1992 pp 89-105\n" +" also on the web somewhere, which is where I found it.\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:189 +#, no-wrap +msgid "" +" -David Honig\n" +" [email protected]\n" +msgstr "" +" -David Honig\n" +" [email protected]\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:194 +#, no-wrap +msgid "" +" Usage:\n" +" ULISCAN filename\n" +" outputs to stdout\n" +"*/\n" +msgstr "" +" Usage:\n" +" ULISCAN filename\n" +" outputs to stdout\n" +"*/\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:200 +#, no-wrap +msgid "" +"#define L 8\n" +"#define V (1<<L)\n" +"#define Q (10*V)\n" +"#define K (100 *Q)\n" +"#define MAXSAMP (Q + K)\n" +msgstr "" +"#define L 8\n" +"#define V (1<<L)\n" +"#define Q (10*V)\n" +"#define K (100 *Q)\n" +"#define MAXSAMP (Q + K)\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:203 +#, no-wrap +msgid "" +"#include <stdio.h>\n" +"#include <math.h>\n" +msgstr "" +"#include <stdio.h>\n" +"#include <math.h>\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:215 +#, no-wrap +msgid "" +"int main(argc, argv)\n" +"int argc;\n" +"char **argv;\n" +"{\n" +" FILE *fptr;\n" +" int i,j;\n" +" int b, c;\n" +" int table[V];\n" +" double sum = 0.0;\n" +" int iproduct = 1;\n" +" int run;\n" +msgstr "" +"int main(argc, argv)\n" +"int argc;\n" +"char **argv;\n" +"{\n" +" FILE *fptr;\n" +" int i,j;\n" +" int b, c;\n" +" int table[V];\n" +" double sum = 0.0;\n" +" int iproduct = 1;\n" +" int run;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:217 +#, no-wrap +msgid " extern double log(/* double x */);\n" +msgstr " extern double log(/* double x */);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:219 +#, no-wrap +msgid " printf(\"Uliscan 21 Dec 98 \\nL=%d %d %d \\n\", L, V, MAXSAMP);\n" +msgstr "" +" printf(\"Uliscan 21 Dec 98 \\n" +"L=%d %d %d \\n" +"\", L, V, MAXSAMP);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:226 +#, no-wrap +msgid "" +" if (argc < 2) {\n" +" printf(\"Usage: Uliscan filename\\n\");\n" +" exit(-1);\n" +" } else {\n" +" printf(\"Measuring file %s\\n\", argv[1]);\n" +" }\n" +msgstr "" +" if (argc < 2) {\n" +" printf(\"Usage: Uliscan filename\\n" +"\");\n" +" exit(-1);\n" +" } else {\n" +" printf(\"Measuring file %s\\n" +"\", argv[1]);\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:228 +#, no-wrap +msgid " fptr = fopen(argv[1],\"rb\");\n" +msgstr " fptr = fopen(argv[1],\"rb\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:233 +#, no-wrap +msgid "" +" if (fptr == NULL) {\n" +" printf(\"Can't find %s\\n\", argv[1]);\n" +" exit(-1);\n" +" }\n" +msgstr "" +" if (fptr == NULL) {\n" +" printf(\"Can't find %s\\n" +"\", argv[1]);\n" +" exit(-1);\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:237 +#, no-wrap +msgid "" +" for (i = 0; i < V; i++) {\n" +" table[i] = 0;\n" +" }\n" +msgstr "" +" for (i = 0; i < V; i++) {\n" +" table[i] = 0;\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:242 +#, no-wrap +msgid "" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" table[b] = i;\n" +" }\n" +msgstr "" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" table[b] = i;\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:244 +#, no-wrap +msgid " printf(\"Init done\\n\");\n" +msgstr "" +" printf(\"Init done\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:246 +#, no-wrap +msgid " printf(\"Expected value for L=8 is 7.1836656\\n\");\n" +msgstr "" +" printf(\"Expected value for L=8 is 7.1836656\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:248 +#, no-wrap +msgid " run = 1;\n" +msgstr " run = 1;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:252 +#, no-wrap +msgid "" +" while (run) {\n" +" sum = 0.0;\n" +" iproduct = 1;\n" +msgstr "" +" while (run) {\n" +" sum = 0.0;\n" +" iproduct = 1;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:257 +#, no-wrap +msgid "" +" if (run)\n" +" for (i = Q; run && i < Q + K; i++) {\n" +" j = i;\n" +" b = fgetc(fptr);\n" +msgstr "" +" if (run)\n" +" for (i = Q; run && i < Q + K; i++) {\n" +" j = i;\n" +" b = fgetc(fptr);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:260 +#, no-wrap +msgid "" +" if (b < 0)\n" +" run = 0;\n" +msgstr "" +" if (b < 0)\n" +" run = 0;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:264 +#, no-wrap +msgid "" +" if (run) {\n" +" if (table[b] > j)\n" +" j += K;\n" +msgstr "" +" if (run) {\n" +" if (table[b] > j)\n" +" j += K;\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:266 +#, no-wrap +msgid " sum += log((double)(j-table[b]));\n" +msgstr " sum += log((double)(j-table[b]));\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:270 +#, no-wrap +msgid "" +" table[b] = i;\n" +" }\n" +" }\n" +msgstr "" +" table[b] = i;\n" +" }\n" +" }\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:273 +#, no-wrap +msgid "" +" if (!run)\n" +" printf(\"Premature end of file; read %d blocks.\\n\", i - Q);\n" +msgstr "" +" if (!run)\n" +" printf(\"Premature end of file; read %d blocks.\\n" +"\", i - Q);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:276 +#, no-wrap +msgid "" +" sum = (sum/((double)(i - Q))) / log(2.0);\n" +" printf(\"%4.4f \", sum);\n" +msgstr "" +" sum = (sum/((double)(i - Q))) / log(2.0);\n" +" printf(\"%4.4f \", sum);\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:279 +#, no-wrap +msgid "" +" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n" +" printf(\"-\");\n" +msgstr "" +" for (i = 0; i < (int)(sum*8.0 + 0.50); i++)\n" +" printf(\"-\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:281 +#, no-wrap +msgid " printf(\"\\n\");\n" +msgstr "" +" printf(\"\\n" +"\");\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/ipsec-must/_index.adoc:295 +#, no-wrap +msgid "" +" /* refill initial table */\n" +" if (0) {\n" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" if (b < 0) {\n" +" run = 0;\n" +" } else {\n" +" table[b] = i;\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n" +msgstr "" +" /* refill initial table */\n" +" if (0) {\n" +" for (i = 0; i < Q; i++) {\n" +" b = fgetc(fptr);\n" +" if (b < 0) {\n" +" run = 0;\n" +" } else {\n" +" table[b] = i;\n" +" }\n" +" }\n" +" }\n" +" }\n" +"}\n"