Codoner = Codon + Encoder = Codon + Protector
システム上で使用する暗号化システムに、mRNAコドンの仕組みを応用する研究です
webサイト適当に作りました!
Discordサーバーのリンクも貼っておくので、ぜひ、興味がある方は参加してください!
お待ちしております
- DNAが存在
- そのDNAの片方をもとにmRNAに転写
- そのmRNAをもとにtRNAがアミノ酸を配列させる
この一連の流れのことをセントラルドグマと呼ぶ
なお、DNAは二重螺旋構造 (2本)、RNAは一本鎖構造をしていることが多い
DeoxyriboNucleic Acid
デオキシリボースを糖として持ち、塩基に"A", "T", "G", "C" を持つものである
- A : アデニン
- T : チミン
- G : グアニン
- C : シトシン
AとTが水素二重結合、GとCが水素3重結合で連結しており、塩基の相補性を担保している
構造体としては、デオキシリボースと、塩基とリン酸を合わせたものをヌクレオチドと呼ぶ
これが鎖状になっているものを、ヌクレオチド鎖と呼ぶ
そのうち、生命活動などに必要な部分の情報を遺伝子と呼ぶことがあり、遺伝子はDNA全体の1.5%ほどである (エキソンと呼ばれる)
そのほかの98.5%には、イントロンと呼ばれる部分と、その他の塩基配列がある
RiboNucleic acid
DNAとは違って、糖はリボースである
また、塩基は、A, U, G, C で構成される
- A : アデニン
- U : ウラシル
- G : グアニン
- C : シトシン
AとUが水素二重結合、GとCが水素3重結合で連結しており、塩基の相補性を担保している
RNAにおいてもヌクレオチドとヌクレオチド鎖の名称は使用される
RNAは、DNAを元に転写されたものを使ってタンパク質のアミノ酸配列を決定したりするものである
よく出てくるRNAとしてmRNAとtRNAがある
DNAの塩基配列は、以下のような仕組みになっている 例) (XとYが向き合って一本の2重螺旋構造のDNAを成しているものとする)
--------------------------------------------- X
ATGCGCATACGTCAGAAAGCTGACGTAGCCCGTGTGTGATTTACT
|||||||||||||||||||||||||||||||||||||||||||||
TACGCGTATGCAGTCTTTCGACTGCATCGGGCACACACTAAATGA
--------------------------------------------- Y
次に、このDNAの水素結合( |
で表しているもの)
この時、Yの方を鋳型としてmRNAを作成することになったとする すると、以下のようになる
DNA鎖 "Y" : TAC, GCG, TAT, GCA, GTC, TTT, CGA, CTG, CAT, CGG, GCA, CAC, ACT, AAA, TGA
↓ 転写
mRNA鎖 : AUG, CGC, AUA, CGU, CAG, AAA, GCU, GAC, GUA, GCC, CGU, GUG, UGA, UUU, ACU
# 今回はないが、実際の転写の際は、転写の過程で大量のイントロンがスプライシングされ、エキソンのみの情報に書き換えられる
↓ 翻訳 # コドンという、3文字の延期で一つのアミノ酸を指定している仕組みを利用して、アミノ酸配列に変換 (翻訳) できる
アミノ酸配列: Met - Arg - Ile - Arg - Gln - Lys - Ala - Asp - Val - Ala - Arg - Val - Stop
このmRNA鎖からアミノ酸配列に翻訳される時には、tRNAという別のRNA組織が関わっている
また、鎖XとYのどちらを鋳型として使用するかは、鋳型鎖がどちらであるかが関わっている。
遺伝子発現の時は、アンチセンス鎖側が鋳型となる
mRNAのコドンが何のアミノ酸を指定するか分かりやすくまとめた表である
今回の研究において重要なのは、このコドンの仕組みである
アミノ酸の数は、20個であるが、コドンは最大
当研究は、DNAの仕組みを応用すれば、コドン表 の項目にて明記した通り、外的破壊や改ざんに対する耐性を暗号化方法自体に持たせることが可能なのではないか、という仮説のもと行う
以下のような2進数に変換したデータがあったとする (可読性を上げるために"_"を用いている)
2進数 : 0000_1100_1010_0110_1010_0101_1111_0110_1010_1110
↓ 変換
10進数: 0 12 10 6 10 5 15 6 10 14
この10進数データ (16通り) と、S
1パターンとF
4パターンの計21パターンに対して、コドンを割り当てる
ただし、固定要素として、本来のDNA構造とは異なるが、Start
とFinish
(以下 S
, F
) に関しては、Sは1つ、Fは4パターンを固定で割り当てる。
この時、x
とa, b, c, d
などの記号部分は端末z固有の「コドン表」を作成し、それに基づいて行われるものとする
通し番号0 ~ 17を使用し、 0~15までは、それぞれに3個ずつコドンを割り振り、追加で11個分を割り振る
また、16番は、Startとし、この枠のコドンは一つのみとする
最後に、17番には、必ず4つのコドンを割り振ることとする
このように、割り振る
このコドン表自体をクラインアント側で乱数で生成し、複合鍵は現状未決定ではあるが、独自の型を作ろうと思う
また、このATGCの状態が分かりやすいため、ここまでAUGCで述べてきたが、実際に保存するときは順に、(0,1,2,3)で保存し、これを2進数に変換して使用するものとする
-
データを2進数に変換
-
2進数データを4bit区切りにして10進数に変換
-
セッションごとに「コドン表」(
codon_0
)を作成、使用して疑似4進数に変換 -
「コドン表」を新たに生成(
codon_1
,codon_2
...)して、Codon to Codonの処理を繰り返す(n回処理を行った時、4bit平文に対して$4^n$通りの表現方法が存在するため、例えば、64回以上行えば、
$4^{64} = 2^{128}$ となり、ブルートフォース対策としても十分なはずである) -
生成された擬似4進数を数として扱って2進数に変換 or
codon_m
(m番目のcodon表 mは乱数で求める)を利用して逆算的に2進数に変換 -
完成!(6bitを平文4bitとして出力することになる)
Ver | 日付 | 時間 | 詳細(変更点) | CommitHash |
---|---|---|---|---|
0.0.0 | 2024/7/11 | 14:00 | 初版 | ??? |