home *** CD-ROM | disk | FTP | other *** search
/ Internet Standards / CD1.mdf / nist / oiw / agreemnt / 1993 / 12s_9312.txt < prev    next >
Text File  |  1994-02-09  |  117KB  |  3,894 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.           Stable Implementation
  9.           Agreements for Open Systems
  10.           Interconnection Protocols:
  11.           Part 12 - OS Security
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.           Output   from  the   December  1993   Open  Systems   Environment
  25.           Implementors' Workshop (OIW)
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.           Acting SIG Chair:  Richard Harris, The Boeing Company
  60.           SIG Editor:    Dr. Mohammad Mirhakkak, MITRE
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.           PART 12 - SECURITY                         December 1993 (Stable)
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.           Foreword
  92.  
  93.           This part of the Stable Implementation Agreements was prepared by
  94.           the Security Special Interest Group (SECSIG) of the Open  Systems
  95.           Environment Implementors'  Workshop (OIW) hosted by  the National
  96.           Institute  of Standards  and Technology  (NIST).   See  Part 1  -
  97.           Workshop   Policies   and  Procedures   of  the   "Draft  Working
  98.           Implementation Agreements Document."
  99.  
  100.           Text in this part has been approved  by the Plenary of the above-
  101.           mentioned Workshop.   This part replaces the  previously existing
  102.           chapter on this subject.   There is significant technical  change
  103.           from this text as previously given.  
  104.  
  105.           Future changes and additions to this version of these Implementor
  106.           Agreements  will  be  published as  change  pages.   Deleted  and
  107.           replaced text  will be shown  as strikeout.  New and  replacement
  108.           text will be shown as shaded.
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.                                           ii
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.           PART 12 - SECURITY                         December 1993 (Stable)
  141.  
  142.                                   Table of Contents
  143.  
  144.  
  145.           Part 12 - Security  . . . . . . . . . . . . . . . . . . . . .   1
  146.  
  147.           0   Introduction  . . . . . . . . . . . . . . . . . . . . . .   1
  148.  
  149.           1   Scope . . . . . . . . . . . . . . . . . . . . . . . . . .   1
  150.  
  151.           2   Normative References  . . . . . . . . . . . . . . . . . .   1
  152.  
  153.           3   Definitions . . . . . . . . . . . . . . . . . . . . . . .   2
  154.  
  155.           4   Symbols and Abbreviations . . . . . . . . . . . . . . . .   2
  156.  
  157.           5   Architectures . . . . . . . . . . . . . . . . . . . . . .   2
  158.               5.1  Introduction . . . . . . . . . . . . . . . . . . . .   3
  159.               5.2  Application Environments . . . . . . . . . . . . . .   3
  160.                    5.2.1    Base Environment  . . . . . . . . . . . . .   4
  161.                    5.2.2    Single Application Association Environment    5
  162.                    5.2.2.1  Architectural Diagram . . . . . . . . . . .   6
  163.                    5.2.2.2  Functional Groups . . . . . . . . . . . . .   6
  164.                    5.2.3    Application Relay Environment . . . . . . .   6
  165.                    5.2.3.1  Architectural Diagram . . . . . . . . . . .   7
  166.                    5.2.3.2  Functional Groups . . . . . . . . . . . . .   8
  167.                    5.2.4    Distributed  Applications Environment . . .   8
  168.                    5.2.4.1  Architectural diagram . . . . . . . . . . .   8
  169.                    5.2.4.2  Functional Groups . . . . . . . . . . . . .   9
  170.               5.3  Security Classes . . . . . . . . . . . . . . . . . .  10
  171.                    5.3.1    Security Class S0 . . . . . . . . . . . . .  11
  172.                    5.3.2    Security Class S1 . . . . . . . . . . . . .  11
  173.                    5.3.3    Security Class S2 . . . . . . . . . . . . .  12
  174.               5.4  Guidelines for OIW Application Profile Development .  12
  175.  
  176.           6   Key Management  . . . . . . . . . . . . . . . . . . . . .  12
  177.  
  178.           7   Security Algorithms . . . . . . . . . . . . . . . . . . .  12
  179.               7.1  Message Digests  . . . . . . . . . . . . . . . . . .  13
  180.                    7.1.1    Square-Mod-N  . . . . . . . . . . . . . . .  13
  181.                    7.1.2    MD2 . . . . . . . . . . . . . . . . . . . .  14
  182.                    7.1.3    MD4 . . . . . . . . . . . . . . . . . . . .  14
  183.                    7.1.4    MD5 . . . . . . . . . . . . . . . . . . . .  15
  184.                    7.1.5    SHA . . . . . . . . . . . . . . . . . . . .  15
  185.               7.2  Reversible Public Key Algorithms . . . . . . . . . .  15
  186.                    7.2.1    RSA (X.509) . . . . . . . . . . . . . . . .  16
  187.                    7.2.2    RSA Encryption  . . . . . . . . . . . . . .  16
  188.                    7.2.3    RSA Signature . . . . . . . . . . . . . . .  17
  189.               7.3  Irreversible Public Key Algorithms . . . . . . . . .  17
  190.                    7.3.1    El Gamal  . . . . . . . . . . . . . . . . .  17
  191.  
  192.  
  193.                                          iii
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.           PART 12 - SECURITY                         December 1993 (Stable)
  207.  
  208.                    7.3.2    DSA . . . . . . . . . . . . . . . . . . . .  18
  209.               7.4  Key Exchange   . . . . . . . . . . . . . . . . . . .  19
  210.                    7.4.1    Diffie-Hellman  . . . . . . . . . . . . . .  19
  211.                    7.4.2    Diffie-Hellman with Common Parameters . . .  19
  212.               7.5  Signature Algorithms . . . . . . . . . . . . . . . .  20
  213.                    7.5.1    Message Digests with RSA  . . . . . . . . .  20
  214.                    7.5.1.1  Square-Mod-N with RSA . . . . . . . . . . .  20
  215.                    7.5.1.2  MD2 with RSA  . . . . . . . . . . . . . . .  20
  216.                    7.5.1.3  MD4 with RSA  . . . . . . . . . . . . . . .  21
  217.                    7.5.1.4  MD5 with RSA  . . . . . . . . . . . . . . .  21
  218.                    7.5.2    Message Digests with RSA Encryption . . . .  21
  219.                    7.5.2.1  MD2 with RSA Encryption . . . . . . . . . .  21
  220.                    7.5.2.2  MD4 with RSA Encryption . . . . . . . . . .  21
  221.                    7.5.2.3  MD5 with RSA Encryption . . . . . . . . . .  22
  222.                    7.5.3    DSA With SHA  . . . . . . . . . . . . . . .  22
  223.                    7.5.4    RSA Signature With SHA  . . . . . . . . . .  22
  224.               7.6  Symmetric Encryption Algorithms  . . . . . . . . . .  22
  225.                    7.6.1    Data Encryption Standard  . . . . . . . . .  22
  226.                    7.6.1.1  DES-ECB . . . . . . . . . . . . . . . . . .  23
  227.                    7.6.1.2  DES-CBC . . . . . . . . . . . . . . . . . .  23
  228.                    7.6.1.3  DES-OFB . . . . . . . . . . . . . . . . . .  24
  229.                    7.6.1.4  DES-CFB . . . . . . . . . . . . . . . . . .  25
  230.                    7.6.1.5  DES-MAC . . . . . . . . . . . . . . . . . .  25
  231.                    7.6.1.6  DES-EDE . . . . . . . . . . . . . . . . . .  26
  232.                    7.6.2    RC2-CBC . . . . . . . . . . . . . . . . . .  26
  233.                    7.6.3    RC-4  . . . . . . . . . . . . . . . . . . .  27
  234.               7.7  ASN.1  . . . . . . . . . . . . . . . . . . . . . . .  27
  235.                    7.7.1    Distinguished Encoding Rules  . . . . . . .  27
  236.  
  237.           8   Lower Layers Security . . . . . . . . . . . . . . . . . .  28
  238.  
  239.           9   Upper Layers Security . . . . . . . . . . . . . . . . . .  28
  240.               9.1  Security Mechanisms  . . . . . . . . . . . . . . . .  28
  241.                    9.1.1    Peer Entity Authentication  . . . . . . . .  28
  242.                    9.1.1.1  Simple-Strong Authentication  . . . . . . .  29
  243.                    9     .     1     .     1     .     1     .     1
  244.                             Operation . . . . . . . . . . . . . . . . .  29
  245.                    9     .     1     .     1     .     1     .     2
  246.                             Data Structure  . . . . . . . . . . . . . .  30
  247.                    9     .     1     .     1     .     1     .     3
  248.                             Options . . . . . . . . . . . . . . . . . .  31
  249.                    9.1.1.2  External Authentication Mechanisms  . . . .  31
  250.                    9     .     1     .     1     .     2     .     1
  251.                             Kerberos Version 5  . . . . . . . . . . . .  31
  252.                    9.1.2    Integrity/Data     Origin     Authentication
  253.                             Transformation  . . . . . . . . . . . . . .  32
  254.  
  255.           10  Message Handling System (MHS) Security  . . . . . . . . .  34
  256.  
  257.           11  Directory Services Security . . . . . . . . . . . . . . .  34
  258.  
  259.                                           iv
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.           PART 12 - SECURITY                         December 1993 (Stable)
  273.  
  274.           12  Network Management Security . . . . . . . . . . . . . . .  34
  275.               12.1 Threats  . . . . . . . . . . . . . . . . . . . . . .  34
  276.               12.2 Security Services  . . . . . . . . . . . . . . . . .  35
  277.                    12.2.1   Basic Security Services . . . . . . . . . .  35
  278.                    12.2.2   Enhanced Security Services  . . . . . . . .  35
  279.               12.3 Security Mechanisms  . . . . . . . . . . . . . . . .  36
  280.                    12.3.1   Peer Entity Authentication  . . . . . . . .  36
  281.                    12.3.2   Connectionless Integrity  . . . . . . . . .  36
  282.  
  283.           Annex A (normative)
  284.  
  285.           ISPICS Requirements List  . . . . . . . . . . . . . . . . . .  37
  286.  
  287.           Annex B (normative)
  288.  
  289.           Errata  . . . . . . . . . . . . . . . . . . . . . . . . . . .  38
  290.  
  291.           Annex C (normative)
  292.  
  293.           TBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39
  294.  
  295.           Annex D (informative)
  296.  
  297.           Security Algorithms and Attributes  . . . . . . . . . . . . .  40
  298.  
  299.           Annex E (normative)
  300.  
  301.           References for Security Algorithms  . . . . . . . . . . . . .  44
  302.  
  303.           Annex F (informative)
  304.  
  305.           Bibliography  . . . . . . . . . . . . . . . . . . . . . . . .  47
  306.  
  307.           Annex G (informative)
  308.  
  309.           ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . .  43
  310.               G.1  Background . . . . . . . . . . . . . . . . . . . . .  43
  311.               G.2  Digital Signature  . . . . . . . . . . . . . . . . .  44
  312.               G.3  Verification . . . . . . . . . . . . . . . . . . . .  45
  313.               G.4  Known Constraints on Parameters  . . . . . . . . . .  45
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.                                           v
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.           PART 12 - SECURITY                         December 1993 (Stable)
  339.  
  340.                                    List of Figures
  341.  
  342.           Figure  1 -  Basic  Elements of  a  Generic OSI  Application
  343.                Environment  . . . . . . . . . . . . . . . . . . . . . .   4
  344.           Figure  2 -  Architectural  Diagram for  Single  Application
  345.                Association Environment  . . . . . . . . . . . . . . . .   6
  346.           Figure 3  -  Architectural  diagram  for  Application  Relay
  347.                Environment  . . . . . . . . . . . . . . . . . . . . . .   7
  348.           Figure   4   -   Architectural   diagram   for   Distributed
  349.                Applications Environment . . . . . . . . . . . . . . . .   9
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                           vi
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.           PART 12 - SECURITY                         December 1993 (Stable)
  405.  
  406.                                     List of Tables
  407.  
  408.           Table 1 - Security Classes  . . . . . . . . . . . . . . . . .  10
  409.           Table B.1 - SIA Part 12 changes . . . . . . . . . . . . . . .  38
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.                                          vii
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.           Part 12 - Security
  471.  
  472.                Editor's  Note -  Previous  material in  this part  has been
  473.                deleted and is no longer applicable.
  474.  
  475.  
  476.           0   Introduction
  477.  
  478.           The  relationship between protocols  and security is accomplished
  479.           by developing a  security profile that binds  these two together.
  480.           Security  profiles  define protocol  specific  implementations of
  481.           security architectures.
  482.  
  483.           A security profile includes the following items:
  484.  
  485.                a)  A grouping of the security services to be offered;
  486.  
  487.                b)  The placement of those security services;
  488.  
  489.                c)    The  selection of  mechanisms  to  support the  placed
  490.                security services.
  491.  
  492.           This   part  completes  this   sequence  of  steps   for  several
  493.           generalized  security  architectures.    A  generalized  security
  494.           architecture is chosen and tailored to derive a protocol-specific
  495.           security  profile.  This  part is comprised  of protocol-specific
  496.           security profiles and other supporting functions.
  497.  
  498.  
  499.           1   Scope
  500.  
  501.  
  502.           2   Normative References
  503.  
  504.           [ISO7498-2]    ISO/IEC  7498-2 Information  Processing Systems  -
  505.                Open  Systems Interconnection - Basic Reference Model - Part
  506.                2: Security Architecture, February 1989.
  507.  
  508.           [ISO8649] ISO/IEC 8649:  1988/Amd 1:1990  Service Definition  for
  509.                the  Association  Control   Service  Element,  Amendment  1:
  510.                Peer-Entity Authentication During Association Establishment.
  511.  
  512.           [ISO8650] ISO/IEC  9594-3 Information  Technology -  Open Systems
  513.                Interconnection - The  Directory - Part 3:  Abstract Service
  514.                Definition.
  515.  
  516.           [ISO8650/1]    ISO/IEC    8650:    1988/Amd    1:1990    Protocol
  517.                Specification for  the Association Control  Service Element,
  518.                Amendment 1:  Peer-Entity Authentication  During Association
  519.                Establishment.
  520.  
  521.           [ISO9594-7]    ISO/IEC  9594-7 Information  Processing Systems  -
  522.  
  523.                                           1
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.           PART 12 - SECURITY                         December 1993 (Stable)
  537.  
  538.                Open  Systems  Interconnection  - The  Directory  -  Part 7:
  539.                Selected Object Classes, 1990.
  540.  
  541.           [ISO9594-8]    ISO/IEC  9594-8 Information  Processing Systems  -
  542.                Open  Systems  Interconnection  - The  Directory  -  Part 8:
  543.                Authentication Framework, 1990.
  544.  
  545.           [ISO10021-4]   ISO/IEC 10021-4  Information Processing  Systems -
  546.                Text Communication - MOTIS - 
  547.  
  548.  
  549.  
  550.                Message Transfer  System :  Abstract Service Definition  and
  551.           Procedures.
  552.  
  553.           [X.509-88]     CCITT  X.509:1988 The  Directory -  Authentication
  554.                Framework.
  555.  
  556.           [X.511-88]     CCITT X.511:1988 The Directory - Abstract  Service
  557.                Definition.
  558.  
  559.           [X.411-84]     CCITT X.411:1984 Message Transfer System - Message
  560.                Transfer Layer.
  561.  
  562.           [X.521-88]     CCITT X.521:1988  The Directory -  Selected Object
  563.                Classes.
  564.  
  565.  
  566.           3   Definitions
  567.  
  568.  
  569.           4   Symbols and Abbreviations
  570.  
  571.  
  572.           5   Architectures
  573.  
  574.           The purpose of this clause is to provide guidance on how to build
  575.           a security architecture  based on an OSI  application environment
  576.           and its threats and vulnerabilities.
  577.  
  578.           A Security  Architecture specifies  the relationship between  the
  579.           set of  security services  and mechanisms  with which  protection
  580.           from threats and vulnerabilities is  achieved.  It is designed to
  581.           respond  to  assessed  vulnerabilities,  threats,  and  risks  as
  582.           identified by a security  policy.  The establishment  of security
  583.           policies is beyond the scope of the OIW.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.                                           2
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.           PART 12 - SECURITY                         December 1993 (Stable)
  603.  
  604.           5.1    Introduction
  605.  
  606.           Open Systems Security provides for secure distributed information
  607.           processing   in   OSI   application   environments   which    are
  608.           heterogeneous in  terms of  technology and  administration.   For
  609.           example,  some environments may require protection from a minimal
  610.           set  of security  threats  while  others  require  more  complete
  611.           protection.
  612.  
  613.           The sequence of steps by which a security architecture is created
  614.           for a specific application environment is as follows:
  615.  
  616.                a)  Development of threat analysis; 
  617.  
  618.                b)  Determination of security services; 
  619.  
  620.                c)  Placement of security services; 
  621.  
  622.                d)  Selection of mechanisms;
  623.  
  624.                e)  Selection of algorithms.
  625.  
  626.           These implementation agreements  assume that steps  a  and b have
  627.           been completed for the specific application.  An introduction  to
  628.           the threat  analysis process  and the  determination of  security
  629.           services is included in Annex H.
  630.  
  631.           Generic OSI application  environments are defined in  Clause 5.2.
  632.           Generic  security services as  defined by ISO  7498-2 are grouped
  633.           into classes in  Clause 5.3.  A generalized security architecture
  634.           for  each  environment is    developed  by mapping  the  security
  635.           classes  onto the  functional  groups  of  each  environment  and
  636.           providing  guidance as to at which layer   to support the service
  637.           in Clause 5.4.  Guidance on how to select mechanisms suitable for
  638.           each security service is presented in Clause 5.5.
  639.  
  640.           It  is beyond  the  scope of  these implementation  agreements to
  641.           specify the use of one algorithm over another.  Clause 7 presents
  642.           a set of algorithms suitable for various mechanisms.
  643.  
  644.  
  645.           5.2    Application Environments
  646.  
  647.           It is useful  for the sake of  simplification to look at  the OSI
  648.           application environments and to  separate them into   generic OSI
  649.           application   environments  so  that  security  profiles  can  be
  650.           developed for each.   The  environments are:   Single Application
  651.           Association, Application  Relay, and  Distributed   Applications.
  652.           All  applications   will  operate  in   one  or  more   of  these
  653.           environments.  For  example, a Message Handling  application that
  654.  
  655.                                           3
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.           PART 12 - SECURITY                         December 1993 (Stable)
  669.  
  670.           uses a Message  Transfer Agent (MTA) to relay mail  from one User
  671.           Agent  (UA) to  another UA  would  map to  the Application  Relay
  672.           Environment.   Likewise a Message Handling application which only
  673.           includes a  UA accessing a  Message Store (MS)  would map to  the
  674.           Single Application Association Environment.
  675.  
  676.           For each environment,  an architectural diagram is  provided that
  677.           portrays the interconnection of the elements.  In addition, a set
  678.           of functional groups are defined each of which is comprised of an
  679.           interconnected set of  elements.
  680.  
  681.           5.2.1   Base Environment
  682.  
  683.           Figure 1 depicts the basic elements of a generic OSI  application
  684.           environment  from which all  OSI application environments  can be
  685.           derived.  In all  application environment figures,  dashed  lines
  686.           indicate an  optional communication  path   and the  double-lined
  687.           boxes indicate an optional basic element.  Ellipses indicate that
  688.           the previous basic element may be repeated zero or more times.
  689.  
  690.  
  691.           +---------------------------------------------------------------+
  692.           |                                                               |
  693.           |              +---------------------------------+              |
  694.           |              |                                 |              |
  695.           | +-----+      |   +-----+       +------+        |    +------+  |
  696.           | | SU  +------+---+ SA  + ...   | SA   +--------+----+  SU  |  |
  697.           | +-----+      |   +-----+       +------+        |    +------+  |
  698.           |              |                                 |              |
  699.           |              +-------------SS------------------+              |
  700.           |                                                               |
  701.           |                            SU = Service User                  |
  702.           |                            SA = Service Agent                 |
  703.           |                            SS = Service System                |
  704.           |                                                               |
  705.           +---------------------------------------------------------------+
  706.                 Figure 1 - Basic Elements of a Generic OSI Application
  707.                                      Environment 
  708.  
  709.  
  710.           The basic elements are as follows:
  711.  
  712.                Service  User (SU):  an entity  that functions as  a service
  713.                initiator or responder ;
  714.  
  715.                Service  Agent (SA): an  intermediate  entity  that actively
  716.                participates in providing the services  between an initiator
  717.                and a responder;
  718.  
  719.                Service  System  (SS):  zero  or  more  cooperating  service
  720.  
  721.                                           4
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.           PART 12 - SECURITY                         December 1993 (Stable)
  735.  
  736.                agents.
  737.  
  738.           Basic  elements   that  communicate,  either  through   a  direct
  739.           association or indirectly through intermediaries, are  classified
  740.           as a  functional group.   Functional groups  defined in  Figure 1
  741.           are:
  742.  
  743.                a.  f0: SU -> SU  (Service User to Service User directly);
  744.  
  745.                b.  f1: SU => SU  (Service User to Service User indirectly);
  746.  
  747.                c.  f2: SU -> SA  (Service User to Service Agent directly);
  748.  
  749.                d.    f3:  SU  =>  SA    (Service  User  to   Service  Agent
  750.                indirectly);
  751.  
  752.                e.  f4: SA -> SA  (Service Agent to Service Agent directly);
  753.  
  754.                f.    f5:  SA  =>  SA    (Service  Agent  to  Service  Agent
  755.                indirectly);
  756.  
  757.                g.  f6: SA -> SU  (Service Agent to Service User directly);
  758.  
  759.                h.    f7:  SA  =>  SU    (Service   Agent  to  Service  User
  760.                indirectly).
  761.  
  762.  
  763.                Editor's Note  -   the "->"  notation indicates  association
  764.                security  relationship  and  "=>" indicates  relay  security
  765.                relationship.
  766.  
  767.           These definitions and this functional  group syntax will be  used
  768.           to   define  generic  OSI  application  environments.    In  some
  769.           applications, these functional groups may have to be combined for
  770.           the purpose of performing a security analysis.
  771.  
  772.  
  773.           5.2.2   Single Application Association Environment
  774.  
  775.           The   Single    Application   Association    Environment   covers
  776.           applications   which  are   designed  to   operate   over  Single
  777.           Application Associations  (as defined  in ISO  9545) between  one
  778.           pair of application-entity-invocations (AEIs).  This  environment
  779.           specifically  includes  the  case  of  recovery,  i.e., different
  780.           associations may exist  at different  times between  one pair  of
  781.           AEIs.
  782.  
  783.           Examples of applications to which this environment applies are as
  784.           follows:
  785.  
  786.  
  787.                                           5
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.           PART 12 - SECURITY                         December 1993 (Stable)
  801.  
  802.                a)  FTAM;
  803.  
  804.                b)  Network Management;
  805.  
  806.                c)  Virtual Terminal.
  807.  
  808.           Applications  such as  MHS, Directory  Services, and TP  are only
  809.           partially  covered  by  this environment  because  some  of their
  810.           service elements may  use store and forward or  chaining types of
  811.           relay  functions.    The    environments  that  apply   to  these
  812.           applications   are   the   Application  Relay   and   Distributed
  813.           Applications Environments respectively.
  814.  
  815.  
  816.           5.2.2.1   Architectural Diagram
  817.  
  818.           Figure  2 portrays  the  architectural  diagram  for  the  Single
  819.           Application Association Environment.
  820.  
  821.  
  822.               +-------------------------------------------------------+
  823.               |                                                       |
  824.               |       +-----+                      +-----+            |
  825.               |       | SU  +----------------------+ SU  |            |
  826.               |       +-----+                      +-----+            |
  827.               |                     SU = Service User                 |
  828.               |                                                       |
  829.               +-------------------------------------------------------+
  830.                Figure 2 - Architectural Diagram for Single Application
  831.                                Association Environment
  832.  
  833.  
  834.  
  835.           5.2.2.2   Functional Groups
  836.  
  837.           The   following  functional  group  is  defined  for  the  Single
  838.           Application Association Environment:
  839.  
  840.                a)  f0:SU -> SU.
  841.  
  842.  
  843.           5.2.3   Application Relay Environment
  844.  
  845.           The Application  Relay Environment covers  applications which are
  846.           designed to operate with the active participation of at least one
  847.           service  agent in support of transferring  a service user request
  848.           from an initiator  to a responder.   When more  than one  service
  849.           agent is present, they function sequentially.
  850.  
  851.           An example of an application to which this environment applies is
  852.  
  853.                                           6
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.           PART 12 - SECURITY                         December 1993 (Stable)
  867.  
  868.           Message Handling Systems.
  869.  
  870.  
  871.           5.2.3.1   Architectural Diagram
  872.  
  873.           Figure 3 portrays  the architectural diagram for  the Application
  874.           Relay  Environment.    In  all  application environment  figures,
  875.           dashed lines  indicate an  optional communication  path   and the
  876.           double-lined  boxes indicate an optional basic element.  Ellipses
  877.           indicate that the previous basic  element may be repeated zero or
  878.           more times.  
  879.  
  880.  
  881.           +----------------------------------------------------------------
  882.                                       ---------+
  883.           |                   +---------------------------------+           
  884.                                               |
  885.           |                   |                                 |           
  886.                                               |
  887.              |      +-----+      |   +-----+          +-----+      |    
  888.                                    +-----+       |
  889.           |      | SU  +------+---+ SA  |  ...     | SA  +------+-----+ SU 
  890.                                       |       |
  891.              |      +-----+      |   +-----+          +-----+      |    
  892.                                    +-----+       |
  893.           |                   |                                 |           
  894.                                               |
  895.           |                   +----------- SS  -----------------+           
  896.                                               |
  897.           |                                                                 
  898.                                               |
  899.           |                                          SU = Service User      
  900.                                               |
  901.           |                                          SA = Service Agent     
  902.                                               |
  903.           |                                          SS = Service System    
  904.                                               |
  905.           |                                                                 
  906.                                               |
  907.           |                                                                 
  908.                                               |
  909.           +----------------------------------------------------------------
  910.                                       ---------+
  911.                 Figure 3 - Architectural diagram for Application Relay
  912.                                      Environment
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                                           7
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.           PART 12 - SECURITY                         December 1993 (Stable)
  933.  
  934.           5.2.3.2   Functional Groups
  935.  
  936.           The following  functional groups  are defined  and added for  the
  937.           Application Relay Environment:
  938.  
  939.                a.  f2: SU -> SA;
  940.  
  941.                b.  f3: SU => SA; 
  942.  
  943.                c.  f4: SA -> SA;
  944.  
  945.                d.  f6: SA -> SU. 
  946.  
  947.  
  948.           5.2.4   Distributed  Applications Environment
  949.  
  950.           The Distributed Application Environment covers applications which
  951.           are designed to operate with  the active participation of zero or
  952.           more service  agents which may  process a  service user  request.
  953.           Processing may  include modifying, interpreting,  or transferring
  954.           the service user request or its data.  When more than one service
  955.           agent is present, they may function in parallel, sequentially, or
  956.           both.
  957.  
  958.  
  959.           5.2.4.1   Architectural diagram
  960.  
  961.           Figure 4 portrays  the architectural diagram for  the Distributed
  962.           Applications  Environment.     In  all   application  environment
  963.           figures,  dashed lines  indicate  an optional  communication path
  964.           and  the double-lined boxes  indicate an optional  basic element.
  965.           Ellipses indicate that the previous basic element may be repeated
  966.           zero or more times.
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.                                           8
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.           PART 12 - SECURITY                         December 1993 (Stable)
  999.  
  1000.  
  1001.           +----------------------------------------------------------------
  1002.                                       ---------+
  1003.           |                   +---------------------------------+           
  1004.                                               |
  1005.           |                   |                                 |           
  1006.                                               |
  1007.              |      +-----+      |   +-----+                       |    
  1008.                                    +-----+       |
  1009.           |      | SU  +------+---+ SA  |    ...        --------|-----| SU 
  1010.                                       |       |
  1011.              |      +-----+      |   +-----+                       |    
  1012.                                    +-----+       |
  1013.           |                   |                                 |           
  1014.                                               |
  1015.           |                   +----------- SS  -----------------+           
  1016.                                               |
  1017.           |                                                                 
  1018.                                               |
  1019.           |                                          SU = Service User      
  1020.                                               |
  1021.           |                                          SA = Service Agent     
  1022.                                               |
  1023.           |                                          SS = Service System    
  1024.                                               |
  1025.           |                                                                 
  1026.                                               |
  1027.           |                                                                 
  1028.                                               |
  1029.           +----------------------------------------------------------------
  1030.                                       ---------+
  1031.             Figure 4 - Architectural diagram for Distributed Applications
  1032.                                      Environment
  1033.  
  1034.  
  1035.  
  1036.           5.2.4.2   Functional Groups
  1037.  
  1038.  
  1039.           The following  functional groups  are defined  and added  for the
  1040.           Distributed  Applications Environment:
  1041.  
  1042.                a)  f0: SU -> {SU; ... };
  1043.  
  1044.                b)  f1: SU => {SU; ... };
  1045.  
  1046.                c)  f2: SU -> {SA; ... };
  1047.  
  1048.                d)  f3: SU => {SA; ... };
  1049.  
  1050.  
  1051.                                           9
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.           PART 12 - SECURITY                         December 1993 (Stable)
  1065.  
  1066.                e)  f4: SA -> {SA; ... };
  1067.  
  1068.                f)  f5: SA => {SA; ... };
  1069.  
  1070.                g)  f6: SA -> {SU; ... };
  1071.  
  1072.                h)  f7: SA => {SU; ... }.
  1073.  
  1074.  
  1075.           5.3    Security Classes
  1076.  
  1077.  
  1078.           Security classes are  defined to provide a framework  on which to
  1079.           build  security  profiles.   Each  class  specifies  the required
  1080.           security services.  The services  specified in each class are the
  1081.           generic security  services as  defined by ISO  7498-2.   For each
  1082.           application's profile, specific security  services are chosen for
  1083.           each class.   For example,  data integrity is a  generic security
  1084.           service  for  which  there exists  five  distinct  data integrity
  1085.           services.   One  or  more   specific  security  services must  be
  1086.           specified  to meet  the requirements  of a  security class  in an
  1087.           application specific security profile.
  1088.  
  1089.           The classes  are organized into two similar  hierarchies as shown
  1090.           in Table 1.   Each level of each  hierarchy is a superset of  the
  1091.           security services required  of the  immediately preceding  level.
  1092.           For  each level  in the  hierarchies,  the same  set of  security
  1093.           services  are  required,  except  that  one   hierarchy  includes
  1094.           confidentiality services.
  1095.  
  1096.                               Table 1 - Security Classes
  1097.  
  1098.                     +------------------------+-------------------+
  1099.                     | SECURITY SERVICES      | SECURITY CLASSES  |
  1100.                     |                        +---------+---------+
  1101.                     |                        |         |ADD CONF |
  1102.                     +------------------------+---------+---------+
  1103.                     |  AUTH. & ACCESS CONTROL|    S0   |         |
  1104.                     |                        |         |   S0A   |
  1105.                     +------------------------+---------+---------+
  1106.                     |  ADD DATA INTEGRITY    |    S1   |         |
  1107.                     |                        |         |   S1A   |
  1108.                     +------------------------+---------+---------+
  1109.                     |  ADD NON-REPUDIATION   |    S2   |         |
  1110.                     |                        |         |   S2A   |
  1111.                     |                        |         |         |
  1112.                     +------------------------+---------+---------+
  1113.  
  1114.  
  1115.           There  are  two  interesting properties  of  these  relationships
  1116.  
  1117.                                           10
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.           PART 12 - SECURITY                         December 1993 (Stable)
  1131.  
  1132.           between the  classes.  First,  each level of  the confidentiality
  1133.           hierarchy is a superset of the other hierarchy  at the same level
  1134.           and   a  superset  of   the  confidentiality  hierarchy   at  the
  1135.           immediately  preceding  level.    For example,  class  S2A  is  a
  1136.           superset of classes S2 and S1A.
  1137.  
  1138.           Second,  for two  entities each  supporting  a distinct  security
  1139.           class in  a different hierarchy,  the best level of  service that
  1140.           can  be  achieved   between  them  is  the  class   in  the  non-
  1141.           confidentiality  hierarchy at the same level  as the lowest class
  1142.           of  the two entities.  For example,  if one entity supports class
  1143.           S2 and  the other supports class  S1A, the best class  of service
  1144.           achievable is S1.
  1145.  
  1146.                Editor's  Note  - This  is  not a  mechanism  for negotiated
  1147.                services.  That is a future work item.
  1148.  
  1149.  
  1150.  
  1151.           5.3.1   Security Class S0
  1152.  
  1153.           The  Security Class S0  includes implementation of  the following
  1154.           security services: 
  1155.  
  1156.                a)  S0 = Authentication and Access Control.
  1157.  
  1158.           The Security Class  S0A adds the  confidentiality service to  the
  1159.           Class S0 as follows:
  1160.  
  1161.                b)  S0A = S0 + Confidentiality.
  1162.  
  1163.  
  1164.           5.3.2   Security Class S1
  1165.  
  1166.           The Security Class S1 adds the Data Integrity Service to class S0
  1167.           as follows:
  1168.  
  1169.  
  1170.                a)  S1 = S0 + Data Integrity.
  1171.  
  1172.           The Security Class S1A adds the Confidentiality  Service to Class
  1173.           S1 as follows:
  1174.  
  1175.  
  1176.                b)  S1A = S1 + Confidentiality
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.                                           11
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.           PART 12 - SECURITY                         December 1993 (Stable)
  1197.  
  1198.           5.3.3   Security Class S2
  1199.  
  1200.           The  Security Class S2 adds  the Non-repudiation Service to Class
  1201.           S1 as follows:
  1202.  
  1203.                a)  S2 = S1 + Non-repudiation
  1204.  
  1205.           The Security Class S2A adds  the Confidentiality Service to Class
  1206.           S2 as follows:
  1207.  
  1208.                b)  S2A = S2 + Confidentiality
  1209.  
  1210.  
  1211.           5.4    Guidelines for OIW Application Profile Development
  1212.  
  1213.  
  1214.           6   Key Management
  1215.  
  1216.           [ISO7498-2]  defines  Key  Management  (KM) as  the  "generation,
  1217.           storage,  distribution, deletion,  archiving, and  application of
  1218.           keys in  accordance with  a security policy."   The  Security SIG
  1219.           recognizes that security  policies are outside the  scope of IAs,
  1220.           and  it is inappropriate  to make general  recommendations in the
  1221.           absence of a KM framework.
  1222.  
  1223.  
  1224.           7   Security Algorithms
  1225.  
  1226.                Editor's  Note - Implementors are cautioned that security of
  1227.                an algorithm  may change  at any time.   Therefore,  the WIA
  1228.                must be  consulted in  order to determine  if there  is more
  1229.                current information.
  1230.  
  1231.           The algorithms  included here are  listed in no  particular order
  1232.           (beyond categorization by  type of algorithm).  It  is beyond the
  1233.           scope of these  agreements to recommend the use  of one algorithm
  1234.           over  another.  However, if  a vulnerability is  known to exist a
  1235.           reference will be provided along with a recommendation not to use
  1236.           the algorithm.
  1237.  
  1238.           This  clause  references  a  definitive  specification  for  each
  1239.           algorithm,  which includes  an object  identifier.   In  general,
  1240.           control of the definitive specification is expected to be outside
  1241.           the  scope  of  the OIW.    The  benefit of  not  controlling the
  1242.           specification  is  that  the   organization  that  developed  the
  1243.           algorithm is best situated to  maintain and have knowledge of the
  1244.           security  of the  algorithm.   Algorithms for  which there  is no
  1245.           controlling organization are defined in an Annex in this Part.
  1246.  
  1247.           For each algorithm, its typical  usage is stated, its  definitive
  1248.  
  1249.                                           12
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.           PART 12 - SECURITY                         December 1993 (Stable)
  1263.  
  1264.           reference is  given, and its  object identifier  is included  for
  1265.           reference  purposes.Optionally,  additional  information  may  be
  1266.           included, for example a reference to known vulnerabilities.
  1267.  
  1268.           Implementors  should be  aware  that  export  of  products  using
  1269.           cryptography may be subject to export restrictions.  In  general,
  1270.           use of cryptography  not involving confidentiality is  subject to
  1271.           Commerce Department  regulations, while  use of  cryptography for
  1272.           confidentiality   is   controlled  by   (more   stringent)  State
  1273.           Department regulations.   It is the  implementor's responsibility
  1274.           to determine  any  export restrictions  which  apply to  a  given
  1275.           product, as the export controls may change from time to time. 
  1276.  
  1277.                Editor's  Note - Some  of the references  are RFCs, Internet
  1278.                Drafts, and PKCS documents.  We need to include  information
  1279.                on how to access these documents.
  1280.  
  1281.  
  1282.           7.1    Message Digests
  1283.  
  1284.           These  message digest algorithms  (or hash algorithms)  compute a
  1285.           fixed  size  representation  of  an  input  stream.    They  have
  1286.           different  performance   characteristics  and   employ  different
  1287.           computational  techniques,  making  each  suitable for  different
  1288.           applications.
  1289.  
  1290.  
  1291.           7.1.1   Square-Mod-N
  1292.  
  1293.           Square-Mod-N is a hash algorithm that is used to  compute a fixed
  1294.           size representation of an input stream.  It is defined in [X.509]
  1295.           and its object identifier is  defined there as:
  1296.  
  1297.                sqmod-n ALGORITHM
  1298.                PARAMETER BlockSize
  1299.                ::= {hashAlgorithm 1}
  1300.  
  1301.                BlockSize ::= INTEGER
  1302.  
  1303.           Recent research regarding the square-mod-n  one-way hash function
  1304.           described in Annex D of [X.509] has revealed that the function is
  1305.           not secure.  Its use, therefore, is discouraged.
  1306.  
  1307.  
  1308.                Editor's Note -  We need the  reference that identifies  its
  1309.                vulnerabilities so we can recommend it not be used.
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.                                           13
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.           PART 12 - SECURITY                         December 1993 (Stable)
  1329.  
  1330.           7.1.2   MD2
  1331.  
  1332.           MD2   is  a  message  digest  algorithm  that  employs  accepted,
  1333.           traditional computational techniques.   Its speed is  the slowest
  1334.           of the message digests listed here.
  1335.  
  1336.           It is defined in Internet Draft [a]  and its object identifier is
  1337.           defined there as: 
  1338.  
  1339.                md2 ALGORITHM
  1340.                PARAMETER NULL
  1341.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1342.           digestAlgorithm(2) 2}
  1343.  
  1344.                Editor's  Note -  There  is  a Directory  SIG  OID for  this
  1345.                algorithm.
  1346.  
  1347.           The    reference includes  a  source code  implementation  of the
  1348.           algorithm  written  in  the  C  programming  language.    MD2  is
  1349.           copyrighted  and its  use may  require  specific permission  or a
  1350.           license.  Details are stated in the Internet Draft.
  1351.  
  1352.  
  1353.           7.1.3   MD4
  1354.  
  1355.           MD4  is a message  digest algorithm that  employs non-traditional
  1356.           computational techniques  to enhance  its speed  in software  and
  1357.           hardware with native 32-bit arithmetic.  Its speed is the fastest
  1358.           of the message digests listed here.
  1359.  
  1360.           It is defined in Internet Draft [b] and its object identifier  is
  1361.           there as:
  1362.  
  1363.                md4 ALGORITHM
  1364.                PARAMETER NULL
  1365.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1366.           digestAlgorithm(2) 4}
  1367.  
  1368.           This  reference  includes  a source  code  implementation  of the
  1369.           algorithm written in the C programming language.
  1370.  
  1371.           It is suggested that MD4 be used only with applications for which
  1372.           performance is critical.
  1373.  
  1374.                Editor's  Note -  We need  to  include text  from the  MD4/5
  1375.                Internet  Drafts which describes the differences between the
  1376.                two algorithms and the preference for MD5.
  1377.  
  1378.  
  1379.  
  1380.  
  1381.                                           14
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.           PART 12 - SECURITY                         December 1993 (Stable)
  1395.  
  1396.           7.1.4   MD5
  1397.  
  1398.           MD5  is  a  message  digest  algorithm  which  is  based  on  the
  1399.           techniques  of MD4, but  with additional enhancements  to counter
  1400.           proposed attacks.   A detailed description of the  changes can be
  1401.           found in [c]..
  1402.  
  1403.           MD5 is defined in Internet Draft [c] and its object identifier is
  1404.           defined there as:   
  1405.  
  1406.                md5 ALGORITHM
  1407.                PARAMETER NULL
  1408.                ::=    {iso(1)    member-body(2)    US(840)   rsadsi(113549)
  1409.           digestAlgorithm(2) 5}
  1410.  
  1411.           This  reference  includes  a source  code  implementation  of the
  1412.           algorithm written in the C programming language.
  1413.  
  1414.  
  1415.           7.1.5   SHA
  1416.  
  1417.           This algorithm is  the NIST  Secure Hash Algorithm  [ab].  It  is
  1418.           based  on concepts  similar to  those used  in MD4  and MD5,  and
  1419.           outputs a 160-bit digest.
  1420.  
  1421.                sha ALGORITHM 
  1422.                PARAMETER NULL
  1423.                ::= {algorithm 18}
  1424.  
  1425.                Editor's Note -  This and other algorithms may be registered
  1426.                by ISO  instead, in  which case this  text will  be adjusted
  1427.                prior  to moving to  Stable Agreements,  or if  necessary as
  1428.                Alignment Errata.
  1429.  
  1430.  
  1431.           7.2    Reversible Public Key Algorithms
  1432.  
  1433.           These  algorithms  are  asymmetric; separate  keys  are  used for
  1434.           encryption  and decryption.   They  also have  the  property that
  1435.           applying the encipherment  function followed by the  decipherment
  1436.           function  has  the  same  effect  as  applying  the  decipherment
  1437.           function followed  by the encipherment function.   This is useful
  1438.           if a single algorithm  is needed to provide both  confidentiality
  1439.           (e.g., transport of  symmetric keys) and authentication/integrity
  1440.           (e.g., digital signatures).  
  1441.  
  1442.           RSA  is  a  public  key   (asymmetric)  cryptographic  algorithm,
  1443.           typically  used  in  conjunction with  message  digest  (or hash)
  1444.           algorithms to  create  digital signatures  and  for  confidential
  1445.           distribution of symmetric keys.  It  may also be used to exchange
  1446.  
  1447.                                           15
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.           PART 12 - SECURITY                         December 1993 (Stable)
  1461.  
  1462.           confidential messages.
  1463.  
  1464.           The  RSA algorithm  is defined in  [d] and  is also  described in
  1465.           Annex C of [X.509].  The RSA technology is patented in the United
  1466.           States [e][f].
  1467.  
  1468.           According to  [X.509], the ASN.1 BIT STRING containing the public
  1469.           key will contain the BER encoding of the modulus and exponent:
  1470.  
  1471.  
  1472.                SEQUENCE {
  1473.                     n    INTEGER,  -- modulus
  1474.                     e    INTEGER } -- public exponent
  1475.  
  1476.  
  1477.           7.2.1   RSA (X.509)
  1478.  
  1479.           RSA is  defined in [X.509]  and its object identifier  is defined
  1480.           there as:
  1481.  
  1482.                rsa ALGORITHM
  1483.                PARAMETER KeySize
  1484.                ::= {encryptionAlgorithm 1}
  1485.  
  1486.                KeySize ::= INTEGER
  1487.  
  1488.           The key size specifies  the length in bits of the  RSA public key
  1489.           modulus.
  1490.  
  1491.           The definition of  this algorithm does not  include specification
  1492.           of padding rules.  If one assumes that  the data is treated as an
  1493.           integer and padded with zero  bits on the left, the  algorithm is
  1494.           subject to  various attacks,  such  as those  described in  [ah],
  1495.           which  render it unsuitable  for some applications,  e.g., multi-
  1496.           recipient mail,  notarization.   In such  cases RSAEncryption  is
  1497.           preferred.  
  1498.  
  1499.           7.2.2   RSA Encryption
  1500.  
  1501.  
  1502.           RSA  Encryption  is  defined  in  PKCS  #1  [g]  and  its  object
  1503.           identifier is defined there as:
  1504.  
  1505.                rsaEncryption ALGORITHM
  1506.                PARAMETER NULL
  1507.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1508.           pkcs-1(1) 1}
  1509.  
  1510.           This algorithm defines  various types of block  padding depending
  1511.           on whether the block is being encrypted using a public or private
  1512.  
  1513.                                           16
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.           PART 12 - SECURITY                         December 1993 (Stable)
  1527.  
  1528.           key.  The padding protects against various attacks  documented in
  1529.           the literature.
  1530.  
  1531.  
  1532.           7.2.3   RSA Signature
  1533.  
  1534.           This algorithm  [ad] is  compatible with IS  9796 [ae],  with the
  1535.           Sign and Verify functions required to be those in Annex A  of ISO
  1536.           9796.
  1537.  
  1538.                rsaSignature ALGORITHM
  1539.                PARAMETER NULL
  1540.                ::= {algorithm 11}
  1541.  
  1542.           This algorithm provides additional redundancy in the construction
  1543.           of  the signature  block, and  ensures that  it is not  a natural
  1544.           power.  (If the signature block is a natural power, one can forge
  1545.           a signature by simply taking the e-th  root where e is the public
  1546.           exponent.   E.g.,  if  e is  3,  one  could potentially  forge  a
  1547.           signature,  if  the  block  is  a natural  cube,  by  taking  the
  1548.           (integer) cube  root.  However, the chance that an integer near a
  1549.           given x is a cube  is quite small if x is large;  the probability
  1550.           x-2/3, so if  x is about 2505  (as is the case  for 512-bit RSA),
  1551.           then the probability is about 2-337.)
  1552.  
  1553.  
  1554.           7.3    Irreversible Public Key Algorithms
  1555.  
  1556.           These algorithms are  not reversible, as defined in  section 7.2.
  1557.           Typically,  different  algorithms  are  used  for  encryption and
  1558.           signature.     This   section   defines  several   signature-only
  1559.           algorithms.   Note that  these algorithms  expand the  plaintext,
  1560.           producing output  which is  significantly larger  than the  input
  1561.           block or digest.  These  algorithms are of use in authentication-
  1562.           only  systems,   and  are   generally  not   subject  to   export
  1563.           restrictions.  
  1564.  
  1565.  
  1566.           7.3.1   El Gamal
  1567.  
  1568.           ElGamal is a public key (asymmetric) digital signature algorithm.
  1569.           It is defined in [k].  Its object identifier is:
  1570.  
  1571.                ElGamal ALGORITHM
  1572.                PARAMETER NULL
  1573.                ::= {encryptionAlgorithm 1}
  1574.  
  1575.                Editor's Note - This OID was assigned by the Directory SIG.
  1576.  
  1577.           In  [X.509], the ASN.1  data element subjectPublicKey  defined as
  1578.  
  1579.                                           17
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.           PART 12 - SECURITY                         December 1993 (Stable)
  1593.  
  1594.           BIT STRING should be interpreted in  the case of ElGamal as being
  1595.           of type:
  1596.  
  1597.                SEQUENCE {
  1598.                prime INTEGER, -- p
  1599.                base INTEGER,  -- alpha
  1600.                key INTEGER    -- public key, Y
  1601.                }
  1602.  
  1603.           Also,  in [X.509], the value associated  with the ENCRYPTED MACRO
  1604.           should be interpreted in the case of ElGamal as being of type:
  1605.  
  1606.                SEQUENCE {
  1607.                s INTEGER,
  1608.                r INTEGER
  1609.                }
  1610.  
  1611.           The ElGamal technology is patented in the United States [f].
  1612.  
  1613.                Editor's Note -  Should we describe and define  OIDs for the
  1614.                message  digest with ElGamal signature algorithms?  There is
  1615.                a Directory SIG OID for md2WithElGamal.
  1616.  
  1617.  
  1618.           7.3.2   DSA
  1619.  
  1620.           The NIST Digital Signature Algorithm [aa] is a variant of ElGamal
  1621.           which produces a shorter signature  size.   Its object identifier
  1622.           is:
  1623.  
  1624.                dsa ALGORITHM
  1625.                PARAMETER NULL
  1626.                ::= {algorithm 12}
  1627.  
  1628.           In  [X.509], the ASN.1  data element subjectPublicKey  defined as
  1629.           BIT STRING should be  interpreted in the case of DSA  as being of
  1630.           type:
  1631.  
  1632.  
  1633.                DSAPublicKey ::= SEQUENCE {
  1634.                     key       INTEGER,  -- y (public key)
  1635.                     params    DSAParameters OPTIONAL }
  1636.  
  1637.                DSAParameters ::= SEQUENCE {
  1638.                     prime1         [0]  INTEGER,  -- p
  1639.                     prime2         [1]  INTEGER,  -- q
  1640.                     base      [2]  INTEGER } -- g
  1641.  
  1642.           Also, in [X.509],  the value associated with  the ENCRYPTED MACRO
  1643.           (i.e. the signature  value) should be interpreted in  the case of
  1644.  
  1645.                                           18
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.           PART 12 - SECURITY                         December 1993 (Stable)
  1659.  
  1660.           DSA as being of type:
  1661.  
  1662.                SEQUENCE {
  1663.                     s INTEGER,
  1664.                     r INTEGER }
  1665.  
  1666.  
  1667.           7.4    Key Exchange 
  1668.  
  1669.  
  1670.           7.4.1   Diffie-Hellman
  1671.  
  1672.           Diffie-Hellman  Key  Exchange  is   a  public  key   (asymmetric)
  1673.           algorithm  whereby  two parties, without any  prior arrangements,
  1674.           can  agree upon  some shared (secret)  information.   The parties
  1675.           exchange public  information which, in  conjunction with  private
  1676.           information  retained by  each user,  may  be used  to compute  a
  1677.           common value.  This  value is typically used as a  symmetric key,
  1678.           for  example,  to  encrypt  further  communications  between  the
  1679.           parties.  
  1680.  
  1681.           The Diffie-Hellman  Key Exchange  is defined in  [h] and  is also
  1682.           described in [j].  The Diffie-Hellman Key Exchange is patented in
  1683.           the United States [i][f].
  1684.  
  1685.           The object identifier is defined in PKCS #3 [j] as:
  1686.  
  1687.                dhKeyAgreement ALGORITHM
  1688.                PARAMETER DHParameter
  1689.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1690.           pkcs-3(3) 1}
  1691.  
  1692.                DHParameter ::= SEQUENCE {
  1693.                prime               INTEGER, -- p
  1694.                base                     INTEGER   -- g
  1695.                privateValueLength  INTEGER OPTIONAL
  1696.                }
  1697.  
  1698.  
  1699.           7.4.2   Diffie-Hellman with Common Parameters
  1700.  
  1701.           This  version of  Diffie-Hellman  assumes  the  use of  a  common
  1702.           modulus  and generator, which  are distributed by  external means
  1703.           rather  than being  conveyed in  the parameter  component of  the
  1704.           AlgorithmIdentifier.   The  patent restrictions  in the  previous
  1705.           section still apply.  
  1706.  
  1707.           The object identifier is defined as:
  1708.  
  1709.  
  1710.  
  1711.                                           19
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.           PART 12 - SECURITY                         December 1993 (Stable)
  1725.  
  1726.                dhWithCommonModulus ALGORITHM
  1727.                PARAMETER NULL
  1728.                ::= {algorithm 16}
  1729.  
  1730.                DHParameter ::= SEQUENCE {
  1731.                prime INTEGER, -- p
  1732.                base INTEGER   -- g
  1733.                }
  1734.  
  1735.  
  1736.           7.5    Signature Algorithms
  1737.  
  1738.           This  section specifies a  number of signature  algorithms, i.e.,
  1739.           hash algorithms  combined with appropriate  asymmetric encryption
  1740.           algorithms.  
  1741.  
  1742.  
  1743.           7.5.1   Message Digests with RSA
  1744.  
  1745.           The algorithms listed below are signature algorithms that combine
  1746.           a message digest  algorithm with the RSA  cryptographic algorithm
  1747.           to produce a digital signature.
  1748.  
  1749.                Editor's Note  - The  OIDs below have  been assigned  by the
  1750.                Directory SIG and  the Security SIG.  Should  we explain why
  1751.                they do not appear in a single tree?
  1752.  
  1753.  
  1754.           7.5.1.1   Square-Mod-N with RSA
  1755.  
  1756.           Square-Mod-N  is   a  signature   algorithm  that   combines  the
  1757.           Square-Mod-N  hash algorithm with the RSA cryptographic algorithm
  1758.           to produce  a digital  signature.  This  algorithm is  defined in
  1759.           [X.509] and its object identifier is defined there as:
  1760.  
  1761.                sqmod-Nwithrsa ALGORITHM
  1762.                PARAMETER KeyAndBlockSize
  1763.                ::= {signatureAlgorithm 1}
  1764.  
  1765.                KeyAndBlockSize ::= INTEGER
  1766.  
  1767.           Recent research regarding the square-mod-n one-way  hash function
  1768.           described in Annex D of [X.509] has revealed that the function is
  1769.           not secure.  Its use, therefore, is discouraged.
  1770.  
  1771.  
  1772.           7.5.1.2   MD2 with RSA
  1773.  
  1774.           Its object identifier is:
  1775.  
  1776.  
  1777.                                           20
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.           PART 12 - SECURITY                         December 1993 (Stable)
  1791.  
  1792.                md2WithRsa ALGORITHM
  1793.                PARAMETER NULL
  1794.                ::= {signatureAlgorithm 1}
  1795.           This OID was assigned by the Directory SIG.
  1796.  
  1797.           7.5.1.3   MD4 with RSA
  1798.  
  1799.           Its object identifier is:
  1800.  
  1801.                md4WithRSA ALGORITHM
  1802.                PARAMETER NULL
  1803.                ::= {algorithm 2}
  1804.  
  1805.  
  1806.           7.5.1.4   MD5 with RSA
  1807.  
  1808.           Its object identifier is:
  1809.  
  1810.                md5WithRSA ALGORITHM
  1811.                PARAMETER NULL
  1812.                ::= {algorithm 3}
  1813.  
  1814.  
  1815.           7.5.2   Message Digests with RSA Encryption
  1816.  
  1817.           The algorithms listed below are signature algorithms that combine
  1818.           a  message digest algorithm with the RSA Encryption cryptographic
  1819.           algorithm to produce a digital signature.
  1820.  
  1821.  
  1822.           7.5.2.1   MD2 with RSA Encryption
  1823.  
  1824.           MD2 with RSA encryption is defined in  PKCS #1 [g] and its object
  1825.           identifier is defined there as:
  1826.  
  1827.                md2WithRSAEncryption ALGORITHM
  1828.                PARAMETER NULL
  1829.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1830.           pkcs-1(1) 2}
  1831.  
  1832.  
  1833.           7.5.2.2   MD4 with RSA Encryption
  1834.  
  1835.  
  1836.           Its object identifier is:
  1837.  
  1838.                md4WithRSAEncryption ALGORITHM
  1839.                PARAMETER NULL
  1840.                ::= {algorithm 4}
  1841.  
  1842.  
  1843.                                           21
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.           PART 12 - SECURITY                         December 1993 (Stable)
  1857.  
  1858.           7.5.2.3   MD5 with RSA Encryption
  1859.  
  1860.           MD5 with RSA Encryption is defined in  PKCS #1 [g] and its object
  1861.           identifier is defined there as:
  1862.  
  1863.                md5WithRSAEncryption ALGORITHM
  1864.                PARAMETER NULL
  1865.                ::=  {iso(1) member-body(2)  US(840) rsadsi(113549)  pkcs(1)
  1866.           pkcs-1(1) 4}
  1867.  
  1868.  
  1869.           7.5.3   DSA With SHA
  1870.  
  1871.           This  signature algorithm produces  a 320-bit signature.   SHA is
  1872.           the only hash algorithm  which may be used with DSA.   Its object
  1873.           identifier is
  1874.  
  1875.                dsaWithSHA ALGORITHM
  1876.                PARAMETER NULL
  1877.                ::= {algorithm 13)
  1878.  
  1879.  
  1880.           7.5.4   RSA Signature With SHA
  1881.  
  1882.           This algorithm uses the RSA Signature algorithm to sign a 160-bit
  1883.           SHA digest. Its object identifier is
  1884.  
  1885.  
  1886.                shaWithRSASignature
  1887.                PARAMETER NULL
  1888.                ::= {algorithm 15}
  1889.  
  1890.  
  1891.           7.6    Symmetric Encryption Algorithms
  1892.  
  1893.  
  1894.           7.6.1   Data Encryption Standard
  1895.  
  1896.           The Data Encryption  Standard (DES) is  a secret key  (symmetric)
  1897.           cryptographic algorithm.   It is defined in FIPS 46-1 [l].  It is
  1898.           also  defined as DEA-1  in ANSI X3.92-1981  [m].Implementors will
  1899.           also  find several  other references  useful.   FIPS  PUB 74  [p]
  1900.           provides  guidance  on  the implementation  and  use  of  DES and
  1901.           includes a  complete specification  of the  algorithm.   SPEC PUB
  1902.           500-20  [p]  describes  the  design  and operation  of  the  NIST
  1903.           (formerly NBS)  testbed that  is used for  the validation  of DES
  1904.           implementations.  It specifies a set of 291 test cases  that have
  1905.           been  designed to exercise every  basic element of the algorithm,
  1906.           and as a  further check on the correctness  of an implementation,
  1907.           it specifies an extensive Monte  Carlo analysis.  SPEC PUB 500-61
  1908.  
  1909.                                           22
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.           PART 12 - SECURITY                         December 1993 (Stable)
  1923.  
  1924.           describes   the  design  of   four  maintenance  tests   for  DES
  1925.           implementations.     The  tests  consist  of  an  iterative  test
  1926.           procedure that uses a small program and minimum data.   The tests
  1927.           are designed to  be independent of implementation and  to be fast
  1928.           enough to  test devices during  actual operation.  The  tests are
  1929.           defined  as four  specific stopping points  in a  general testing
  1930.           process  and  satisfy  four  testing  requirements of  increasing
  1931.           degree of completeness on the thoroughness of testing desired.
  1932.            
  1933.           There  are four  modes of operation  of the DES,  as specified by
  1934.           FIPS 81 [n] and ANSI X3.106-1983 [o].  The modes specify  how the
  1935.           data will be encrypted and decrypted.  In all cases the key is 64
  1936.           bits.  Use of DES for encryption (i.e., all modes discussed below
  1937.           except DES-MAC) are subject to export controls.  
  1938.  
  1939.  
  1940.           7.6.1.1   DES-ECB
  1941.  
  1942.           This is  the Electronic Codebook  mode of operation.   Its object
  1943.           identifier is: 
  1944.  
  1945.                desECB ALGORITHM
  1946.                PARAMETER NULL
  1947.                ::= {algorithm 6}
  1948.  
  1949.           This mode should be used to encrypt small blocks (e.g., other DES
  1950.           keys).   Its  use is  deprecated  for block  encryption since  it
  1951.           allows cryptanalysis  of repeated  block values  (i.e., the  same
  1952.           plaintext in the  same place relative to  the block), as well  as
  1953.           reassembling messages from known blocks.
  1954.  
  1955.  
  1956.           7.6.1.2   DES-CBC
  1957.  
  1958.           This is the Cipher Block Chaining mode of  operation.  Its object
  1959.           identifier is:  
  1960.  
  1961.                desCBC ALGORITHM
  1962.                PARAMETER CBCParameter
  1963.                ::= {algorithm 7}
  1964.  
  1965.           The PARAMETER  is needed  to specify  the Initialization  Vector,
  1966.           which need not be kept secret.
  1967.  
  1968.           This mode  should be used  to encrypt multiple blocks,  where the
  1969.           full  message is  available.   The  random  IV prevents  codebook
  1970.           analysis of the start of the chain.  The IV may be public.
  1971.  
  1972.           This  mode will  propagate a  single bit  error in  one plaintext
  1973.           block into all succeeding blocks, and will propagate a single bit
  1974.  
  1975.                                           23
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.           PART 12 - SECURITY                         December 1993 (Stable)
  1989.  
  1990.           error  in  the  ciphertext  into  a  garbled  plaintext block  on
  1991.           decryption  as well as  a single bit error  in the next plaintext
  1992.           block. 
  1993.  
  1994.           The following  padding mechanism from  [w] should be used  if the
  1995.           data to be encrypted is octet aligned, unless the security policy
  1996.           dictates otherwise:
  1997.  
  1998.           The input to the  DES CBC encryption process must be  padded to a
  1999.           multiple of  8 octet,  in the  following manner.   Let  n be  the
  2000.           length in  octets of the input.  Pad  the input by appending 8-(n
  2001.           mod 8) octet  to the end  of the message,  each having the  value
  2002.           8-(n mod 8), the number  of octets being added.  In  hexadecimal,
  2003.           the  possible   paddings   are:  01,   0202,  030303,   04040404,
  2004.           0505050505, 060606060606,  07070707070707, and  0808080808080808.
  2005.           All input is padded with 1 to 8 octets to produce a multiple of 8
  2006.           octets in length.  The padding can be removed unambiguously after
  2007.           decryption.
  2008.  
  2009.                Editor's  Note -  If adding  the  padding rules  would cause
  2010.                existing implementations to break, this should be registered
  2011.                as a  separate algorithm  identifier.   Note, however,  that
  2012.                [FIPS 81] specifies its own padding rules for padding binary
  2013.                data,  in the absence  of application-defined rules  such as
  2014.                those  above; those rules require an indication (which could
  2015.                be conveyed as  an algorithm PARAMETER) of  whether the data
  2016.                has been padded or not.
  2017.  
  2018.  
  2019.           7.6.1.3   DES-OFB
  2020.  
  2021.           This  is the  Output  Feedback  mode of  operation.   Its  object
  2022.           identifier and parameters are:
  2023.  
  2024.  
  2025.                desOFB ALGORITHM
  2026.                PARAMETER FBParameter
  2027.                ::= {algorithm 8}
  2028.  
  2029.           The parameters are  needed to  specify an  IV and  the number  of
  2030.           feedback bits.
  2031.  
  2032.           This mode  may be used to encrypt multiple blocks where the error
  2033.           extension properties  of DES-CBC are  undesirable.  A  single bit
  2034.           error in the ciphertext will cause only a single bit error in the
  2035.           output plaintext.
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.                                           24
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.           PART 12 - SECURITY                         December 1993 (Stable)
  2055.  
  2056.           7.6.1.4   DES-CFB
  2057.  
  2058.           This  is the  Cipher  Feedback  mode of  operation.   Its  object
  2059.           identifier and parameters are   
  2060.  
  2061.                desCFB ALGORITHM
  2062.                PARAMETER FBParameter
  2063.                ::= {algorithm 9}
  2064.  
  2065.           The parameters  are needed  to specify  an IV and  the number  of
  2066.           feedback bits.
  2067.  
  2068.           This  mode may be  used when the  plaintext is  made available in
  2069.           pieces, e.g.,  a character (8-bit CFB) or a  bit (1-bit CFB) at a
  2070.           time.   This  mode  will propagate  a  single bit  error  in  one
  2071.           plaintext block  into all succeeding blocks, and will propagate a
  2072.           single bit error in the ciphertext into a single-bit error in the
  2073.           corresponding plaintext character as well as garbling of the next
  2074.           8 bytes or so of output (the exact amount depends on the feedback
  2075.           size). 
  2076.  
  2077.  
  2078.           7.6.1.5   DES-MAC
  2079.  
  2080.           DES-MAC is a Message Authentication Code algorithm (cryptographic
  2081.           checksum) based on the DES that uses a single 64-bit DES key.  
  2082.  
  2083.           It is specified in FIPS 113  [s] and is equivalent to the  binary
  2084.           mode defined  in ANSI X9.9-1986  [t].  Its object  identifier and
  2085.           parameter are:
  2086.  
  2087.                desMAC ALGORITHM
  2088.                PARAMETER MACParameter
  2089.                ::= {algorithm 10}
  2090.  
  2091.           The parameter is needed to specify the MAC length in bits.
  2092.  
  2093.           DES-MAC is equivalent to DES-CBC using an all zero Initialization
  2094.           Vector (IV), with all but the last cipher output block discarded.
  2095.           Separate keys (where  one may simply be  a variant of the  other)
  2096.           should be  used if  both DES-CBC encrypting  and MACing  the same
  2097.           data.
  2098.  
  2099.                Editor's  Note -  We  need to  include  the reference  which
  2100.                specifies the vulnerability  when the  same key  is used  to
  2101.                DES-CBC encrypt  and MAC the  same data, and  recommends the
  2102.                use of separate keys.
  2103.  
  2104.  
  2105.  
  2106.  
  2107.                                           25
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.           PART 12 - SECURITY                         December 1993 (Stable)
  2121.  
  2122.           7.6.1.6   DES-EDE
  2123.  
  2124.           The  DES  algorithm  in Encrypt-Decrypt-Encrypt  (EDE)  mode,  as
  2125.           defined  by [af]  for  encryption and  decryption  with pairs  of
  2126.           64-bit  keys,  might be  used  for  key  or MAC  encryption  when
  2127.           symmetric key management is employed.  (The mechanism is  subject
  2128.           to the  same constraints  as DES  ECB,  but is  cryptographically
  2129.           stronger.)   Given the pair of  keys, the data is enciphered with
  2130.           the first key,  deciphered with  the second  key, and  enciphered
  2131.           again with  the first key  to perform encryption; the  process is
  2132.           reversed for decryption.   Note that if both  keys are the  same,
  2133.           the result is equivalent to  a single encryption under the single
  2134.           key.  The  key may be represented as a single 128-bit string with
  2135.           the  first 64 bits being the first key and the last 64 bits being
  2136.           the second key.
  2137.  
  2138.                desEDE ALGORITHM
  2139.                PARAMETER NULL
  2140.                ::= {algorithm 17}
  2141.  
  2142.  
  2143.           7.6.2   RC2-CBC
  2144.  
  2145.           RC2-CBC  is  a  symmetric  block  encryption  algorithm.    It is
  2146.           proprietary to RSA  Data Security, Inc., and a  license from them
  2147.           is required to use  the algorithm.  The algorithm  uses an 8-byte
  2148.           key and operates  on an 8-byte block, with  cipher block chaining
  2149.           as in  DES.  The  recommended padding  is as described  above for
  2150.           DES-CBC:  the  final block  is padded  to an  8-byte boundary  by
  2151.           appending 8 - (n mod 8) bytes,  each having the value 8 - (n  mod
  2152.           8),  where n is  the total number  of bytes being  encrypted. The
  2153.           speed is comparable to DES. 
  2154.  
  2155.                rc2CBC ALGORITHM
  2156.                PARAMETER RC2-CBCParameter
  2157.                ::={iso(1)     member-body(2)     US(840)     rsadsi(113549)
  2158.           encryptionAlgorithm(3) 2}
  2159.  
  2160.                RC2-CBCParameter   ::=   CHOICE   {IV,   SEQUENCE   {version
  2161.           RC2Version, IV}}
  2162.            
  2163.                -- with IV only, version defaults to 65
  2164.            
  2165.                IV ::= OCTET STRING -- 8 octets
  2166.                RC2Version ::= INTEGER -- 0 to 255, defined by RSADSI
  2167.  
  2168.           The  version number  relates to  the  security level.   Different
  2169.           versions of RC2  provide different security levels, some of which
  2170.           are exportable. 
  2171.  
  2172.  
  2173.                                           26
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.           PART 12 - SECURITY                         December 1993 (Stable)
  2187.  
  2188.           7.6.3   RC-4
  2189.  
  2190.           RC-4   is  a  symmetric  block   encryption  algorithm.    It  is
  2191.           proprietary to RSA  Data Security, Inc., and a  license from them
  2192.           is required to use the algorithm.  The RC4 key size  is variable,
  2193.           1  to 256 bytes;  the block size  is one byte.   RC4  is a stream
  2194.           cipher,  and it exclusive-ors  a pseudorandom  sequence generated
  2195.           from the key to encrypt or decrypt; a given  key should therefore
  2196.           be used only once.  RC4 is very fast.  
  2197.  
  2198.                rc4 ALGORITHM
  2199.                PARAMETER NULL
  2200.                ::={iso(1)     member-body(2)     US(840)     rsadsi(113549)
  2201.           encryptionAlgorithm(3) 4}
  2202.  
  2203.  
  2204.           7.7    ASN.1
  2205.  
  2206.  
  2207.           7.7.1   Distinguished Encoding Rules
  2208.  
  2209.           In order to allow verification  of digital signatures produced by
  2210.           the SIGNED and SIGNATURE MACROs  of [ISO9594-8], it is  necessary
  2211.           to define  a set  of distinguished encoding  rules to  produce an
  2212.           unambiguous  encoding   of  a   given   abstract  syntax   value.
  2213.           [ISO9594-8] defines  a number of  such encoding rules  (8.7), but
  2214.           is, unfortunately, underspecified in the following areas:
  2215.  
  2216.                a)  Ordering of SET OF components;
  2217.  
  2218.                b)  Handling of unused trailing zero bits;
  2219.  
  2220.                c)  Invocation and designation of new character sets in some
  2221.                of the character string types.
  2222.  
  2223.           The following rules remove these ambiguities: 
  2224.  
  2225.                a)   The [ISO9594-8] distinguished encoding rules are always
  2226.                used;
  2227.  
  2228.                b)  For  SET OF types, components are  sorted into ascending
  2229.                order of the distinguished encodings of the components;
  2230.  
  2231.                c)   For BIT STRINGS with unused  trailing bits, if the type
  2232.                definition that  specifies the bits have  significance, then
  2233.                they are included in the encoding; otherwise they are not;
  2234.  
  2235.                d)    For those  character  strings which  allow  it, escape
  2236.                sequences are generated to invoke and designate new register
  2237.                entries  only  when  the register  entry  for  the character
  2238.  
  2239.                                           27
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.           PART 12 - SECURITY                         December 1993 (Stable)
  2253.  
  2254.                currently  being encoded  is different  from that  currently
  2255.                designated for G0, C0, or C1. All designations shall be into
  2256.                G0 or C0. (It is assumed that all characters have entries in
  2257.                the ISO Registry of Coded Character Sets.)
  2258.  
  2259.                NOTE - Rules b,c, and  d are taken from [ISO/CD8825-3] (Nov.
  2260.                1990),  the   ASN.1  Distinguished  Encoding   Rules.  Other
  2261.                features of [ISO/CD8825-3],  which conflict with [ISO9594-8]
  2262.                (e.g.,  length encoding for  constructors), are NOT  used by
  2263.                this IA.
  2264.  
  2265.           It is recommended that whenever  the SIGNED or SIGNATURE macro is
  2266.           to be applied to an  object, the object should be transferred  in
  2267.           its distinguished encoded form.   In this way, when the resources
  2268.           required  to  encode or  decode  an object  exceed  the resources
  2269.           required to  apply the  SIGNED or  SIGNATURE  macro, a  receiving
  2270.           entity may apply  the macro immediately, thus  realizing enhanced
  2271.           performance.   However, if the macro application is unsuccessful,
  2272.           the object must be distinguished encoded and the macro re-applied
  2273.           to determine its actual success or failure.
  2274.  
  2275.  
  2276.           8   Lower Layers Security
  2277.  
  2278.  
  2279.           9   Upper Layers Security
  2280.  
  2281.           This  clause addresses the provision of  security services in the
  2282.           Upper  Layers.   The Upper  Layers  Security Model  specifies the
  2283.           interactions  among the  Upper  Layers  in  providing  and  using
  2284.           security services [ISO/CD10745].
  2285.  
  2286.  
  2287.           9.1    Security Mechanisms
  2288.  
  2289.  
  2290.           9.1.1   Peer Entity Authentication
  2291.  
  2292.           ACSE authentication extensions  [ISO8649][ISO8650/1] support two-
  2293.           way authentication  through the  definition of  a new  functional
  2294.           unit.     When  this  functional  unit  is  employed,  additional
  2295.           parameters  are provided by  the A-ASSOCIATE service  to indicate
  2296.           this requirement  and convey  authentication information  between
  2297.           entities.   The ASN.1  definition for  this information  is given
  2298.           below:
  2299.  
  2300.  
  2301.  
  2302.           from [ISO8650/1]: 
  2303.  
  2304.  
  2305.                                           28
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.           PART 12 - SECURITY                         December 1993 (Stable)
  2319.  
  2320.           Mechanism-name ::= OBJECT IDENTIFIER  
  2321.                --This  field shall be present if authentication-value is of
  2322.           type ANY.
  2323.  
  2324.           Authentication-value   :=     CHOICE { 
  2325.                charstring          [0] IMPLICIT GraphicString,       
  2326.                bitstring                [1] IMPLICIT BIT STRING,  
  2327.                external                 [2] IMPLICIT EXTERNAL,         
  2328.                other               [3] ANY -- Defined by Mechanism-name }
  2329.  
  2330.                --The abstract syntax  of authentication-value is determined
  2331.                by the authentication-mechanism 
  2332.                --used     during     association     establishment.     The
  2333.           authentication-mechanism is either explicitly 
  2334.                --denoted by the OBJECT IDENTIFIER value for Mechanism-name,
  2335.           or it is know implicitly by 
  2336.                --prior agreement  between the  communicating partners.   If
  2337.           "other" is chosen, then 
  2338.                --"Mechanism-name" must be  present in  accordance with  ISO
  2339.           8824.
  2340.  
  2341.  
  2342.           These agreements  define the  following mechanisms  for use  with
  2343.           this ACSE functional unit:
  2344.  
  2345.                          simple-strong authentication mechanism.
  2346.  
  2347.  
  2348.           9.1.1.1   Simple-Strong Authentication
  2349.  
  2350.  
  2351.           9.1.1.1.1  Operation
  2352.  
  2353.           The operation  of the simple-strong authentication mechanisms are
  2354.           based  upon [ISO9594-3] and  [ISO9594-8] standards.   The sending
  2355.           system is the  entity requesting authentication of  its identity,
  2356.           and  the   receiving  system   is  the   entity  performing   the
  2357.           authentication.   The sending  system supplies data  for the ACSE
  2358.           authentication field of the A-ASSOCIATE primitive.  The receiving
  2359.           ACSE  obtains the ACSE  authentication data from  the A-ASSOCIATE
  2360.           PDU,  and it performs the authentication  check.  If the check is
  2361.           successful, the association formation succeeds or fails depending
  2362.           upon other  circumstances and  parameters.  The  use of  the ACSE
  2363.           authentication  fields   support  both  the   simple  and  strong
  2364.           credentials variants of the [ISO9594-8] authentication exchanges.
  2365.  
  2366.           Certificates  for  use   with  strong   authentication  must   be
  2367.           compatible with [ISO9594-8].
  2368.           Certificates procured for use with Internet Privacy Enhanced Mail
  2369.           [u][v][w][x] are  completely compatible with [ISO9594-8]  and may
  2370.  
  2371.                                           29
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.           PART 12 - SECURITY                         December 1993 (Stable)
  2385.  
  2386.           (subject  to  licensing  restrictions)  be  used  by  the  strong
  2387.           authentication  mechanism. However,  Privacy  Enhanced Mail  uses
  2388.           only a subset of the  suggested [ISO9594-7] name forms, and might
  2389.           not  support  certain name  forms  of  interest to  specific  OIW
  2390.           applications.  Examples  include  Application  Entity  names  and
  2391.           certain name forms defined by the North American Directory  Forum
  2392.           in NADF-123 [y].
  2393.  
  2394.           9.1.1.1.2  Data Structure
  2395.  
  2396.           Mechanism Name
  2397.  
  2398.           The following is the ASN.1 description of the authentication data
  2399.           structure for simple or strong authentication:
  2400.  
  2401.             simple-strong-auth-mechanism OBJECT IDENTIFIER ::= {iso (1)     
  2402.                                                
  2403.                           identified-organization (3)                       
  2404.                                                
  2405.                           oiw (14)                                          
  2406.                                                
  2407.                           secsig (3)                                        
  2408.                                                
  2409.                           authentication-mechanisms (3)                     
  2410.                                                
  2411.                           simple-strong-identity-authentication (1)         
  2412.                                                
  2413.                           }                                                 
  2414.                                                                             
  2415.                                                      
  2416.  
  2417.           Authentication Value
  2418.  
  2419.           The authentication value  is conveyed in the other  option of the
  2420.           authentication-value field of ACSE authentication.
  2421.  
  2422.               Authentication-Value ::=                                      
  2423.                                             
  2424.                    SEQUENCE OF DirectoryAbstractService.Credentials         
  2425.                                                    
  2426.  
  2427.           This     data    type    is     defined    in     ASN.1    module
  2428.           DirectoryAbstractService  of  [ISO9594-3]   as  modified  through
  2429.           resolution of Directory  Defect Report Numbers 9594/052  and 063.
  2430.           The semantics of all fields are as specified in clause 8.1.2.1 of
  2431.           [ISO9594-3].
  2432.  
  2433.           The  Authentication-Value is defined as  a SEQUENCE because it is
  2434.           permitted  to pass  credentials  for  multiple  entities  in  the
  2435.           authentication   value.    It   is  the  responsibility   of  the
  2436.  
  2437.                                           30
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.           PART 12 - SECURITY                         December 1993 (Stable)
  2451.  
  2452.           application to determine the specific meaning and use of multiple
  2453.           credentials  in such  a case.   It  is anticipated  that specific
  2454.           applications   (e.g.,    Network   Management)    would   provide
  2455.           specifications for handling multiple credentials within their own
  2456.           clauses of this Part.
  2457.  
  2458.           This   authentication  mechanism   may   employ  any   registered
  2459.           authentication  algorithm; however,  it is  recommended that  the
  2460.           algorithms identified in clause 7 be used.
  2461.  
  2462.  
  2463.           9.1.1.1.3  Options
  2464.  
  2465.           For the Simple  Credentials option of Credentials,  the following
  2466.           agreements apply.  Conforming implementations are not required to
  2467.           employ  the OPTIONAL  validity  sequence of  the SimpleCredential
  2468.           data element.   Receiving implementations that do  not employ the
  2469.           validity  sequence must reject an authentication value which does
  2470.           contain this sequence.   Conforming implementations shall  employ
  2471.           the optional password field of the SimpleCredential data element.
  2472.  
  2473.           Note that the password  may be hashed using one way functions and
  2474.           the  other  validity  fields.    Password  is  either  cleartext,
  2475.           Protected1 or Protected2 according to [ISO9594-8].
  2476.  
  2477.  
  2478.           9.1.1.2   External Authentication Mechanisms 
  2479.  
  2480.           Externally  defined  authentication   exchanges  may  employ  the
  2481.           external [2]  option of  the authentication-value  field of  ACSE
  2482.           authentication.  In  this   case  it  is  recommended   that  the
  2483.           mechanism-name be omitted,  with the particular mechanism  in use
  2484.           being implied  by the abstract syntax identified  in the external
  2485.           construct.
  2486.  
  2487.  
  2488.           9.1.1.2.1  Kerberos Version 5
  2489.  
  2490.  
  2491.  
  2492.           One  instance  of  an external  authentication  mechanism  is the
  2493.           Kerberos mechanism  defined  in [z].  The Kerberos  specification
  2494.           assigned  the following object  identifier to an  abstract syntax
  2495.           suitable for use in this way:
  2496.  
  2497.                     [TBD]
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.                                           31
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.           PART 12 - SECURITY                         December 1993 (Stable)
  2517.  
  2518.           9.1.2   Integrity/Data Origin Authentication Transformation
  2519.  
  2520.           This      transformation     is      a     specialization      of
  2521.           gulsSignedTransformation, which is  defined in clause D.4  of DIS
  2522.           11586-1.   This transformation uses the following parameters, and
  2523.           provides additional details on the operation of the encoding  and
  2524.           decoding processes.
  2525.  
  2526.                1)   The initEncRules field has the value {  joint-iso-ccitt
  2527.                     asn1(1) ber-derived(2) der(1) }, i.e., DER.
  2528.  
  2529.                2)   The  signOrSealAlgorithm element  shall be  keyed-hash-
  2530.                     seal:
  2531.  
  2532.                     keyed-hash-seal ALGORITHM
  2533.                          PARAMETER NULL
  2534.                     ::= { algorithm 23 }
  2535.  
  2536.                     The  keyed-hash-seal  algorithm  is  specified  in  the
  2537.           encoding process description below.
  2538.  
  2539.                3)   The hash algorithm, if the hashAlgorithm element is not
  2540.                     present, shall default to md5.
  2541.  
  2542.                Editor's Note -  Points 2 and  3 are redundant with  text in
  2543.                the  NM  Agreements.     This  should  be   resolved  before
  2544.                progressing to the Stable Agreements.
  2545.  
  2546.                4)   The keyInformation field is not present.
  2547.  
  2548.           Encoding process:   When a value of  an abstract syntax is  to be
  2549.           sealed for transmission, the following procedures apply:
  2550.  
  2551.                1)   Encode the output data type of the transformation using
  2552.                     the ASN.1 Distinguished Encoding Rules, with the shared
  2553.                     secret key used as the value of the appendix component.
  2554.                     (Since automatic tagging is used, this is equivalent to
  2555.                     encoding the  unprotectedItem using DER,  and enclosing
  2556.                     it  in the intermediateValue and output data type using
  2557.                     BER.)
  2558.  
  2559.                NOTE -  This encoding is  only for purposes of  the security
  2560.                transformation, and does not mean DER must be used to encode
  2561.                the PDU for transmission, i.e., as the transfer syntax.
  2562.  
  2563.                2)   Hash the complete DER encoding of the value  derived in
  2564.                     step 1.
  2565.  
  2566.                NOTE     -     The     current     definition     of     the
  2567.                gulsSignedTransformation  is  unduly   restrictive  in  that
  2568.  
  2569.                                           32
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.           PART 12 - SECURITY                         December 1993 (Stable)
  2583.  
  2584.                cryptographic   operations   are   only   applied   to   the
  2585.                intermediateValue element  of the output  data type,  rather
  2586.                than the  entire type.  This is  being submitted as a ballot
  2587.                comment on DIS 11586-1.
  2588.  
  2589.                3)   Insert  the hash value  into the appendix  component of
  2590.                     the output  data  type, which  is  the  xformedDataType
  2591.                     element of the transmitted PDV.
  2592.  
  2593.           Encoding process local inputs:  Identifier of hash  algorithm and
  2594.           any  required algorithm parameters, and shared secret key.  (Most
  2595.           currently registered hash algorithms have a NULL parameter.)
  2596.  
  2597.           Decoding  process:   When  a  received PDV  to  be verified,  the
  2598.           following procedures apply:
  2599.  
  2600.  
  2601.                1)   Extract and save  the received hash value  contained in
  2602.                     the appendix component of the received  xformedDataType
  2603.                     component of the received PDV.
  2604.  
  2605.                2)   Replace  the value  in the  appendix  component of  the
  2606.                     xformedDataType component with the shared secret key.
  2607.  
  2608.                NOTE - The extraction and  replacement of the seal field may
  2609.                be performed directly on the ASN.1 encoded PDU if the length
  2610.                of the secret key and the hash digest are equal.  Otherwise,
  2611.                the PDU must be decoded and reencoded.
  2612.  
  2613.  
  2614.                3)   Hash the  DER encoding of the  xformedDataType element.
  2615.                     (Reencoding  may  be  avoided  if  the  unprotectedItem
  2616.                     encoding is distinguished,  and the generic  protecting
  2617.                     transfer syntax defined in DIS 11586-4 is used.)
  2618.  
  2619.                4)   Compare  the  hash extracted  in step  1 with  the hash
  2620.                     derived in step 3.  If they are equal, then the seal is
  2621.                     valid; otherwise an error is signalled.
  2622.  
  2623.           Decoding process local inputs:   Identifier of hash algorithm and
  2624.           any required algorithm parameters, and shared secret key.
  2625.  
  2626.           Decoding process  outputs:   Recovered unprotected  item. and  an
  2627.           indication of whether the seal is valid.
  2628.  
  2629.           Errors:   An error condition occurs if seal verification fails.
  2630.  
  2631.           Security services:  Data origin authentication, data integrity.
  2632.  
  2633.  
  2634.  
  2635.                                           33
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.           PART 12 - SECURITY                         December 1993 (Stable)
  2649.  
  2650.           10  Message Handling System (MHS) Security
  2651.  
  2652.           All current MHS security relevant  text appears in Part 8, clause
  2653.           10.
  2654.  
  2655.  
  2656.           11  Directory Services Security
  2657.  
  2658.  
  2659.           12  Network Management Security
  2660.  
  2661.           This clause outlines  an approach to providing  security services
  2662.           for  OSI Network Management.   The goals of  this approach are to
  2663.           provide security in a manner that is  simple and straight-forward
  2664.           to  implement, and  to avoid  any  unnecessary computational  and
  2665.           managerial  overhead.  The approach also takes into consideration
  2666.           the  need  for  different  levels  of  security  services  within
  2667.           different   network  management   domains,  and  the   near  term
  2668.           requirement for  interoperability of network  management entities
  2669.           over heterogeneous network types.
  2670.  
  2671.  
  2672.           12.1   Threats
  2673.  
  2674.           For  the purpose  of  discussion, threats  are  divided into  two
  2675.           categories: primary and  secondary threats.  Primary  threats are
  2676.           those considered  to be applicable  to the full range  of network
  2677.           management   implementations,   while   secondary   threats   are
  2678.           considered to be  applicable to the more limited  range of highly
  2679.           secure implementations.
  2680.  
  2681.           The primary threats to be protected against are the following:
  2682.  
  2683.                a)  The masquerading of a manager or agent entity;
  2684.  
  2685.                b)   The fabrication  or modification  of Common  Management
  2686.                Information Protocol (CMIP) data units.
  2687.  
  2688.           By countering primary  threats, disruption of  network management
  2689.           services by the casual user can be avoided.
  2690.  
  2691.           The secondary threats to be protected against are the following:
  2692.  
  2693.                a)  All primary threats;
  2694.  
  2695.                b)  The disclosure of CMIP data units;
  2696.  
  2697.                c)    The  replay,  reflection,  reordering,  insertion,  or
  2698.                deletion of CMIP data units.
  2699.  
  2700.  
  2701.                                           34
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.           PART 12 - SECURITY                         December 1993 (Stable)
  2715.  
  2716.           12.2   Security Services
  2717.  
  2718.  
  2719.           12.2.1  Basic Security Services
  2720.  
  2721.           The security services required to counter primary threats are:
  2722.  
  2723.                a)  Peer entity authentication;
  2724.  
  2725.                b)  Data origin authentication;
  2726.  
  2727.                c)  Connectionless integrity.
  2728.  
  2729.           Peer entity authentication  is to occur during  the establishment
  2730.           of  an   application  association.     If   the  association   is
  2731.           successfully  established,  the   underlying  security  mechanism
  2732.           provides information  that is  subsequently used  in data  origin
  2733.           authentication.  There the information  may be included in or, in
  2734.           some other way, transform the data units of  subsequent exchanges
  2735.           so   that  they  can   be  identified  as   originating  from  an
  2736.           authenticated entity.  Both authentication security  services are
  2737.           to be provided at the application level of the protocol.
  2738.  
  2739.           Connectionless integrity insures that data units originating from
  2740.           an authenticated  source are  not  modifiable without  detection.
  2741.           When combined with a strong data origin authentication mechanism,
  2742.           the  ability  to  fabricate new  data  units  is also  countered.
  2743.           Connectionless  integrity   may   be  provided   at  either   the
  2744.           application  level of  the protocol  or within  one of  the lower
  2745.           levels of the protocol (i.e., transport or network).  
  2746.  
  2747.  
  2748.           12.2.2  Enhanced Security Services
  2749.  
  2750.           The security services required to counter secondary threats are:
  2751.  
  2752.                a)  All basic security services with the  possible exception
  2753.                of connectionless integrity;
  2754.  
  2755.                b)  Connectionless confidentiality;
  2756.  
  2757.                c)  Connection integrity with or without recovery.
  2758.  
  2759.           Both connectionless confidentiality  and connection integrity may
  2760.           be provided at either the application level of protocol or within
  2761.           one  of the lower  levels of protocol.   The  latter provision is
  2762.           assumed  here.    Enhanced security  services  are  not discussed
  2763.           further in this note,  but to be issued as a  requirement for the
  2764.           lower  layer protocol  and service  standards,  and according  to
  2765.           functional standards to be developed.
  2766.  
  2767.                                           35
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.           PART 12 - SECURITY                         December 1993 (Stable)
  2781.  
  2782.  
  2783.           12.3   Security Mechanisms
  2784.  
  2785.  
  2786.  
  2787.           12.3.1  Peer Entity Authentication
  2788.  
  2789.  
  2790.           Peer  Entity  Authentication  will  use  the  ACSE authentication
  2791.           mechanism and  associated data  types as defined  in clause  9 of
  2792.           this Part of  the IAs.  The specific  authentication mechanism to
  2793.           be  supported  is  the  Simple-Strong Authentication  defined  in
  2794.           9.1.1.1.
  2795.  
  2796.           Support of ACSE authentication is optional.
  2797.  
  2798.  
  2799.           12.3.2  Connectionless Integrity
  2800.  
  2801.  
  2802.                Editor's Note - Proposed text for this clause appears in WIA
  2803.                Part 12, clause 12.3.2.
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.                                           36
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.           PART 12 - SECURITY                         December 1993 (Stable)
  2847.  
  2848.           Annex A (normative)
  2849.  
  2850.           ISPICS Requirements List
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.                                           37
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.           PART 12 - SECURITY                         December 1993 (Stable)
  2913.  
  2914.           Annex B (normative)
  2915.  
  2916.           Errata
  2917.  
  2918.                            Table B.1 - SIA Part 12 changes
  2919.  
  2920.            NO. OF      TYPE     REFERENCED        CLAUS   NOTES
  2921.            ERRATA               DOCUMENT          E
  2922.  
  2923.                                                                           
  2924.                                                               
  2925.                                                                   
  2926.  
  2927.  
  2928.                                                                   
  2929.  
  2930.                                                                   
  2931.  
  2932.  
  2933.                                                                   
  2934.                                                     
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.                                           38
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.           PART 12 - SECURITY                         December 1993 (Stable)
  2979.  
  2980.           Annex C (normative)
  2981.  
  2982.           TBD
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.  
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.                                           39
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.           PART 12 - SECURITY                         December 1993 (Stable)
  3045.  
  3046.           Annex D (informative)
  3047.  
  3048.           Security Algorithms and Attributes
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.                                           40
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.           PART 12 - SECURITY                         December 1993 (Stable)
  3111.  
  3112.           OIWSECSIGAlgorithmObjectIdentifiers                         {i(1)
  3113.           identified-organization(3)
  3114.                                                oiw(14) secsig(3)
  3115.                                              
  3116.           oIWSECSIGAlgorithmObjectIdentifiers(1)}
  3117.           DEFINITIONS =
  3118.           BEGIN
  3119.  
  3120.           EXPORTS
  3121.           -- to be determined
  3122.  
  3123.           IMPORTS
  3124.           -- none
  3125.  
  3126.           -- category of information object
  3127.           --  defining  our  own here;  perhaps  the  definition  should be
  3128.           imported from
  3129.           -- {joint-iso-ccitt ds(5) modules(1) usefulDefinitions(0)}
  3130.  
  3131.           algorithm                      OBJECT   IDENTIFIER   ::=  {iso(1)
  3132.           identified-organization(3)
  3133.                                                     oiw(14)       secsig(3)
  3134.           algorithm(2)}
  3135.  
  3136.           -- macros
  3137.  
  3138.           --     taken    from     {joint-iso-ccitt    ds(5)     modules(1)
  3139.           authenticationFramework(7)}
  3140.           ALGORITHM MACRO     ::=
  3141.           BEGIN
  3142.           TYPE NOTATION  ::= "PARAMETER" type
  3143.           VALUE NOTATION      ::= value(VALUE OBJECT IDENTIFIER)
  3144.           END -- of ALGORITHM
  3145.  
  3146.           -- algorithms
  3147.  
  3148.           md4WithRSA ALGORITHM
  3149.               PARAMETER NULL
  3150.               ::= {algorithm 2}
  3151.  
  3152.           md5WithRSA ALGORITHM
  3153.               PARAMETER NULL
  3154.               ::= {algorithm 3}
  3155.  
  3156.           md4WithRSAEncryption ALGORITHM
  3157.               PARAMETER NULL
  3158.               ::= {algorithm 4}
  3159.  
  3160.           desECB ALGORITHM
  3161.               PARAMETER NULL
  3162.  
  3163.                                           41
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.           PART 12 - SECURITY                         December 1993 (Stable)
  3177.  
  3178.               ::= {algorithm 6}
  3179.  
  3180.           desCBC ALGORITHM
  3181.                PARAMETER CBCParameter
  3182.                ::= {algorithm 7}
  3183.  
  3184.           CBCParameter ::= IV
  3185.  
  3186.           desOFB ALGORITHM
  3187.                PARAMETER FBParameter
  3188.                ::= {algorithm 8}
  3189.  
  3190.           desCFB ALGORITHM
  3191.                PARAMETER FBParameter
  3192.                ::= {algorithm 9}
  3193.  
  3194.           FBParameter ::= SEQUENCE {
  3195.                iv IV,
  3196.                numberOfBits NumberOfBits
  3197.                }
  3198.  
  3199.           NumberOfBits ::= INTEGER     -- Number of feedback bits (1  to 64
  3200.           bits)
  3201.  
  3202.  
  3203.               Editor's  Note -  Check FIPS  PUB  81 for  allowed ranges  of
  3204.           feedback
  3205.               bits and specify ranges here as a comment.
  3206.  
  3207.                IV ::= OCTET STRING  -- 8 octets
  3208.  
  3209.           desMAC ALGORITHM
  3210.                PARAMETER MACParameter
  3211.                ::= {algorithm 10}
  3212.  
  3213.           MACParameter ::= INTEGER    --  Length of MAC (16, 24, 32, 40, 40
  3214.           or 64 bits)
  3215.  
  3216.  
  3217.                Editor's Note - Check FIPS PUB 113 for allowed
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.                                           42
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.           PART 12 - SECURITY                         December 1993 (Stable)
  3243.  
  3244.           rsaSignature ALGORITHM
  3245.                PARAMETER NULL
  3246.                ::= { algorithm 11 }
  3247.  
  3248.           dsa ALGORITHM
  3249.                PARAMETER DSAParameters
  3250.                ::= { algorithm 12 }
  3251.  
  3252.           dsaWithSHA ALGORITHM
  3253.                PARAMETER DSAParameters
  3254.                ::= { algorithm 13}
  3255.  
  3256.           shaWithRSASignature
  3257.                PARAMETER NULL
  3258.                ::= { algorithm 15 }
  3259.  
  3260.           dhWithCommonModulus ALGORITHM
  3261.                PARAMETER NULL
  3262.                ::= { algorithm 16 }
  3263.  
  3264.           desEDE ALGORITHM
  3265.                PARAMETER NULL
  3266.                ::= { algorithm 17 }
  3267.           sha ALGORITHM
  3268.                PARAMETER NULL
  3269.                ::= { algorithm 18 }
  3270.  
  3271.           keyed-hash-seal ALGORITHM
  3272.                PARAMETER NULL
  3273.                ::= { algorithm 23 }
  3274.  
  3275.           END -- of Algorithm Object Identifier Definitions
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.                                           43
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.           PART 12 - SECURITY                         December 1993 (Stable)
  3309.  
  3310.           Annex E (normative)
  3311.  
  3312.           References for Security Algorithms
  3313.  
  3314.           [a]  Kaliski,  B.,  The  MD2 Message-Digest  Algorithm,  Internet
  3315.                Draft draft-rsadsi-kaliski-md2-00.txt, July 1, 1991.
  3316.  
  3317.           [b]  Rivest, R. and  S. Dusse, The MD4  Message-Digest Algorithm,
  3318.                Internet Draft draft-rsadsi-rivest-md4-00.txt, July 1, 1991.
  3319.  
  3320.           [c]  Rivest, R. and  S. Dusse, The MD5  Message-Digest Algorithm,
  3321.                Internet  Draft  draft-rsadsi-rivest-md5-01.txt,   July  10,
  3322.                1991.
  3323.  
  3324.           [d]  Rivest,  R. L.,  A.  Shamir and  L.  Adleman,  A method  for
  3325.                obtaining digital  signatures and public-key  cryptosystems,
  3326.                Communications of  the ACM,  Volume 21,  Number 2,  February
  3327.                1978, pp. 120-126.
  3328.  
  3329.           [e]  Rivest,  Ronald L.,  Adi  Shamir  and  Leonard  M.  Adleman,
  3330.                Cryptographic   Communications  System  and  Method,  United
  3331.                States Patent No.  4,405,829, September 20, 1983.
  3332.  
  3333.           [f]  Fougner, R.B.,  Public Key Standards  and Licenses, Internet
  3334.                Request for Comments (RFC) 1170, January 1991.
  3335.  
  3336.           [g]  RSA Data Security,  Inc., PKCS #1: RSA  Encryption Standard,
  3337.                Version 1.4, June 3, 1991.
  3338.  
  3339.           [h]  Diffie,   W.,   and   M.E.  Hellman,   New   directions   in
  3340.                cryptography,   IEEE  Transactions  on  Information  Theory,
  3341.                IT-22, pp. 644-654,  1976.
  3342.  
  3343.           [i]  Hellman, Martin  E., Bailey W.  Diffie and Ralph  C. Merkle,
  3344.                Cryptographic Apparatus and Method, United States Patent No.
  3345.                4,200,770, April 29, 1980.
  3346.  
  3347.           [j]  RSA   Data   Security,   Inc.,   PKCS   #3:   Diffie-Hellman
  3348.                Key-Agreement Standard,  Version 1.3, June 3, 1991.
  3349.  
  3350.           [k]  ElGamal,  T.,  A  public key  cryptosystem  and  a signature
  3351.                scheme  based  on discrete logarithms, IEEE  Transactions on
  3352.                Information    Theory,  IT-31,  Number  4,  July  1985,  pp.
  3353.                469-472.
  3354.  
  3355.           [l]  Federal Information  Processing Standards Publication  (FIPS
  3356.                PUB)   46-1, Data  Encryption Standard,  U.S. Department  of
  3357.                Commerce/National Bureau of  Standards, Supersedes FIPS  PUB
  3358.                46,  January 15, 1977, Reaffirmed January 22, 1988.
  3359.  
  3360.  
  3361.                                           44
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.           PART 12 - SECURITY                         December 1993 (Stable)
  3375.  
  3376.           [m]  ANSI   X3.92-1981,  Data   Encryption  Algorithm,   American
  3377.                National  Standards Institute, Approved December 30, 1980.
  3378.  
  3379.           [n]  Federal Information  Processing Standards  Publication (FIPS
  3380.                PUB)    81,  DES  Modes  of  Operation, U.S.  Department  of
  3381.                Commerce/National Bureau of Standards, December 2, 1980.
  3382.  
  3383.           [o]  ANSI  X3.106-1983,  Data  Encryption Algorithm  -  Modes  of
  3384.                Operation, American  National Standards  Institute, Approved
  3385.                May  16, 1983.
  3386.  
  3387.           [p]  Federal Information  Processing Standards  Publication (FIPS
  3388.                PUB)  74, Guidelines for Implementing and Using the NBS Data
  3389.                Encryption  Standard, U.S.  Department of  Commerce/National
  3390.                Bureau of Standards, April 1, 1981.
  3391.  
  3392.           [q]  Gait,   Jason,  Validating   the  Correctness   of  Hardware
  3393.                Implementations of the NBS Data Encryption Standard, Special
  3394.                Publication  500-20,  U.S. Department  of  Commerce/National
  3395.                Bureau    of  Standards,   Issued  November  1977,   Revised
  3396.                September 1980.
  3397.  
  3398.           [r]  Gait,  Jason, Maintenance  Testing  for the  Data Encryption
  3399.                Standard,  Special  Publication 500-61,  U.S.  Department of
  3400.                Commerce/National Bureau of Standards, August 1980.
  3401.  
  3402.           [s]  Federal Information  Processing Standards  Publication (FIPS
  3403.                PUB)   113, Computer Data Authentication, U.S. Department of
  3404.                Commerce/National Bureau of Standards, May 30, 1985.
  3405.  
  3406.           [t]  American National Standard  X9.9-1986, Financial Institution
  3407.                Message   Authentication   (Wholesale),   American   Bankers
  3408.                Association, April 7, 1986.
  3409.  
  3410.           [u]  Linn,  John,  Privacy  Enhancement for  Internet  Electronic
  3411.                Mail:  Part I  --  Message  Encipherment and  Authentication
  3412.                Procedures,  Internet  Draft  draft-ietf-pem-msgproc-01.txt,
  3413.                September 1991.
  3414.  
  3415.           [v]  Kent,  Steve, Privacy  Enhancement  for Internet  Electronic
  3416.                Mail: Part  II -- Certificate-Based Key Management, Internet
  3417.                Draft draft-ietf-pem-keymgmt-00.txt, June 1991.
  3418.  
  3419.           [w]  Balenson,  David.   M,  Privacy  Enhancement   for  Internet
  3420.                Electronic  Mail:   Part  III  --  Algorithms,   Modes,  and
  3421.                I d e n t i f i e r s ,       I n t e r n e t      D r a f t
  3422.                draft-ietf-pem-algorithms-00.txt, August 1991.
  3423.  
  3424.           [x]  Kaliski,  Burton.   S,  Privacy  Enhancement   for  Internet
  3425.                Electronic Mail:  Part IV -- Notary,  Co-Issuer, CRL-Storing
  3426.  
  3427.                                           45
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.           PART 12 - SECURITY                         December 1993 (Stable)
  3441.  
  3442.                and     CRL-Retrieving     Services,      Internet     Draft
  3443.                draft-ietf-pem-notary-00.txt, July 1991.
  3444.  
  3445.           [y]  North  American Directory Forum,  A Naming Scheme  for c=US,
  3446.                Request for Comments 1255, September 1991.
  3447.  
  3448.           [z]  Kohl,  John and  B. Clifford  Neuman,  The Kerberos  Network
  3449.                Authentication Service, Internet  Draft cat-kerberos-00.txt,
  3450.                June 1991.
  3451.  
  3452.           [aa] Proposed  FIPS xx, Digital Signature Standard, U.S. Dept. of
  3453.                Commerce/National  Institute  of Standards  and  Technology,
  3454.                1992.     Also  published  as  ANS  X9.30-199x,  Public  Key
  3455.                Cryptography Using Irreversible Algorithms for the Financial
  3456.                Services Industry,  Part 1: The Digital  Signature Algorithm
  3457.                (DSA). 
  3458.  
  3459.           [ab] Proposed  FIPS xx,  Secure  Hash  Standard,  U.S.  Dept.  of
  3460.                Commerce/National  Institute  of Standards  and  Technology,
  3461.                1992.     Also  published  as  ANS  X9.30-199x,  Public  Key
  3462.                Cryptography Using Irreversible Algorithms for the Financial
  3463.                Services Industry, Part 1: The Secure Hash Algorithm (SHA).
  3464.  
  3465.           [ac] ANS  X9.31-199x,  Public Key  Cryptography  Using Reversible
  3466.                Algorithms for the Financial Services Industry, Part 2: Hash
  3467.                Algorithms.
  3468.  
  3469.           [ad] ANS  X9.31-199x, Public  Key  Cryptography Using  Reversible
  3470.                Algorithms  for the Financial Services Industry, Part 1: The
  3471.                RSA Signature Algorithm .
  3472.  
  3473.           [ae] ISO/IEC IS  9796, Digital  Signature  Scheme Giving  Message
  3474.                Recovery, 1991.
  3475.  
  3476.           [af] ANS   X9.17-1985,  Financial   Institution  Key   Management
  3477.                (Wholesale), American  Bankers Association,  April 4,  1985,
  3478.                Section 7.2.
  3479.  
  3480.           [ag] D. Coppersmith, Analysis  of ISO/CCITT Document  X.509 Annex
  3481.                D, IBM Research Division, Yorktown Heights, June 1989.
  3482.  
  3483.           [ah] J. Moore, "Protocol Failures  in Cryptosystems," Proceedings
  3484.                of the IEEE, vol. 76, no. 5, pp. 594-601, May 1988.
  3485.  
  3486.           [ai] Miller,S.P., B.C.  Neuman, J.I. Schiller, and  J.H. Saltzer,
  3487.                "Project  Athena  Technical  Plan  Section  E.2.1:  Kerberos
  3488.                Authentication  and Authorization  System," Project  Athena,
  3489.                MIT, December 1987.
  3490.  
  3491.  
  3492.  
  3493.                                           46
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.           PART 12 - SECURITY                         December 1993 (Stable)
  3507.  
  3508.           Annex F (informative)
  3509.  
  3510.           Bibliography
  3511.  
  3512.           [1]  ISO/IEC JTC1 SC21 N3614 Information Retrieval, Transfer, and
  3513.                Management for OSI
  3514.  
  3515.           [2]  ISO/IEC DP 9796 Data Cryptographic Techniques
  3516.  
  3517.           [3]  Secure  Data Network System (SDNS): Key Management Profile -
  3518.                Communications   Protocol   Requirements   (SDN-601/NIST  IR
  3519.                90-4262)
  3520.  
  3521.           [4]  SDNS: Message Security Protocol (SDN-701/NIST IR 90-4250)
  3522.  
  3523.           [5]  SDNS: Directory (SDN-702/NIST IR 90-4250)
  3524.  
  3525.           [6]  ISO/IEC JTC1 SC21/WG1 N5002 Security ASE
  3526.  
  3527.           [7]  Access Control Information Specification (ACIS)
  3528.  
  3529.           [8]  SDNS:  Key  Management  Protocol  -  Definition of  Services
  3530.                Provided (SDN-902/NIST IR 90-4262)
  3531.  
  3532.           [9]  SDNS:  Key  Management  Protocol   -  Specification  of  the
  3533.                Protocol (SDN-903/NIST IR 90-4262)
  3534.  
  3535.           [10] ISO/IEC JTC1 SC21/WG1 N4110 Authentication ASE Exchange
  3536.  
  3537.           [11] SDNS: Security Protocol 3 (SDN-301/NIST IR 90-4250)
  3538.  
  3539.           [12] SDNS: Security Protocol 4 (SDN-401/NIST IR 90-4250)
  3540.  
  3541.           [13] SDNS:   Key   Management  Protocol   -   SDNS   Traffic  Key
  3542.                (SDN-906/NIST IR 90-4262)
  3543.  
  3544.           [14] ISO/IEC JTC1 SC21/WG1 N5001 Upper Layers Security Model
  3545.  
  3546.           [15] ISO/IEC JTC1 SC21/WG1 F29 N5045 Access Control Framework
  3547.  
  3548.           [16] ISO/IEC JTC1 SC21/WG1 F30 Authentication Framework
  3549.  
  3550.           [17] ISO/IEC JTC1 SC21/WG1 F31 N5047 Integrity Framework
  3551.  
  3552.           [18] ISO/IEC JTC1 SC21/WG1 F32 N5046 Non-Repudiation
  3553.  
  3554.           [19] ISO/IEC JTC1 SC21/WG4 N3775 Security Audit Trail
  3555.  
  3556.           [20] ISO/IEC JTC1 SC21/WG1 N4110 Authentication ASE Exchange
  3557.  
  3558.  
  3559.                                           47
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.           PART 12 - SECURITY                         December 1993 (Stable)
  3573.  
  3574.           [21] ISO/IEC JTC1 SC21/WG7 N4022 Key Management Framework
  3575.  
  3576.           [22] ISO/IEC JTC1 SC21/WG1 N5048 Confidentiality Framework
  3577.  
  3578.           [23] ISO/IEC JTC1 SC21/WG1 N5049 Guide to OSI Security Standards
  3579.  
  3580.           [24] ISO/IEC JTC1 SC21/WG1 N5044 Security Framework Overview
  3581.  
  3582.           [25] RFC-1113, Privacy Enhancement for  Internet Electronic Mail:
  3583.                Part I - Message Encipherment and Authentication Procedures.
  3584.  
  3585.           [26] RFC-1114, Privacy Enhancement for  Internet Electronic Mail:
  3586.                Part II - Certificate-Based Key Management.
  3587.  
  3588.           [27] RFC-1115, Privacy Enhancement for  Internet Electronic Mail:
  3589.                Part III - Algorithms, Modes, and Identifiers (August 1989).
  3590.  
  3591.           [28] Network Layer ISO/IEC JTC1 SC6 
  3592.  
  3593.           [29] Transport Layer ISO/IEC JTC1 SC6 6285 
  3594.  
  3595.           [30] Lower Layer ISO/IEC JTC1 SC6 6227
  3596.  
  3597.           [31] ANSI X9.9 DES Encryption Algorithum
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.                                           48
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.           PART 12 - SECURITY                         December 1993 (Stable)
  3639.  
  3640.           Annex G (informative)
  3641.  
  3642.           ElGamal
  3643.  
  3644.           The information in this subclause includes a tutorial description
  3645.           of the ElGamal  scheme for digital  signature using the  notation
  3646.           defined in the  Directory Documents, [ISO9594-8]. It  is intended
  3647.           that  much of the tutorial information provided in this subclause
  3648.           will be moved to the security agreements sometime in the future.
  3649.  
  3650.  
  3651.           G.1    Background
  3652.  
  3653.           The ElGamal  digital signature  scheme is  based on  earlier work
  3654.           done by Diffie and  Hellman [b] in which it was  suggested that a
  3655.           likely  candidate  for   a  one-way  function  is   the  discrete
  3656.           exponential function
  3657.  
  3658.                                                                         (1)
  3659.  
  3660.           where x is an integer  between 1 and p-1 inclusive, where  p is a
  3661.           very large  prime number,  and where    is  an integer  such that
  3662.           1   p  and {  mod p,  2  mod p, ...,  p-1 mod  p} is equal to the
  3663.           set  {1, 2,  ..., p-1}. In  algebraic terminology,  such an    is
  3664.           called a primitive element. References on the topic  of primitive
  3665.           roots and elements are [aa] and [ab].
  3666.  
  3667.           Now, in the real  number system, if y =  x, then by definition of
  3668.           the logarithm we can solve for x using x = log (y). The same idea
  3669.           extends to solving  eq (1) for x so  that inverting f(x) requires
  3670.           calculating discrete  logarithms. The reason  Diffie and  Hellman
  3671.           suspected  eq  (1)  is one-way  is  that  for suitable  p,  it is
  3672.           computationally  difficult  to  invert  f(x).  According  to  the
  3673.           current state of the art, computing discrete logs  for suitable p
  3674.           has  been  found  to  require  a  number  of  operations  roughly
  3675.           equivalent to
  3676.  
  3677.                                                                         (2)
  3678.  
  3679.           where b is the number of bits in p, and c is estimated at c = .69
  3680.           according to [ac].  This can be compared  to only about 2  log2 p
  3681.           multiplications  for discrete exponentiation. If in fact the best
  3682.           known algorithm for computing discrete logs is near  optimal then
  3683.           Expression  (2)is a good measure of the problem's complexity (for
  3684.           a properly chosen  p) and the  discrete exponential function  has
  3685.           all the  qualities of a  one-way function as  described by Diffie
  3686.           and Hellman.
  3687.  
  3688.  
  3689.  
  3690.  
  3691.                                           43
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.           PART 12 - SECURITY                         December 1993 (Stable)
  3705.  
  3706.           G.2    Digital Signature
  3707.  
  3708.           Private Key:  Xs denotes  the private  key for  user X.  Xs is  a
  3709.           randomly chosen integer which user X keeps secret.
  3710.  
  3711.           Public  Key:  Xp  denotes  the  public key  for  user  X  and  is
  3712.           calculated using the corresponding private key such that
  3713.  
  3714.                                                                         (3)
  3715.  
  3716.           where
  3717.  
  3718.                a)   p  is a  prime  satisfying the  requirements listed  in
  3719.                12.2.2.4.
  3720.  
  3721.                b)    is a primitive element mod p.
  3722.  
  3723.                c)  Note  that p and    could be used globally,  but because
  3724.                they  should  be   easily  changeable   (see  12.2.2.4   for
  3725.                information  about why these two parameters should be easily
  3726.                changeable) it would probably be preferable for each user to
  3727.                choose his/her own p  and  . If users choose their own, then
  3728.                p and    must be made available to  the recipient for use in
  3729.                the signature verification process.
  3730.  
  3731.           Signing  Procedure:  Suppose  user  A wants  to  sign  a  message
  3732.           intended for recipient B. The basic idea is to compute a two part
  3733.           signature (r, s) for the message m such that
  3734.  
  3735.                                                                         (4)
  3736.  
  3737.           where h is a one-way hash function.
  3738.  
  3739.           Compute the signature (r, s) as follows.
  3740.  
  3741.                a)  Choose  a random number  k, uniformly between 0  and p-1
  3742.                such that k and  p-1 have no common divisor  except 1 (i.e.,
  3743.                gcd(k,p-1)=1).
  3744.  
  3745.                b)  Compute r such that
  3746.  
  3747.                                                                         (5)
  3748.  
  3749.                c)  Use r to solve for the corresponding s as follows.
  3750.  
  3751.                     1)  rewrite eq (4)  using eq (5) and the definition  of
  3752.                     the public key to get
  3753.  
  3754.                                                                         (6)
  3755.  
  3756.  
  3757.                                           44
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.           PART 12 - SECURITY                         December 1993 (Stable)
  3771.  
  3772.                     Combining exponents, get
  3773.  
  3774.                                                                         (7)
  3775.  
  3776.                     eq (7) implies that
  3777.  
  3778.                                                                         (8)
  3779.  
  3780.                     Note that eq (8) has a single solution for s because  k
  3781.                     was  chosen  such  that   gcd(k,p-1)=1.  See  [ad]  for
  3782.                     supporting theorem.
  3783.  
  3784.                     2)  now solve for s and get
  3785.  
  3786.                                                                         (9)
  3787.  
  3788.                     where I is computed such that k * I   1 (mod p-1).
  3789.  
  3790.           The ElGamal signature is comparable in size to  the corresponding
  3791.           RSA signature.
  3792.  
  3793.  
  3794.           G.3    Verification
  3795.  
  3796.           The recipient receives  Ap, m, r, s,   , and p and  computes both
  3797.           sides of eq (4) and then compares the results.
  3798.  
  3799.  
  3800.           G.4    Known Constraints on Parameters
  3801.  
  3802.           The following list of  constraints is the  result of a search  of
  3803.           current literature and may not be complete:
  3804.  
  3805.                a)  p must be prime;
  3806.  
  3807.                b)  p must be large.
  3808.  
  3809.                Note that  Expression (2)  can be used  to speculate  on the
  3810.                level of security  afforded by crypto  systems based on  the
  3811.                discrete  log problem. Breaking  the ElGamal scheme  has not
  3812.                been proven to be equivalent  to finding discrete logs,  but
  3813.                if we  assume equivalence then  we can estimate how  large p
  3814.                should be for a desired level of security.
  3815.  
  3816.                For  instance,suppose we  wanted to  use  Expression (2)  to
  3817.                decide  how large p  should be so that  we can be reasonably
  3818.                sure the  system  cannot be  broken  (using the  best  known
  3819.                algorithm)  in a  practical amount  of  time. To  be on  the
  3820.                conservative side,  we decide we  want to protect  against a
  3821.                special purpose machine that can perform 1015 operations per
  3822.  
  3823.                                           45
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.           PART 12 - SECURITY                         December 1993 (Stable)
  3837.  
  3838.                second. Specifically, we want to  know how large p should be
  3839.                so that such a machine would take at least one year to break
  3840.                the system.
  3841.  
  3842.                In one year,  the hypothetical machine can perform  3 x 1022
  3843.                operations. To  find the  size of the  desired p,  solve the
  3844.                following equation for b.
  3845.  
  3846.                                                                        (10)
  3847.  
  3848.                We get      . This is  the number of bits in the desired  p.
  3849.                So, the magnitude  of the desired p  is about 2606 which  is
  3850.                roughly 266 x 10180.
  3851.  
  3852.                Hence, to  be reasonably sure of attaining the desired level
  3853.                of security, we find a prime number greater than 266 x 10180
  3854.                which  satisfies all  the  other  criteria  listed  in  this
  3855.                subclause. Our confidence, however, is strictly based on the
  3856.                assumption  that breaking ElGamal is as difficult as finding
  3857.                discrete  logs  and  the  assumption  that  the  best  known
  3858.                algorithm for finding discrete logs is near optimal.
  3859.  
  3860.                c)  p  should occasionally be  changed. This requirement  is
  3861.                discussed in  [ae] and  is related to  the discovery  of new
  3862.                algorithms for computing discrete logarithms in GF(p).
  3863.  
  3864.                d)   p-1 must  have at  least one  large prime factor.  This
  3865.                requirement is  discussed  in [ae]  and  is imposed  by  the
  3866.                Silverman-Pohlig-Hellman algorithm p which computes discrete
  3867.  
  3868.                logarithms in  GF(p) using on the  order    operations and a
  3869.                comparable amount of storage,  where r is the  largest prime
  3870.                factor in p-1.
  3871.  
  3872.                e)     p  should  not  be   the  square  of  any   prime.  A
  3873.                subexponential-time   algorithm   for   computing   discrete
  3874.                logarithms in GF(p2) has been found. See [af]for details.
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.                                           46
  3890.  
  3891.  
  3892.  
  3893.  
  3894.