• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • PKCS #5: 基于口令的密碼系統規范 版本2.0

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    本備忘錄的狀態 本文檔為Inte .net 社區提供信息。它并未定義任何Internet標準。本備忘錄的發布 不受任何限制。 版權聲明 Copyright(C)TheInternetSociety(2000).AllRightsReserved. 摘要 本備忘錄代表源自RSA實驗室的公鑰密碼系統標準(PKCS)系列的PKCS#5v2.

    本備忘錄的狀態
    本文檔為Inte.net社區提供信息。它并未定義任何Internet標準。本備忘錄的發布
    不受任何限制。

    版權聲明
    Copyright(C)TheInternetSociety(2000).AllRightsReserved.

    摘要
    本備忘錄代表源自RSA實驗室的公鑰密碼系統標準(PKCS)系列的PKCS#5v2.0的再版,
    變更控制仍保留在PKCS過程。該文檔的主體,除了安全性考慮一節,都是直接從那個規范
    中獲得的。
    本文檔提供基于口令的密碼系統的實現建議,覆蓋密鑰導出函數,加密方案,消息鑒別
    方案,及與該技術等同的ASN.1語法。
    建議的意圖是供計算機和通信系統的一般程序使用,因此包括了相當數量的靈活性。它
    們特別為敏感信息的保護設計,例如PKCS#8[25]中的私鑰。期望有基于這些規范的應用標
    準和實現輪廓可能包括附加的約束。
    其它基于口令的密碼技術,例如基于口令的密鑰實體認證和密鑰建立協議[4][5][26]不在
    本文檔范圍??诹畹倪x取原則也不在本文檔范圍。



    目錄
    1介紹 2
    2記法 3
    3概覽 3
    4鹽和迭代次數 4
    4.1鹽 4
    4.2迭代計數 5
    5密鑰導出函數 5
    5.1PBKDF1 6
    5.2PBKDF2 6
    6.加密程序 7
    6.1PBES1 8
    6.2PBES2 9
    7.消息驗證方式 10
    7.1PBMAC1 10
    8.安全考慮 11
    9.作者地址 11
    附錄AASN.1語法 11
    A.1PBKDF1 11
    A.2PBKDF2 11
    A.3PBES1 12
    A.4 PBES2 13
    A.5 PBMAC1 13
    B.支撐技術 14
    B.1 偽隨機函數 14
    B.2 加密方法 15
    B.3消息認證方法 17
    C.ASN.1模塊 17
    知識產權考慮 20
    修訂記錄 21
    參考書目 21
    全部版權聲明 24

    1介紹
    本文檔為基于口令的密鑰系統的實現提供建議,包括了下列的方面:
    - 密鑰導出函數
    - 加密方案
    - 消息鑒別方案
    - 與該技術等同的ASN.1語法
    建議的意圖是供計算機和通信系統的一般程序使用,照此包括了相當數量的靈活性。它
    們特別為敏感信息的保護設計,例如PKCS#8[25]中的私鑰。期望有基于這些規范的應用標
    準和實現輪廓可能包括附加的約束。
    其它基于口令的密碼技術,例如基于口令的密鑰實體認證和密鑰建立協議[4][5][26]不在
    本文檔范圍??诹畹倪x取原則也不在本文檔范圍。
    本文檔取代PKCS#5v1.5[24],但包含的技術是與之兼容的。

    2記法
    C 密文,一個字節串
    c 迭代次數,一個正整數
    DK 導出密鑰,一個字節串
    DkLen 導出密鑰的字節長度,一個正整數
    EM 編碼,一個字節串
    Hash 基礎的哈希函數
    HLen偽隨機函數輸出的字節長度,一個正整數
    l 導出密鑰的塊長度,一個正整數
    IV 初始向量,一個字節串
    K 加密密鑰,一個字節串
    KDF 密鑰導出函數
    M 消息,一個字節串
    P 口令,一個字節串
    PRF 基礎的偽隨機函數
    PS 填充串
    psLen 填充串的字節長度,一個正整數
    S 鹽,一個字節串
    T 消息鑒別碼,一個字節串
    T_1,…,T_1,U_1,…,U_c
    中間數,一個字節串
    01,02,…,08
    值為1,2,…,8的字節
    \xor 兩個字節串的按位異或
    |||| 字節長度操作符
    || 級聯操作符
    <i..j> 子串抽取操作符:抽取字節i到j,0<=i<=j

    3概覽
    在公鑰密鑰學的許多應用中,用戶安全性最終取決于一個或多個秘密文本值或口令???BR>令不是直接可用作任何傳統密碼系統的密鑰,相反,需要對口令進行一些處理才能用它
    進行密碼操作。此外,由于口令通常是從一個相對小的空間選取的,處理中要求特殊的
    考慮以防止搜索攻擊。
    基于口令的密碼術的一個通用方法,由Morris和Thompson描述,用于口令表的保
    護,是把口令與鹽結合以產生密鑰??砂邀}看作是對從口令導出的一個大密鑰集合的索
    引,不需要保密。盡管攻擊者有可能構造一個可能口令表(稱作“字典攻擊”),但構造
    一個可能密鑰表是很困難的,因為每個口令將有許多可能的密鑰。對手將不得不為每一
    個鹽單獨搜索口令。
    基于口令的密碼術的另一個方法是構建相對昂貴的密鑰導出技術,由此增加窮舉搜
    索的代價。作法之一是在密鑰導出技術中包括一個迭代次數,指示迭代多少次密鑰導出
    的一些基本函數。一個適度的迭代次數,比如說1000,對合法方來說不可能是計算密
    鑰時的負擔,但對對手來說是一個很大的負擔。
    鹽和迭代次數構成了PKCS#5v1.5中基于口令加密的基礎,在這里同樣為各種密
    碼操作所采用。這樣,這里定義的基于口令的密鑰導出是口令、鹽和迭代次數的一個函
    數,其中后兩個量不需要保密。
    從基于口令的密鑰導出函數,定義基于口令的加密和消息鑒別方案就簡單了。正如
    PKCS#5v1.5中,這里的基于口令的加密方案是基于一個基本的、傳統加密方案,傳統
    方案的密鑰是從口令導出的。相似地,基于口令的消息鑒別方案也基于一個基本的傳統
    方案。這兩個層次的方法使基于口令的技術按照基于的基礎技術模塊化。
    期待基于口令的密鑰導出函數找到除了這里定義的加密和消息鑒別方案以外的其
    它應用。比如,用密鑰導出函數的一個單個應用導出一個密鑰集合。集合中的密鑰作為
    密鑰導出函數的輸出的子串得到。該方法可在面向會話的協議中用作密鑰建立的一部
    分。另外一個應用是口令檢查,密鑰導出函數的輸出被存儲(同鹽和迭代次數一道)用于
    后續的驗證口令的目的。
    在本文檔中,口令被視作一個任意長度的字節串,對其作為文本串的解釋不作指定。
    但為了互操作性,建議應用遵循某些通用的文本編碼規則。ASCII和UTF-8[27]是兩種
    可能的選擇。(ASCII是UTF-8的一個子集。)
    盡管口令的選擇不在本文檔的范圍,已有指導原則發布[17],可供考慮。
    4鹽和迭代次數
    由于鹽和迭代次數是本文檔定義的技術的中心,有理由進行一些深入的討論。
    4.1鹽
    基于口令的密碼技術中的鹽傳統上用于產生對應于一給定口令的一個大集合的密鑰,依
    據該鹽值從中隨機選取一個密鑰。運用一密鑰導出函數選擇集合中的一個密鑰,即:
    DK=KDF(P,S)
    其中DK是導出密鑰,P是口令,S是鹽。這有兩個好處:
    1. 預計算和口令字典相對應的所有密鑰甚至最相像密鑰是困難的。例如,如果鹽
    是64位長,對每個口令來說,將有多達2^64個密鑰。在基于口令的操作被執
    行并且得知鹽后,對手只有搜索口令。
    2. 同一個密鑰不可能被選擇兩次。再者,如果鹽是64位長,依據生日悖論,在
    大約2^32個密鑰已被產生之前,密鑰間“碰撞”的機率并不大。這解決了對
    相同密鑰的多個用戶之間相互影響的顧慮,可能適用于某些加密和認證技術。
    在基于口令的的加密中,加密消息的一方只需在從一口令導出加密密鑰時選擇一個
    大的、足夠隨機的鹽就能保證獲得這些好處。產生消息鑒別碼的一方能以類似的方式得
    到這些保證。
    但解密消息或驗證消息鑒別碼的一方不能確定另一方提供的鹽實際上是隨機產生
    的。例如,有可能鹽是從另一個基于口令的操作中拷貝的,試圖利用同一個密鑰的多個
    用戶間的相互影響。假設兩個合法方交換一段加密過的消息,其中加密密鑰是從一個共
    享口令使用鹽導出的80位的密鑰。對手能從密文中取出鹽,并把它提供給另一方,盡
    管它本來適用于40位的密鑰。如果一方用40位的密鑰提示了解密的結果,對手可能解
    出40位密鑰。在40位密鑰是80位密鑰頭一半的情況下,對手然后能很容易地解開80
    位密鑰的剩下40位。
    為了防止這樣的攻擊,或者應仔細分析同一個密鑰的多個用戶之間的相互影響,或
    者鹽應包含能明確區分不同操作的數據。例如,鹽可以有一個附加的、非隨機的字節,
    指定導出密鑰是用于加密、消息認證,或一些其它操作。
    基于以上這些,對鹽的選擇作以下推薦:
    1. 如果不考慮用支持一給定口令的基于口令的加密和認證技術的擁有同一
    個密鑰(或該密鑰的一個前綴)的多個用戶之間的相互影響的話,那么鹽可
    以隨機產生,接收到鹽的一方不必檢查是否符合特定格式。鹽應至少八字
    節(64位)長。
    2. 否則,除了至少八字節長的隨機部分外,鹽應包括能明確區分不同操作和
    不同密鑰長度的數據,而該數據應能被接收鹽的一方檢查或重新生成。比
    如,鹽應包含一個附加的、非隨機的字節指定導出密鑰的用途。另一種辦
    法是,它可以是指定有關導出密鑰的詳細信息的結構的編碼,比如加密或
    認證技術,以及在由口令導出的不同密鑰中的序列號。附加數據的特殊格
    式留給應用定義。
    注意,如果沒有隨機數或偽隨機數發生器,產生鹽(或它的隨機部分)的一個確定性
    的替代法是對口令和待處理的消息M應用一個基于口令的密鑰導出函數。例如,鹽可
    用S=KDF(P,M)的密鑰導出函數計算。但如果已知消息M屬于一個小的消息空間(例
    如"Yes"或"No"),不推薦使用該方法,因為可能鹽的數量很小。

    4.2迭代計數
    迭代計數傳統上用于增加從一口令生成密鑰的代價,從而增加攻擊的難度。對于本
    文檔的方法,推薦最小1000迭代。這將顯著增加對口令窮舉搜索的代價,但對導出單
    個密鑰的代價沒有明顯的影響。

    5密鑰導出函數
    密鑰導出函數從一個基礎密鑰和其它參數產生一個導出密鑰。在基于口令的密鑰導出
    函數中,基礎密鑰是口令,其它參數是一鹽值和一迭代次數,正如第3節描述的。
    這里定義的基于口令的密鑰導出函數的主要應用在于第6節的加密策略和第7節的消息
    驗證策略。由于這些函數的獨立定義,其它的應用肯定是可能的。
    本節詳述兩個函數:PBKDF1和PBKDF2。推薦新的應用使用PBKDF2;PBKDF1只為
    同已有應用兼容,對新的應用不推薦使用。
    這里定義的密鑰導出函數的一個典型應用可能包括以下幾步:
    1. 選擇一個鹽S和一個迭代次數c,如第4節所述。
    2. 選擇導出密鑰的字節長度,dkLen。
    3. 將密鑰導出函數應用于口令、鹽、迭代次數和密鑰長度以生成一個導出密鑰。
    4. 輸出導出的密鑰。

    通過改變鹽可從一個口令導出任意數量的密鑰,正如第3節描述的那樣。

    5.1PBKDF1
    PBKDF1應用一個散列函數導出密鑰,散列函數可以是MD2、MD5或SHA-1。導出密鑰的
    長度受散列函數輸出的長度的限制,MD2和MD5是16字節,SHA-1是20字節。PBKDF1同PKCS#5
    v1.5的密鑰導出過程相兼容。
    建議PBKDF1只用于同已有應用的兼容,因為它產生的密鑰對某些應用來說不夠大。
    PBKDF1(P,S,c,dkLen)
    可選項: Hash 基本散列函數
    輸入:P 口令,字節串
    S 鹽,一八字節串
    c 迭代次數,正整數
    dkLen導出密鑰的意定字節長度,正整數,MD2或MD5最多16,SHA-1
    最多20
    輸出: DK 導出密鑰,dkLen字節
    步驟:
    1. 如果對于MD2和MD5,dkLen>16,或對于SHA-1,dkLen>20,(即dkLen大于散列函
    數的輸出長度),輸出“derivedkeytoolong”并停止。
    2. 對口令P和附加鹽S的串聯應用基本散列函數,重復c次,然后抽取第一個dkLen
    字節以產生一導出密鑰DK:
    T_1=Hash(P||S),
    T_2=Hash(T_1),
    ...
    T_c=Hash(T_{c-1}),
    DK=Tc<0..dkLen-1>
    3. 輸出導出密鑰DK。

    5.2PBKDF2
    PBKDF2應用一個偽隨機函數(例子見附錄B.1)以導出密鑰。導出密鑰的長度本質上是沒
    有限制的。(但是,導出密鑰的最大有效搜索空間受限于基本偽隨機函數的結構。進一步的
    討論參見附錄B.1。)對新的應用推薦使用PBKDF2。
    PBKDF2(P,S,c,dkLen)
    可選項: RPF 基本偽隨機函數(hLen表示偽隨機函數輸出的字節長度)
    輸入: P 口令,一字節串
    S 鹽,字節串
    c 迭代次數,正整數
    dkLen 導出密鑰的意定字節長度,正整數,最大約(2^32-1)*hLen
    輸出: DK 導出密鑰,長度dkLen字節
    步驟:
    1. 如果dkLen>(2^32-1)*hLen,輸出“derivedkeytoolong”并停止。
    2. 假設l是導出密鑰的hLen個字節塊的個數,r表示最后一個塊的字節數。
    l=CEIL(dkLen/hLen),
    r=dkLen-(l-1)*hLen.
    這里,CEIL(x)是“ceiling”函數,即,大于或等于x的最小整數。
    4. 對于導出密鑰的每一塊,運用函數F于口令P、鹽S、迭代次數c和塊索引以計算
    塊:
    T_1=F(P,S,c,1),
    T_2=F(P,S,c,2),
    ...
    T_l=F(P,S,c,l),
    這里函數F定義為基本偽隨機函數PRF應用于口令P和鹽S的串聯和塊索引i
    的前c次循環的異或和。
    F(P,S,c,i)=U_1\xorU_2\xor...\xorU_c
    其中
    U_1=PRF(P,S||INT(i)),
    U_2=PRF(P,U_1),
    ...
    U_c=PRF(P,U_{c-1}).
    這里,INT(i)是整數i的四字節編碼,高字節在先。
    3. 串聯各塊,抽取前dkLen字節以產生導出密鑰DK:
    DK=T_1||T_2||...||T_l<0..r-1>
    4. 輸出導出密鑰DK。

    注意:函數F的構造遵循“belt-and-suspenders”方法。U_i次循環被遞歸計算以消
    除敵手的并行度;它們被異或到一起以減少有關遞歸退化到一個小的值集的擔憂。
    6.加密程序
    在對稱設置中,加密程序包括加密操作的解密操作,其中加密操作在一個密鑰作用下從
    一個消息產生密文,而解密操作在同一個密鑰作用下從密文恢復消息。在基于口令的加密策
    略中,密鑰就是口令。
    基于口令的加密方法的一個典型應用是私鑰保護方法,其中消息包括私鑰信息,如
    PKCS#8中的那樣。這里定義的加密策略在那種情況下是合適的加密算法。
    本節詳述的兩個策略是PBES1和PBES2。PBES2推薦給新的應用,PBES1只為了同已有
    應用的兼容。
    6.1PBES1
    PBES1結合了PBKDF1函數和一個基礎的塊加密,可以是CBC模式下的DES或RC2?。PBES1
    同PKCS#5v1.5中加密策略相兼容。
    6.1.1加密操作
    在口令P作用下加密消息M以產生密文C,包括以下步驟:
    1. 產生一八字節鹽S和一迭代次數c,如第4節所述。
    2. 應用PBKDF1密鑰導出函數(5.1節)到口令、附加鹽S和迭代次數,以產生長度為16字
    節的導出密鑰DK:
    DK=PBKDF1(P,S,c,16).
    3. 分割導出密鑰DK成由DK的前8字節組成的加密密鑰K,和一包含下8個字節的初始化
    向量IV:
    K=DK<0..7>,
    IV=DK<8..15>.
    4. 連接M和一填充串PS,以形成一編碼消息EM:
    EM=M||PS,
    其中填充串PS由8-(||M||mod8)個字節組成,每個的值是8-(||M||mod8).填充串PS滿
    足以下的表達式:
    PS=01,if||M||mod8=7;
    PS=0202,if||M||mod8=6;
    ...
    PS=0808080808080808,if||M||mod8=0.
    編碼消息的字節長度將是8的倍數,從編碼消息中可以無歧義地恢復出消息M。(填充規則
    來自于RFC1423。
    5. 在加密密鑰K和初始向量IV下,用基本塊密碼算法以CBC模式加密編碼消息EM,以產
    生密文C。對于DES,密鑰K應被看作一56位DES密鑰并且奇位忽略的64位編碼。對
    于RC2,“有效密鑰位“應為64位。
    6. 輸出密文C。
    鹽S和迭代次數c應以一AlgorithmIdentifier值傳遞給執行解密的一方。(見附錄A.3)

    6.1.2解密操作
    PBES1的解密操作包括以下步驟,在口令P的作用下解密密文C以恢復消息M:
    1. 獲取八字節鹽S和迭代次數c。
    2. 應用PBKDF1密鑰導出函數(5.1節)于口令P、附加鹽S和迭代次數以產生長度為16字
    節的導出密鑰:
    DK=PBKDF1(P,S,c,16)
    3. 分割導出密鑰DK,由DK的前8字節組成一加密密鑰K,和由下8字節組成的初始向量
    IV:
    K=DK<0..7>,
    IV=DK<8..15>.
    4. 在加密密鑰K和初始向量IV作用下,用基本塊密碼算法(DES或RC2)以CBC模式解密密
    文,以恢復編碼消息EM。如果密文的字節長度不是8的倍數,輸出“解密錯”并停止。
    5. 把編碼消息EM分割成一消息M和一填充串PS:
    EM=M||PS,
    其中填充串PS由psLen個字節組成,每個的值是psLen,其中psLen介于1和8之間。如果
    不可能以這種方式分割編碼消息EM,輸出“解密錯”并停止。
    6.輸出恢復的消息M。

    6.2PBES2
    PBES2結合一個基于口令的密鑰導出函數,在PKCS#5的本版本中應為PBKDF2(5.2節)和一
    基本的加密策略(例子見附錄B.2)?;炯用懿呗缘拿荑€長度和任何其它參數依賴于策略。
    新的應用推薦使用PBES2。
    6.2.1加密操作
    PBES2的加密操作包括以下步驟,應用一選擇的密鑰導出函數KDF和一選擇的基本加密策略,
    以在口令P的作用下加密消息M以產生密文C:
    1. 如第4節所述,選擇一鹽S和一迭代次數c。
    2. 為基本加密方法的導出密鑰選擇字節長度dkLen。
    3. 應用選擇的密鑰導出函數于口令P、鹽S和迭代次數c,以產生長度dkLen字節的導出
    密鑰。
    4. 在導出密鑰K的作用下用基本加密方法加密消息M以產生密文C(依賴于基本策略,這一
    步可能包括諸如初始向量和填充等參數的選擇)。
    5. 輸出密文C。
    6. 鹽S和迭代次數、密鑰長度dkLen、密鑰導出函數的標識符和基本的加密策略可以一
    AlgorithmIdentifier值傳給執行解密的一方(見附錄A.4)。

    6.2.2解密操作
    PBES2的解密操作包括以下步驟,在口令的作用解密密文C以恢復消息M:
    1. 獲取該操作所用的鹽S。
    2. 為密鑰導出函數獲取迭代次數。
    3. 獲取基本加密方法的導出密鑰的字節長度dkLen。
    4. 應用選擇的密鑰導出函數于口令P、鹽S和迭代次數以產生長度為dkLen字節的導出密
    鑰DK:
    DK=KDF(P,S,c,dkLen)。
    5. 用基本加密方法在導出密鑰DK的作用下解密密文C以恢復消息M。如果解密函數輸出“解
    密錯”,那么輸出“解密錯”并停止。
    6. 輸出恢復的消息M。
    7.消息驗證方式
    消息驗證策略包括一個MAC(消息驗證碼)產生操作和一個MAC驗證函數操作,其中MAC產生
    操作在一個密鑰作用下從一個消息產生一個消息驗證碼,MAC驗證操作在同一個密鑰下驗證
    MAC。在基于口令和消息驗證策略中,密鑰就是口令。
    該節詳述的一個策略是:PBMAC1。
    7.1PBMAC1
    PBMAC1結合了一個基于口令的密鑰導出函數,對于PKCS#5的本版本中應為PBKDF2(5.2節),
    和基本的消息驗證策略(例子見附錄B.3)?;鞠Ⅱ炞C策略的密鑰長度和任何其它參數都
    依賴于策略。
    7.1.1MAC生成
    PBMAC1的MAC生成操作應用一選擇的密鑰導出函數KDF和一選擇的基本消息驗證策略,在
    口令P下處理消息M以產生一消息驗證碼T,包括以下步驟:
    1. 如第4節所述,選擇一鹽S和一迭代次數c。
    2. 為基本消息驗證函數的導出密鑰選擇字節長度dkLen。
    3. 應用選擇的密鑰導出函數于口令P、鹽S和迭代次數c,以產生一長度為dkLen字節的
    導出密鑰DK:
    DK=KDF(P,S,c,dkLen)。
    4. 在導出密鑰DK作用下,用基本消息驗證策略處理消息M,以產生一消息驗證碼T。
    5. 輸出消息驗證碼T。
    鹽S、迭代次數c、密鑰長度L、密鑰導出函數的標識符,和基本消息驗證策略可以一
    AlgorithmIdentifier值傳遞給執行驗證的另一方。
    7.1.2MAC驗證
    PBMAC1的MAC驗證操作在口令P的作用下處理消息M以驗證一消息驗證碼T,包括以下步驟:
    1. 獲取鹽S和迭代次數c。
    2. 為基本消息驗證方式的導出密鑰獲取密鑰的字節長度dkLen.
    3. 應用選擇的密鑰導出函數于口令P、鹽S和迭代次數c,以產生長度為dkLen字節的導
    出密鑰DK:
    DK=KDF(P,S,c,dkLen).
    4. 在導出密鑰DK下用基本消息驗證方式處理消息M以產生一消息驗證碼T。
    5. 如果消息驗證碼證實,輸出“correct”,否則輸出“incorrect”。

    8.安全考慮
    基于口令密碼術在它能提供的安全上通常受限,特別在本文檔定義的那些方法,離線口令搜
    索是可能的情況。在鹽和迭代次數的使用能增加攻擊的復雜度的同時,很好地選擇口令是基
    本的,應把相應的指導原則考慮進去。如果口令存儲的話,口令被很好地保護也是重要的。

    通常,從不同用戶的一個口令導出的密鑰也應不同,以減少意料之外的干擾的可能性。對于
    使用同一算法的基于口令的加密方法,隨機鹽已足夠確保產生不同的密鑰。在某些其它情況
    正如第4節所述的,結構化的鹽是必須的。當選擇鹽值時第4節中的建議就加以考慮。
    9.作者地址
    BurtKaliski
    RSALaboratories
    20CrosbyDrive
    Bedford,MA01730USA

    EMail:bkaliski@rsasecurity.com
    附錄AASN.1語法
    該節定義密鑰導出函數的ASN.1語法,加密方法、消息認證方法和支撐技術。這些定義的意
    定應用包括PKCS#8和密鑰管理、加密數據和集成保護數據的其它語法。
    對象標識符pkcs-5標識OID樹的弧,本節中PKCS#5特有的OID從中導出:
    rsadsiOBJECTIDENTIFIER::={iso(1)member-body(2)us(840)113549}
    pkcsOBJECTIDENTIFIER::={rsadsi1}
    pkcs-5OBJECTIDENTIFIER::={pkcs5}
    A.1PBKDF1
    PBKDF1沒有給出對象標識符,PBES1的對象標識符對已有應用已足夠,對新的應用推薦使用
    PBKDF2。
    A.2PBKDF2
    對象標識符id-PBKDF2標識PBKDF2密鑰導出函數(5.2節)。
    id-PBKDF2OBJECTIDENTIFIER::={pkcs-512}
    在AlgorithmIdentifier中,同該OID相關聯的參數域應有類型PBKDF2-params:
    PBKDF2-params::=SEQUENCE{
    saltCHOICE{
    specifiedOCTETSTRING,
    otherSourceAlgorithmIdentifier{{PBKDF2-SaltSources}}
    },
    iterationCountINTEGER(1..MAX),
    keyLengthINTEGER(1..MAX)OPTIONAL,
    prfAlgorithmIdentifier{{PBKDF2-PRFs}}DEFAULTalgid-hmacWithSHA1}
    類型PKDF2-params域有以下含義:
    - salt指定鹽值,或鹽值的來源。它應是一字節串,或是其OID在集合PBKDF2-SaltSources
    的一算法ID,被PKCS#5保留給將來的版本。
    Salt-Source方法被設計用于指示如何產生鹽值,作為算法ID中的參數和應用數據,或兩者
    皆有。例如,它可能指示鹽值產生于從指定有關導出密鑰的詳細信息的結構的編碼,如第4節所
    建議的。有些信息可能被帶到別處,比如在加密算法ID。但是,這些功能被延遲到PKCS#5的將
    來版本。
    在該節中,一應用可能通過在指定的選擇中選擇鹽值的特殊解釋,達到節4.1提到的好處。
    PBKDF2-SaltSourcesALGORITHM-IDENTIFIER::={...}
    - iterationCount指定迭代次數。允許的最大迭代次數依賴于實現。期待實現輪廓(profile)
    進一步約束范圍。
    - keyLength,可選項,是導出密鑰的字節長度。允許的最大密鑰長度依賴于實現;期待實現
    輪廓(profile)進一步約束范圍。提供該域只為了方便使用。如果顧慮一鹽值用不同密鑰長
    度的操作的相互干擾???
    - prf標識下層的偽隨機函數。它應是一算法ID,其OID在集合PBKDF2-PRFs,在PKCS#5的
    該版本應包括id-hmacWithSHA1(見附錄B.1.1)和其它任何由應用定義的OID。
    PBKDF2-PRFsALGORITHM-IDENTIFIER::=
    {{NULLIDENTIFIEDBYid-hmacWithSHA1},...}
    缺省的偽隨機函數是HMAC-SHA-1:
    algid-hmacWithSHA1AlgorithmIdentifier{{PBKDF2-PRFs}}::=
    {algorithmid-hmacWithSHA1,parametersNULL:NULL}
    A.3PBES1
    依據密鑰導出函數有下層散列函數和下層的塊密碼算法,使用不同的對象標識符標識
    PBES1加密方法(6.1節),總結在下表:

    散列函數 塊密碼算法 OID
    MD2DESpkcs-5.1
    MD2RC2pkcs-5.4
    MD5DESpkcs-5.3
    MD5RC2pkcs-5.6
    SHA-1DESpkcs-5.10
    SHA-1RC2pkcs-5.11

    pbeWithMD2AndDES-CBCOBJECTIDENTIFIER::={pkcs-51}
    pbeWithMD2AndRC2-CBCOBJECTIDENTIFIER::={pkcs-54}
    pbeWithMD5AndDES-CBCOBJECTIDENTIFIER::={pkcs-53}
    pbeWithMD5AndRC2-CBCOBJECTIDENTIFIER::={pkcs-56}
    pbeWithSHA1AndDES-CBCOBJECTIDENTIFIER::={pkcs-510}
    pbeWithSHA1AndRC2-CBCOBJECTIDENTIFIER::={pkcs-511}

    對每一個OID,在AlgorithmIdentifier中同該OID相關聯的參數域應具有類型
    PBEParameter:

    PBEParameter::=SEQUENCE{
    saltOCTETSTRING(SIZE(8)),
    iterationCountINTEGER}
    類型PBEParameter的域有以下含義:
    - salt指定鹽值,一八字節串。
    - iterationCount指定迭代次數。

    A.4 PBES2
    對象標識符id-PBES2標識PBES2加密方法(6.2節)。
    id-PBES2OBJECTIDENTIFIER::={pkcs-513}
    對每一個OID,在AlgorithmIdentifier中同該OID相關聯的參數域應具有類型PBES2-params:
    PBES2-params::=SEQUENCE{
    keyDerivationFuncAlgorithmIdentifier{{PBES2-KDFs}},
    encryptionSchemeAlgorithmIdentifier{{PBES2-Encs}}}
    類型PBES2-params的域有以下含義:
    -keyDerivationFunc標識下層的密鑰導出函數。它應是一算法ID,其OID在集合PBES2-KDFs
    中,對本版本的PKCS#5應包括id-PBKDF2(附錄A.2)。
    PBES2-KDFsALGORITHM-IDENTIFIER::=
    {{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}
    -encryptionScheme標識下層的加密方法。它應是一算法ID,其OID在集合PBES2-Encs,它
    的定義留給應用程序。例示的下層加密方法在附錄B.2中給出。
    PBES2-EncsALGORITHM-IDENTIFIER::={...}
    A.5 PBMAC1
    對象標識符id-PBMAC1標識PBMAC1消息認證方法(節7.1)。
    id-PBMAC1OBJECTIDENTIFIER::={pkcs-514}
    在AlgorithmIdentifier中同該OID相關聯的參數域應具有類型PBMAC1-params:
    PBMAC1-params::=SEQUENCE{
    keyDerivationFuncAlgorithmIdentifier{{PBMAC1-KDFs}},
    messageAuthSchemeAlgorithmIdentifier{{PBMAC1-MACs}}}
    keyDerivationFunc域同PBES2-params(附錄A.4)的相應域有同樣的含義,除了OID
    集合是PBMAC1-KDFs。
    PBMAC1-KDFsALGORITHM-IDENTIFIER::=
    {{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}
    messageAuthScheme域標識下層的消息認證方法。它應是一算法ID,其OID在集合
    PBMAC1-MACs中,它的定義留給應用程序。例示的下層加密方法在附錄B.3中給出。
    PBMAC1-MACsALGORITHM-IDENTIFIER::={...}
    B.支撐技術
    本節給出支持5、6和7節中的基于口令的策略的下層函數和方法的幾個例子。
    盡管這些支撐技術適于應用實現,但都非強制的。期待將來開發PKCS#5的profile以指定
    特定和支撐技術。
    本節也給出支撐技術的對象標識符。對象標識符digestAlgorithm和encryptionAlgorithm標識
    本節引用的某些算法OID都從其中導出。

    digestAlgorithmOBJECTIDENTIFIER::={rsadsi2}
    encryptionAlgorithmOBJECTIDENTIFIER::={rsadsi3}

    B.1 偽隨機函數
    用于PBKDF2(5.2節)的一個例子偽隨機函數是HMAC-SHA-1。
    B.1.1HMAC-SHA-1
    HMAC-SHA-1是同基于SHA-1散列函數的HMAC消息認證碼相對應的偽隨機函數。偽隨
    機函數同計算消息認證碼的函數相同,只是輸出是全長度的。(偽隨機函數PRF的第一個變
    量作為HMAC的“密鑰”,第二個作為HMAC的“文本。在PBKDF2的情況下,“密鑰”
    就是口令,“文本”就是鹽。)HMAC-SHA-1有一個可變的密鑰長度和20-字節(160位)輸出
    值。
    盡管HMAC-SHA-1的密鑰的長度本質上是沒有限制的,但偽隨機函數輸出的有效搜索空間
    可能受限于函數的結構。特別是,當密鑰長于512位時,HMAC-SHA-1將首先雜湊到160
    位。這樣,即使從一個密鑰產生一個包括幾個偽隨機函數輸出的長導出密鑰,導出密鑰的有
    效搜索空間將最多160位。盡管對其它密鑰大小的特殊限制依賴于HMAC構造的細節,可以
    保守地假設,對其它的密鑰大小,有效搜索空間仍限制到160位。
    (在基于口令的密碼系統,160位的限制通常不應造成實際的限制,因為對口令的搜索空間
    不可能大于160位。)
    對象標識符id-hmacWithSHA1標識HMAC-SHA-1偽隨機函數:
    id-hmacWithSHA1OBJECTIDENTIFIER::={digestAlgorithm7}
    在AlgorithmIdentifier同該OID相關聯的參數域應有類型NULL。該對象標識符使用在對象集
    合PBKDF2-PRFs(見附錄A.2)。
    注意,盡管HMAC-SHA-1作為消息認證碼設計的,但在較強的假定下,它的安全驗證(?)
    很容易被修改以滿足對一偽隨機函數的需要。
    一散列函數也可能在某些假定下滿足偽隨機函數的需要。例如,直接應用一散列函數到“密
    鑰”和“文本”的串聯可能是合適的,只要“文本”有合適的結構以預防某些攻擊。但
    HMAC-SHA-1更可取,因為它把“密鑰”和“文本”看作單獨的變量,不需要“文本”有
    任何結構。
    B.2 加密方法
    PBES2(6.2節)的偽隨機函數的例子有DES-CBC-Pad,DES-EDE2-CBC-Pad,RC2-CBC-Pad,
    和RC5-CBC-Pad。
    在本節給出的對象標識符預期在對象集合PBES2-Encs中應用(附錄A.4)。
    B.2.1 DES-CBC-Pad
    DES-CBC-Pad是CBC模式下的單密鑰DES,并使用RFC 1423的填充操作(見6.1.1節)。
    DES-CBC-Pad有一個八字節的加密密鑰和一個八字節的初始向量。密鑰被看作是56位DES
    密鑰的64位編碼,忽略奇偶校驗位。
    對象標識符desCBC(在NIST/OSIImplementors'Workshop協定中定義)標識DES-CBC-Pad
    加密方法。
    desCBCOBJECTIDENTIFIER::=
    {iso(1)identified-organization(3)oiw(14)secsig(3)algorithms(2)7}
    在AlgorithmIdentifier中同該OID相關聯的參數域應有類型OCTETSTRING(SIZE(8)),指定
    CBC模式的初始向量。
    B.2.2DES-EDE3-CBC-Pad
    DES-EDE3-CBC-Pad是CBC模式下的三密鑰的三重DES,用RFC1423的填充操作。
    DES-EDE3-CBC-Pad有一個24字節的加密密鑰和一個八字節初始向量。密鑰被看作是三個
    八字節密鑰的串聯,每一個是一56位DES密鑰的64位編碼,忽略奇偶校驗位。
    對象標識符des-EDE3-CBC標識DES-EDE3-CBC-Pad加密方法:
    des-EDE3-CBCOBJECTIDENTIFIER::={encryptionAlgorithm7}
    在AlgorithmIdentifier中同該OID相關聯的參數域應有類型OCTETSTRING(SIZE(8)),指定
    CBC模式的初始向量。
    注意:沒有填充的DES-EDE3-CBC的OID在ANSIX9.52[1]給出;這里給出的OID由于指明
    了填充而更可取。
    B.2.3RC2-CBC-Pad
    RC2-CBC-Pad是CBC模式下的RC2(tm)加密方法[21],使用RFC1423填充操作。
    RC2-CBC-Pad
    有一個從1到128字節的可變的密鑰長度;一個從1到1024位的單獨的“有效密鑰位”參
    數,它不依賴于密鑰長度限制有效搜索空間;和一個八字節的初始向量。
    對象標識符rc2CBC標識RC2-CBC-Pad加密方法:
    rc2CBCOBJECTIDENTIFIER::={encryptionAlgorithm2}
    在AlgorithmIdentifier中同該OID相關聯的參數域應具有類型RC2-CBC-Parameter:
    RC2-CBC-Parameter::=SEQUENCE{
    rc2ParameterVersionINTEGEROPTIONAL,
    ivOCTETSTRING(SIZE(8))}
    類型RC2-CBCParameter的域有以下含義:
    - rc2ParameterVersion是RC2的“有效密鑰位”的一個RSASecurityInc.所有的編碼。定
    義了以下編碼:
    EffectiveKeyBitsEncoding
    40160
    64120
    12858
    b>=256b
    如果rc2ParameterVersion域被忽略,缺省的“有效密鑰位”是32。(這是為了同某些很老的
    實現向后兼容。)
    - iv是八字節的初始向量
    B.2.4RC5-CBC-Pad
    RC5-CBC-Pad是CBC模式下的RC5(tm)加密算法[20],并使用RFC1423填充操作的推廣。
    該方法完整的定義在[2].RC5-CBC-Pad有一個從0到256字節的可變的密鑰長度,支持64
    位和128位的塊大小。對于前者,它有一個8字節的初始向量;對于后者,有一個16字節
    的初始向量。RC5-CBC-Pad在加密操作中也有一個從8到127的可變數目的“輪次”。

    注意,填充操作的推廣是這樣的。對64位塊大小的RC5,填充串在RFC1423中定義。對
    128位塊大小的RC5,填充串由16-(||M||mod16)個字節組成,每個字節的值是16-(||M||mod
    16)。

    對象標識符rc5-CBC-PAD[2]標識RC5-CBC-Pad加密方法:
    rc5-CBC-PADOBJECTIDENTIFIER::={encryptionAlgorithm9}
    在AlgorithmIdentifier中同該OID相關聯的參數域應有類型RC5-CBC-Parameters:
    RC5-CBC-Parameters::=SEQUENCE{
    versionINTEGER{v1-0(16)}(v1-0),
    roundsINTEGER(8..127),
    blockSizeInBitsINTEGER(64|128),
    ivOCTETSTRINGOPTIONAL}
    類型RC5-CBC-Parameters的域有以下含義:
    version是算法的版本,應為v1-0。
    rounds是加密操作的輪次數,應在8與127之間。
    blockSizeInBits是塊大小的位數,應為64或128。
    iv是初始向量,對64位RC5是一個8字節串,對128位RC5是一個16字節串。缺省是一
    包含內容為0長度適當的字節串。
    B.3消息認證方法
    PBMAC1(7.1節)的消息認證方法的一個例子是HMAC-SHA-1。
    B.3.1HMAC-SHA-1
    HMAC-SHA-1是基于SHA-1散列函數[18]的HMAC消息消息認證方法[7]。HMAC-SHA-1
    有可變的密鑰長度和一20字節(160位)消息認證碼。
    對象標識符id-hmacWithSHA1(見附錄B.1.1)標識HMAC-SHA-1消息認證方法。(偽隨機
    函數和消息認證方法的對象標識符是相同的,可通過上下文區分。)該標識符預期在對象集
    合PBMAC1-Macs中應用(附錄A.5)。
    C.ASN.1模塊
    為了參考的目的,在以前各節中的ASN.1語法在這里作為ASN.1模塊給出。
    --PKCS#5v2.0ASN.1Module
    --RevisedMarch25,1999

    --Thismodulehasbeencheckedforconformancewiththe
    --ASN.1standardbytheOSSASN.1Tools

    PKCS5v2-0{iso(1)member-body(2)us(840)rsadsi(113549)
    pkcs(1)pkcs-5(5)modules(16)pkcs5v2-0(1)}

    DEFINITIONS::=BEGIN

    --Basicobjectidentifiers

    rsadsiOBJECTIDENTIFIER::={iso(1)member-body(2)us(840)113549}
    pkcsOBJECTIDENTIFIER::={rsadsi1}

    pkcs-5OBJECTIDENTIFIER::={pkcs5}

    --Basictypesandclasses

    AlgorithmIdentifier{ALGORITHM-IDENTIFIER:InfoObjectSet}::=
    SEQUENCE{
    algorithmALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
    parametersALGORITHM-IDENTIFIER.&Type({InfoObjectSet}
    {@algorithm})OPTIONAL
    }

    ALGORITHM-IDENTIFIER::=TYPE-IDENTIFIER

    --PBKDF2

    PBKDF2AlgorithmsALGORITHM-IDENTIFIER::=
    {{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}

    id-PBKDF2OBJECTIDENTIFIER::={pkcs-512}

    algid-hmacWithSHA1AlgorithmIdentifier{{PBKDF2-PRFs}}::=
    {algorithmid-hmacWithSHA1,parametersNULL:NULL}

    PBKDF2-params::=SEQUENCE{
    saltCHOICE{
    specifiedOCTETSTRING,
    otherSourceAlgorithmIdentifier{{PBKDF2-SaltSources}}
    },
    iterationCountINTEGER(1..MAX),
    keyLengthINTEGER(1..MAX)OPTIONAL,
    prfAlgorithmIdentifier{{PBKDF2-PRFs}}DEFAULT
    algid-hmacWithSHA1
    }

    PBKDF2-SaltSourcesALGORITHM-IDENTIFIER::={...}

    PBKDF2-PRFsALGORITHM-IDENTIFIER::=
    {{NULLIDENTIFIEDBYid-hmacWithSHA1},...}

    --PBES1

    PBES1AlgorithmsALGORITHM-IDENTIFIER::={

    {PBEParameterIDENTIFIEDBYpbeWithMD2AndDES-CBC}|
    {PBEParameterIDENTIFIEDBYpbeWithMD2AndRC2-CBC}|
    {PBEParameterIDENTIFIEDBYpbeWithMD5AndDES-CBC}|
    {PBEParameterIDENTIFIEDBYpbeWithMD5AndRC2-CBC}|
    {PBEParameterIDENTIFIEDBYpbeWithSHA1AndDES-CBC}|
    {PBEParameterIDENTIFIEDBYpbeWithSHA1AndRC2-CBC},
    ...
    }

    pbeWithMD2AndDES-CBCOBJECTIDENTIFIER::={pkcs-51}
    pbeWithMD2AndRC2-CBCOBJECTIDENTIFIER::={pkcs-54}
    pbeWithMD5AndDES-CBCOBJECTIDENTIFIER::={pkcs-53}
    pbeWithMD5AndRC2-CBCOBJECTIDENTIFIER::={pkcs-56}
    pbeWithSHA1AndDES-CBCOBJECTIDENTIFIER::={pkcs-510}
    pbeWithSHA1AndRC2-CBCOBJECTIDENTIFIER::={pkcs-511}

    PBEParameter::=SEQUENCE{
    saltOCTETSTRING(SIZE(8)),
    iterationCountINTEGER
    }

    --PBES2

    PBES2AlgorithmsALGORITHM-IDENTIFIER::=
    {{PBES2-paramsIDENTIFIEDBYid-PBES2},...}

    id-PBES2OBJECTIDENTIFIER::={pkcs-513}

    PBES2-params::=SEQUENCE{
    keyDerivationFuncAlgorithmIdentifier{{PBES2-KDFs}},
    encryptionSchemeAlgorithmIdentifier{{PBES2-Encs}}
    }

    PBES2-KDFsALGORITHM-IDENTIFIER::=
    {{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}

    PBES2-EncsALGORITHM-IDENTIFIER::={...}

    --PBMAC1

    PBMAC1AlgorithmsALGORITHM-IDENTIFIER::=
    {{PBMAC1-paramsIDENTIFIEDBYid-PBMAC1},...}

    id-PBMAC1OBJECTIDENTIFIER::={pkcs-514}

    PBMAC1-params::=SEQUENCE{
    keyDerivationFuncAlgorithmIdentifier{{PBMAC1-KDFs}},
    messageAuthSchemeAlgorithmIdentifier{{PBMAC1-MACs}}

    }

    PBMAC1-KDFsALGORITHM-IDENTIFIER::=
    {{PBKDF2-paramsIDENTIFIEDBYid-PBKDF2},...}

    PBMAC1-MACsALGORITHM-IDENTIFIER::={...}

    --Supportingtechniques

    digestAlgorithmOBJECTIDENTIFIER::={rsadsi2}
    encryptionAlgorithmOBJECTIDENTIFIER::={rsadsi3}

    SupportingAlgorithmsALGORITHM-IDENTIFIER::={
    {NULLIDENTIFIEDBYid-hmacWithSHA1}|
    {OCTETSTRING(SIZE(8))IDENTIFIEDBYdesCBC}|
    {OCTETSTRING(SIZE(8))IDENTIFIEDBYdes-EDE3-CBC}|
    {RC2-CBC-ParameterIDENTIFIEDBYrc2CBC}|
    {RC5-CBC-ParametersIDENTIFIEDBYrc5-CBC-PAD},
    ...
    }

    id-hmacWithSHA1OBJECTIDENTIFIER::={digestAlgorithm7}

    desCBCOBJECTIDENTIFIER::=
    {iso(1)identified-organization(3)oiw(14)secsig(3)
    algorithms(2)7}--fromOIW

    des-EDE3-CBCOBJECTIDENTIFIER::={encryptionAlgorithm7}

    rc2CBCOBJECTIDENTIFIER::={encryptionAlgorithm2}

    RC2-CBC-Parameter::=SEQUENCE{
    rc2ParameterVersionINTEGEROPTIONAL,
    ivOCTETSTRING(SIZE(8))
    }

    rc5-CBC-PADOBJECTIDENTIFIER::={encryptionAlgorithm9}

    RC5-CBC-Parameters::=SEQUENCE{
    versionINTEGER{v1-0(16)}(v1-0),
    roundsINTEGER(8..127),
    blockSizeInBitsINTEGER(64|128),
    ivOCTETSTRINGOPTIONAL
    }
    END
    知識產權考慮
    RSASecuritymakesnopatentclaimsonthegeneralconstructions
    describedinthisdocument,althoughspecificunderlyingtechniques
    maybecovered.Amongtheunderlyingtechniques,theRC5encryption
    algorithm(AppendixB.2.4)isprotectedbyU.S.Patents5,724,428
    [22]and5,835,600[23].

    RC2andRC5aretrademarksofRSASecurity.

    Licensetocopythisdocumentisgrantedprovidedthatitis
    identifiedasRSASecurityInc.Public-KeyCryptographyStandards
    (PKCS)inallmaterialmentioningorreferencingthisdocument.

    RSASecuritymakesnorepresentationsregardingintellectualproperty
    claimsbyotherparties.Suchdeterminationistheresponsibilityof
    theuser.
    修訂記錄
    Versions1.0-1.3

    Versions1.0-1.3被分發給在1991年1月和3月參加RSAData
    SecurityInc.的公鑰密碼系統標準會議的與會者。

    Version1.4

    Version1.4是1991年6月3日PKCS的首次發行的一部分。該版本作為NIST/OSI
    Implementors'Workshop文檔SEC-SIG-91-20出版。.

    Version1.5

    Version1.5綜合了幾處編輯更正,包括對參考書目的修改和修訂記錄的增加。

    Version2.0

    Version2.0綜合了文檔結構方面的主要編輯更正,并引入了PBES2加密方法,PBMAC1消
    息認證方法,和獨立的基于口令的密鑰導出函數。該版本繼續支持版本1.5中的加密過程。

    參考書目
    [1]AmericanNationalStandardX9.52-1998,TripleDataEncryption
    AlgorithmModesofOperation.Workingdraft,Aclearcase/" target="_blank" >ccredited
    StandardsCommitteeX9,July27,1998.

    [2]Baldwin,R.andR.Rivest,"TheRC5,RC5-CBC,RC5-CBC-Pad,and
    RC5-CTSAlgorithms",RFC2040,October1996.

    [3]Balenson,D.,"PrivacyEnhancementforInternetElectronicMail:
    PartIII:Algorithms,Modes,andIdentifiers",RFC1423,
    February1993.

    [4]S.M.BellovinandM.Merritt.Encryptedkeyexchange:
    Password-basedprotocolssecureagainstdictionaryattacks.In
    Proceedingsofthe1992IEEEComputerSocietyConferenceon
    ResearchinSecurityandPrivacy,pages72-84,IEEEComputer
    Society,1992.

    [5]D.Jablon.Strongpassword-onlyauthenticatedkeyexchange.ACM
    ComputerCommunicationsReview,October1996.

    [6]Kaliski,B.,"TheMD2Message-DigestAlgorithm",RFC1319,April
    1992.

    [7]Krawczyk,H.,Bellare,M.andR.Canetti,"HMAC:Keyed-Hashing
    forMessageAuthentication",RFC2104,February1997.

    [8]RobertMorrisandKenThompson.Passwordsecurity:Acase
    history.CommunicationsoftheACM,22(11):594-597,November
    1979.

    [9]ISO/IEC8824-1:1995:Informationtechnology-AbstractSyntax
    NotationOne(ASN.1)-Specificationofbasicnotation.1995.

    [10]ISO/IEC8824-1:1995/Amd.1:1995Informationtechnology-Abstract
    SyntaxNotationOne(ASN.1)-Specificationofbasicnotation-
    Amendment1-Rulesofextensibility.1995.

    [11]ISO/IEC8824-2:1995Informationtechnology-AbstractSyntax
    NotationOne(ASN.1)-Informationobjectspecification.1995.

    [12]ISO/IEC8824-2:1995/Amd.1:1995Informationtechnology-Abstract
    SyntaxNotationOne(ASN.1)-Informationobjectspecification-
    Amendment1-Rulesofextensibility.1995.

    [13]ISO/IEC8824-3:1995Informationtechnology-AbstractSyntax
    NotationOne(ASN.1)-Constraintspecification.1995.

    [14]ISO/IEC8824-4:1995Informationtechnology-AbstractSyntax
    NotationOne(ASN.1)-ParameterizationofASN.1specifications.
    1995.

    [15]NationalInstituteofStandardsandTechnology(NIST).FIPSPUB
    46-2:DataEncryptionStandard.December30,1993.

    [16]NationalInstituteofStandardsandTechnology(NIST).FIPSPUB
    81:DESModesofOperation.December2,1980.

    [17]NationalInstituteofStandardsandTechnology(NIST).FIPSPUB
    112:PasswordUsage.May30,1985.

    [18]NationalInstituteofStandardsandTechnology(NIST).FIPSPUB
    180-1:SecureHashStandard.April1994.

    [19]Rivest,R.,"TheMD5Message-DigestAlgorithm",RFC1321,April
    1992.

    [20]R.L.Rivest.TheRC5encryptionalgorithm.InProceedingsofthe
    SecondInternationalWorkshoponFastSoftwareEncryption,pages
    86-96,Springer-Verlag,1994.

    [21]Rivest,R.,"ADescriptionoftheRC2(r)EncryptionAlgorithm",
    RFC2268,March1998.

    [22]R.L.Rivest.Block-EncryptionAlgorithmwithData-Dependent
    Rotations.U.S.PatentNo.5,724,428,March3,1998.

    [23]R.L.Rivest.BlockEncryptionAlgorithmwithData-Dependent
    Rotations.U.S.PatentNo.5,835,600,November10,1998.

    [24]RSALaboratories.PKCS#5:Password-BasedEncryptionStandard.
    Version1.5,November1993.

    [25]RSALaboratories.PKCS#8:Private-KeyInformationSyntax
    Standard.Version1.2,November1993.

    [26]T.Wu.TheSecureRemotePasswordprotocol.InProceedingsof
    the1998InternetSocietyNetworkandDistributedSystem
    SecuritySymposium,pages97-111,InternetSociety,1998.

    [27]Yergeau,F.,"UTF-8,atransformationformatofISO10646",RFC
    2279,January1998.

    ContactInformation&AboutPKCS

    ThePublic-KeyCryptographyStandardsarespecificationsproducedby
    RSALaboratoriesincooperationwithsecuresystemsdevelopers
    worldwideforthepurposeofacceleratingthedeploymentofpublic-
    keycryptography.Firstpublishedin1991asaresultofmeetings
    withasmallgroupofearlyadoptersofpublic-keytechnology,the
    PKCSdocumentshavebecomewidelyreferencedandimplemented.
    ContributionsfromthePKCSserieshavebecomepartofmanyformal
    anddefactostandards,includingANSIX9documents,PKIX,SET,
    S/MIME,andSSL.

    FurtherdevelopmentofPKCSoccursthroughmailinglistdiscussions
    andoccasionalworkshops,andsuggestionsforimprovementare
    welcome.Formoreinformation,contact:

    PKCSEditor
    RSALaboratories
    20CrosbyDrive
    Bedford,MA01730USA
    pkcs-editor@rsasecurity.com
    http://www.rsalabs.com/pkcs/

    全部版權聲明

    Copyright(C)TheInternetSociety(2000).AllRightsReserved.

    Thisdocumentandtranslationsofitmaybecopiedandfurnishedto
    others,andderivativeworksthatcommentonorotherwiseexplainit
    orassistinitsimplementationmaybeprepared,copied,published
    anddistributed,inwholeorinpart,withoutrestrictionofany
    kind,providedthattheabovecopyrightnoticeandthisparagraphare
    includedonallsuchcopiesandderivativeworks.However,this
    documentitselfmaynotbemodifiedinanyway,suchasbyremoving
    thecopyrightnoticeorreferencestotheInternetSocietyorother
    Internetorganizations,exceptasneededforthepurposeof
    developingInternetstandardsinwhichcasetheproceduresfor
    copyrightsdefinedintheInternetStandardsprocessmustbe
    followed,orasrequiredtotranslateitintolanguagesotherthan
    English.

    Thelimitedpermissionsgrantedaboveareperpetualandwillnotbe
    revokedbytheInternetSocietyoritssuccessorsorassigns.

    Thisdocumentandtheinformationcontainedhereinisprovidedonan
    "ASIS"basisandTHEINTERNETSOCIETYANDTHEINTERNETENGINEERING
    TASKFORCEDISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,INCLUDING
    BUTNOTLIMITEDTOANYWARRANTYTHATTHEUSEOFTHEINFORMATION
    HEREINWILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIESOF
    MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.

    Acknowledgement

    FundingfortheRFCEditorfunctioniscurrentlyprovidedbythe
    InternetSociety.

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>