Changeset 1840


Ignore:
Timestamp:
Aug 19, 2010, 5:35:50 PM (11 years ago)
Author:
Sören Rinne
Message:

+ added a memo and a link to a detailed description to LFSR-Sample.cte
+ adjusted detailed description of LFSR

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/LFSR/DetailedDescription/Description.xaml

    r285 r1840  
    11<FlowDocument PagePadding="5,0,5,0" AllowDrop="True" NumberSubstitution.CultureSource="User"
    2               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3               Background="White">
     2              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     3                          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     4                          xmlns:misc="clr-namespace:Cryptool.PluginBase.Miscellaneous;assembly=CrypPluginBase"
     5                          Background="White" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
    46
    5   <Paragraph>
    6       <Run FontWeight="Bold" FontSize="14" FontFamily="Calibri" xml:lang="de-de">
     7  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     8     
    79        LFSR (Linear Feedback Shift Register)
    8       </Run>
     10     
    911  </Paragraph>
    10   <Paragraph>
    11       <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">A linear feedback shift register (LFSR) is a shift register whose input bit is a linear function of its previous state.</Run>
     12  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     13      A linear feedback shift register (LFSR) is a shift register whose input bit is a linear function of its previous state.
    1214  </Paragraph>
    13   <Paragraph>
    14       <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">The only linear functions of single bits are xor and inverse-xor; thus it is a shift register whose input bit is driven by the exclusive-or (xor) of some bits of the overall shift register value.</Run>
     15  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     16      The only linear functions of single bits are xor and inverse-xor; thus it is a shift register whose input bit is driven by the exclusive-or (xor) of some bits of the overall shift register value.
    1517  </Paragraph>
    16   <Paragraph>
    17       <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">The initial value of the LFSR is called the seed, and because the operation of the register is deterministic, the stream of values produced by the register is completely determined by its current (or previous) state. Likewise, because the register has a finite number of possible states, it must eventually enter a repeating cycle. However, an LFSR with a well-chosen feedback function can produce a sequence of bits which appears random and which has a very long cycle.</Run>
     18  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     19      The initial value of the LFSR is called the seed, and because the operation of the register is deterministic, the stream of values produced by the register is completely determined by its current (or previous) state. Likewise, because the register has a finite number of possible states, it must eventually enter a repeating cycle. However, an LFSR with a well-chosen feedback function can produce a sequence of bits which appears random and which has a very long cycle.
    1820  </Paragraph>
    19   <Paragraph>
    20       <Run FontSize="11" FontFamily="Cambria" xml:lang="de-de">Applications of LFSRs include generating pseudo-random numbers, pseudo-noise sequences, fast digital counters, and whitening sequences. Both hardware and software implementations of LFSRs are common.</Run>
     21  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     22      Applications of LFSRs include generating pseudo-random numbers, pseudo-noise sequences, fast digital counters, and whitening sequences. Both hardware and software implementations of LFSRs are common.
     23  </Paragraph>
     24  <Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     25      The LFSR plugin implements the functionality of a linear feedback shift register. Given a polynomial and a seed, it computes as many output bits as set in the settings of the plugin. Additionally the plugin displays a visual live representation of the LFSR in its QuickwatchPresentation. Moreover the plugin can be stepped by an external clock.
     26To get a specific internal stage the LFSR plugin also provides an additional output bit. The stage is marked orange in the QuickwatchPresentation. If all stages are needed, the plugin is able to provide a boolean array that outputs the complete state of an LFSR.
     27   
     28  </Paragraph>
     29<Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     30        Some scenarios includeing detailed walkthroughs that describe the usage of the LFSR plugin can be found here: http://cryptool2.vs.uni-due.de/downloads/howto/StreamCipherToolboxScenarios.pdf
     31    </Paragraph>
     32
     33<Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     34      Summarized, the LFSR plugin has the following in- and outputs:<LineBreak/><LineBreak/>
     35<Bold>Inputs:</Bold><LineBreak/><LineBreak/>
     36* String TapSequence (optional): A string containing the taps as a sequence of the c_i or as a polynomial (e.g.: 1011, which is equal to the string x^4 + x^2 + x + 1. Note, that the last 1, which is x^0, is implicitly set to 1 inside the plugin).<LineBreak/>
     37* String Seed (optional): The initial binary value of all states (E.g.: 1001).<LineBreak/>
     38* Boolean Clock (optional): Optional external clock signal (through CLK plugin).
     39   
     40  </Paragraph>
     41<Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     42     
     43<Bold>Outputs:</Bold><LineBreak/><LineBreak/>
     44* String Output: The string containing the output stream with a length of the rounds (e.g.: 1001001, assuming that seven rounds have been performed).<LineBreak/>
     45* Boolean Output: Contains the current output bit as a boolean value.<LineBreak/>
     46* Boolean Additional Output Bit: Outputs a specific stage of the LFSR as a boolean value.<LineBreak/>
     47* Boolean[] Boolean Array Output: Outputs all stages of the LFSR. This can be used for example to build a nonlinear filter generator together with the BooleanFunctionParser plugin.<LineBreak/>
     48   
     49  </Paragraph>
     50<Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     51      The plugin has a lot of settings to fulfill the requirements of its diverse range of application. The pane of the LFSR plugin contains the following items:
     52   
     53  </Paragraph>
     54<Paragraph FontSize="11" FontFamily="Cambria" xml:lang="de-de">
     55        Settings:
     56        <LineBreak/>
     57        <LineBreak/>
     58        * Draw LFSR (Button): Draws the QuickwatchPresentation of the LFSR, if the polynomial fits to the seed.
     59        <LineBreak/>
     60        * Feedback polynomial (Text): Feedback polynomial or tap sequence.
     61        <LineBreak/>
     62        * Seed (Text): The seed (initial state).
     63        <LineBreak/>
     64        * Period of LFSR (Label): Indicates the period depending on feedback polynomial and seed.
     65        <LineBreak/>
     66        * Do not display Quickwatch (Checkbox): Does not update the QuickwatchPresentation on runtime when it is checked to get a better performance.
     67        <LineBreak/>
     68        * Number of rounds (NumericUpDown): Number of output bits.
     69        <LineBreak/>
     70        * Save the state of the LFSR (Checkbox): Saves the current state when stopping and restarting the plugin or saving the workspace.
     71        <LineBreak/>
     72        * Output stages (Checkbox): Outputs all stages as a boolean array when checked.
     73        <LineBreak/>
     74        * Generate additional output bit (Checkbox): Outputs a specific stage when checked.
     75        <LineBreak/>
     76        * Additional output bit # (NumericUpDown): Defines the stage of the additional output bit.
     77        <LineBreak/>
     78        * Use external clock (Checkbox): Makes use of the external clock input and then clocks the LFSR only on a true input.
     79        <LineBreak/>
     80        * Always create output (Checkbox): Does output a bit even if the external clock is set to false. The output bit is the bit from the last round. It bit is false if we are in the first round.
     81   
    2182  </Paragraph>
    2283</FlowDocument>
Note: See TracChangeset for help on using the changeset viewer.