MIME規格では、バイナリデータを送れないので、Base64というエンコードを用い、文字列に変換する。簡単に概要を示す。

たとえば、Helloという文字を送る場合。
「Hello」は8ビット文字として以下のようにあらわされる。
Hello
01001000  ・・・H
01100101  ・・・e
01101100  ・・・l
01101100  ・・・l
01101111  ・・・o

ここで、6ビットに変換する。

010010 
000110 
010101 
101100 
011011 
000110 
1111   ←端数がでるので、最後は0埋めし、111100とする。

変換表に基づき、文字に変換する。

010010 S
000110 G
010101 V
101100 s
011011 b
000110 G
111100 8

SGVsbG8 となる。
6ビットで区切り、8ビットの文字に変換するため、データは4/3倍に膨れ上がる。

過去問(H18SV午後2問2)を紹介する。
S/MIMEを使用した場合,添付されるバイナリデータは,ASCIIで表現される64種類の文字と特殊用途の“="を使って表現する[ f ]方式に従って,テキストデータに変換される。64種類の情報を表現するために必要なビット数は,[ g ]ビットである。ここで, 1バイトが8ビットで,[ g ]と8の最小公倍数が[ h ]になり,[ h ]ビットは[ i ]バイトである。したがって,[ i ]バイトのバイナリデータから, 4バイトのテキストデータが生成される。 つまり,添付されるテキストデータは,パディング文字や改行文字などを無視すると,バイナリデータの[ j ]倍になる。このことから,調達ファイルのような大量のデータを転送する場合には注意が必要である。
正解は、以下。
f  BASE64
g  6
h  24
i  3
j  1.3 ※4/3を四捨五入。

もう一問。
【H18NW午前 問29】
30kバイトのJPEGファイルを電子メールに添付するとき、実際の転送データはおよそ何kバイトになるか。ここで、添付ファイルはMIME Base64を用いてエンコーディングされるものとする。

正解:40kバイト