من یک سیستم متشکل از رایانه های مختلف که باید در یک زمینه زمان واقعی ارتباط برقرار کنند.
تمام ارتباطات باید رمزگذاری شوند و این سیستم به اینترنت متصل نیست، فقط یک دسته از رایانه ها هستند که از طریق سوئیچ های مختلف متصل می شوند.
هر کامپیوتر می تواند اتصالات متفاوتی با دیگر آن ها داشته باشد، که هر دو به عنوان سرور و / یا مشتری عمل می کنند، با استفاده از هر دو UDP و / یا TCP.
آنچه که من می خواهم انجام دهم این است که چیزی را انجام دهیم نه بزرگ و پیچیده برای یک سیستم که باید در اینترنت باقی بماند. ایده من این بود که به نحوی از AES 128 (یا 256) و حالت GCM استفاده کنم.
من فکر کردم که ممکن است یک سرور مرکزی مسئول توزیع یک کلید واحد باشد که بتواند همه رایانه های دیگر برای رمزگذاری استفاده شود تمام داده ها. به طور خاص، من قصد داشتم کلیه کلید های عمومی را به این رایانه آپلود کنم و سپس هر مشتری در هنگام راه اندازی سیستم، کلید را از سرور بازیابی می کند و از این کلید برای ارتباط با AES رمزگذاری می کند. اساسا من می گویم برای استفاده از AES با یک کلید به اشتراک گذاشته شده که می تواند از یک سرور مرکزی بدست آید.
رمز عبور ایجاد شده در سرور مرکزی می تواند به صورت دستی یا به صورت خودکار هر روز تغییر یابد.
شما در مورد این طرح چه فکر میکنید؟ من قصد دارم همه چیز را در C ++ توسعه دهم، هر گونه پیشنهادی در مورد اینکه چه تکنولوژی / کتابخانه باید استفاده کنم؟
من دیده ام سطح پایین سطح libcrypto ++ وجود دارد، اما OpenSSL نیز وجود دارد که قابلیت های TLS و DTLS را فراهم می کند. آیا می توان OpenSSL را برای ایجاد یک سیستم مانند آنچه که من توصیف کرده ام و یا باید از سایر کتابخانه ها مانند libcrypto ++ استفاده کنم؟