SHA-256は、注射剤です。同じ入力を与えると、同じ出力が得られます。しかし、の形容詞ではありません。 メートル時間から とメートル 両方のハッシュ、あなたがいることを知っている場合でも、そのメートル = メートル を締結することができない場合| m | = | m | (両方のメッセージの長さが同じです)。
したがって、SHA-256(または任意の決定論的関数)を適用しても、データのエントロピーを増やすことはできません。せいぜい、それはそれを減らさないでしょう。つまり、データが16の純粋にランダムなバイトの場合、ハッシュした後は「純粋にランダム」以上になりません。あなたのデータが純粋にランダムではなく、それをハッシュしてもランダムにすることはできません。まず、より良いエントロピーソースを使用する必要があります。
あなたが言及していないもう一つの問題は、あなたが現在16のランダムバイトを持っていることですが、SHA-256ハッシュ関数に入れれば、32バイトが得られます。どちらを使いますか?あなたが入力が完全にランダムでハッシュ関数が完璧だったとしても、注入性のために毎秒2バイトしか使用しないと、可能なすべてのビットパターンを得ることはできません。 (そうした場合、これはピジンホールの原理によって、バイトの残りの半分が常にあなたが選択したバイトの関数になることを意味します。SHA-256は当然ではありません。そのような特性を持つでしょう。)あなたが賢明で、バイトをいくつかの "スマート"な方法で結合しようとするならば、事態をさらに悪化させる可能性があります。
したがって、短い答えは「しないでください」です。利用可能な最も強力な非決定論的エントロピーソースを使用して必要なだけ多くのランダムバイトを生成し、それらを直接使用します。
**あなたのアプリケーションのセキュリティを向上させることはできません。 – Makoto