diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c25324b..a62efec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,7 +3,7 @@ name: Build all template PDF and release it # Feel free to increment this counter in your attempts to do things # the smart way instead of the easy way. # -# total_hours_wasted = 17 +# total_hours_wasted = 19 on: @@ -20,10 +20,10 @@ jobs: # build šablony build: runs-on: ubuntu-latest - + steps: - name: Set up Git repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 # kompilace - name: Build ${{ matrix.dir }} @@ -34,14 +34,14 @@ jobs: root_file: main.tex - name: Set env - run: echo "NAME=$(grep -F "\newcommand{\subject}" main.tex | cut -d'{' -f 3 | cut -d'}' -f 1)" >> $GITHUB_ENV + run: echo "NAME=$(grep -F "\newcommand{\name}" main.tex | cut -d'{' -f 3 | cut -d'}' -f 1)" >> $GITHUB_ENV # nahrání pro pozdější stažení - name: Upload artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: # název zip souboru se specifickým jménem předmětu - name: ${{ env.NAME }} + name: "FEKT.tex" # co se má uložit do zip souboru path: main.pdf @@ -55,21 +55,21 @@ jobs: steps: - name: Set up Git repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Create tag id: create_tag run: | tag=build-$(date +%Y%m%d-%H%M%S) - echo "::set-output name=tag::$tag" + echo "TAG=$tag" >> "$GITHUB_OUTPUT" - name: Create Release id: create_release - uses: actions/create-release@v1 + uses: actions/create-release@latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - tag_name: ${{ steps.create_tag.outputs.tag }} - release_name: ${{ steps.create_tag.outputs.tag }} + tag_name: ${{ steps.create_tag.outputs.TAG }} + release_name: ${{ steps.create_tag.outputs.TAG }} draft: false prerelease: false @@ -80,20 +80,22 @@ jobs: needs: [ build, release ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set env run: echo "NAME=$(grep -F "\newcommand{\subject}" main.tex | cut -d'{' -f 3 | cut -d'}' -f 1)" >> $GITHUB_ENV # stažení dříve nahráneho zip souboru v subjects jobu - name: Download artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: - name: ${{ env.NAME }} + name: "FEKT.tex" + - name: Display structure of downloaded files + run: ls -R # přidání do releasu - name: Upload artifact to Release - uses: actions/upload-release-asset@v1 + uses: actions/upload-release-asset@latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: @@ -101,5 +103,5 @@ jobs: # cesta k souboru asset_path: ./main.pdf # název v releasu - asset_name: ${{ env.NAME }}.pdf - asset_content_type: application/pdf + asset_name: MPC-KRY.pdf + asset_content_type: application/pdf \ No newline at end of file diff --git a/README.md b/README.md index f65ee02..269f8da 100644 --- a/README.md +++ b/README.md @@ -7,55 +7,40 @@ Dokument obsahuje základní nastavení a představení různých funkcí. Nejjednodušší je stáhnout tento repozitář jako zip a nahrát jej do online LaTeX compileru [Overleaf](https://overleaf.com). -## GitHub releases - -S pomocí GitHub Actions je nyní možné používat GitHub release na vydání nové verze pdf. -Stačí pouze nový commit v `main` větvi a GitHub Actions se o build a release postará. -Taktéž máme workflow pro kontrolu příchozích Pull Requestů, který neprojde pokud build selže. -Nejnovější release této šablony můžete vidět [zde](https://github.com/VUT-FEKT-IBE/FEKT.tex/releases/latest). - -_Pozn.: Build se týká pouze souboru [`main.tex`](main.tex), proto byste neměli přidávat jiné hlavní .tex soubory._ - -### Co neupravovat: `shared.tex` - -Obsah souboru [`shared.tex`](shared.tex) obsahuje kompletní nastavení stylu dokumentu. -Nikdy jej neupravujte, všechna případná doplnění provádějte v souboru `main.tex`. -V budoucnu tak bude možné vyměnit váš zkopírovaný soubor za novější a nepřijdete tak o žádné změny, které jste provedli. - -Pokud zakládáte dlouhodobější projekt, proveďte následující krok: - -- Zkopírujte git hash nejnovějšího commitu na GitHubu -- Vložte jej na třetí řádek v `shared.tex` - -![Git hash commitu](images/github-commit-hash.png) - -Takto budete mít lepší přehled o verzi vašeho `shared.tex` a budou se vám lépe kontrolovat aktualizace. - -### Co upravovat: `main.tex` +### Co upravit: `main.tex` Soubor [`main.tex`](main.tex) pak obsahuje konkrétní nastavení dokumentu. | Příkaz | Popis | Příklad | |--------------|-------|---------| -| \subject | Kód předmětu | BPC-SPR | -| \subjectname | Název předmětu | Softwarové právo | +| \name | Nadpis | BPC-SPR | +| \subname | Podnadpis | Softwarové právo | | \authors | Seznam autorů dokumentu | A, B, C | | \corrections | Seznam korektorů gramatiky či oprav formátování | C, A | -| \docdesc | (nepovinný) Popis dokumentu | Poznámky k předmětu | -| \docgroup | (nepovinný) Cílová skupina dokumentu | Informační bezpečnost, FEKT VUT | -| \docurl | (nepovinný) URL repozitáře | https://github.com/... | +| \docdesc | Popis dokumentu | Poznámky k předmětu | +| \docgroup | Cílová skupina dokumentu | Informační bezpečnost, FEKT VUT | +| \docurl | URL repozitáře | https://github.com/... | -Tento soubor si zkopírujte pouze jednou na začátku, k jeho aktualizacím by docházet nemělo. +Tyto příkazy jsou definovány v samém vrcholu dokumentu. +Pokud je smažete nebo zakomentujete, v dokumentu se nevyskytnou. ### Kam psát: `text/` -Kam budete psát samotný text dokumentu je na vás. +Dokumenty je zvykem členit do souvislých částí (kapitol), které se ukládají do složky `text/`. + +Nejprve smažte soubor `text/00_fekt-tex`, protože ten pouze ukazuje jak tuto šablonu použít. +Poté vytvořte dokument nový, například `text/01_uvod.tex`. Do něj budete psát obsah samotný. +Pro každou novou kapitolu vytvořte samostatný soubor, kód se vám tak bude lépe udržovat. -Tento repozitář je připravený pro větší dokumenty a obsah se vkládá do `text/01.tex`. -Pro každý nově vytvořený soubor musíte také přidat `\include{}` ve vašem `main.tex`. +## Údržba -Pokud vytváříte menší dokument, může pro vás být přehlednější složku `text/` nepoužívat a vytvořit si nový textový soubor `text.tex` hned v kořenové složce; v tomto případě pak upravte `\include{}` volání ve vašem `main.tex`. +Své úpravy stylu dokumentu provádějte pouze ve spodní části souboru, v kategorii DOKUMENT. -### Rozšíření pro případ více dokumentů +Když dojde k aktualizaci FEKT.tex, můžete otevřít zdrojový soubor `main.tex` a zkopírovat z něj vše mezi kategoriemi OBECNÉ NASTAVENÍ až DOKUMENT. -Pokud vytváříte více dokumentů v jednom repozitáři (viz státnicové otázky [bakalářského](https://github.com/VUT-FEKT-IBE/BPC-IBE-SZZ) a [magisterského](https://github.com/VUT-FEKT-IBE/MPC-IBE-SZZ) programu), můžete vytvořit soubor `.repo.tex`, který je načten a zpracován. V něm lze definovat proměnné platné pro celý repozitář a není tak nutné upravovat jednu hodnotu (např. popis dokumentu) ve všech `main` souborech, ale pouze v jednom kořenovém. +### GitHub releases + +S pomocí GitHub Actions je nyní možné používat GitHub release na vydání nové verze pdf. +Stačí pouze nový commit v `main` větvi a GitHub Actions se o build a release postará. +Taktéž máme workflow pro kontrolu příchozích Pull Requestů, který neprojde pokud build selže. +Nejnovější release této šablony můžete vidět [zde](https://github.com/VUT-FEKT-IBE/FEKT.tex/releases/latest). \ No newline at end of file diff --git a/images/blockchain.png b/images/blockchain.png deleted file mode 100644 index ae4e122..0000000 Binary files a/images/blockchain.png and /dev/null differ diff --git a/main.tex b/main.tex index 4388f82..5113bc3 100644 --- a/main.tex +++ b/main.tex @@ -1,27 +1,270 @@ -% Povinný argument: Kód předmětu -\newcommand{\subject}{MPC-KRY} -% Povinný argument: Název předmětu -\newcommand{\subjectname}{Kryptografie} -% Povinný argument: Seznam autorů -\newcommand{\authors}{Jedla} -% Povinný argument: Seznam korektorů -\newcommand{\corrections}{} -% Nepovinný argument: Popis dokumentu +%%%%%%%%%%%%%%%%%%%%%% +% NASTAVENÍ FEKT.TEX % +%%%%%%%%%%%%%%%%%%%%%% + +% Pokud následující řádky zakomentujete, na titulní straně se nezobrazí. + +% Nadpis dokumentu (kód předmětu) +\newcommand{\name}{MPC-KRY} +% Podnadpis dokumentu (název předmětu) +\newcommand{\subname}{Kryptografie} +% Seznam autorů +\newcommand{\authors}{Jedla, BeziCZ} +% Seznam korektorů +\newcommand{\corrections}{BeziCZ} +% Popis dokumentu \newcommand{\docdesc}{Vypracované otázky} -% Nepovinný argument: Cílová skupina dokumentu +% Zařazení dokumentu (studijní program) \newcommand{\docgroup}{Informační bezpečnost, FEKT VUT} -% Nepovinný argument: URL repozitáře nebo jiný odkaz na dokument +% Odkaz \newcommand{\docurl}{https://github.com/VUT-FEKT-IBE/MPC-KRY} -% Přepsáním argumentu na 'false' vypnete balíček 'minted' pro sázení kódu. +% Přepsáním argumentu na 'true' zapnete balíček 'minted' pro sázení kódu. % Pro jeho použití lokálně musíte mít v systému dostupný Python 3, python % knihovnu 'minted' a PDFLaTeX musíte spouštět s argumentem '-shell-escape'. % Místo něj můžete použít prostředí 'lstlisting'. -\newcommand{\docminted}{true} +\newcommand{\docminted}{false} + + +%%%%%%%%%%%%%%%%%%%% +% OBECNÉ NASTAVENÍ % +%%%%%%%%%%%%%%%%%%%% + +\newcommand{\fekttexversion}{2.0} + +\documentclass[ + % Velikost základního písma je 12 bodů + 12pt, + % Formát papíru je A4 + a4paper, + % Oboustranný tisk + twoside, + % Záložky a metainformace ve výsledném PDF budou v kódování unicode + unicode, +]{article} + +% Kódování zdrojových souborů +\usepackage[utf8]{inputenc} +% Kódování výstupního souboru +\usepackage[T1]{fontenc} +% Podpora češtiny +\usepackage[czech]{babel} + +% Geometrie stránky +\usepackage[ + % Horní a dolní okraj + tmargin=25mm, + bmargin=25mm, + % Vnitřní a vnější okraj + lmargin=30mm, + rmargin=20mm, + % Velikost zápatí + footskip=17mm, + % Vypnutí záhlaví + nohead, +]{geometry} + +% Zajištění kopírovatelnosti a prohledávanosti vytvořených PDF +\usepackage{cmap} +% Podmínky (pro použití v titulní straně) +\usepackage{ifthen} + +%%%%%%%%%%%%%%% +% FORMÁTOVÁNÍ % +%%%%%%%%%%%%%%% + +% Nastavení stylu nadpisů +\usepackage{sectsty} +% Formátování obsahů +\usepackage{tocloft} +\setcounter{tocdepth}{1} +% Odstranění mezer mezi řádky v seznamech +\usepackage{enumitem} +\setlist{nosep} +\setitemize{leftmargin=1em} +\setenumerate{leftmargin=1.5em} +\renewcommand{\labelitemi}{--} +\renewcommand{\labelitemii}{$\circ$} +\renewcommand{\labelitemiii}{$\cdot$} +\renewcommand{\labelitemiv}{--} +% Sázení správných uvozovek pomocí '\enquote{}' +\usepackage{csquotes} +% Vynucení umístění poznámek pod čarou vespod stránky +\usepackage[bottom]{footmisc} +% Automatické zarovnání textu k předcházení vdov a parchantů +\usepackage[defaultlines=3,all=true]{nowidow} +% Zalomení části textu pokud není na současné stránce dost místa +\usepackage{needspace} +% Nastavení řádkování +\usepackage{setspace} +\onehalfspacing +% Změna odsazení odstavců +\setlength{\parskip}{1em} +\setlength{\parindent}{0em} + +% Bezpatkové sázení nadpisů +\allsectionsfont{\sffamily} +% Změna formátování nadpisu a podnadpisů v Obsahu +\renewcommand{\cfttoctitlefont}{\Large\bfseries\sffamily} +\renewcommand{\cftsubsecdotsep}{\cftdotsep} + +% Použití moderní/aktualizované sady písem +\usepackage{lmodern} + +%%%%%%%%%%% +% NADPISY % +%%%%%%%%%%% + +\usepackage{titlesec} + +\titlespacing*{\section}{0pt}{10pt}{-0.2\baselineskip} +\titlespacing*{\subsection}{0pt}{0.2\baselineskip}{-0.2\baselineskip} +\titlespacing*{\subsubsection}{0pt}{0.2\baselineskip}{-0.2\baselineskip} +\titlespacing*{\paragraph}{0pt}{0pt}{1em} + +%%%%%%%%%% +% ODKAZY % +%%%%%%%%%% + +% Tvorba hypertextových odkazů +\usepackage[ + breaklinks=true, + hypertexnames=false, +]{hyperref} +% Nastavení barvení odkazů +\hypersetup{ + colorlinks, + citecolor=black, + filecolor=black, + linkcolor=black, + urlcolor=blue +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%% +% OBRÁZKY, GRAFY, TABULKY % +%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Vkládání obrázků +\usepackage{graphicx} +\usepackage{subfig} +% Nastavení popisů obrázků, výpisů a tabulek +\usepackage{caption} +\captionsetup{justification=centering} +% Grafy a vektorové obrázky +\usepackage{tikz} +\usetikzlibrary{shapes,arrows} +% Složitější tabulky +\usepackage{tabularx} +\usepackage{multicol} + +% Sázení osamocených float prostředí v horní části stránky +\makeatletter +\setlength{\@fptop}{0pt plus 10pt minus 0pt} +\makeatother + +% Vynucení vypsání floating prostředí pomocí \FloatBarrier +\usepackage{placeins} -\input{shared} +% Rámečky \usepackage{mdframed} +%%%%%%%%%%%%%% +% MATEMATIKA % +%%%%%%%%%%%%%% + +% Sázení matematiky a matematických symbolů ('\mathbb{}') +\usepackage{amsmath} +\usepackage{amssymb} +% Sázení fyzikálních veličin +\usepackage{siunitx} + +%%%%%%%%%%%%%%%%% +% ZDROJOVÉ KÓDY % +%%%%%%%%%%%%%%%%% + +% Sazba zdrojových kódů +\usepackage[formats]{listings} +% Přepnutí prostředí 'code' do režimu výpisu kódu +\newenvironment{code}{\captionsetup{type=listing}}{} + +\lstset{ + basicstyle=\small\ttfamily, + numbers=left, + numberstyle=\tiny, + tabsize=4, + columns=fixed, + showstringspaces=false, + showtabs=false, + keepspaces, +} + +% Balíček 'minted' budeme používat pouze pokud je jeho hodnota nastavena na 'true' +\providecommand{\docminted}{false} +\ifthenelse{\equal{\docminted}{true}} +{ + % Sazba zdrojových kódů + \usepackage[newfloat]{minted} + % Nastavení barev 'minted' kódů + \usemintedstyle{pastie} +} +{ + % \docminted není 'true', nic neprovádíme + % Pokud je v dokumentu 'minted' prostředí, dokument se nepodaří přeložit. +} + +%%%%%%%%%%%%%%%%%%% +% VLASTNÍ PŘÍKAZY % +%%%%%%%%%%%%%%%%%%% + +\newcounter{todo} +\newcommand{\TODO}[1]{% + \addtocounter{todo}{1}% + \textcolor{red}{% + \textbf{\sffamily\small{TODO \thetodo}% + \ifthenelse{\equal{#1}{}}{}{:}% + } % + #1% + }% +} + +%%%%%%%%%%% +% TITULKA % +%%%%%%%%%%% + +\newcommand{\titulka}{ + \vspace*{2em} + \begin{center} + \ifthenelse{\isundefined{\name}}{}{{\Huge \bfseries \name{}}} + + \ifthenelse{\isundefined{\subname}}{}{{\huge \bfseries \subname{}}} + + \vspace*{2em} + + \ifthenelse{\isundefined{\docdesc}}{}{{\Large \docdesc}} + + \vspace*{1em} + + \ifthenelse{\isundefined{\docgroup}}{}{\docgroup} + + \ifthenelse{\isundefined{\docurl}}{}{\url{\docurl}} + \end{center} + + \vfill + + \ifthenelse{\isundefined{\authors}}{}{\authors{}} + \ifthenelse{\isundefined{\corrections}}{}{\\\small (korektury \corrections{})} + + {}{\small \today} + \\{\small FEKT.tex \fekttexversion{}} + + \thispagestyle{empty} + \newpage +} + +%%%%%%%%%%%% +% DOKUMENT % +%%%%%%%%%%%% + \begin{document} \titulka{} @@ -31,6 +274,6 @@ \setcounter{page}{0} -\include{text/QandA} +\include{text/QandA.tex} -\end{document} +\end{document} \ No newline at end of file diff --git a/shared.tex b/shared.tex deleted file mode 100644 index d03d075..0000000 --- a/shared.tex +++ /dev/null @@ -1,234 +0,0 @@ -% FEKT.tex -% https://github.com/VUT-FEKT-IBE/FEKT.tex -% Git hash repozitáře v době kopírování: b77dcfcacd30920c2327b0b7539e03d986dd986c - -\documentclass[ - % Velikost základního písma je 12 bodů - 12pt, - % Formát papíru je A4 - a4paper, - % Oboustranný tisk - twoside, - % Záložky a metainformace ve výsledném PDF budou v kódování unicode - unicode, -]{article} - -%%%%%%%%%%%%%%%%%%%% -% OBECNÉ NASTAVENÍ % -%%%%%%%%%%%%%%%%%%%% - -% Kódování zdrojových souborů -\usepackage[utf8]{inputenc} -% Kódování výstupního souboru -\usepackage[T1]{fontenc} -% Podpora češtiny -\usepackage[czech]{babel} - -% Geometrie stránky -\usepackage[ - % Horní a dolní okraj - tmargin=25mm, - bmargin=25mm, - % Vnitřní a vnější okraj - lmargin=30mm, - rmargin=20mm, - % Velikost zápatí - footskip=17mm, - % Vypnutí záhlaví - nohead, -]{geometry} - -% Zajištění kopírovatelnosti a prohledávanosti vytvořených PDF -\usepackage{cmap} -% Podmínky (pro použití v titulní straně) -\usepackage{ifthen} - -%%%%%%%%%%%%%%% -% FORMÁTOVÁNÍ % -%%%%%%%%%%%%%%% - -% Nastavení stylu nadpisů -\usepackage{sectsty} -% Formátování obsahů -\usepackage{tocloft} -\setcounter{tocdepth}{1} -% Odstranění mezer mezi řádky v seznamech -\usepackage{enumitem} -\setlist{nosep} -\setitemize{leftmargin=1em} -\setenumerate{leftmargin=1.5em} -\renewcommand{\labelitemi}{--} -\renewcommand{\labelitemii}{$\circ$} -\renewcommand{\labelitemiii}{$\cdot$} -\renewcommand{\labelitemiv}{--} -% Sázení správných uvozovek pomocí '\enquote{}' -\usepackage{csquotes} -% Vynucení umístění poznámek pod čarou vespod stránky -\usepackage[bottom]{footmisc} -% Automatické zarovnání textu k předcházení vdov a parchantů -\usepackage[defaultlines=3,all=true]{nowidow} -% Zalomení části textu pokud není na současné stránce dost místa -\usepackage{needspace} -% Nastavení řádkování -\usepackage{setspace} -\onehalfspacing -% Změna odsazení odstavců -\setlength{\parskip}{1em} -\setlength{\parindent}{0em} - -% Bezpatkové sázení nadpisů -\allsectionsfont{\sffamily} -% Změna formátování nadpisu a podnadpisů v Obsahu -\renewcommand{\cfttoctitlefont}{\Large\bfseries\sffamily} -\renewcommand{\cftsubsecdotsep}{\cftdotsep} - -% Použití moderní/aktualizované sady písem -\usepackage{lmodern} - -%%%%%%%%%%% -% NADPISY % -%%%%%%%%%%% - -\usepackage{titlesec} - -\titlespacing*{\section}{0pt}{10pt}{-0.2\baselineskip} -\titlespacing*{\subsection}{0pt}{0.2\baselineskip}{-0.2\baselineskip} -\titlespacing*{\subsubsection}{0pt}{0.2\baselineskip}{-0.2\baselineskip} -\titlespacing*{\paragraph}{0pt}{0pt}{1em} - -%%%%%%%%%% -% ODKAZY % -%%%%%%%%%% - -% Tvorba hypertextových odkazů -\usepackage[ - breaklinks=true, - hypertexnames=false, -]{hyperref} -% Nastavení barvení odkazů -\hypersetup{ - colorlinks, - citecolor=black, - filecolor=black, - linkcolor=black, - urlcolor=blue -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%% -% OBRÁZKY, GRAFY, TABULKY % -%%%%%%%%%%%%%%%%%%%%%%%%%%% - -% Vkládání obrázků -\usepackage{graphicx} -\usepackage{subfig} -% Nastavení popisů obrázků, výpisů a tabulek -\usepackage{caption} -\captionsetup{justification=centering} -% Grafy a vektorové obrázky -\usepackage{tikz} -\usetikzlibrary{shapes,arrows} -% Složitější tabulky -\usepackage{tabularx} -\usepackage{multicol} - -% Sázení osamocených float prostředí v horní části stránky -\makeatletter -\setlength{\@fptop}{0pt plus 10pt minus 0pt} -\makeatother - -% Vynucení vypsání floating prostředí pomocí \FloatBarrier -\usepackage{placeins} - -%%%%%%%%%%%%%% -% MATEMATIKA % -%%%%%%%%%%%%%% - -% Sázení matematiky a matematických symbolů ('\mathbb{}') -\usepackage{amsmath} -\usepackage{amssymb} -% Sázení fyzikálních veličin -\usepackage{siunitx} - -%%%%%%%%%%%%%%%%% -% ZDROJOVÉ KÓDY % -%%%%%%%%%%%%%%%%% - -% Sazba zdrojových kódů -\usepackage[formats]{listings} -% Přepnutí prostředí 'code' do režimu výpisu kódu -\newenvironment{code}{\captionsetup{type=listing}}{} - -\lstset{ - basicstyle=\small\ttfamily, - numbers=left, - numberstyle=\tiny, - tabsize=4, - columns=fixed, - showstringspaces=false, - showtabs=false, - keepspaces, -} - -% Balíček 'minted' budeme používat pouze pokud je jeho hodnota nastavena na 'true' -\providecommand{\docminted}{false} -\ifthenelse{\equal{\docminted}{true}} -{ - % Sazba zdrojových kódů - \usepackage[newfloat]{minted} - % Nastavení barev 'minted' kódů - \usemintedstyle{pastie} -} -{ - % \docminted není 'true', nic neprovádíme - % Pokud je v dokumentu 'minted' prostředí, dokument se nepodaří přeložit. -} - -%%%%%%%%%%% -% TITULKA % -%%%%%%%%%%% - -\IfFileExists{./.repo.tex}{ - % Soubor '.repo.tex' může (re)definovat povinné a nepovinné argumenty - % souboru 'main.tex'. To lze využít v případech kdy v jednom repozitáři - % existuje více dokumentů najednou (např. státnicové otázky). - \input{.repo} -}{} - -% Pokud byly nepovinné argumenty zakomentovány nebo vymazány, přidáme prázdné -% definice příkazů, aby bylo dokument možné správně přeložit. -\providecommand{\docdesc}{} -\providecommand{\docgroup}{} -\providecommand{\docurl}{} - -\newcommand{\titulka}{ - \vspace*{2em} - \begin{center} - {\Huge \bfseries \subject} - - \vspace*{1em} - - {\Huge \bfseries \subjectname} - - \vspace*{2em} - - {\Large \docdesc} - - \vspace*{1em} - - \docgroup - - \url{\docurl} - \end{center} - - \vfill - - \begin{tabular}{ll} - Text: & \authors \\ - Korektura: & \corrections \\ - \end{tabular} - \hfill - \today - - \thispagestyle{empty} - \newpage -} diff --git a/text/QandA.tex b/text/QandA.tex index 828574c..942b00e 100644 --- a/text/QandA.tex +++ b/text/QandA.tex @@ -98,13 +98,13 @@ \section{Formální definice hašovacích funkcí, jaké jsou jejich požadovan Funkce, která z libovolně dlouhého vstupu M vytvoří výstup o konstantní délce. -Požadavky jsou jednocestnost (nezle z hashe vypočítat původní zprávu) a bezkoliznost (je těžké najít dvě zprávy, které by měli stejný hash) +Požadavky jsou jednocestnost (nelze z hashe vypočítat původní zprávu) a bezkoliznost (je těžké najít dvě zprávy, které by měly stejný hash) Odolnost proti kolizím: \begin{itemize} \item Kolize prvního řádu -- nalezení vzoru - \item Kolize druhého řádu -- nalezení druhé zprávy, aby měli stejný hash jako první - \item Odolnost proti kolizím -- nalezení dvou různých zpráv, aby měli stejný hash (neznáme ani 1 zprávu) + \item Kolize druhého řádu -- nalezení druhé zprávy, aby měly stejný hash jako první + \item Odolnost proti kolizím -- nalezení dvou různých zpráv, aby měly stejný hash (neznáme ani 1 zprávu) \end{itemize} Použití -- digitální podpisy, kontrola integrity, pro uložení hesel, uložení klíčů, prokázání autorství\dots @@ -194,7 +194,7 @@ \section{Uveďte důvody použití kvantové distribuce klíčů (QKD). Jakým z \textbf{COW} -- Bity se kódují do koherentních pulzů. Při odposlechu se bity jednoduše naruší. \textbf{Kvantový přenos informace} -- Využití pro distribuci šifrovacího klíče, náhrada asymetrického systému. - + \section{Vysvětlete, co je digitální podpis, jaké jsou na něho kladené požadavky a jakým způsobem se používá v součinnosti s hašovací funkcí.} Digitální podpis je podpis vytvořen za pomoci kryptografických prostředků. Je založen na symetrických i asymetrických algoritmech. Má stejné požadavky jako ruční podpis (nezfalšovatelnost, nepřenosný, dokument nelze změnit, podpis nelze popřít). Digitální podpis je hash zašifrované zprávy soukromým klíčem podepisovatele. @@ -228,8 +228,6 @@ \section{V souvislosti s nařízením eIDAS vysvětlete pojmy:} \textbf{Elektronické časové razítko} -- Služba poskytována certifikační autoritou, umožnující prokázat daný dokument v čase. - - \section{Znázorněte, popište princip činnosti asymetrického kryptosystému McEliece.} Klíče: @@ -285,7 +283,7 @@ \section{Popište Hastadův útok na systém RSA s malým veřejným exponentem. Ze šifrovaných textů $c_i$ lze vypočítat \textit{c}, jako $c \equiv c_i \mod n_i \Rightarrow m^3 \equiv c(\mod n_1n_2n_3)$. Jelikož $m < n_i$ je $m^3 < n_1n_2n_3$. Otevřený text spočítáme jako $m = \sqrt[3]{c}$ - + \section{Slepý podpis na základě RSA: jak se vytváří, k čemu slouží?} Autor a podepisující jsou různí s tím že podepisující nezná obsah zprávy. Pokud podepisující narazí na odtajněnou podepsanou zprávu, nesmí poznat, kdy a komu ji podepsal. Používá se k elektronickým volbám, elektronickým mincím. @@ -298,16 +296,7 @@ \section{Slepý podpis na základě RSA: jak se vytváří, k čemu slouží?} \item Platí $s = (mr^e)^dr^{-1}\equiv m^d \mod n$ \end{enumerate} - -\section{Načrtněte a popište strukturu blockchainu, k čemu je určen, příklady použití.} - -\begin{center} -\includegraphics[scale=0.7]{images/blockchain.png} -\end{center} - -Slouží k uchovávání záznamů, které jsou chráněny proti neoprávněnému zásahu, pokusu o pozměnění dat. Umožňuje zajistit anonymitu operací. - -\section{Známe číslo c,z,m a hledáme číslo e v následujícím vztahu: $c\equiv z^e (\mod m)$. O jaký matematický problém jde? Proč se jedná o matematický problém? O tento problém se opírá bezpečnost mnoha kryptografických systémů, uveďte alespoň jeden.} +\section{Známe číslo c,z,m a hledáme číslo e v následujícím vztahu: \(c\equiv z^e (\mod m)\). O jaký matematický problém jde? Proč se jedná o matematický problém? O tento problém se opírá bezpečnost mnoha kryptografických systémů, uveďte alespoň jeden.} Jedná se o problém diskrétního logaritmu. Například DH, elgamal, DSA. O problém se jedná jelikož je není nalezeno řešení v polynomiálním čase, takže pro velká čísla je výpočetně zdlouhavý (komplexita O($n^3$)). @@ -417,6 +406,12 @@ \section{Uveďte jednotlivé kroky analýzy protokolů pomocí BAN logiky.} \item Logické výchozí předpoklady se aplikují na předpoklady a tvrzení za účelem zjištění toho, v co věří jednotlivé strany protokolu. \end{enumerate} +\section{Rabinův kryptosystém, uveďte postup volby parametrů, výpočet klíčů, postup pro šifrování a dešifrování, výhody-nevýhody.} + +\section{Asymetrický systém ECMQV: k čemu slouží, popis funkce systému, výhody.} + +\section{Vysvětlete princip Schnorova identifikačního a podpisového schématu.} + \section{Uveďte ideový návrh kryptosystému:} \subsection{Pro autentizaci uživatelů přistupujících vzdáleně k serverové aplikaci. Popište kryptografické služby, které systém musí zajišťovat, uveďte kryptografické algoritmy, které lze využít.}