PKI/ASN.1

ASN.1 Type Notation (1/3)

JayKim๐Ÿ™‚ 2022. 11. 2. 15:43

* Type ํ• ๋‹น
 - ์ƒˆ๋กœ์šด ํƒ€์ž…์„ ์ •์˜ ํ•˜๊ณ  ๋ช…๋ น ํ• ๋•Œ ์‚ฌ์šฉ
   <typereference> ::= <type>

 - ํŠน์ง•
   * ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด ์ฒ˜๋Ÿผ Simple type (INTEGER๋“ฑ)์„ ๊ฐ€์ง
   * Simple Type ์œผ๋กœ ์ƒˆ๋กœ์šด Type ์ •์˜ ๊ฐ€๋Šฅ
   * ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, ํ•˜์ดํ”ˆ(-) ์‚ฌ์šฉ ๊ฐ€๋Šฅ
   * type ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ ํ•ด์•ผ ํ•จ
   * ํ•˜์ดํ”ˆ(-)์œผ๋กœ ๋๋‚˜๊ฑฐ๋‚˜ "--"๋ฅผ ํฌํ•จ ํ•˜๋ฉด ์•ˆ๋จ
    ex) My-Integer ::= INTEGER

 

 * Type ์ข…๋ฅ˜

Simple Structured Tagged Other
BIT STRING
IA5STring
INTEGER
NULL
....
SEQUENCE
SEQUENCE OF
SET
SET OF
...
IMPLICIT
EXPLICIT
CHOICE
ANY

 

 - Simple Types
  * Atomic Type
  * ๋‹ค๋ฅธ Type๋“ค์€ Simple Type์„ ์ด์šฉํ•˜์—ฌ ์ •์˜ ๋จ
   ex) Size ::= INTEGER

 

 - Structed Types
  * Types with Components
  * SEQUENCE : ์ˆœ์„œํ™”๋œ ๊ฐ’๋“ค์˜ ๋ชฉ๋ก
  * SEQUENCE OF : ๊ฐ™์€ Type ์˜ ์ˆœ์„œํ™”๋œ ๊ฐ’๋“ค์˜ ๋ชฉ๋ก


    ex) PersonalRecord ::= SEQUENCE {
          name OCTET STRING,
          age INTEGER }
         PersonalFile ::= SEQUENCE OF PersonalRecord


  * SET : ์ˆœ์„œํ™” ๋˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค์˜ ๋ชฉ๋ก
  * SET OF : ๊ฐ™์€ Type์˜ ์ˆœ์„œํ™” ๋˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค์˜ ๋ชฉ๋ก


    ex) Building ::= SET {
          address OCTET STRING,
          occupied BOOLEAN }

 


 - Tagged Types
  * Structured Type ๋‚ด์˜ Component ๋“ค ๊ฐ„์— Type์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” Tag์— ์˜ํ•ด ์ •์˜ ๋˜๋Š” Type
  * Implicitly Tagged Type : component์˜ ๊ธฐ๋ณธ Type์˜ Tag๊ฐ’์„ ๋ณ€๊ฒฝ ํ•˜์—ฌ ์ƒˆ๋กœ์šด ํƒ€์ž… ์ •์˜
  * Explicitly Tagged Type : component์˜ ๊ธฐ๋ณธ Type์˜ Tag๊ฐ’์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด Type ์„ ์ •์˜



 - Other Types
  * Tag๊ฐ€ ์—†๋Š” Type
  * Type์€ ์‹ค์ œ ๊ฐ’์ด ์ •ํ•ด์งˆ๋•Œ ํ• ๋‹น ๋จ
  * CHOICE, ANY

๋ฐ˜์‘ํ˜•

'PKI > ASN.1' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ASN.1 Type Notation (3/3)  (0) 2022.11.03
ASN.1 Type Notation (2/3)  (0) 2022.11.02
RFC3280-PKIX1Implicit88 ASN.1  (0) 2022.11.02
RFC3280-PKIX1Explicit88 ASN.1  (0) 2022.11.02
ASN.1 ๊ธฐ๋ณธ ๊ตฌ์กฐ  (0) 2022.11.02