Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

170101 ldquo;Безпека інформаційних і комунікаційних системrdquo; Затверджено на засiданнi кафедри

Работа добавлена на сайт samzan.net:


МІНІСТЕРСТВО  ОСВІТИ  І  НАУКИ,  МОЛОДІ ТА СПОРТУ  УКРАЇНИ

НАЦІОНАЛЬНИЙ  УНІВЕРСИТЕТ  “ЛЬВІВСЬКА  ПОЛІТЕХНІКА”

ГЕНЕРАТОРИ ПСЕВДОВИПАДКОВИХ ПОСЛІДОВНОСТЕЙ НА ОСНОВІ РЕГІСТРІВ ЗСУВУ З ЛІНІЙНИМ ЗВОРОТНИМ ЗВЯЗКОМ

МЕТОДИЧНІ ВКАЗІВКИ ДО ЛАБОРАТОРНОЇ РОБОТИ № 5

З ДИСЦИПЛІНИ “АЛГОРИТМІЧНІ ОСНОВИ КРИПТОЛОГІЇ”

для студентів базового напряму

6.170101 “Безпека інформаційних і комунікаційних систем”

Затверджено на засiданнi кафедри “Безпека інформаційних технологій”,

протокол №      від                  2012 р.

Львів – 2012


Генератори псевдовипадкових послідовностей на основі регістрів зсуву з лінійним зворотним зв’язком: Методичні вказівки до лабораторної роботи №5 з дисципліни “Алгоритмічні основи криптології” для студентів базового напряму
6.170101 “Безпека інформаційних і комунікаційних систем” /Укл.: А.Е.Лагун, Ю.М.Костів - Львів: НУЛП 2012. - 15 с.

Укладачі: А.Е.Лагун, к.т.н., доцент

Ю.М.Костів, асистент

Відповідальний за випуск:

Л.В. Мороз, к.т.н., доцент

Рецензент:  В.М.Максимович, д.т.н., професор


Мета роботи - вивчити основні методи реалізації генераторів псевдовипадкових послідовностей та ознайомитись з методами аналізу з використанням статистичних тестів та навчитися розробляти програмне забезпечення для реалізації перерахованих алгоритмів на комп’ютері.

1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

1.1. Регістри зсуву

Переважна більшість запропонованих до теперішнього часу генераторів потокового шифрування будуються на основі регістрів зсуву, а точніше, на РЗЛЗЗ - регістрах зсуву з лінійним зворотним зв'язком. Це зумовлено трьома основними причинами:

- послідовності, які генерують РЗЛЗЗ, мають хороші статистичні властивості;

- їх поведінка легко аналізується з використанням алгебри;

- їхні структури легко піддаються програмній та апаратній реалізації.

Регістр зсуву із зворотним зв'язком складається з двох частин: регістра зсуву і функції зворотного зв'язку. Регістр зсуву - це послідовність бітових  комірок, тому довжину регістра виражають в бітах: якщо регістр складається з r комірок, то говорять, що це r-бітовий регістр зсуву. Кожного разу, коли генерується новий біт, всі біти регістра зсуваються на одну позицію вправо. Новий лівий біт обчислюється як функція від інших біт регістра, конкретний вигляд функції залежить від використовуваного зворотного зв'язку. Виходом регістра зсуву в кожному такті є 1 біт, часто це наймолодший біт регістра. Період регістра зсуву – це довжина вихідної послідовності до того моменту часу, поки вона почне повторюватися.

Найпростішим типом регістрів зсуву є регістр зсуву з лінійним зворотним зв'язком або РЗЛЗЗ (рис.1). Двійкові псевдовипадкові періодичні послідовності, що генеруються з використанням регістрів зсуву з лінійним зворотним зв'язком, називаються РЗЛЗЗ-послідовностями або лінійними рекурентними послідовностями.

Від певних комірок регістра робляться відведення, або точки знімання, вміст цих комірок додається за модулем 2, а сума повертається в першу комірку регістра зсуву. (На рис.1 qi {0,1} позначають наявність або відсутність точки відведення у даної комірки. Символ  позначає операцію сума за mod 2.)

Рис.1. Регістр зсуву з лінійним зворотнім зв’язком

Регістри зсуву з лінійним зворотним зв'язком використовуються для високошвидкісної апаратної реалізації, легко моделюються на програмному рівні.

Розглянемо основні властивості алгебри регістрів зсуву з лінійним зворотним зв'язком.

  1.  У РЗЛЗЗ довжини r відведення комірок  відповідають поліному зворотного зв'язку

 (1)

з коефіцієнтами . Період і багато інших властивостей РЗЛЗЗ-  послідовності можуть бути виражені в термінах теорії Галуа стосовно заданого многочлена.

  1.  Нескінченна послідовність  може бути ідентифікована за допомогою функції, що її породжує яка є елементом кільця степеневих рядів з цілочисельними коефіцієнтами за mod 2.
  2.  Розмір найменшого РЗЛЗЗ, що породжує задану періодичну послідовність а, називається лінійною складністю або еквівалентним лінійним розмахом а (і позначається span(a)); цей параметр є мірою криптографічної стійкості послідовності. Такий регістр зсуву (мінімального розміру) може бути знайдений ефективним способом за допомогою алгоритму Берлекампа-Мессі.
  3.  Функція побітової суми двох двійкових псевдовипадкових послідовностей  i  задається сумою  у кільці степеневих рядів. Якщо а і b періодичні, то такою ж буде і побітова сума , а її еквівалентний лінійний розмах не перевищує суми лінійних розмахів а і b.
  4.  За визначенням, m-послідовність - це послідовність РЗЛЗЗ максимально можливого періоду  (де r - кількість комірок регістра). Крім того, відомо, що m-послідовності - це послідовності, які генеруються регістрами з примітивними поліномами зворотного зв'язку. Такі послідовності збалансовані (мають однакову кількість нулів і одиниць) і мають властивість де Брюїна: у кожному окремому періоді m- послідовності довільна ненульова підпослідовність довжини r з'являється лише один раз.

Багато сучасних потокових шифрів сконструйовані на основі комбінування  виходів від декількох РЗЛЗЗ різними нелінійними способами.

1.2 Регістри Фібоначчі і Галуа, їх програмна реалізація.

Як правило, в реальних криптосхемах регістри зсуву з лінійним зворотним зв'язком реалізуються на регістрах Фібоначчі або Галуа, проте всі найбільш важливі теоретичні правила справедливі для обох типів.

Регістри Фібоначчі (рис.1). Функція зворотного зв'язку – це додавання операцією XOR певних біт регістра.

Для прикладу візьмемо многочлен . Це означає, що якщо взяти 32-бітовий регістр зсуву і генерувати нові біти XOR- додаванням тридцять другого, сьомого, п'ятого, третього, другого і першого бітів, то результуюча послідовність матиме максимальний період - вона пройде через  значення до того, як почне повторюватися.

РЗЛЗЗ в програмній реалізації працюють досить повільно, і швидкість можна збільшити застосуванням для програмування мови Асемблер замість Сі. Ще одне можливе рішення - запускати 16 РЗЛЗЗ (або 32, залежно від розміру слова в комп'ютері) у паралельному режимі. Така схема використовує масив слів таким чином, що кожна бітова комірка регістру представлена окремим РЗЛЗЗ. За умови, що всі вони мають один і той же поліном зворотного зв'язку, така схема працює досить швидко. У загальному випадку найкращий спосіб оновлювати стани регістрів зсуву - це множити поточний стан на відповідні двійкові матриці.

Регістри Галуа. У РЗЛЗЗ можна модифікувати схему зворотного зв'язку перетворивши регістр в так звану "конфігурацію Галуа". Не можна сказати, що результуючий генератор стає кращим з криптографічної точки зору, але він теж може мати максимальний період і простий в програмній реалізації. У цій схемі замість використання біт з точок знімання для генерації нового найлівішого біта, до кожного біта з точки знімання і виходу генератора застосовується операція XOR і результат замінюється сумою, що вийшла; потім вихід генератора стає новим самим лівим бітом. Таким чином, на відміну від регістру Фібоначчі, де зворотний зв'язок є функцією від всіх комірок в регістрі, а результат поміщається в найлівішу комірку, зворотний зв'язок в регістрі Галуа потенційно застосовний до кожної комірки регістра, хоча є функцією тільки від значення найправішої комірки.

Рис.2. Схема регістру Галуа з лінійним зворотним зв’язком

Виграш в тому, що всі операції XOR можна виконувати як одну операцію. Цю схему також можна розпаралелювати, а окремі многочлени зворотного зв'язку можуть бути різні. Крім того, конфігурація Галуа може працювати швидше і при апаратнії реалізації.

Таким чином, якщо використовується елементна база з швидкою реалізацією зсуву, то слід звернутися до регістрів Фібоначчі; якщо ж є можливість застосувати розпаралелювання, то кращий вибір - регістр Галуа.

При програмній реалізації найшвидшими є примітивні тричлени, оскільки для генерації кожного нового біту послідовності додаються всього два біти.

1.3. Статистичні тести

Стійкість потокового шифру залежить від того, наскільки близько генератор гамми апроксимує генератор випадкових чисел, або іншими словами, наскільки шифруюча послідовність буде обчислювально непередбачувана.

За останні двадцять років розроблено велику кількість статистичних тестів для аналізу того, наскільки послідовність здатна демонструвати випадкову поведінку. Використовувані методи для дослідження випадковості двійкової гами довжини N, перевіряють нульову гіпотезу, згідно з якою послідовність одержана на основі N випробувань схеми Бернуллі з ймовірністю появи одиниці, рівній одній другій в кожному випробуванні.

З теоретичної точки зору, проблема тестування виглядає наступним чином. Статистичний тест T для серії, що виробляється генератором послідовностей довжини N - це функція T: {"прийняти", "відкинути"}, яка розділяє множину  двійкових послідовностей довжини N   на "погані" або "невипадкові" послідовності

 (2)

і решту послідовностей – "хороші" або "випадкові".

Ймовірність того, що вироблена генератором послідовність буде відкинута  У реальних тестах  повинно бути невеликим, наприклад 0.001...0.01.

Для перевірки послідовності великої довжини N довільний статистичний тест T неможливо реалізувати, перевіряючи всю множину . Тому статистичний тест реалізують шляхом задання ефективно-обчислюваної тестової функції (статистики) , яка відображає двійкові послідовності довжини N в дійсні числа. Тобто, якщо позначити  послідовність з N статистично незалежних і симетрично розподілених двійкових випадкових величин, то можна визначити ймовірнісний розподіл випадкової величини , що приймає дійсні значення. Для  задають верхній і нижній пороги  і  такі, що

 (3)

Звичайно, . "поганих" послідовностей з потужністю  задаються співвідношенням

={: або } (4)

Як правило,  підбирають так, щоб () була розподілена відповідно до одного з відомих ймовірнісних розподілів. Найчастіше це нормальний розподіл або розподіл -квадрат з d ступенями свободи (де d - деяке додатне ціле число). Оскільки для цих розподілів доступні числові таблиці, то подібний вибір істотно спрощує визначення порогів  і  при заданих  і N. Нормальний закон розподілу використовують в тих випадках, коли підсумовується велика кількість незалежних і ідентично розподілених випадкових величин. Розподіл - квадрат з d ступенями свободи - коли підсумовуються квадрати d незалежних і нормально розподілених випадкових величин з нульовим середнім і дисперсією рівною 1.

Розглянемо декілька найбільш популярних статистичних тестів для генераторів (псевдо-) випадкових біт.

1.3.1. Частотний тест

Статистичний тест , в якому тестовий параметр  визначається так

 (5)

Кількість "одиниць" у випадковій послідовності  розподілене у відповідності з біноміальним законом розподілу, добре апроксимується нормальним законом розподілу з середнім  і дисперсією , оскільки  і  . Таким чином, ймовірнісний розподіл статистики  при достатньо великих N добре апроксимується нормальним законом розподілу з нульовим середнім і одиничною дисперсією, а прийнятними межами будуть значення .

1.3.2. Послідовний тест

У послідовному тесті  з параметром L, послідовність  ділиться на  послідовних блоків довжиною L (наприклад L=8), і визначається число  появ двійкового представлення цілого числа i для  Статистика тесту визначається так

 (6)

При використанні тесту хі-квадрат рекомендується, щоб очікувані значення щонайменше дорівнювали 5, тобто щоб . Таким чином, при вибраній довжині L розмір масиву для аналізу повинен складати  біт.

1.3.3. Тест серій

У тесті серій  з параметром L для послідовності  визначається  - кількість 0-серій довжиною i і, аналогічно,  - кількість 1-серій довжини i для  (наприклад L = 15). Статистика тесту визначається так:

 (7)

Ймовірнісний розподіл  при великих N дуже добре апроксимується розподілом  з 2-ма ступенями свободи, оскільки члени суми - квадрати незалежних випадкових величин, розподілених нормально з нульовим середнім і одиничною дисперсією.

1.3.4. Автокореляційний тест

Для початкової послідовності  "автокореляційним тестом з затримкою " називають частотний тест для послідовності  де  означає додавання за модулем 2. Даний тест використовується для виявлення можливих кореляцій між бітами послідовності на відстані .

1.3.5. Універсальний тест

Розглянемо два складніші тести, запропоновані для криптографічного аналізу псевдовипадкових послідовностей. У цих тестах розглядаються заходи, пов'язані з появою кожної можливої двійкової структури (патерну) заданої довжини l. Відрізки беруться як двійкові l-грами, що не перекриваються, накладаються з шифропослідовностями. Універсальний тест вимірює відстань від останньої появи двійкової l-грами; тест повторень вимірює кількість повторень двійкових l-грам.

У випадку, коли аналізована послідовність розбита на блоки довжини l, даний алгоритм задає статистику, яка обчислюється шляхом підсумовування логарифмів  відстаней до останньої появи кожної l-грами тестованої послідовності. Цей тест задається двома цілочисельними параметрами  і K сума яких дорівнює загальній кількості l-грам в досліджуваній послідовності гамми.  це кількість блоків ініціалізації (l-грам), які використовуються для початкового заповнення табличного масиву Tab розміром . Значення Tab – це позиції останньої появи кожної із спостережуваних в послідовності l-грам. Якщо який-небудь патерн l-грами не з'явився в процесі ініціалізації, тоді його Tab встановлюється в нуль. Рекомендовано, щоб . Параметр K представляє кількість блоків для тестування. Рекомендовано, щоб він був настільки великим, наскільки це можливо . Тестова функція задається так:

 (8)

де  - це значення з Tab або остання позиція, що спостерігалася, в потоці двійкових l-грам для даного патерну s(i), відміченого на позиції i.

Значення матсподівання  і дисперсії  функції , зведені Маурером в таблицю і обчислені з припущенням, що  незалежні. Для дисперсії також введено множник

 (9)

Остаточна статистика:

 (10)

порівнюється з випадковою величиною стандартного нормального розподілу. Це двохсторонній тест. Мінімальна довжина шифропослідовності, необхідна для цього тесту, складає  біт.

Таблиця 1. Значення математичного сподівання

і дисперсії для універсального тесту

l

E(f)

D(f)

l

E(f)

D(f)

1

0,7326495

0,690

9

8,1764248

3,311

2

1,5374383

1,338

10

9,1723243

3,356

3

2,4016068

1,901

11

10,170032

3,384

4

3,3112247

2,358

12

11,168765

3,401

5

4,2534266

2,705

13

12,168070

3,410

6

5,2177052

2,954

14

13,167693

3,416

7

6,1962507

3,125

15

14,167488

3,419

8

7,1836656

3,238

16

15,167379

3,421

1.3.6. Тест повторень

Цей тест для аналізу l-грам запропонований австралійськими криптографами Густафсоном і Доусоном. Тест є результатом апроксимації розподілом Пуассона класичного завдання про розміщення в певних умовах, коли кількість можливих урн дуже велика. У конструкції тесту береться до уваги кількість порожніх урн, а використовувана міра підраховує кількість урн, що повторюються, в тестованої послідовності з R урн (або l-грам).

У класичному завданні про розміщення розглядається експеримент, що полягає у киданні R куль випадковим чином в N урн, так що ймовірність попадання кожної кулі в будь-яку конкретну урну складає 1/N. Кількість порожніх урн позначається M0, а ймовірність того, що t з N урн залишаться порожніми в теорії ймовірності задається рівнянням

 (11)

Матсподівання  і дисперсія  кількості порожніх урн задаються так:

 (12)

 (13)

При ,  і  розподіл випадкової величини

 (14)

зводиться до розподілу Пуассона з математичним сподіванням

 (15)

Оскільки  - це кількість зайнятих урн, то значення w тестової статистики є кількістю повторень патернів у вибірці. w – це кількість разів, коли з'явилося повторення, а не кількість повторень патернів. На відміну від тесту на рівноймовірність, де розмір вибірки R зростає лінійно від N, достатньо, щоб R зростало лінійно від , що дозволяє перевіряти блоки вдвічі більшої довжини. Це двохсторонній тест, оскільки при випадковому розміщенні не очікується, що кожна урна повинна бути зайнята до того, як з'являться повторення.

Даний тест вимагає підрахунку кількості повторень патернів, а не частот появи кожного патерну, тому масив даних, що зберігаються, складається з -бітових блоків, де . При використанні відповідних алгоритмів сортування загальна обчислювальна складність має порядок  при необхідній ємності масиву зберігання розміром всього  -бітових блоків. Це можливо навіть при

1.3.7. Порівняння тестів l-грам

У випадку застосування послідовного тесту всі очікувані частоти рівні і повинні бути не менше 5, звідки випливає, що мінімальна довжина тестового масиву має бути не менше  біт. У разі застосування універсального тесту потрібна довжина гамми повинна складати  біт. У тесті повторень довжина послідовності повинна бути  біт, тобто його слід застосовувати при великих розмірах l-грам. У таблиці 2 наводяться результати порівняння мінімальних довжин шифропослідовностей, потрібних для застосування описаних тестів.

Таблиця 2. Мінімальна довжина в бітах для тестування потокових шифрів

Довжина l-грами

Послідовний тест

Універсальний тест

Тест повторень

14

14336

16

32768

20

24

28

32

2. ЗАВДАННЯ

2.1. Домашня підготовка до роботи

1) Вивчити основні способи реалізації генераторів псевдовипадкових послідовностей на основі регістрів зсуву з лінійним зворотним зв’язком та методи обчислення випадковості отриманої послідовності.

2) Скласти блок-схеми алгоритмів та підпрограми для реалізації генераторів псевдовипадкових послідовностей. Варіанти функцій зворотного зв’язку та тип регістру беруться за вказівкою викладача з таблиці 3.

3) Скласти блок-схеми алгоритмів, підпрограми та програму для реалізації обчислення випадковості гами. Дані для роботи беруться з таблиці 3 за вказівкою викладача.

Таблиця 3.

з/п

Функція зворотного звязку

Тип регістру

Тести

1

(8, 4, 3, 2, 0)

Фібоначчі

Частотний і послідовний

2

(12, 6, 4, 1, 0)

Фібоначчі

Частотний і тест серій

3

13, 4, 3, 1, 0

Фібоначчі

Частотний і автокореляційний

4

14, 5, 3, 1, 0

Фібоначчі

Частотний і універсальний

5

16, 5, 3, 2, 0

Галуа

Частотний і тест повторень

6

18, 5, 2, 1, 0

Фібоначчі

Послідовний і тест серій

7

19, 5, 2, 1, 0

Галуа

Послідовний і універсальний

8

24, 4, 3, 1, 0

Галуа

Послідовний і тест повторень

9

36, 6, 5, 4, 2, 1, 0

Галуа

Тест серій і автокореляційний

10

37, 6, 4, 1, 0

Фібоначчі

Тест серій і універсальний

11

37, 6, 4, 1, 0

Фібоначчі

Тест серій і тест повторень

12

37, 5, 4, 3, 2, 1, 0

Галуа

Автокореляційний і універсальний

13

38, 6, 5, 1, 0

Фібоначчі

Автокореляційний і тест повторень

14

40, 5, 4, 3, 0

Галуа

Універсальний і тест повторень

15

42, 5, 4, 3, 2, 1, 0

Фібоначчі

Частотний і послідовний

16

43, 6, 4, 3, 0

Галуа

Частотний і тест серій

17

44, 6, 5, 2, 0

Галуа

Частотний і автокореляційний

18

45, 4, 3, 1, 0

Галуа

Частотний і універсальний

19

46, 8, 7, 6, 0

Фібоначчі

Частотний і тест повторень

20

46, 8, 5, 3, 2, 1, 0

Галуа

Послідовний і тест серій

21

48, 9, 7, 4, 0

Галуа

Послідовний і універсальний

22

48, 7, 5, 4, 2, 1, 0

Фібоначчі

Послідовний і тест повторень

23

49, 6, 5, 4, 0

Галуа

Тест серій і універсальний

24

50, 4, 3, 20

Фібоначчі

Тест серій і тест повторень

2.2. Робота в лабораторії

1) Ввести в комп'ютер програми згідно з отриманим завданням.

2) Відлагодити програми. При необхідності скоригувати блок-схеми алгоритмів та програми у відповідності з виявленими логічними та синтаксичними помилками.

3) Остаточні версії блок-схем, програм та отримані результати занести у звіт з лабораторної роботи.

4) Здати звіт з лабораторної роботи.

3. ЗМІСТ ЗВІТУ

1) Номер і назва лабораторної роботи.

2) Повний текст завдання.

3) Остаточні версії блок-схем алгоритмів.

4) Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемах алгоритмів і програм, та їх пояснення.

5) Остаточні версії програм.

6) Результати роботи програм.

4. КОНТРОЛЬНІ ЗАПИТАННЯ

1. Що таке регістр зсуву?

2. Складові елементи регістру зсуву.

3. Намалюйте схему регістру Фібоначчі?

4. Намалюйте схему регістру Галуа?

5. Як проводиться частотний тест?

6. Як проводиться послідовний тест?

7. Як проводиться тест серії?

8. Як проводиться автокореляційний тест?

9. Як проводиться універсальний тест?

СПИСОК ЛІТЕРАТУРИ

  1.  R.E. Blahut. Theory and Practice of Error Control Codes. Addison-Wesley, 1983
  2.  A. Klapper and M. Goresky. Feedback Shift Registers, 2-Adic Span, and Combiners with Memory, Journal of Cryptology (1997) 10: 111-147.
  3.  R. Lidl and H. Niederreiter, "Finite Fields," in Encyclopedia of Mathematics and Its Applications, Vol. 20, Reading, MA: Addison-Wesley, 1983..
  4.  R. Lidl and H. Niederreiter,  Introduction to Finite Fields and Their Applications, London, Cambridge University Press, 1986.
  5.  Б. Шнайер. Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке С, 2-ое издание.
  6.  Дискретная математика и криптология. Курс лекций/ Под общ. Ред. Н.Д. Подуфалова – М.:ДИАЛОГ-МИФИ, 2003 – 400 с.

Навчальне видання

Генератори псевдовипадкових послідовностей на основі регістрів зсуву з лінійним зворотним зв’язком: Методичні вказівки до лабораторної роботи №5 з дисципліни “Алгоритмічні основи криптології” для студентів базового напряму 6.170101 “Безпека інформаційних і комунікаційних систем”.

Укладачі: А.Е.Лагун, к.т.н., доцент

Ю.М.Костів, асистент




1. ИПББИНФА 2002 г Бухгалтерский учет
2. перечливо ясно визначені характеристики вихованців і умови процесу то технологію можна створити дуже ефек
3. расцвета и кризиса
4. Экспертиза как основная форма использования специальных познаний в уголовном процессе
5. тематики Следуя К
6. Нравится ли вам быть вместе
7. Практикум по информатике - учеб
8. Варианты ответов 1 Элементарной единицей информации является; А
9. ВВЕДЕНИЕ Жизнь человеческого общества сложна многообразна и противоречива
10. ЗА БРАТЦА КРОЛИКА Сказка афроамериканцев США Перевод 3
11. Сущность теории полезности
12. NetPromoter новые возможности профессиональной интернет-статистики
13. тематики и программирования ЗАДАНИЕ на курсовую работу по курсу Вычислительная техника и алго
14. С~йы~тар мен газдар механикасы ~дісі ж~не п~ні С~йы~ т~сінігі аны~тамасы
15. О мерах по обеспечению выполнения обязательств Российской Федерации по Венской конвенции об охране озоново
16. Делиться или не делиться доходами
17. Ресурс Номинация конкурса- Организация праздников и мероприятий в средних учебных заведениях
18. некротичними процесами в тканині печінки
19. НОВЫЙ ФАРВАТЕР 2013 ПАСПОРТ МУНИЦИПАЛЬНОГО ШТАБА ФЛАГМАНСКОЙ ПРОГРАММЫ
20. в семье нет больных детей но имеет место близкородственный брак; консультирование в связи с бесплодным бр