�s���H�ƍ������w�Z�i���A�����s���Y�ƋZ�p�������w�Z�j�𑲋ƁA
�@�B�H�w����U�������Ȃɘ_����H��I�[�f�B�I�W�̋Z�p�҂炵���B
��Ƃ��āA���y�W�̃t���[�\�t�g�J����A�c�s�l�E�`�b�v�`���[��������������A
�I�[�P�X�g�������t�y�c���I�[�{�G�𐁂��Ă�l�B
��̃A�h���X�́w@�x�Ɓwnifty�x�̊ԂɁwspa.�x��lj����ĉ������B
�摜�ŋL�ڂ���Ă���A�h���X�ł��͂��܂����A�X�p���h�~�̃t�B���^�[�𑽐��������Ă��܂��B
�{�z�[���y�[�W�̓����N�t���[�ł��B
�����N�́A�g�b�v�y�[�W
"http://shaw.la.coocan.jp/"
�ɂ��肢�������܂��B
Top Page�_ Security Top�_ Algorithm�_ Key Management�_
CMS�ŃT�|�[�g�����p�X���[�h�ɂ�錮�Ǘ���@�ɂ��Ď����B
�����o�A���S���Y���́A�p�X���[�h�����Í����p�̌�(KEK)�ɕϊ�����ׂɎg����B
���Í��A���S���Y���ɂ��A���o�������Í����p�̌�(KEK)�ŃR���e���c�Í����p�̌�(CEK)���Í��������B
�����̃A���S���Y���́A�p�X���[�h�����Í�����(KEK)�ɕϊ�����ׂɎg����B
�K���I�Ȏ�@�́APBKDF2 [RFC2898]���܂܂Ȃ���Ȃ�Ȃ��B
KeyDerivationAlgorithmIdentifier ::= AlgorithmIdentifier
CMS�ŃT�|�[�g����錮���o��"PBKDF2"�ɂ��Ď����B
PBKDF2�̏ڍׂ́A"RFC 2898 [PKCS#5]"���Q�ƁB
�֘A���鑽���̃p�����[�^�́A���[�U�[���K�p�����p�X���[�h���献�Í��p�̌���ׂɎg����B
parameters ::= SEQUENCE { salt CHOICE { specified OCTET STRING, otherSource AlgorithmIdentifier }, iterationCount INTEGER (1..MAX), keyLength INTEGER (1..MAX) OPTIONAL, prf AlgorithmIdentifier DEFAULT { algorithm hMAC-SHA1, parameters NULL } }
�t�B�[���h�� | ���e |
---|---|
salt | �Í��w�I�[���������ihMAC���j�ɓ��͂���\���g |
iterationCount | �J��Ԃ��� |
keyLength | ���Í�����(KEK)�̃T�C�Y[Byte] |
prf | �g�p����Í��w�I�[���������ihMAC���j��oid�B�ȗ����́AhMAC-SHA1�ƂȂ�B |
�����̃A���S���Y���́A����ꂽ���Í�����(KEK)���g���āA�R���e���c�Í�����(CEK)���Í�������ׂɎg����B
�K���I�Ȏ�@�́A"id-alg-PWRI-KEK"�����b�v�A���S���Y�����g�p���Ȃ���Ȃ�Ȃ��B
���̃A���S���Y���̃p�����[�^�t�B�[���h�́A�����b�v�A���S���Y���Ŏg�������Í����A���S���Y�����܂܂��B
���Í�����(KEK)�̈Í����A���S���Y���Ɠ���̃A���S���Y���ł���K�v�͂Ȃ��B
�Ƃ͂����A�قȂ�A���S���Y�����g�p����ꍇ�ɓ����ȏ�̃Z�L�����e�B�ƂȂ鎖���m���ɂ���悤�A���ӂ���ׂ��ł���B
�i�Ⴆ�ARC2/40���Ń��b�s���O����Triple-DES���́A�Í����x�Ō����ȃC���s�[�_���X�s�������B�j
�K���I�Ȏ�@�́ATriple-DES CBC�y�сA���̑��̃A���S���Y���A
�Ⴆ��AES, CAST-128, RC5, IDEA, Skipjack, Blowfish�y��
�v�����ꂽ�Í����[�h�����܂ށB
�u���b�N�Í���OFB���[�h�y��ECB���[�h��ARC4���̂����Ȃ�KSG (keystream generator)�Í����g�p���Ȃ��ׂ��ł���B
parameters ::= AlgorithmIdentifier
�܂��A�R���e���c�Í�����(CEK)���A�ȉ��̒ʂ萮�`����B
�܂�A���̕��т̍\���ɂȂ�B
SS �c �R���e���c�Í�����(CEK) �o�C�g�̃J�E���g�l
CC �c �`�F�b�N�l
XX �c �R���e���c������(CEK)
PP �c �p�f�B���O (�v�����ꂽ�ꍇ)
SS | CC | XX XX XX ... XX | PP PP ... PP |
���ɁA���̐��`�����R���e���c�p�Í���(CEK)���A�Q��Í��������{����B
���̂Ƃ��Aparameters�Ŏw�肳�ꂽ�Í��A���S���Y����p���A
�Q��ڂ̈Í����ɂ����Ă͏������x�N�^IV�̓��Z�b�g�����A���̂܂g���B
���A�ݒ肷��Í����́A�����o���Ńp�X���[�h���瓱���o�����Í�����p����B
�Í������ꂽ�f�[�^�u���b�N����n�Ƃ���B
���̗�ł́A�ȉ��̏����ɂ������������B
�Í���CEK | 8C 62 7C 89 73 23 A2 F8�@�c �i�ʏ�͗������琶���j |
---|---|
�p�X���[�h | "password" |
�����o�� | PBKDF2 with HMAC-SHA-1 |
�@salt | 12 34 56 78 78 56 34 12�@�c �i�ʏ�͗������琶���j |
�@�J��Ԃ��� | 5�@�@�@�@�@�@�@�@�@�@�@�@�c �i������1000��j |
�������� | PWRI-KEK |
�@���� | DES��, �����p���[�hCBC |
�@�������x�N�^IV | EF E5 98 EF 21 B3 3D 6D�@�c �i�ʏ�͗������琶���j |
�܂��A�����o���s���B
�����o�����͌��Í����A���S���Y���ŗp����̂ŁA�����͂��̃A���S���Y���̌����Ƃ���B
����́APWRI-KEK �{ DES-CBC��p����̂ŁA����dkLen��8[Byte]�ƂȂ�B
KEK �� PBKDF2�ipassword="password", salt=12 34 56 78 78 56 34 12, count=5, dkLen=8�j
�@�@ �� d1 da a7 86 15 f2 87 e6 �c ���Í�����KEK�ɂȂ�B
�R���e���c�p�Í���CEK�̐��`�B
����́A���Í����ɗp����Í�����DES-CBC��p����B
�u���b�N����8[Byte]�ł��邽�߁A���`��f�[�^��8�̐����{�̃T�C�Y�ɂȂ�Ȃ���Ȃ�Ȃ��B
�]���āA�u�����v�A�u�`�F�b�N�v�A�u�b�d�j�v��z�u���A����Ȃ����̓����_���f�[�^�ɂ���ăp�f�B���O����B
�����@�@�@�@�F08 �c ���b�v����R���e���c�p�Í���CEK�̌�����8Byte
�`�F�b�N�@�@�F73 9D 83 �c �iCEK�̐擪3Byte�̕␔�j
�b�d�j�@�@�@�F8C 62 7C 89 73 23 A2 F8 �c CEK�{��
�p�f�B���O�@�FC4 36 F5 41 �c �����_���Ƀp�f�B���O����B
���`��f�[�^�F08 73 9D 83 8C 62 7C 89 73 23 A2 F8 C4 36 F5 41
�ł������`��f�[�^���Q��Í�������B
�Í����W���[���i����́ADES-CBC�j�̐ݒ�B
�������x�N�^IV �� EF E5 98 EF 21 B3 3D 6D
�����@�@�@Key �� d1 da a7 86 15 f2 87 e6
1��ځF06 A0 43 86 1E 82 88 E4 8B 59 9E B9 76 10 00 D4
2��ځFB8 1B 25 65 EE 37 3C A6 DE DC A2 6A 17 8B 0C 10
"PasswordRecipientInfo"��ASN.1�G���R�[�h����
0 A3 68: [3] { 2 02 1: INTEGER 0 5 A0 26: [0] { 7 06 9: OBJECT IDENTIFIER id-PBKDF2 (1 2 840 113549 1 5 12) 18 30 13: SEQUENCE { 20 04 8: OCTET STRING : 12 34 56 78 78 56 34 12�@�@�c salt 30 02 1: INTEGER 5�@�@�c �J��Ԃ��� : } : } 34 30 32: SEQUENCE { 36 06 11: OBJECT IDENTIFIER id-alg-PWRI-KEK : (1 2 840 113549 1 9 16 3 9) 33 30 17: SEQUENCE { 35 06 5: OBJECT IDENTIFIER des-CBC (1 3 14 3 2 7) 42 04 8: OCTET STRING : EF E5 98 EF 21 B3 3D 6D�@�@�c �������x�N�^IV : } : } 68 04 16: OCTET STRING : B8 1B 25 65 EE 37 3C A6 DE DC A2 6A 17 8B 0C 10�@�@�c �Í������ꂽ�R���e���c�p��CEK : }