SM30 R1

SM30 R1 on
S3CC9GC / S3CC9GW

Application Related Characteristics | Primitive Support  | Implementation Specific Characteristics | Codelets Available

 

External Characteristics

 

Data Item

Value

Comments

External Specification

MULTOS Version

4.2.1

plus CR 0211, 0212, 0214, 0215, 0220, 0222 and 0223

Silicon Provider / ic_manufacturer

Samsung Electronics / 0x0E

 

Implementer / implementer_id

Samsung SDS / 0x06 TBC

 

Mask / ic_type

SM30 (R1-C9GC) / 0x82

SM30 (R1-C9GW) / 0x81

 

Technical Data

Power / External Clock

1.62V to 5.5V / 1 to 5 MHz

 

Transport Protocol

T=0, T=1, T=CL (TypeB, TypeA)

 

FI/DI

0x11, 0x12, 0x13, 0x18

 

Dual ATR

Supported

Pre-enablement ATR

- SM30 (R1-C9GC) : 3B0F8031E06B84210E0682555555555555

- SM30 (R1-C9GW): 3B0F8031E06B84210E0681555555555555

PPS

Supported, , max speed 112.5kbps @ 3.57MHz

TypeB supports 106kbps, 212kbps and 424kbps

TypeA supports 106kbps and 212kbps

ATR Character Convention Direct LSB (3B)

Supported

 

ATR Character Convention Indirect MSB (3F)

Supported

 

Memory Area Sizes

AMD

0072V001 (Type B)

0073V001 (Type A)

 

ROM

variable

256K on C9GC and 384K on C9GW

RAM Public

512 bytes

 

RAM Dynamic

1024 bytes

 

EEPROM Total

variable

72K on C9GC and 144K on C9GW

EEPROM available for applications

variable

69.7K on C9GC and 141.7K on C9GW

 

Application Related Characteristics

 

Data Item

Value

Comments

Application EEPROM Loading Requirements

Application Header

250 bytes

Per application loaded

Total temporary space per protected ALU

-

 

Total temporary space per confidential ALU

-

 

MULTOS Application Function

Static Page Size (1 page)

64 bytes

 

Maximum write size in pages

At least 10 pages

 

Maximum ATR File record size

32 bytes

 

Maximum ATR Historical Byte record size

15 bytes

 

Maximum ATS Historical Byte record size

15 bytes

 

Maximum DIR File record size

0xFFFF bytes

 

Maximum FCI record size

0xFFFF bytes

 

Maximum inbound TPDU size

260 bytes

 

Maximum outbound TPDU size

261 bytes

 

Maximum delegation nest count

Limited by free EEPROM

 

Maximum application history list entries

Limited by free EEPROM

 

Retry Counters

Set MSM Controls

32

Test cards set to 255.

Create MEL Application

32

Test cards set to 255.

Delete MEL Application

32

Test cards set to 255.

Key Lengths

KCK Public Key length

128 bytes

 

Permitted Application Provider Public Key lengths

32 to 128 bytes

KMA accepts APPK lengths between 72 and 128 bytes inclusive

MULTOS TKCK length

96 bytes

 

 

Primitive Support

The primitives listed here are those that were included in the target specification.

 

Primitive

Supported

Optional / Mandatory

Add BCDN

No

Optional

AES Decipher

Yes

Optional

AES Encipher

Yes

Optional

Bit Manipulate Byte

Yes

 

Bit Manipulate Word

Yes

 

Block Decipher

No

Optional

Block Encipher

No

Optional

Call Codelet

Yes

 

Call Extension 0, 1, 2, 3, 4, 5, 6

Yes

Extension used is 6

Card Block

Yes

 

Check Case

Yes

 

Checksum

Yes

 

Control Auto Reset WWT

Yes

Optional

Delegate

Yes

 

DES ECB Decipher

Yes

 

DES ECB Encipher

Yes

 

DivideN

Yes

 

ECC Addition

No

Optional

ECC Convert Representation

No

Optional

ECC Equality Test

No

Optional

ECC Inverse

No

Optional

ECC Scalar Multiplication

No

Optional

ECC Verify Point

No

Optional

Exchange Data

No

Optional

Generate Asymmetric Hash

Yes

 

Generate Asymmetric Signature General

No

Optional

Generate DES CBC Signature

Yes

 

Generate Triple DES CBC Signature

Yes

 

Generate Random Prime

Yes

Optional

Get Data

Yes

 

Get Delegator AID

Yes

 

Get DIR File Record

Yes

 

Get File Control Information

Yes

 

Get Manufacturer Data

Yes

 

Get Memory Reliability

Yes

 

Get MULTOS Data

Yes

 

Get Purse Type

Yes

 

Get Random Number

Yes

 

Load CCR

Yes

 

Lookup

Yes

 

Memory Compare

Yes

 

Memory Compare Fixed Length

Yes

 

Memory Copy

Yes

 

Memory Copy Fixed Length

Yes

 

Modular Exponentiation

Yes

 

Modular Exponentiation CRT

Yes

 

Modular Inverse

Yes

Optional

Modular Multiplication

Yes

Optional

Modular Reduction

Yes

Optional

MultiplyN

Yes

 

Query Channel

No

Optional

Query Codelet

Yes

 

Query0, Query1, Query2, Query3

Yes

 

Reset Session Data

Yes

 

Reset WWT

Yes

 

Return from Codelet

Yes

 

Secure Hash

Yes

Optional, supports SHA-1 and SHA-256

SEED ECB Decipher

Yes

Optional

SEED ECB Encipher

Yes

Optional

Set AFI

Yes

Optional

Set ATR File Record

Yes

 

Set ATR Historical Characters

Yes

 

Set ATS Historical Characters

Yes

Optional

Set FCI File Record

Yes

Optional

Set Transaction Protection

Yes

 

Set Select SW

Yes

 

SHA-1

Yes

 

Shift Left

Yes

 

Shift Right

Yes

 

Store CCR

Yes

 

Subtract BCDN

No

Optional

Triple DES Decipher

Yes

Optional

Triple DES Encipher

Yes

Optional

Verify Asymmetric And Retrieve General

No

Optional

 

Implementation Specific Characteristics

Zero Block Size

The following instructions and primitives have the block size specified in the code (as opposed to being run-time data). The following table shows how each will perform if a zero block size is specified.

 

Type

Instruction / Primitive

Operation

Instruction

LOAD, STORE, LOADI, STOREI

no operation

CLEARN

no operation

TESTN, INCN, DECN, NOTN

Z = 1

CMPN, ADDN, SUBN

C = 0, Z = 1

ANDN, ORN, XORN

Z = 1

Primitive

MultiplyN

Z = 1

DivideN

C = 1, Z = unchanged

ShiftLeft, ShiftRight

C = 0, Z = 1

GetDIRFileRecord
GetFileControlInformation

One byte set to zero pushed onto stack,

If the application specified does not exist, C = 1, Z = 1

If the application specified exists, C = 0, Z = 0

GetManufacturerData
GetMULTOSData
GetPurseType

One byte set to zero pushed onto stack, C = 0

Undefined: implementation specific handling

Undefined: implementation specific handling

MemoryCompareFixedLength

DT’ = DT - 4, C = 0, Z = 1

MemoryCopyFixedLength

DT’ = DT - 4

 

Maximum Number of Pages Permitted in a Single Write

The maximum number of pages is at least twenty when transaction protection is used. It is possible to write more than twenty pages if there is free EEPROM. Note that if an attempt is made to write more than 10 pages and if there is insufficient free EEPROM, then an abnormal end to processing to will occur.

 

Condition Code Register

This implementation does support signed arithmetic. The N and V flags are present in the CCR, and they may be changed by some instructions. However, signed arithmetic is not guaranteed and should be avoided. They may be used by an application using the Load CCR and Store CCR primitives, but this may affect the portability of the application.

 

Supported Modulus Lengths of Cryptographic Primitives

All values given are in bytes.

 

Primitive

Lengths supported

Modular Exponentiation, public exponent not 3

Greater than 0, but less then or equal to 256 bytes

Modular Exponentiation, public exponent of 3

Greater than 0, but less then or equal to 256 bytes

Modular Exponentiation CRT

Between 2 and 256 bytes inclusive

Modular Multiplication

Greater than 0, but less then or equal to 256 bytes

Modular Reduction

Greater than 0, but less then or equal to 256 bytes

 

 

Important Remarks

This section contains important remarks about the Primitives and IFD commands of this implementation.

 

Functionality

Operation

Automated sending of Work  Wait Time extension

The chip returns WWT extension request bytes when 80% of the WWT has expired.

Bit Manipulate Byte

Bit Manipulate Word

Bits 6 to 2 of b2 are ignored. That is, the primitives return the expected result regardless of the value of bits 6 to 2 of b2.

Checksum

If the checksummed area includes the parameters (the top four bytes of Dynamic), the checksum will be correctly calculated.

DivideN

The length of each operand must not be greater than 128 bytes

Enable and Load with the Extended Asymmetric Hash

SM30 does not support the enablement by using Extended Asymmetric Hash. SM30 does not support the application signature with Extended Asymmetric Hash. Protected/Confidential application load are not supported by using Extended Asymmetic Hash.

Generate Asymmetric Hash

Mode = 0, mode = 1, Mode = 2, mode = 3, Mode = 4 and mode = 5 are supported. If b2 (mode) takes an unsupported value, this primitive performs no operation. In particular, no bytes are popped from the stack.

 

The MULTOS 4.2 global data item hash_chain_length is 16 for Mode 0, 1, 2 and 3. But it should be inputted by user for Mode 4 and 5.

The hash modulus length is currently 72 bytes for Mode 0 and 1. But it should be inputted by user for Mode 2, 3, 4 and 5.

Get Manufacturer Data

Get MULTOS Data

Get Purse Type

If the destination is stack top, the last byte of retrieved data will be overwritten by the length of data retrieved. That is, the number of bytes copied is always returned on the stack regardless of the destination segment address.

Get Memory Reliability

MULTOS 4 always indicates memory is reliable: C = 0, Z = 0.

Lookup

If the target value appears more than once in the list, the location of the first is reported. The list need not be sorted. If the target value is not found, it is left unchanged on the stack.

Maximum number of Application History List

SM30 doesn't check Maximum number of Application History List.

Modular Exponentiation

Both the data and the exponent must be greater than 0.

The least significant bit of the modulus must be 1.

The exponent length must be greater than 0 and must be less than or equal to the length of the modulus.

The modulus length must be greater than 4 and less than or equal to 256 bytes.

If any of the conditions above are not met, an abnormal end will occur.

Note that if the modulus is padded at the most significant end with full byte representations of 0, the result cannot be guaranteed.

Modular Exponentiation CRT

The most significant bit of the P & Q value must be 1.

The modulus length must be greater than 4, but not greater than 256 bytes in length. The length must also be an even number.

The length of each item must be modulus length divided by 2.

Both the most significant and least significant bits of the primes p and q must be 1.

If any of these conditions are not met, an abnormal end to processing will occur.

Modular Inverse

The data length must be less than or equal to 256 bytes.

The modulus length must be greater than 4 and less than or equal to 256 bytes.

If any of the conditions above are not met, an abnormal end will occur.

Modular Reduction

The modulus length must be greater than 4 and less than or equal to 256 bytes.

The data length must be equal to or greater than the modulus length.

The modulus must not have any leading zero bytes.

If any of these conditions are not met, an abnormal end will occur.

MultiplyN

The length of each operand must not be greater than 128 bytes

Set Transaction Protection

Bits 7 to 2 of b2 are ignored. That is, the primitive returns the expected result regardless of the value of bits 7 to 2 of b2.

Samsung chips copy the source data to a temporary store and any updates are made to the source data. In the case of a rollback, the copy of the original source data is written to the source.

Shift Left and Shift Right

  • With b2 > 0, if b3 = 0, C= 0 and Z is set appropriately.
    The output block is equal to the input block (the input block is not changed).
  • With b2 > 0, if b3 > 8 * b2, C = 0 and Z = 1.
    The output block is zero.

 

 

Codelets Available

SM30 R1

Both on test cards and live cards, there are at least four codelets available:

 

  • 0x0007 M/Chip Select V2.0.5
  • 0x0026 M/Chip Select V4
  • 0x0025 J/Smart V 2.0
  • 0x0181 CSP V1.0